欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 7635|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

FPGA大公司面試筆試數(shù)電部分,看看你會(huì)多少

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:109770 發(fā)表于 2016-3-22 20:11 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
1:什么是同步邏輯和異步邏輯?(漢王)

同步邏輯是時(shí)鐘之間有固定的因果關(guān)系。異步邏輯是各時(shí)鐘之間沒有固定的因果關(guān)系。 答案應(yīng)該與上面問題一致
〔補(bǔ)充〕:同步時(shí)序邏輯電路的特點(diǎn):各觸發(fā)器的時(shí)鐘端全部連接在一起,并接在系統(tǒng)時(shí)鐘端,只有當(dāng)時(shí)鐘脈沖到來時(shí),電路的狀態(tài)才能改變。改變后的狀態(tài)將一直保持到下一個(gè)時(shí)鐘脈沖的到來,此時(shí)無論外部輸入 x 有無變化,狀態(tài)表中的每個(gè)狀態(tài)都是穩(wěn)定的。   
     異步時(shí)序邏輯電路的特點(diǎn):電路中除可以使用帶時(shí)鐘的觸發(fā)器外,還可以使用不帶時(shí)鐘的觸發(fā)器和延遲元件作為存儲(chǔ)元件,電路中沒有統(tǒng)一的時(shí)鐘,電路狀態(tài)的改變由外部輸入的變化直接引起。

2:同步電路和異步電路的區(qū)別:
  同步電路:存儲(chǔ)電路中所有觸發(fā)器的時(shí)鐘輸入端都接同一個(gè)時(shí)鐘脈沖源,因而所有觸發(fā)器的狀態(tài)的變化都與所加的時(shí)鐘脈沖信號(hào)同步。
異步電路:電路沒有統(tǒng)一的時(shí)鐘,有些觸發(fā)器的時(shí)鐘輸入端與時(shí)鐘脈沖源相連,這有這些觸發(fā)器的狀態(tài)變化與時(shí)鐘脈沖同步,而其他的觸發(fā)器的狀態(tài)變化不與時(shí)鐘脈沖同步。

3:時(shí)序設(shè)計(jì)的實(shí)質(zhì):
       電路設(shè)計(jì)的難點(diǎn)在時(shí)序設(shè)計(jì),時(shí)序設(shè)計(jì)的實(shí)質(zhì)就是滿足每一個(gè)觸發(fā)器的建立/保持時(shí)間的而要求。

4:建立時(shí)間與保持時(shí)間的概念?
       建立時(shí)間:觸發(fā)器在時(shí)鐘上升沿到來之前,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時(shí)間。
       保持時(shí)間:觸發(fā)器在時(shí)鐘上升沿到來之后,其數(shù)據(jù)輸入端的數(shù)據(jù)必須保持不變的時(shí)間。

不考慮時(shí)鐘的skew,D2的建立時(shí)間不能大于(時(shí)鐘周期T - D1數(shù)據(jù)最遲到達(dá)時(shí)間T1max+T2max);保持時(shí)間不能大于(D1數(shù)據(jù)最快到達(dá)時(shí)間T1min+T2min);否則D2的數(shù)據(jù)將進(jìn)入亞穩(wěn)態(tài)并向后級(jí)電路傳播


5:為什么觸發(fā)器要滿足建立時(shí)間和保持時(shí)間?
因 為觸發(fā)器內(nèi)部數(shù)據(jù)的形成是需要一定的時(shí)間的,如果不滿足建立和保持時(shí)間,觸發(fā)器將進(jìn)入亞穩(wěn)態(tài),進(jìn)入亞穩(wěn)態(tài)后觸發(fā)器的輸出將不穩(wěn)定,在0和1之間變化,這時(shí) 需要經(jīng)過一個(gè)恢復(fù)時(shí)間,其輸出才能穩(wěn)定,但穩(wěn)定后的值并不一定是你的輸入值。這就是為什么要用兩級(jí)觸發(fā)器來同步異步輸入信號(hào)。這樣做可以防止由于異步輸入 信號(hào)對(duì)于本級(jí)時(shí)鐘可能不滿足建立保持時(shí)間而使本級(jí)觸發(fā)器產(chǎn)生的亞穩(wěn)態(tài)傳播到后面邏輯中,導(dǎo)致亞穩(wěn)態(tài)的傳播。
(比較容易理解的方式)換個(gè)方式理解:需要建立時(shí)間是因?yàn)橛|發(fā)器的D段像一個(gè)鎖存器在接受數(shù)據(jù),為了穩(wěn)定的設(shè)置前級(jí)門的狀態(tài)需要一段穩(wěn)定時(shí)間;需要保持時(shí)間是因?yàn)樵跁r(shí)鐘沿到來之后,觸發(fā)器要通過反饋來所存狀態(tài),從后級(jí)門傳到前級(jí)門需要時(shí)間。

6:什么是亞穩(wěn)態(tài)?為什么兩級(jí)觸發(fā)器可以防止亞穩(wěn)態(tài)傳播?
       這也是一個(gè)異步電路同步化的問題,具體的可以參考《EDACN技術(shù)月刊20050401》。
亞 穩(wěn)態(tài)是指觸發(fā)器無法在某個(gè)規(guī)定的時(shí)間段內(nèi)到達(dá)一個(gè)可以確認(rèn)的狀態(tài)。使用兩級(jí)觸發(fā)器來使異步電路同步化的電路其實(shí)叫做“一步同位器”,他只能用來對(duì)一位異步 信號(hào)進(jìn)行同步。兩級(jí)觸發(fā)器可防止亞穩(wěn)態(tài)傳播的原理:假設(shè)第一級(jí)觸發(fā)器的輸入不滿足其建立保持時(shí)間,它在第一個(gè)脈沖沿到來后輸出的數(shù)據(jù)就為亞穩(wěn)態(tài),那么在下 一個(gè)脈沖沿到來之前,其輸出的亞穩(wěn)態(tài)數(shù)據(jù)在一段恢復(fù)時(shí)間后必須穩(wěn)定下來,而且穩(wěn)定的數(shù)據(jù)必須滿足第二級(jí)觸發(fā)器的建立時(shí)間,如果都滿足了,在下一個(gè)脈沖沿到 來時(shí),第二級(jí)觸發(fā)器將不會(huì)出現(xiàn)亞穩(wěn)態(tài),因?yàn)槠漭斎攵说臄?shù)據(jù)滿足其建立保持時(shí)間。同步器有效的條件:第一級(jí)觸發(fā)器進(jìn)入亞穩(wěn)態(tài)后的恢復(fù)時(shí)間 + 第二級(jí)觸發(fā)器的建立時(shí)間 < = 時(shí)鐘周期。
更確切地說,輸入脈沖寬度必須大于同步時(shí)鐘周期與第一級(jí)觸發(fā)器所需的保持時(shí)間之和。最保險(xiǎn)的脈沖寬度是兩倍同步時(shí)鐘周期。 所以,這樣的同步電路對(duì)于從較慢的時(shí)鐘域來的異步信號(hào)進(jìn)入較快的時(shí)鐘域比較有效,對(duì)于進(jìn)入一個(gè)較慢的時(shí)鐘域,則沒有作用 。

