組合邏輯電路的FPGA設(shè)計(jì)_第1頁
組合邏輯電路的FPGA設(shè)計(jì)_第2頁
組合邏輯電路的FPGA設(shè)計(jì)_第3頁
組合邏輯電路的FPGA設(shè)計(jì)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

組合邏輯電路的FPGA設(shè)計(jì)第5章從組合邏輯電路學(xué)起組合邏輯電路的特點(diǎn)是輸入的變化直接反映了輸出的變化,其輸出的狀態(tài)僅取決于輸入的當(dāng)前狀態(tài),與輸入、輸出的原始狀態(tài)無關(guān)。如果從電路結(jié)構(gòu)上來講,組合邏輯電路是沒有觸發(fā)器組件的電路。組合邏輯電路的輸入輸出關(guān)系比較簡單,在“數(shù)字電路技術(shù)”課程中也首先討論的是組合邏輯電路。由于數(shù)字電路只有0、1兩種狀態(tài),基本的邏輯門電路為與、或、非等,輸入輸出關(guān)系很容易理解。正因?yàn)槿绱耍簧偻瑢W(xué)初次接觸到數(shù)字電路技術(shù)時(shí),都感覺理解起來毫不困難。本章討論組合邏輯電路的FPGA設(shè)計(jì),開始逐漸體驗(yàn)VerilogHDL設(shè)計(jì)的魅力。5.1

從最簡單的與非門電路開始5.1.1

