實(shí)驗(yàn)一組合邏輯電路的設(shè)計(jì)_第1頁(yè)
實(shí)驗(yàn)一組合邏輯電路的設(shè)計(jì)_第2頁(yè)
實(shí)驗(yàn)一組合邏輯電路的設(shè)計(jì)_第3頁(yè)
實(shí)驗(yàn)一組合邏輯電路的設(shè)計(jì)_第4頁(yè)
實(shí)驗(yàn)一組合邏輯電路的設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩3頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一 組合邏輯電路的設(shè)計(jì)一、實(shí)驗(yàn)?zāi)康模?、 掌握組合邏輯電路的設(shè)計(jì)方法。2、 掌握組合邏輯電路的靜態(tài)測(cè)試方法。3、 加深FPGA設(shè)計(jì)的過(guò)程,并比較原理圖輸入和文本輸入的優(yōu)劣。4、 理解“毛刺”產(chǎn)生的原因及如何消除其影響。5、 理解組合邏輯電路的特點(diǎn)。二、實(shí)驗(yàn)的硬件要求:1、 EDA/SOPC實(shí)驗(yàn)箱。2、 計(jì)算機(jī)。三、實(shí)驗(yàn)原理1、組合邏輯電路的定義數(shù)字邏輯電路可分為兩類(lèi):組合邏輯電路和時(shí)序邏輯電路。組合邏輯電路中不包含記憶單元(觸發(fā)器、鎖存器等),主要由邏輯門(mén)電路構(gòu)成,電路在任何時(shí)刻的輸出只和當(dāng)前時(shí)刻的輸入有關(guān),而與以前的輸入無(wú)關(guān)。時(shí)序電路則是指包含了記憶單元的邏輯電路,其輸出不僅跟當(dāng)前電路的

2、輸入有關(guān),還和輸入信號(hào)作用前電路的狀態(tài)有關(guān)。通常組合邏輯電路可以用圖1.1所示結(jié)構(gòu)來(lái)描述。其中,X0、X1、Xn 為輸入信號(hào), L0、L1、Lm為輸出信號(hào)。輸入和輸出之間的邏輯函數(shù)關(guān)系可用式1.1表示:組合邏輯電路X0XnL0Lm圖 1.1 組合邏輯電路框圖L0=F0(X0,X1,Xn)Lm=F0(X0,X1,Xn)(1.1)2、組合邏輯電路的設(shè)計(jì)方法組合邏輯電路的設(shè)計(jì)任務(wù)是根據(jù)給定的邏輯功能,求出可實(shí)現(xiàn)該邏輯功能的最合理組 合電路。理解組合邏輯電路的設(shè)計(jì)概念應(yīng)該分兩個(gè)層次:(1)設(shè)計(jì)的電路在功能上是完整的,能夠滿(mǎn)足所有設(shè)計(jì)要求;(2)考慮到成本和設(shè)計(jì)復(fù)雜度,設(shè)計(jì)的電路應(yīng)該是最簡(jiǎn)單的,設(shè)計(jì)最優(yōu)

3、化是設(shè)計(jì)人員必須努力達(dá)到的目標(biāo)。在設(shè)計(jì)組合邏輯電路時(shí),首先需要對(duì)實(shí)際問(wèn)題進(jìn)行邏輯抽象,列出真值表,建立起邏輯模型;然后利用代數(shù)法或卡諾圖法簡(jiǎn)化邏輯函數(shù),找到最簡(jiǎn)或最合理的函數(shù)表達(dá)式;根據(jù)簡(jiǎn)化的邏輯函數(shù)畫(huà)出邏輯圖,并驗(yàn)證電路的功能完整性。設(shè)計(jì)過(guò)程中還應(yīng)該考慮到一些實(shí)際的工程問(wèn)題,如被選門(mén)電路的驅(qū)動(dòng)能力、扇出系數(shù)是否足夠,信號(hào)傳遞延時(shí)是否合乎要求等。組合電路的基本設(shè)計(jì)步驟可用圖1.2來(lái)表示。圖 1.2 組合電路設(shè)計(jì)步驟示意圖圖3、組合邏輯電路的特點(diǎn)及設(shè)計(jì)時(shí)的注意事項(xiàng)組合邏輯電路的輸出具有立即性,即輸入發(fā)生變化時(shí),輸出立即變化。(實(shí)際電路中還要考慮器件和導(dǎo)線(xiàn)產(chǎn)生的延時(shí))。組合邏輯電路設(shè)計(jì)時(shí)應(yīng)盡量避免