7:系統(tǒng)最高速度計(jì)算(最快時(shí)鐘頻率)和流水線設(shè)計(jì)思想:
       同步電路的速度是指同步系統(tǒng)時(shí)鐘的速度,同步時(shí)鐘愈快,電路處理數(shù)據(jù)的時(shí)間間隔越短,電路在單位時(shí)間內(nèi)處理的數(shù)據(jù)量就愈大。假設(shè)Tco是觸發(fā)器的輸入數(shù)據(jù) 被時(shí)鐘打入到觸發(fā)器到數(shù)據(jù)到達(dá)觸發(fā)器輸出端的延時(shí)時(shí)間;Tdelay是組合邏輯的延時(shí);Tsetup是D觸發(fā)器的建立時(shí)間。假設(shè)數(shù)據(jù)已被時(shí)鐘打入D觸發(fā) 器,那么數(shù)據(jù)到達(dá)第一個(gè)觸發(fā)器的Q輸出端需要的延時(shí)時(shí)間是Tco,經(jīng)過組合邏輯的延時(shí)時(shí)間為Tdelay,然后到達(dá)第二個(gè)觸發(fā)器的D端,要希望時(shí)鐘能在第 二個(gè)觸發(fā)器再次被穩(wěn)定地打入觸發(fā)器,則時(shí)鐘的延遲必須大于Tco+Tdelay+Tsetup,也就是說最小的時(shí)鐘周期Tmin =Tco+Tdelay+Tsetup,即最快的時(shí)鐘頻率Fmax =1/Tmin。FPGA開發(fā)軟件也是通過這種方法來計(jì)算系統(tǒng)最高運(yùn)行速度Fmax。因?yàn)門co和Tsetup是由具體的器件工藝決定的,故設(shè)計(jì)電路時(shí)只 能改變組合邏輯的延遲時(shí)間Tdelay,所以說縮短觸發(fā)器間組合邏輯的延時(shí)時(shí)間是提高同步電路速度的關(guān)鍵所在。由于一般同步電路都大于一級(jí)鎖存,而要使電 路穩(wěn)定工作,時(shí)鐘周期必須滿足最大延時(shí)要求。故只有縮短最長(zhǎng)延時(shí)路徑,才能提高電路的工作頻率。可以將較大的組合邏輯分解為較小的N塊,通過適當(dāng)?shù)姆椒ㄆ?均分配組合邏輯,然后在中間插入觸發(fā)器,并和原觸發(fā)器使用相同的時(shí)鐘,就可以避免在兩個(gè)觸發(fā)器之間出現(xiàn)過大的延時(shí),消除速度瓶頸,這樣可以提高電路的工作 頻率。這就是所謂"流水線"技術(shù)的基本設(shè)計(jì)思想,即原設(shè)計(jì)速度受限部分用一個(gè)時(shí)鐘周期實(shí)現(xiàn),采用流水線技術(shù)插入觸發(fā)器后,可用N個(gè)時(shí)鐘周期實(shí)現(xiàn),因此系統(tǒng) 的工作速度可以加快,吞吐量加大。注意,流水線設(shè)計(jì)會(huì)在原數(shù)據(jù)通路上加入延時(shí),另外硬件面積也會(huì)稍有增加。

8:時(shí)序約束的概念和基本策略?
時(shí)序約束主要包括周期約束,偏移約束,靜態(tài)時(shí)序路徑約束三種。通過附加時(shí)序約束可以綜合布線工具調(diào)整映射和布局布線,是設(shè)計(jì)達(dá)到時(shí)序要求。
附 加時(shí)序約束的一般策略是先附加全局約束,然后對(duì)快速和慢速例外路徑附加專門約束。附加全局約束時(shí),首先定義設(shè)計(jì)的所有時(shí)鐘,對(duì)各時(shí)鐘域內(nèi)的同步元件進(jìn)行分 組,對(duì)分組附加周期約束,然后對(duì)FPGA/CPLD輸入輸出PAD附加偏移約束、對(duì)全組合邏輯的PAD TO PAD路徑附加約束。附加專門約束時(shí),首先約束分組之間的路徑,然后約束快、慢速例外路徑和多周期路徑,以及其他特殊路徑。
9:附加約束的作用?
    作用:1:提高設(shè)計(jì)的工作頻率(減少了邏輯和布線延時(shí));2:獲得正確的時(shí)序分析報(bào)告;(靜態(tài)時(shí)序分析工具以約束作為判斷時(shí)序是否滿足設(shè)計(jì)要求的標(biāo)準(zhǔn),因 此要求設(shè)計(jì)者正確輸入約束,以便靜態(tài)時(shí)序分析工具可以正確的輸出時(shí)序報(bào)告)3:指定FPGA/CPLD的電氣標(biāo)準(zhǔn)和引腳位置。

10:FPGA設(shè)計(jì)工程師努力的方向:
SOPC, 高速串行I/O,低功耗,可靠性,可測(cè)試性和設(shè)計(jì)驗(yàn)證流程的優(yōu)化等方面。隨著芯片工藝的提高,芯片容量、集成度都在增加,F(xiàn)PGA設(shè)計(jì)也朝著高速、高度集 成、低功耗、高可靠性、高可測(cè)、可驗(yàn)證性發(fā)展。芯片可測(cè)、可驗(yàn)證,正在成為復(fù)雜設(shè)計(jì)所必備的條件,盡量在上板之前查出bug,將發(fā)現(xiàn)bug的時(shí)間提前,這 也是一些公司花大力氣設(shè)計(jì)仿真平臺(tái)的原因。另外隨著單板功能的提高、成本的壓力,低功耗也逐漸進(jìn)入FPGA設(shè)計(jì)者的考慮范圍,完成相同的功能下,考慮如何 能夠使芯片的功耗最低,據(jù)說altera、xilinx都在根據(jù)自己的芯片特點(diǎn)整理如何降低功耗的文檔。高速串行IO的應(yīng)用,也豐富了FPGA的應(yīng)用范 圍,象xilinx的v2pro中的高速鏈路也逐漸被應(yīng)用。 總之,學(xué)無止境,當(dāng)掌握一定概念、方法之后,就要開始考慮FPGA其它方面的問題了。