調(diào)用門級結(jié)構(gòu)描述與非門實(shí)例5-1:與非門電路設(shè)計(jì)采用云源軟件提供的硬件原語(Primitives)實(shí)現(xiàn)與非門電路設(shè)計(jì)。打開云源軟件,新建FPGA工程E5_1_nand,新建“VerilogFile”類型的資源文件E5_1_nand.v,在空白文件編輯區(qū)中編寫VerilogHDL代碼,實(shí)現(xiàn)與非門電路功能,與非門電路代碼如下所示。moduleE5_1_nand(//第1行:模塊名為E5_1_nandinputa,

//第2行:定義1bit位寬的輸入信號a

inputb,

//第3行:定義1bit位寬的輸入信號boutputdout//第4行:定義1bit位寬的輸出信號dout);//第5行:nandu1(dout,a,b);

//第6行:調(diào)用與非門結(jié)構(gòu)模塊“nand”endmodule//第7行:完成代碼編輯后,保存文件。雙擊云源軟件主界面工具欄中的“RunSynthesis”工具圖標(biāo)完成代碼綜合。單擊工具欄中的“SchematicViewer”工具圖標(biāo),查看程序綜合后的RTL(RegisterTransferLevel,寄存器傳輸級)原理圖,如圖5-1所示。圖5-1

與非門的RTL原理圖對照RTL原理圖來理解VerilogHDL代碼,對于初學(xué)者來講往往可以起到事半功倍的效果。與非門電路模塊E5_1_nand描述的電路有2個(gè)輸入信號“a、b”且均為1比特位寬,以及1個(gè)1比特位寬的輸出信號“dout”。信號a、b為與非門的輸入,dout為a、b信號的與非門輸出。實(shí)現(xiàn)與非門功能的代碼為第6行:nandu1(dout,a,b)。這行代碼的功能是調(diào)用了FPGA中的與非門電路模塊nand,“u1”是nand模塊在E5_1_nand這個(gè)文件中的名稱,是由用戶設(shè)定的名稱。nand模塊有3個(gè)接口,第1個(gè)接口為輸出信號,第2、3個(gè)接口為輸入信號。程序中第1個(gè)接口信號設(shè)置為dout時(shí),表示名為u1的與非門的輸出與dout信號相連;第2、3個(gè)接口信號設(shè)置為a、b時(shí),表示名為u1的與非門的輸入分別與a、b信號相連。除與非門外,其它幾個(gè)常用的門電路分別為:與門(and)、或非門(nor)、或門(or)、異或門(xor)、異或非門(xnor)、非門(not)。在調(diào)用門電路時(shí),所有電路的第1個(gè)信號均為輸出信號,其后的信號為輸入信號。一些著作中將“信號”稱為“變量”、“數(shù)據(jù)”,由于VerilogHD描述的是硬件電路,而在電路中的端口或內(nèi)部連線實(shí)際上都是某種形式的信號,因此本書統(tǒng)一稱為“信號”。5.1.2

二合一的命名原則在繼續(xù)討論組合邏輯電路的代碼設(shè)計(jì)之前,先討論一下FPGA軟件對VerilogHDL的文件及模塊名命名規(guī)則。對于絕大多數(shù)程序設(shè)計(jì)來講,對于程序名稱、文件名稱、模塊名稱、變量名稱,一般要求名稱由英文字符、數(shù)字、下劃線組成,且不能由數(shù)字打頭,尤其命名時(shí)注意不要使用中文字符、空格字符。在FPGA程序設(shè)計(jì)中,不同開發(fā)環(huán)境對VerilogHDL文件名和文件中的模塊(module)名命名規(guī)則稍有差異。如采用Intel公司的QuartusII軟件設(shè)計(jì)VerilogHDL程序時(shí),要求文件名和文件中的模塊名要保持一致。對于云源軟件來講,VerilogHDL文件名與模塊名可以不一致,雖然如此,仍強(qiáng)烈建議遵循VerilogHDL文件名和文件中的模塊名保持一致的原則,以利于程序的閱讀、維護(hù),和不同開發(fā)環(huán)境中的代碼移植。對于前文設(shè)計(jì)的與非門電路來講,VerilogHDL文件名為E5_1_nand.v,文件中的模塊名為E5_1_nand。5.1.3

用門級電路搭建一個(gè)投票電路實(shí)例5-2:3人投票電路設(shè)計(jì)利用門電路組件,完成3個(gè)評委的投票電路設(shè)計(jì)。門電路只是基本的組件,F(xiàn)PGA設(shè)計(jì)的過程是使用這些組件實(shí)現(xiàn)一些具體的電路功能。比如要實(shí)現(xiàn)一個(gè)簡單的三人投票電路,即有3名評委投票,當(dāng)有2個(gè)或3個(gè)評委投贊成票后,則表示通過,否則表示不通過。評委只能投贊成票及不贊成票2種,結(jié)果只有通過及不通過2種狀態(tài)。將評委投票電路用電路來實(shí)現(xiàn),設(shè)置評委信號名稱分別為key1、key2、key3,當(dāng)信號為“1”(高電平)時(shí)表示贊成,為“0”(低電平)表示不贊成。輸出信號為led,為“1”(高電平)時(shí)表示通過,為“0”(低電平)時(shí)表示不通過。如果采用CGD100電路板來模擬投票過程,可將3個(gè)按鍵信號分別做為3個(gè)評委的投票輸入信號,按下時(shí)表示投贊成票,不按下時(shí)表示投不贊成票。led作為投票結(jié)果的輸出信號,通過時(shí)LED燈點(diǎn)亮,否則不點(diǎn)亮。根據(jù)評委投票規(guī)則,得到輸入輸出信號的邏輯表達(dá)式為:led=(key1

key2)+(key1

key3)+(key2

key3)因此,完成投票電路需要使用3個(gè)雙輸入與門電路和1個(gè)3輸入或門電路。為便于理解,先給出投票電路的RTL原理圖,如圖5-2所示。圖5-2

投票電路的RTL原理圖新建FPGA工程E5_2_vote,并在工程中新建“VerilogFile”類型的資源文件E5_2_vote.v,在文件中編輯如下代碼,實(shí)現(xiàn)投票電路。根據(jù)圖5-2所示的電路結(jié)構(gòu),程序需要調(diào)用3個(gè)與門(and)和一個(gè)3輸入或門(or)。設(shè)置3個(gè)與門的輸出信號分別為d1、d2、d3,程序代碼如下所示。moduleE5_2_vote(inputkey1,key2,key3,

//第2行

outputled);

wired1,d2,d3;//第5行andu1(d1,key1,key2);

//第6行andu2(d2,key1,key3);

//第7行andu3(d3,key2,key3);

//第8行or

u4(led,d1,d2,d3);//第9行endmodule代碼中,第2行定義模塊的輸入端口時(shí),將3個(gè)均為1比特位寬的輸入信號key1、key2、key3寫在了一行,且信號之間用逗號“,”隔開。當(dāng)端口的位寬和類型(輸入或輸出)相同時(shí),可以采用這種簡化寫法。第5行聲明了3個(gè)wire類型的變量d1、d2、d3?!皐ire”表示線網(wǎng)類型,是VerilogHDL中最常用的2種信號類型之一,另一種類型為“reg”類型,后面我們再討論兩種類型的區(qū)別。VerilogHDL中的信號均有類型,一般為“wire”和“reg”中的一種。vote模塊端口中的輸入輸出信號均為wire類型,當(dāng)程序中不對信號采用“wire、reg”關(guān)鍵詞進(jìn)行聲明時(shí),默認(rèn)為“wire”類型。第6~8行依次調(diào)用了3個(gè)與門(and)電路,且在E5_2_vote.v文件中取名為u1、u2、u3。與門電路的第一個(gè)信號為輸出,第2、3個(gè)為輸入信號。因此,對于u1來講,描述的是key1與key2的與門電路;對于u2來講,描述的是key1與key3的與門電路;對于u3來講,描述的是key2與key3的與門電路。第9行描述的是3輸入的或門(or)電路,輸出信號為led,輸入信號為3個(gè)與門電路

溫馨提示

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

評論

0/150

提交評論