4、直接或間接的反饋,以免出現(xiàn)不確定的狀態(tài)或形成振蕩。如右圖設(shè)計(jì)的基本觸發(fā)器,當(dāng)輸入S、R從“00”變?yōu)椤?1”時(shí),無(wú)法確定Q和Q的值。組合邏輯電路容易出現(xiàn)“毛刺”,這是由于電路“競(jìng)爭(zhēng)冒險(xiǎn)”產(chǎn)生的。如圖1.3所示,圖中與門(mén)的兩個(gè)輸入分別由信號(hào) A 經(jīng)過(guò)不同路徑傳遞而來(lái)。按照理想情況分析,電路輸出端應(yīng)該始終為 L=A A =0??紤]到信號(hào)在邏輯門(mén)中的傳輸延遲,A 到達(dá)與門(mén)輸入端的時(shí)間始終落后于 A。圖 3.2-1(b)的波形顯示,信號(hào) A的四次變化都產(chǎn)生了競(jìng)爭(zhēng)。但這四次競(jìng)爭(zhēng)引起的結(jié)果是不一樣的。第一次和第三次競(jìng)爭(zhēng)造 成輸出錯(cuò)誤,第二次和第四次競(jìng)爭(zhēng)則沒(méi)有造成輸出錯(cuò)誤。換言之,只有第一次和第三次競(jìng)爭(zhēng)引起

5、了冒險(xiǎn),產(chǎn)生了尖峰干擾。圖 1.3 競(jìng)爭(zhēng)冒險(xiǎn)實(shí)例由于“毛刺”的影響,應(yīng)避免使用組合邏輯電路直接產(chǎn)生時(shí)鐘信號(hào),也應(yīng)避免將組合邏輯電路的輸出作為另一個(gè)電路的異步控制信號(hào)。如右圖,本意是設(shè)計(jì)一個(gè)計(jì)數(shù)范圍為“05”的六進(jìn)制計(jì)數(shù)器,即輸出QD、QC、QB、QA從5“0101”變到6“0110”時(shí),與門(mén)輸出“1”,控制“CLR”異步復(fù)位到“0000”,但是由于輸出從3“0011”變到4“0100”時(shí),QC先于QB從“0”變到“1”,導(dǎo)致短暫的“0111”出現(xiàn),使與門(mén)輸出“1”,引起復(fù)位,從而使實(shí)際的電路計(jì)數(shù)范圍為“03”,與設(shè)計(jì)的初衷相悖。用VHDL描述組合邏輯電路時(shí),所有的輸入信號(hào)都應(yīng)放在敏感信號(hào)表中。

6、用IF語(yǔ)句和CASE語(yǔ)句描述電路分支時(shí),一定要列舉出所有輸入狀態(tài)(一般在最后加上“else”或“when others”分支),否則在綜合時(shí)將引入LATCH,使電路輸出出現(xiàn)延時(shí)。4、VHDL語(yǔ)言簡(jiǎn)介VHDL設(shè)計(jì)文件的基本結(jié)構(gòu)-*-NOT Gate Simulation-Filename:NOTGATE-*Library IEEE;Use IEEE. std_logic_1164. all;Entity notgate is port( A:in STD_LOGIC; F:out STD_LOGIC; );End notgate ;Architecture notgate _arch of no

7、tgate isBegin F= not AEnd notgate _arch 注釋欄庫(kù)和程序包實(shí)體定義定義輸入輸出引腳(即電路的外觀(guān))結(jié)構(gòu)體描述電路的行為(即電路的功能實(shí)現(xiàn))一些約定u 實(shí)體、信號(hào)、文件等的命名u 注釋的使用u 書(shū)寫(xiě)代碼時(shí)使用層次縮進(jìn)格式u 一個(gè)文件中只定義一個(gè)實(shí)體,實(shí)體名與文件名一致u 盡量不使用“變量”,而使用“信號(hào)”u 不使用硬件無(wú)法實(shí)現(xiàn)的一些語(yǔ)句,如斷言語(yǔ)句、等待語(yǔ)句等使用原理圖工具欄的“block tool”生成設(shè)計(jì)文件的框架 使用“Edit”菜單中的“Insert Template”插入設(shè)計(jì)模版四、實(shí)驗(yàn)內(nèi)容:1、 用原理圖方式設(shè)計(jì)1位二進(jìn)制半加器半加器。圖1.4

8、一位二進(jìn)制半加器原理圖建立波形文件,對(duì)半加器電路分別進(jìn)行時(shí)序仿真和功能仿真,其波形如下:半加器時(shí)序仿真波形,注意觀(guān)察輸出延時(shí),以及毛刺的產(chǎn)生原因半加器功能仿真波形用開(kāi)關(guān)K1、K2輸入A、B,用兩個(gè)LED顯示S和C。2、 設(shè)計(jì)BCD碼譯碼器設(shè)計(jì)。圖1.4 七段數(shù)碼管譯碼顯示原理圖源碼如下:輸入信號(hào):D3,D2,D1,D0所對(duì)應(yīng)的管腳同四位撥碼開(kāi)關(guān)相連。輸出信號(hào):代表7段字碼驅(qū)動(dòng)信號(hào)ledag0ledag7的管腳分別同掃描數(shù)碼管的段輸入a,b,c,d,e,f,g,H相連。3、 設(shè)計(jì)一個(gè)BCD碼加法器。BCD碼是二進(jìn)制編碼的十進(jìn)制碼,也就是用4位二進(jìn)制數(shù)來(lái)表示十進(jìn)制中的09這十個(gè)數(shù)。由于4位二進(jìn)制數(shù)