11:對(duì)于多位的異步信號(hào)如何進(jìn)行同步?
       對(duì)以一位的異步信號(hào)可以使用“一位同步器進(jìn)行同步”,而對(duì)于多位的異步信號(hào),可以采用如下方法:1:可以采用保持寄存器加握手信號(hào)的方法(多數(shù)據(jù),控制, 地址);2:特殊的具體應(yīng)用電路結(jié)構(gòu),根據(jù)應(yīng)用的不同而不同 ;3:異步FIFO。(最常用的緩存單元是DPRAM)

12:FPGA和CPLD的區(qū)別?
FPGA是可編程ASIC。  
ASIC:專用集成電路,它是面向?qū)iT用途的電路,專門為一個(gè)用戶設(shè)計(jì)和制造的。根據(jù)一個(gè)用戶的特定要求,能以低研制成本,短、交貨周期供貨的全定制,半定制集成電路。與門陣列等其它ASIC(ApplicaTIon Specific IC)相比,它們又具有設(shè)計(jì)開發(fā)周期短、設(shè)計(jì)制造成本低、開發(fā)工具先進(jìn)、標(biāo)準(zhǔn)產(chǎn)品無需測(cè)試、質(zhì)量穩(wěn)定以及可實(shí)時(shí)在線檢驗(yàn)等優(yōu)點(diǎn)。


CPLD
FPGA
內(nèi)部結(jié)構(gòu)
Product-term
Look-up Table
程序存儲(chǔ)
內(nèi)部EEPROM
SRAM,外掛EEPROM
資源類型
組合電路資源豐富
觸發(fā)器資源豐富
集成度


使用場(chǎng)合
完成控制邏輯
能完成比較復(fù)雜的算法
速度


其他資源

PLL、RAM和乘法器等
保密性
可加密
一般不能保密



13:鎖存器(latch)和觸發(fā)器(flip-flop)區(qū)別?
       電平敏感的存儲(chǔ)期間稱為鎖存器?煞譃楦唠娖芥i存器和低電平鎖存器,用于不同時(shí)鐘之間的信號(hào)同步。
       有交叉耦合的門構(gòu)成的雙穩(wěn)態(tài)的存儲(chǔ)原件稱為觸發(fā)器。分為上升沿觸發(fā)和下降沿觸發(fā)?梢哉J(rèn)為是兩個(gè)不同電平敏感的鎖存器串連而成。前一個(gè)鎖存器決定了觸發(fā)器的建立時(shí)間,后一個(gè)鎖存器則決定了保持時(shí)間。

14:FPGA芯片內(nèi)有哪兩種存儲(chǔ)器資源?
       FPGA芯片內(nèi)有兩種存儲(chǔ)器資源:一種叫block ram,另一種是由LUT配置成的內(nèi)部存儲(chǔ)器(也就是分布式ram)。Block ram由一定數(shù)量固定大小的存儲(chǔ)塊構(gòu)成的,使用BLOCK RAM資源不占用額外的邏輯資源,并且速度快。但是使用的時(shí)候消耗的BLOCK RAM資源是其塊大小的整數(shù)倍。

15:什么是時(shí)鐘抖動(dòng)?
       時(shí)鐘抖動(dòng)是指芯片的某一個(gè)給定點(diǎn)上時(shí)鐘周期發(fā)生暫時(shí)性變化,也就是說時(shí)鐘周期在不同的周期上可能加長(zhǎng)或縮短。它是一個(gè)平均值為0的平均變量。

16:FPGA設(shè)計(jì)中對(duì)時(shí)鐘的使用?(例如分頻等)
       FPGA芯片有固定的時(shí)鐘路由,這些路由能有減少時(shí)鐘抖動(dòng)和偏差。需要對(duì)時(shí)鐘進(jìn)行相位移動(dòng)或變頻的時(shí)候,一般不允許對(duì)時(shí)鐘進(jìn)行邏輯操作,這樣不僅會(huì)增加時(shí) 鐘的偏差和抖動(dòng),還會(huì)使時(shí)鐘帶上毛刺。一般的處理方法是采用FPGA芯片自帶的時(shí)鐘管理器如PLL,DLL或DCM,或者把邏輯轉(zhuǎn)換到觸發(fā)器的D輸入(這 些也是對(duì)時(shí)鐘邏輯操作的替代方案)。

17:FPGA設(shè)計(jì)中如何實(shí)現(xiàn)同步時(shí)序電路的延時(shí)?
       首先說說異步電路的延時(shí)實(shí)現(xiàn):異步電路一半是通過加buffer、兩級(jí)與非門等(我還沒用過所以也不是很清楚),但這是不適合同步電路實(shí)現(xiàn)延時(shí)的。在同步 電路中,對(duì)于比較大的和特殊要求的延時(shí),一半通過高速時(shí)鐘產(chǎn)生計(jì)數(shù)器,通過計(jì)數(shù)器來控制延時(shí);對(duì)于比較小的延時(shí),可以通過觸發(fā)器打一拍,不過這樣只能延遲 一個(gè)時(shí)鐘周期。

18:FPGA中可以綜合實(shí)現(xiàn)為RAM/ROM/CAM的三種資源及其注意事項(xiàng)?
       三種資源:block ram;觸發(fā)器(FF),查找表(LUT);
注 意事項(xiàng):1:在生成RAM等存儲(chǔ)單元時(shí),應(yīng)該首選block ram 資源;其原因有二:第一:使用block ram等資源,可以節(jié)約更多的FF和4-LUT等底層可編程單元。使用block ram可以說是“不用白不用”,是最大程度發(fā)揮器件效能,節(jié)約成本的一種體現(xiàn);第二:block ram是一種可以配置的硬件結(jié)構(gòu),其可靠性和速度與用LUT和register構(gòu)建的存儲(chǔ)器更有優(yōu)勢(shì)。2:弄清FPGA的硬件結(jié)構(gòu),合理使用block ram資源;3:分析block ram容量,高效使用block ram資源;4:分布式ram資源(distribute ram)

19:Xilinx中與全局時(shí)鐘資源和DLL相關(guān)的硬件原語(yǔ):
       常用的與全局時(shí)鐘資源相關(guān)的Xilinx器件原語(yǔ)包括:IBUFG,IBUFGDS,BUFG,BUFGP,BUFGCE,BUFGMUX,BUFGDLL,DCM等。關(guān)于各個(gè)器件原語(yǔ)的解釋可以參考《FPGA設(shè)計(jì)指導(dǎo)準(zhǔn)則》p50部分。

20:HDL語(yǔ)言的層次概念?
       HDL語(yǔ)言是分層次的、類型的,最常用的層次概念有系統(tǒng)與標(biāo)準(zhǔn)級(jí)、功能模塊級(jí),行為級(jí),寄存器傳輸級(jí)和門級(jí)。

21:查找表的原理與結(jié)構(gòu)?
       查找表(look-up-table)簡(jiǎn)稱為L(zhǎng)UT,LUT本質(zhì)上就是一個(gè)RAM。目前FPGA中多使用4輸入的LUT,所以每一個(gè)LUT可以看成一個(gè)有 4位地址線的16x1的RAM。 當(dāng)用戶通過原理圖或HDL語(yǔ)言描述了一個(gè)邏輯電路以后,PLD/FPGA開發(fā)軟件會(huì)自動(dòng)計(jì)算邏輯電路的所有可能的結(jié)果,并把結(jié)果事先寫入RAM,這樣,每 輸入一個(gè)信號(hào)進(jìn)行邏輯運(yùn)算就等于輸入一個(gè)地址進(jìn)行查表,找出地址對(duì)應(yīng)的內(nèi)容,然后輸出即可

22:ic設(shè)計(jì)前端到后端的流程和eda工具?
       設(shè)計(jì)前端也稱邏輯設(shè)計(jì),后端設(shè)計(jì)也稱物理設(shè)計(jì),兩者并沒有嚴(yán)格的界限,一般涉及到與工藝有關(guān)的設(shè)計(jì)就是后端設(shè)計(jì)。
       1:規(guī)格制定:客戶向芯片設(shè)計(jì)公司提出設(shè)計(jì)要求。
       2:詳細(xì)設(shè)計(jì):芯片設(shè)計(jì)公司(Fabless)根據(jù)客戶提出的規(guī)格要求,拿出設(shè)計(jì)解決方案和具體實(shí)現(xiàn)架構(gòu),劃分模塊功能。目前架構(gòu)的驗(yàn)證一般基于 systemC語(yǔ)言,對(duì)價(jià)后模型的仿真可以使用systemC的仿真工具。例如:CoCentric和Visual Elite等。
       3:HDL編碼:設(shè)計(jì)輸入工具:ultra ,visual VHDL等
       4:仿真驗(yàn)證:modelsim
       5:邏輯綜合:synplify
       6:靜態(tài)時(shí)序分析:synopsys的Prime Time
       7:形式驗(yàn)證:Synopsys的Formality.

23:寄生效應(yīng)在ic設(shè)計(jì)中怎樣加以克服和利用(這是我的理解,原題好像是說,ic設(shè)計(jì)過
程中將寄生效應(yīng)的怎樣反饋影響設(shè)計(jì)師的設(shè)計(jì)方案)?

24:用filp-flop和logic-gate設(shè)計(jì)一個(gè)1位加法器,輸入carryin和current-stage,輸出
carryout和next-stage?
process(sig_intel)
begin
       case sig_intel is
              when "000" => carryout <= '0';
                                   next_state <= '0';
              when "001" => carryout <= '1';
                                   next_state <= '0';
              when "010" => carryout <= '1';
                                   next_state <= '0';
              when "011" => carryout <= '0';
                                   next_state <= '1';
              when "100" => carryout <= '1';
                                   next_state <= '0';
              when "101" => carryout <= '0';
                                   next_state <= '1';
              when "110" => carryout <= '0';
                                   next_state <= '1';
              when "111" => carryout <= '1';
                                   next_state <= '1';
              when others => carryout <= 'X';
                                   next_state <= 'X';
       end case;
end process;

25:設(shè)計(jì)一個(gè)自動(dòng)飲料售賣機(jī),飲料10分錢,硬幣有5分和10分兩種,并考慮找零,
1.畫出fsm(有限狀態(tài)機(jī))
2.用verilog編程,語(yǔ)法要符合fpga設(shè)計(jì)的要求
3.設(shè)計(jì)工程中可使用的工具及設(shè)計(jì)大致過程?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity drink_auto_sale is
         port(clk: in std_logic;
                   reset:in std_logic;
                   sw101:in std_logic;
                   sw102:in std_logic;
                   buy : out std_logic;
                   back: out std_logic);