9、有00001111共16種組合,而十進(jìn)制數(shù)只需對(duì)應(yīng)4位二進(jìn)制數(shù)的10種組合,故從4位二進(jìn)制數(shù)的16種組合中取出10種組合來(lái)分別表示十進(jìn)制中的09,則有許多不同的取舍方式,于是便形成了不同類(lèi)型的BCD碼。本實(shí)驗(yàn)我們只針對(duì)最簡(jiǎn)單的情況,也是最常見(jiàn)的BCD碼,就是用4位二進(jìn)制的00001001來(lái)表示十進(jìn)制的09,而丟棄4位二進(jìn)制的10101111共6種組合,這樣一來(lái),就相當(dāng)于用4位二進(jìn)制的09對(duì)應(yīng)十進(jìn)制的09。這樣的BCD碼進(jìn)行相加時(shí)會(huì)出現(xiàn)兩種可能,一種可能是當(dāng)兩個(gè)BCD碼相加的值小于10時(shí),結(jié)果仍舊是正確的BCD碼;另外一種可能是當(dāng)兩個(gè)碼相加的結(jié)果大于或者等于10時(shí),就會(huì)得到錯(cuò)誤的結(jié)果,這是因?yàn)?

10、位二進(jìn)制碼可以表示015,而B(niǎo)CD碼只取了其中的09的原因。對(duì)于第二種錯(cuò)誤的情況,有一個(gè)簡(jiǎn)單的處理方法就是作加6處理,就會(huì)得到正確的結(jié)果。下面舉例說(shuō)明第二種情況的處理過(guò)程。假如A=(7)10=(0111)2=(0111)BCD,B=(8)10=(1000)2=(1000)BCD,那么A+B=(15)10=(1111)2(0001 0101)BCD。但是對(duì)于(1111)2+(0110)2=(0001 0101)2=(0010 0001)BCD。因此在程序設(shè)計(jì)時(shí)要注意兩個(gè)輸入的BCD碼相加結(jié)果是否會(huì)出現(xiàn)大于或等于10的情況,如果是則必須作加6的修正處理。BCD碼加法器的VHDL源碼如下:仿真時(shí)注意

11、引腳的數(shù)據(jù)類(lèi)型都設(shè)置為十六進(jìn)制格式,如圖1.5所示圖1.5 BCD碼加法器的功能仿真波形4、 設(shè)計(jì)一個(gè)4位硬件乘法器。實(shí)現(xiàn)并行乘法器的方法有很多種,但是歸結(jié)起來(lái)基本上分為兩類(lèi),一類(lèi)是靠組合邏輯電路實(shí)現(xiàn),另一類(lèi)通過(guò)流水線(xiàn)結(jié)構(gòu)實(shí)現(xiàn)。組合邏輯電路結(jié)構(gòu)的并行乘法器的最大優(yōu)點(diǎn)就是速度快,但是當(dāng)位數(shù)很大時(shí)占用的邏輯資源較多。下面就組合邏輯電路實(shí)現(xiàn)無(wú)符號(hào)數(shù)乘法的方法作詳細(xì)介紹。假如有被乘數(shù)A和乘數(shù)B,首先用A與B的最低位相乘得到S1,然后再把A左移1位與B的第2位相乘得到S2,再將A左移3位與B的第三位相乘得到S3,依此類(lèi)推,直到把B的所有位都乘完為止,然后再把乘得的結(jié)果S1、S2、S3相加即得到相乘的結(jié)果

12、。需要注意的是,具體實(shí)現(xiàn)乘法器是,并不是真正的去乘,而是利用簡(jiǎn)單的判斷去實(shí)現(xiàn),舉個(gè)簡(jiǎn)單的例子。假如A左移n位后與B的第n位相乘,如果B的這位為1,那么相乘的中間結(jié)果就是A左移n位后的結(jié)果,否則如果B的這位為0,那么就直接讓相乘的中間結(jié)果為0即可。待B的所有位相乘結(jié)束后,把所有的中間結(jié)果相加即得到A與B相乘的結(jié)果。乘法器的功能仿真波形如圖1.6所示(注意:三個(gè)端口數(shù)據(jù)類(lèi)型設(shè)置為Unsigned Decimal),圖中可以看出,乘法結(jié)構(gòu)的輸出沒(méi)有延時(shí)(實(shí)際情況應(yīng)有一定的器件延時(shí),可以通過(guò)時(shí)序仿真看到)。圖1.6 4位硬件乘法器功能仿真波形五、實(shí)驗(yàn)步驟:1首先打開(kāi)Quartus II軟件,新建工程。2按照自己的想法,編寫(xiě)原理圖或VHDL文件程序。3對(duì)自己的設(shè)計(jì)進(jìn)行編譯并仿真。4仿真無(wú)誤后,根據(jù)附錄一的引腳對(duì)照表,對(duì)實(shí)驗(yàn)中用到的撥擋開(kāi)關(guān)及LED進(jìn)行管腳綁定,然后再重新編譯一次。5用下載電纜通過(guò)JTAG接口將對(duì)應(yīng)的sof文件下載到FPGA中。

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論