end drink_auto_sale;
architecture Behavioral of drink_auto_sale is
type state_type is(st0,st1);
signal cs ,ns : state_type;
begin
process(clk,reset)
begin
         if(reset = '1') then
                   cs <= st0;
         elsif(clk'event and clk = '1') then   
                   cs <= ns;
         end if;
end process;

process(reset ,cs)
begin
         case cs is
                   when st0 =>        if( sw101 = '1') then
                                                                 ns <= st1;
                                                                 buy<= '0';
                                                                 back<= '0';
                                                        elsif(sw102 = '1') then
                                                                 ns <= st0;
                                                                 buy<= '1';
                                                                 back <= '0';
                                                        else
                                                                 ns <= st0 ;
                                                                 buy <= '0';
                                                                 back <= '0';
                                                        end if;
                   when st1 => if(sw101 = '1') then
                                                                 ns <= st0;
                                                                 buy <= '1';
                                                                 back <= '0';
                                                        elsif(sw102 = '1') then
                                                                 ns <= st0;
                                                                 buy <= '1';
                                                                 back <= '1';
                                                        end if;
                   when others => ns <= st0;
                                                                 buy<= '0';
                                                                 back <= '0';
         end  case;
end process;
end Behavioral;
設(shè) 計(jì)過程:設(shè)定三個(gè)狀態(tài):0分,5分;當(dāng)狀態(tài)為0分時(shí),接收到5分信號(hào)脈沖后轉(zhuǎn)為5分;接收到10分信號(hào)脈沖時(shí),轉(zhuǎn)到0分狀態(tài),同時(shí)彈出飲料,不找零;狀態(tài) 為5分時(shí),接受到5分信號(hào),彈出飲料,不找零,返回0分狀態(tài);當(dāng)接受到10分狀態(tài)時(shí),彈出飲料,找零,并返回零分狀態(tài)。
所用設(shè)計(jì)工具:ISE7.1,modelsim,synplify
(不知道為什么上面的狀態(tài)機(jī)設(shè)計(jì)在synplify的RTL view中沒能看到狀態(tài)機(jī)流程圖,所以狀態(tài)轉(zhuǎn)移圖就沒畫)。

26:什么是"線與"邏輯,要實(shí)現(xiàn)它,在硬件特性上有什么具體要求?
       線與邏輯是兩個(gè)輸出信號(hào)相連可以實(shí)現(xiàn)與的功能。在硬件上,要用oc門來實(shí)現(xiàn),由于不用 oc門可能使灌電流過大,而燒壞邏輯門. 同時(shí)在輸出端口應(yīng)加一個(gè)上拉電阻。Oc門就是集電極開路門。

27:什么是競(jìng)爭(zhēng)與冒險(xiǎn)現(xiàn)象?怎樣判斷?如何消除?
       在組合電路中,某一輸入變量經(jīng)過不同途徑傳輸后,到達(dá)電路中某一匯合點(diǎn)的時(shí)間有先有后,這種現(xiàn)象稱競(jìng)爭(zhēng);由于競(jìng)爭(zhēng)而使電路輸出發(fā)生瞬時(shí)錯(cuò)誤的現(xiàn)象叫做冒 險(xiǎn)。(也就是由于競(jìng)爭(zhēng)產(chǎn)生的毛刺叫做冒險(xiǎn))。判斷方法:代數(shù)法(如果布爾式中有相反的信號(hào)則可能產(chǎn)生競(jìng)爭(zhēng)和冒險(xiǎn)現(xiàn)象);卡諾圖:有兩個(gè)相切的卡諾圈并且相 切處沒有被其他卡諾圈包圍,就有可能出現(xiàn)競(jìng)爭(zhēng)冒險(xiǎn);實(shí)驗(yàn)法:示波器觀測(cè);
解決方法:1:加濾波電路,消除毛刺的影響;2:加選通信號(hào),避開毛刺;3:增加冗余項(xiàng)消除邏輯冒險(xiǎn)。
28:你知道那些常用邏輯電平?TTL與COMS電平可以直接互連嗎?
常用邏輯電平:TTL、CMOS、LVTTL、LVCMOS、ECL(Emitter Coupled Logic)、PECL(Pseudo/Positive Emitter Coupled Logic)、LVDS(Low Voltage Differential Signaling)、GTL(Gunning Transceiver Logic)、BTL(Backplane Transceiver Logic)、ETL(enhanced transceiver logic)、GTLP(Gunning Transceiver Logic Plus);RS232、RS422、RS485(12V,5V,3.3V);也有一種答案是:常用邏輯電平:12V,5V,3.3V。TTL和CMOS 不可以直接互連,由于TTL是在0.3-3.6V之間,而CMOS則是有在12V的有在5V的。CMOS輸出接到TTL是可以直接互連。TTL接到 CMOS需要在輸出端口加一上拉電阻接到5V或者12V。
cmos的高低電平分別為:Vih>=0.7VDD,Vil<=0.3VDD;Voh>=0.9VDD,Vol<=0.1VDD.
ttl的為:Vih>=2.0v,Vil<=0.8v;Voh>=2.4v,Vol<=0.4v.
用cmos可直接驅(qū)動(dòng)ttl;加上拉電阻后,ttl可驅(qū)動(dòng)cmos.
1、當(dāng)TTL電路驅(qū)動(dòng)COMS電路時(shí),如果TTL電路輸出的高電平低于COMS電路的最低高電平(一般為3.5V),這時(shí)就需要在TTL的輸出端接上拉電阻,以提高輸出高電平的值。
2、OC門電路必須加上拉電阻,以提高輸出的搞電平值。
3、為加大輸出引腳的驅(qū)動(dòng)能力,有的單片機(jī)管腳上也常使用上拉電阻。
4、在COMS芯片上,為了防止靜電造成損壞,不用的管腳不能懸空,一般接上拉電阻產(chǎn)生降低輸入阻抗,提供泄荷通路。
5、芯片的管腳加上拉電阻來提高輸出電平,從而提高芯片輸入信號(hào)的噪聲容限增強(qiáng)抗干擾能力。
6、提高總線的抗電磁干擾能力。管腳懸空就比較容易接受外界的電磁干擾。
7、長(zhǎng)線傳輸中電阻不匹配容易引起反射波干擾,加上下拉電阻是電阻匹配,有效的抑制反射波干擾。
上拉電阻阻值的選擇原則包括:
1、從節(jié)約功耗及芯片的灌電流能力考慮應(yīng)當(dāng)足夠大;電阻大,電流小。
2、從確保足夠的驅(qū)動(dòng)電流考慮應(yīng)當(dāng)足夠。浑娮栊,電流大。
3、對(duì)于高速電路,過大的上拉電阻可能邊沿變平緩。綜合考慮以上三點(diǎn),通常在1k到10k之間選取。對(duì)下拉電阻也有類似道理。
OC門電路必須加上拉電阻,以提高輸出的搞電平值。
OC門電路要輸出“1”時(shí)才需要加上拉電阻不加根本就沒有高電平
在有時(shí)我們用OC門作驅(qū)動(dòng)(例如控制一個(gè) LED)灌電流工作時(shí)就可以不加上拉電阻
OC門可以實(shí)現(xiàn)“線與”運(yùn)算
OC門就是   集電極 開路 輸出
總之加上拉電阻能夠提高驅(qū)動(dòng)能力。

29:IC設(shè)計(jì)中同步復(fù)位與異步復(fù)位的區(qū)別?
同步復(fù)位在時(shí)鐘沿采復(fù)位信號(hào),完成復(fù)位動(dòng)作。異步復(fù)位不管時(shí)鐘,只要復(fù)位信號(hào)滿足條件,就完成復(fù)位動(dòng)作。異步復(fù)位對(duì)復(fù)位信號(hào)要求比較高,不能有毛刺,如果其與時(shí)鐘關(guān)系不確定,也可能出現(xiàn)亞穩(wěn)態(tài)。

30:MOORE 與 MEELEY狀態(tài)機(jī)的特征?
       Moore 狀態(tài)機(jī)的輸出僅與當(dāng)前狀態(tài)值有關(guān), 且只在時(shí)鐘邊沿到來時(shí)才會(huì)有狀態(tài)變化。
       Mealy 狀態(tài)機(jī)的輸出不僅與當(dāng)前狀態(tài)值有關(guān), 而且與當(dāng)前輸入值有關(guān)。

31:多時(shí)域設(shè)計(jì)中,如何處理信號(hào)跨時(shí)域?
       不同的時(shí)鐘域之間信號(hào)通信時(shí)需要進(jìn)行同步處理,這樣可以防止新時(shí)鐘域中第一級(jí)觸發(fā)器的亞穩(wěn)態(tài)信號(hào)對(duì)下級(jí)邏輯造成影響。信號(hào)跨時(shí)鐘域同步:當(dāng)單個(gè)信號(hào)跨時(shí)鐘 域時(shí),可以采用兩級(jí)觸發(fā)器來同步;數(shù)據(jù)或地址總線跨時(shí)鐘域時(shí)可以采用異步fifo來實(shí)現(xiàn)時(shí)鐘同步;第三種方法就是采用握手信號(hào)。

32:說說靜態(tài)、動(dòng)態(tài)時(shí)序模擬的優(yōu)缺點(diǎn)?
靜態(tài)時(shí)序分析是采用窮盡分析方法來提取出整個(gè)電路存在的所有時(shí)序路徑,計(jì)算信號(hào)在這些路徑上的傳播延時(shí),檢查信號(hào)的 建立和保持時(shí)間是否滿足時(shí)序要求,通過對(duì)最大路徑延時(shí)和最小路徑延時(shí)的分析,找出違背時(shí)序約束的錯(cuò)誤。它不需要輸入向量就能窮盡所有的路徑,且運(yùn)行速度很 快、占用內(nèi)存較少,不僅可以對(duì)芯片設(shè)計(jì)進(jìn)行全面的時(shí)序功能檢查,而且還可利用時(shí)序分析的結(jié)果來優(yōu)化設(shè)計(jì),因此靜態(tài)時(shí)序分析已經(jīng)越來越多地被用到數(shù)字集成電 路設(shè)計(jì)的驗(yàn)證中。
動(dòng)態(tài)時(shí)序模擬就是通常的仿真,因?yàn)椴豢赡墚a(chǎn)生完備的測(cè)試向量,覆蓋門級(jí)網(wǎng)表中的每一條路徑。因此在動(dòng)態(tài)時(shí)序分析中,無法暴露一些路徑上可能存在的時(shí)序問題;

33:一個(gè)四級(jí)的Mux,其中第二級(jí)信號(hào)為關(guān)鍵信號(hào) 如何改善timing.?
       關(guān)鍵:將第二級(jí)信號(hào)放到最后輸出一級(jí)輸出,同時(shí)注意修改片選信號(hào),保證其優(yōu)先級(jí)未被修改。(為什么?)

34:給出一個(gè)門級(jí)的圖,又給了各個(gè)門的傳輸延時(shí),問關(guān)鍵路徑是什么,還問給出輸入, 使得輸出依賴于關(guān)鍵路徑?

35:為什么一個(gè)標(biāo)準(zhǔn)的倒相器中P管的寬長(zhǎng)比要比N管的寬長(zhǎng)比大?
       和載流子有關(guān),P管是空穴導(dǎo)電,N管是電子導(dǎo)電,電子的遷移率大于空穴,同樣的電場(chǎng)下,N管的電流大于P管,因此要增大P管的寬長(zhǎng)比,使之對(duì)稱,這樣才能使得兩者上升時(shí)間下降時(shí)間相等、高低電平的噪聲容限一樣、充電放電的時(shí)間相等。
36:用mos管搭出一個(gè)二輸入與非門?
       <數(shù)字電子技術(shù)基礎(chǔ)>49頁(yè)

37:畫出NOT,NAND,NOR的符號(hào),真值表,還有transistor level的電路?
省略
38:畫出CMOS的圖,畫出tow-to-one mux gate.(威盛VIA 2003.11.06 上海筆試試題) ?

39:用一個(gè)二選一mux和一個(gè)inv實(shí)現(xiàn)異或?
其中:B連接的是地址輸入端A和A非連接的是數(shù)據(jù)選擇端,F對(duì)應(yīng)的的是輸出端,使能端固定接地置零(沒有畫出來).

40:畫出CMOS電路的晶體管級(jí)電路圖,實(shí)現(xiàn)Y=A*B+C(D+E).(仕蘭微電子)?

41:用與非門等設(shè)計(jì)全加法器?(華為)
       《數(shù)字電子技術(shù)基礎(chǔ)》57頁(yè)。 ; .

42:A,B,C,D,E進(jìn)行投票,多數(shù)服從少數(shù),輸出是F(也就是如果A,B,C,D,E中1的個(gè)數(shù)比0 多,那么F輸出為1,否則F為0),用與非門實(shí)現(xiàn),輸入數(shù)目沒有限制?
  F= ABC + ABD + ABE +ACD + ACE+ ADE + BCD + BCE + CDE + BDE

43:畫出一種CMOS的D鎖存器的電路圖和版圖?

44:LATCH和DFF的概念和區(qū)別?

45:latch與register的區(qū)別,為什么現(xiàn)在多用register.行為級(jí)描述中l(wèi)atch如何產(chǎn)生的?
       latch是電平觸發(fā),register是邊沿觸發(fā),register在同一時(shí)鐘邊沿觸發(fā)下動(dòng)作,符合同步電路的設(shè)計(jì)思想,而latch則屬于異步電路設(shè)計(jì),往往會(huì)導(dǎo)致時(shí)序分析困難,不適當(dāng)?shù)膽?yīng)用latch則會(huì)大量浪費(fèi)芯片資源。

46:用D觸發(fā)器做個(gè)二分頻的電路?畫出邏輯電路?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;

entity two_de_fre is
         port(clk: in std_logic;
                            reset:in std_logic;
                            clk_out: out std_logic) ;
end two_de_fre;
architecture Behavioral of two_de_fre is
signal sig_clk: std_logic;
begin
process(clk)
begin
         if(reset = '1') then
                   sig_clk <= '0';
         elsif(clk'event and clk = '1') then
                   sig_clk <= not sig_clk;
         end if;
end process;
clk_out <= sig_clk;      
end Behavioral;
顯示工程設(shè)計(jì)中一般不采用這樣的方式來設(shè)計(jì),二分頻一般通過DCM來實(shí)現(xiàn)。通過DCM得到的分頻信號(hào)沒有相位差。

47:什么是狀態(tài)圖?
       狀態(tài)圖是以幾何圖形的方式來描述時(shí)序邏輯電路的狀態(tài)轉(zhuǎn)移規(guī)律以及輸出與輸入的關(guān)系。

48:用你熟悉的設(shè)計(jì)方式設(shè)計(jì)一個(gè)可預(yù)置初值的7進(jìn)制循環(huán)計(jì)數(shù)器,15進(jìn)制的呢?
library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity seven_counter is
         port(reset:in std_logic;
                            clk: in std_logic;
                            counter_out std_logic_vector(2 downto 0));
end seven_counter;
architecture Behavioral of seven_counter is
signal sig_counter : std_logic_vector(2 downto 0);
begin
process(reset,clk)
begin
         if(reset = '1') then
                   sig_count <= "101" ;  --初值為5
         elsif(clk'event and clk = '1') then
                   sig_count <= sig_count + 1;
         end if;
end process;
counter_out <= sig_counter;                                                                                                               
end Behavioral;

15進(jìn)制計(jì)數(shù)器設(shè)計(jì)只需將counter_out和sig_counter改為4位就行;

49:你所知道的可編程邏輯器件有哪些?
       PAL,PLD,CPLD,FPGA

50:用VERILOG或VHDL寫一段代碼,實(shí)現(xiàn)消除一個(gè)glitch?
將傳輸過來的信號(hào)經(jīng)過兩級(jí)觸發(fā)器就可以消除毛刺。(這是我自己采用的方式:這種方式消除毛刺是需要滿足一定條件的,并不能保證一定可以消除)

51:sram,falsh memory,及dram的區(qū)別?
sram:靜態(tài)隨機(jī)存儲(chǔ)器,存取速度快,但容量小,掉電后數(shù)據(jù)會(huì)丟失,不像DRAM 需要不停的REFRESH,制造成本較高,通常用來作為快取(CACHE) 記憶體使用
flash:閃存,存取速度慢,容量大,掉電后數(shù)據(jù)不會(huì)丟失
dram:動(dòng)態(tài)隨機(jī)存儲(chǔ)器,必須不斷的重新的加強(qiáng)(REFRESHED) 電位差量,否則電位差將降低至無法有足夠的能量表現(xiàn)每一個(gè)記憶單位處于何種狀態(tài)。價(jià)格比sram便宜,但訪問速度較慢,耗電量較大,常用作計(jì)算機(jī)的內(nèi)存使用。

52:有四種復(fù)用方式,頻分多路復(fù)用,寫出另外三種?
       四種復(fù)用方式:頻分多路復(fù)用(FDMA),時(shí)分多路復(fù)用(TDMA),碼分多路復(fù)用(CDMA),波分多路復(fù)用(WDM)

53:ASIC設(shè)計(jì)流程中什么時(shí)候修正Setup time violation 和Hold time violation?如何修正?
見前面的建立時(shí)間和保持時(shí)間

54:給出一個(gè)組合邏輯電路,要求分析邏輯功能。
       所謂組合邏輯電路的分析,就是找出給定邏輯電路輸出和輸入之間的關(guān)系,并指出電路的邏輯功能。
       分析過程一般按下列步驟進(jìn)行:
1:根據(jù)給定的邏輯電路,從輸入端開始,逐級(jí)推導(dǎo)出輸出端的邏輯函數(shù)表達(dá)式。
2:根據(jù)輸出函數(shù)表達(dá)式列出真值表;
3:用文字概括處電路的邏輯功能;

55:如何防止亞穩(wěn)態(tài)?
1 降低系統(tǒng)時(shí)鐘頻率
2 用反應(yīng)更快的FF
3 引入同步機(jī)制,防止亞穩(wěn)態(tài)傳播(可以采用前面說的加兩級(jí)觸發(fā)器)。
4 改善時(shí)鐘質(zhì)量,用邊沿變化快速的時(shí)鐘信號(hào)

56:基爾霍夫定理的內(nèi)容
基爾霍夫定律包括電流定律和電壓定律:
電流定律:在集總電路中,任何時(shí)刻,對(duì)任一節(jié)點(diǎn),所有流出節(jié)點(diǎn)的支路電流的代數(shù)和恒等于零。
電壓定律:在集總電路中,任何時(shí)刻,沿任一回路,所有支路電壓的代數(shù)和恒等于零。

57:描述反饋電路的概念,列舉他們的應(yīng)用。
反饋,就是在電路系統(tǒng)中,把輸出回路中的電量輸入到輸入回路中去。
反饋的類型有:電壓串聯(lián)負(fù)反饋、電流串聯(lián)負(fù)反饋、電壓并聯(lián)負(fù)反饋、電流并聯(lián)負(fù)反饋。
負(fù)反饋的優(yōu)點(diǎn):降低放大器的增益靈敏度,改變輸入電阻和輸出電阻,改善放大器的線性和非線性失真,有效地?cái)U(kuò)展放大器的通頻帶,自動(dòng)調(diào)節(jié)作用。
電壓負(fù)反饋的特點(diǎn):電路的輸出電壓趨向于維持恒定。
電流負(fù)反饋的特點(diǎn):電路的輸出電流趨向于維持恒定。
58:有源濾波器和無源濾波器的區(qū)別
無源濾波器:這種電路主要有無源元件R、L和C組成
有源濾波器:集成運(yùn)放和R、C組成,具有不用電感、體積小、重量輕等優(yōu)點(diǎn)。
集成運(yùn)放的開環(huán)電壓增益和輸入阻抗均很高,輸出電阻小,構(gòu)成有源濾波電路后還具有一定的電壓放大和緩沖作用。但集成運(yùn)放帶寬有限,所以目前的有源濾波電路的工作頻率難以做得很高。

59什么叫做OTP片、掩膜片,兩者的區(qū)別何在?
OTP means one time program,一次性編程
MTP means multi time program,多次性編程
OTP(One Time Program)是MCU的一種存儲(chǔ)器類型
MCU按其存儲(chǔ)器類型可分為MASK(掩模)ROM、OTP(一次性可編程)ROM、FLASHROM等類型。
MASKROM的MCU價(jià)格便宜,但程序在出廠時(shí)已經(jīng)固化,適合程序固定不變的應(yīng)用場(chǎng)合;
FALSHROM的MCU程序可以反復(fù)擦寫,靈活性很強(qiáng),但價(jià)格較高,適合對(duì)價(jià)格不敏感的應(yīng)用場(chǎng)合或做開發(fā)用途;
OTP ROM的MCU價(jià)格介于前兩者之間,同時(shí)又擁有一次性可編程能力,適合既要求一定靈活性,又要求低成本的應(yīng)用場(chǎng)合,尤其是功能不斷翻新、需要迅速量產(chǎn)的電子產(chǎn)品。
60、單片機(jī)上電后沒有運(yùn)轉(zhuǎn),首先要檢查什么?
首先應(yīng)該確認(rèn)電源電壓是否正常。用電壓表測(cè)量接地引腳跟電源引腳之間的電壓,看是否是電源電壓,例如常用的5V。
接下來就是檢查復(fù)位引腳電壓是否正常。分別測(cè)量按下復(fù)位按鈕和放開復(fù)位按鈕的電壓值,看是否正確。
然后再檢查晶振是否起振了,一般用示波器來看晶振引腳的波形,注意應(yīng)該使用示波器探頭的“X10”檔。另一個(gè)辦法是 測(cè)量復(fù)位狀態(tài)下的IO口電平,按住復(fù)位鍵不放,然后測(cè)量IO口(沒接外部上拉的P0口除外)的電壓,看是否是高電平,如果不是高電平,則多半是因?yàn)榫д駴] 有起振。
另外還要注意的地方是,如果使用片內(nèi)ROM的話(大部分情況下如此,現(xiàn)在已經(jīng)很少有用外部擴(kuò)ROM的了),一定要將 EA引腳拉高,否則會(huì)出現(xiàn)程序亂跑的情況。有時(shí)用仿真器可以,而燒入片子不行,往往是因?yàn)镋A引腳沒拉高的緣故(當(dāng)然,晶振沒起振也是原因只一)。經(jīng)過上 面幾點(diǎn)的檢查,一般即可排除故障了。如果系統(tǒng)不穩(wěn)定的話,有時(shí)是因?yàn)殡娫礊V波不好導(dǎo)致的。在單片機(jī)的電源引腳跟地引腳之間接上一個(gè)0.1uF的電容會(huì)有所 改善。如果電源沒有濾波電容的話,則需要再接一個(gè)更大濾波電容,例如220uF的。遇到系統(tǒng)不穩(wěn)定時(shí),就可以并上電容試試(越靠近芯片越好)。

61:給了reg的setup,hold時(shí)間,求中間組合邏輯的delay范圍
       Delay < period - setup – hold

62:時(shí)鐘周期為T,觸發(fā)器D1的寄存器到輸出時(shí)間最大為T1max,最小為T1min。組合邏輯電路最大延遲為T2max,最小為T2min。問,觸發(fā)器D2的建立時(shí)間T3和保持時(shí)間應(yīng)滿足什么條件
T3setup>T+T2max,T3hold>T1min+T2min

63:用傳輸門和倒向器搭一個(gè)邊沿觸發(fā)器。(揚(yáng)智電子筆試)

64:用邏輯們畫出D觸發(fā)器。(威盛VIA 2003.11.06 上海筆試試題)

65:16分頻電路中需要多少觸發(fā)器?

66:阻塞式賦值和非組塞式賦值的區(qū)別?
非阻塞賦值:塊內(nèi)的賦值語(yǔ)句同時(shí)賦值,一般用在時(shí)序電路描述中。
阻塞賦值:完成該賦值語(yǔ)句后才能做下一句的操作,一般用在組合邏輯描述中。

67:74、用FSM實(shí)現(xiàn)101101的序列檢測(cè)模塊。(南山之橋)
a為輸入端,b為輸出端,如果a連續(xù)輸入為1101則b輸出為1,否則為0。
例如a: 0001100110110100100110
b: 0000000000100100000000
請(qǐng)畫出state machine;請(qǐng)用RTL描述其state machine。(未知)

library IEEE;
use IEEE.STD_LOGIC_1164.ALL;
use IEEE.STD_LOGIC_ARITH.ALL;
use IEEE.STD_LOGIC_UNSIGNED.ALL;
entity detect_stream is
         port(clk: in std_logic;
                            reset: in std_logic;
                            data: in std_logic;
                            result : out std_logic);
end detect_stream;
architecture Behavioral of detect_stream is
type state_type is (idle,st0,st1,st2);
signal cs ,ns : state_type;
signal sig_result :std_logic;
begin
process(clk,reset)
begin
         if(reset = '1') then
                   cs <= idle;
                   result <= '0';
         elsif(clk'event and clk = '1')  then
                   cs  <= ns;
                   result <= sig_result;
         end if;
end process;
process(cs,clk)
begin
                   case cs is
                            when idle => if(data = '1') then
                                                                                    ns <= st0;
                                                                                    sig_result <= '0';
                                                                           else
                                                                                    ns <= idle;
                                                                                    sig_result <= '0';
                                                                           end if;
                            when st0 => if(data = '1') then
                                                                           ns <= st1;
                                                                           sig_result <= '0';
                                                                 else
                                                                           ns <= idle;
                                                                           sig_result <= '0';
                                                                 end if;
                            when st1 => if(data = '0')then
                                                                           ns <= st2;
                                                                           sig_result <= '0';
                                                                 else
                                                                           ns <= idle;
                                                                           sig_result <= '0';
                                                                 end if;
                            when st2 => ns <= idle;
                                                                 if(data = '1') then
                                                                           sig_result <= '1';
                                                                 else
                                                                           sig_result <= '0';
                                                                 end if;
                            end case;
end process;
end Behavioral;
狀態(tài)圖:


68:用verilog/vhdl寫一個(gè)fifo控制器(包括空,滿,半滿信號(hào))。(飛利浦-大唐筆試)
reg[N-1:0] memory[0:M-1]; 定義FIFO為N位字長(zhǎng)容量M
八個(gè)always模塊實(shí)現(xiàn),兩個(gè)用于讀寫FIFO,兩個(gè)用于產(chǎn)生頭地址head和尾地址tail,一個(gè)產(chǎn)生counter計(jì)數(shù),剩下三個(gè)根據(jù)counter的值產(chǎn)生空,滿,半滿信號(hào)產(chǎn)生空,滿,半滿信號(hào)。

69:現(xiàn)有一用戶需要一種集成電路產(chǎn)品,要求該產(chǎn)品能夠?qū)崿F(xiàn)如下功能:y=lnx,其中,x為4位二進(jìn)制整數(shù)輸入信號(hào)。y為二進(jìn)制小數(shù)輸出,要求保留兩位小數(shù)。電源電壓為3~5v假設(shè)公司接到該項(xiàng)目后,交由我們來負(fù)責(zé)該產(chǎn)品的設(shè)計(jì),試討論該產(chǎn)品的設(shè)計(jì)全程。(仕蘭微電子)

70:iir,fir濾波器的異同


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表