




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、一、 初識Verilog HDLVerilog HDL三、Verilog HDL Verilog HDL 行為(xngwi)(xngwi)語句主要主要(zhyo)內(nèi)容:內(nèi)容:二、 Verilog HDL Verilog HDL 基礎(chǔ)(jch)(jch)四、Verilog HDVerilog HDL L設(shè)計風(fēng)格五、常見組合與時序邏輯電路Verilog HDLVerilog HDL描述第1頁/共33頁第一頁,共34頁。常用組合電路(dinl)模塊的設(shè)計常用(chn yn)時序電路模塊的設(shè)計常見組合與時序(sh x)邏輯電路Verilog HDL描述用 Verilog HDL描述電路模塊小結(jié)第2頁/
2、共33頁第二頁,共34頁。一、用 Verilog HDL描述電路(dinl)模塊小結(jié) 模塊中最重要(zhngyo)的部分是邏輯功能定義部分。 有3種方法可在模塊中產(chǎn)生邏輯功能: (1)用實例元件:內(nèi)置門元件、開關(guān)元件、自行設(shè)計生成的元件。(結(jié)構(gòu)描述) 如:and #2 ul(q,a,b) 端口信號名稱可以采用位置關(guān)聯(lián)方法和名稱關(guān)聯(lián)方法進(jìn)行連接。 (2)用“assign”聲明語句連續(xù)賦值。(數(shù)據(jù)流描述) 采用“assign”語句是描述組合邏輯電路最常用的方法之一。 (3)用“always”或“initial”過程塊。 (行為描述)第3頁/共33頁第三頁,共34頁。使用(shyng)initial
3、和always的區(qū)別 “always”塊既可用于描述組合邏輯,也可描述時序邏輯。 always語句(yj)是不斷地重復(fù)活動的,直到仿真過程結(jié)束。但always語句(yj)后的過程塊是否運(yùn)行,則要看它的觸發(fā)條件是否滿足,如滿足則運(yùn)行過程塊一次,再次滿足則再運(yùn)行一次,直至仿真過程結(jié)束。 “initial”塊一般用于變量初始化及仿真波形產(chǎn)生。 Initial語句(yj)只執(zhí)行一次。 一個模塊中這三種表達(dá)方式是并發(fā)執(zhí)行的,有多個實例元件、“assign”聲明語句(yj)、“always”塊也是并發(fā)執(zhí)行的。但“always”塊內(nèi)是順序執(zhí)行的。 在一個模塊中,使用initial和always語句(yj)的
4、次數(shù)是不受限制的,它們都是同時開始運(yùn)行的。第4頁/共33頁第四頁,共34頁。行為(xngwi)描述 “always”或“initial”過程塊構(gòu)成了行為級建模的基礎(chǔ),即所有行為級語句只能出現(xiàn)在這兩種塊之中。 只有實例元件和“assign”連續(xù)賦值語句可以獨(dú)立在塊外。 行為級描述時如果分支條件比較(bjio)少,且有先后順序,選擇if-else語句; 如果條件分支比較(bjio)多,使用case(casez、casex)語句更加方便。 循環(huán)語句有4種(for、 repeat、 while 、forever),建議首選for語句。第5頁/共33頁第五頁,共34頁。二、常用(chn yn)組合電路模
5、塊的設(shè)計 組合邏輯電路在數(shù)字系統(tǒng)中起著基本組件的作用(zuyng)。 組合邏輯電路包括:門電路、雙向三態(tài)門、加法器、多路選擇器、比較器、乘法器、總線等。第6頁/共33頁第六頁,共34頁。(一)簡單(jindn)組合電路的描述1 1、基本(jbn)(jbn)門電路的描述第7頁/共33頁第七頁,共34頁。(2)用assign連續(xù)賦值語句描述module gate1(F,A,B,C,D);input A,B,C,D;output F;assign F=(A&B)|(B&C&D);/連續(xù)賦值語句endmodule(3)用過程語句always塊描述module gate2(F,A
6、,B,C,D);input A,B,C,D; output F;reg F;always (A or B or C or D) /always過程語句 F=(A&B)|(B&C&D);endmodule(1 1)調(diào)用(dioyng)(dioyng)內(nèi)置門元件描述module gate3(F,A,B,C,D);input A,B,C,D; output F;nand (F1,A,B); and(F2,B,C,D); or(F,F1,F2); /調(diào)用(dioyng)內(nèi)置門endmoduleassign F1=(A&B);assign F2=(B&C&
7、D);assign F=F1|F2;或第8頁/共33頁第八頁,共34頁。2 2、三態(tài)門的描述(mio sh)(mio sh)reg out;beginalways (en or in)out=en ? in: bz;end(2)用assign連續(xù)(linx)賦值語句描述 (3)用過程(guchng)語句always塊描述(1)調(diào)用內(nèi)置門元件描述bufif1 b1(out,in,en);assign out=en ? in: bz;第9頁/共33頁第九頁,共34頁。在Verilog HDL中,描述簡單的組合邏輯通常使用(shyng)assign結(jié)構(gòu)。 注意:條件運(yùn)算符是一種在組合邏輯實現(xiàn)分支判斷
8、時常使用(shyng)的格式。第10頁/共33頁第十頁,共34頁。(二)復(fù)雜組合電路(dinl)的描述 一般用always塊實現(xiàn)較復(fù)雜的組合(zh)邏輯電路1 1、3 3線-8-8線譯碼器module decoder_38(out,in); output7:0 out; input 2:0 in; reg7:0out; always (in) begin case(in) 3b000:out=8b11111110; 3b001:out=8b11111101; 3b010:out=8b11111011; 3b011:out=8b11110111; 3b100:out=8b11101111; 3b
9、101:out=8b11011111; 3b110:out=8b10111111; 3b111:out=8b01111111; default: out =8 bx; endcase endendmodule第11頁/共33頁第十一頁,共34頁。QUARTUS II編譯(biny)后的生成的模塊符號:2第12頁/共33頁第十二頁,共34頁。module decode4_7(a,b,c,d,e,f,g,D3,D2,D1,D0); output a,b,c,d,e,f,g; input D3,D2,D1,D0; reg a,b,c,d,e,f,g; always (D3 or D2 or D1 o
10、r D0) begin case(D3,D2,D1,D0) 4d0:a,b,c,d,e,f,g=7b1111110; 4d1:a,b,c,d,e,f,g=7b0110000; 4d2:a,b,c,d,e,f,g=7b1101101; 4d3:a,b,c,d,e,f,g=7b1111001; 4d4:a,b,c,d,e,f,g=7b0110011; 4d5:a,b,c,d,e,f,g=7b1011011; 4d6:a,b,c,d,e,f,g=7b1011111; 4d7:a,b,c,d,e,f,g=7b1110000; 4d8:a,b,c,d,e,f,g=7b1111111; 4d9:a,b,c
11、,d,e,f,g=7b1111011; default:a,b,c,d,e,f,g=7bz; endcase endendmodule2 2、BCDBCD碼七段數(shù)碼(shm)(shm)顯示譯碼器第13頁/共33頁第十三頁,共34頁。QUARTUS II編譯后的生成的模塊(m kui)符號:第14頁/共33頁第十四頁,共34頁。3 3、8 8線- -3 3線優(yōu)先( (y y u ux xi i n)n)編碼器module encoder8_3(outcode,a,b,c,d,e,f,g,h); output2:0 outcode; input a,b,c,d,e,f,g,h; reg2:0 ou
12、tcode; always (a or b or c or d or e or f or g or h) begin if(h) outcode=3b111; else if(g) outcode=3b110; else if(f) outcode=3b101; else if(e) outcode=3b100; else if(d) outcode=3b011; else if(c) outcode=3b010; else if(b) outcode=3b001; else if(a) outcode=3b000; else outcode=3bzzz; end endmodule要求:輸入
13、高電平有效,輸出(shch)為原碼,哪一個(y )輸入的優(yōu)先權(quán)最高?哪一個(y )最低?第15頁/共33頁第十五頁,共34頁。QUARTUS II編譯后的生成的模塊(m kui)符號:第16頁/共33頁第十六頁,共34頁。4 4、數(shù)據(jù)(shj)(shj)選擇器(2 2選1 1、4 4選1)1)(略)5 5、奇偶校驗位產(chǎn)生器module parity(even,odd,bus); input 7:0 bus; output even,odd; assign odd=bus ; /縮位運(yùn)算(yn sun)產(chǎn)生奇校驗位 assign even=odd; /產(chǎn)生偶校驗位endmodule第17頁/共3
14、3頁第十七頁,共34頁。6、程序(chngx)如左所示,說出for 語句的執(zhí)行過程,說明該電路的功能module voter7(pass,vote); output pass; input6:0 vote; reg2:0 sum; integer i; reg pass; always (vote) begin sum=0; for(i=0;i=6;i=i+1) if(votei) sum=sum+1; if(sum2) pass=1; else pass=0; endendmodule(vote6 or vote5 or vote4 or vote3 or vote2 or vote1 or
15、 vote0 )3b000循環(huán)體 /i=7時這條語句得到執(zhí)行,判斷(pndun)sum是否大于等于4電路功能(gngnng):7人多數(shù)表決器第18頁/共33頁第十八頁,共34頁。練習(xí):采用Verilog HDL case 語句對半加器進(jìn)行行為(xngwi)描述module halfadder(A,B,S,C); input A,B; output S,C; reg S,C; always (A or B) begin case (A,B) 2B00: S,C=2B00; 2B01: S,C=2B10; 2B10: S,C=2B10; 2B11: S,C=2B01; endcase endend
16、module第19頁/共33頁第十九頁,共34頁。(一) 簡單(jindn)時序邏輯電路的描述通常使用(shyng)always (posedge clk)或 (negedge clk)塊來描述時序邏輯?;綝 D觸發(fā)器module DFF(Q,D,CLK); output Q; input D,CLK; reg Q; always (posedge CLK) Q=D;endmodule三、常用(chn yn)時序電路模塊設(shè)計上升沿有效的邊沿結(jié)構(gòu)的上升沿有效的邊沿結(jié)構(gòu)的D D觸發(fā)器觸發(fā)器第20頁/共33頁第二十頁,共34頁。(二) 復(fù)雜時序邏輯電路(lu j din l)的描述通常在alway
17、s 過程語句里使用條件語句來實現(xiàn)較復(fù)雜(fz)的時序邏輯電路 。第21頁/共33頁第二十一頁,共34頁。1 1、帶清零、帶清零(qn(qn ln ln) )端、置端、置1 1端的端的D D觸發(fā)器觸發(fā)器module DFF1(q,qn,d,clk,set,reset); output q,qn; input d,clk,set,reset; reg q,qn; always (posedge clk ) begin if(!reset) begin q=0; qn=1; end else if(!set) begin q=1; qn=0; end else begin q=d; qn=d; en
18、d endendmoduleor negedge set or negedge reset同步清零(qn ln),低電平有效.優(yōu)先級高同步(tngb)置數(shù),低電平有效.優(yōu)先級低異步置數(shù)或異步清零?第22頁/共33頁第二十二頁,共34頁。2 2、帶清零、帶清零(qn(qn ln ln) )端、置端、置1 1端的端的JKJK觸發(fā)器觸發(fā)器module JK_FF(CLK,J,K,Q,RS,SET); input CLK,J,K,SET,RS; output Q; reg Q; always (posedge CLK or negedge RS or negedge SET ) begin if(!R
19、S) Q=1B0; else if(!SET) q=1B1; else case(J,K) 2b00: Q=Q; 2b01:Q=1b0; 2b10:Q=1b1; 2b11:Q=Q; endcase endendmodule 異步清零(qn ln)、異步置數(shù)異步清零(qn ln),低電平有效第23頁/共33頁第二十三頁,共34頁。3 3、數(shù)據(jù)、數(shù)據(jù)(shj)(shj)寄存器寄存器module reg8(out_data,in_data,clk,clr); output7:0 out_data; input7:0 in_data; input clk,clr; reg7:0 out_data; a
20、lways (posedge clk or posedge clr) begin if(clr) out_data=0; else out_data=in_data; endendmodule 異步清零(qn ln),高電平有效第24頁/共33頁第二十四頁,共34頁。4 4、數(shù)據(jù)、數(shù)據(jù)(shj)(shj)鎖存器鎖存器module latch_8(qout, data,clk); output7:0 qout; input7:0 data; input clk; reg7:0 qout; always ( clk or data) if(clk) qout=data;endmodule 第25頁
21、/共33頁第二十五頁,共34頁。寄存器與鎖存器 寄存器與鎖存器的異同: 相同點(diǎn): 功能相同,都具有保存(bocn)數(shù)據(jù)的功能。 區(qū)別:鎖存器一般是由電平信號來控制的,屬于電平敏感型,而寄存器一般由同步時鐘信號控制,屬于邊沿敏感型, 若數(shù)據(jù)有效滯后于控制信號有效,則只能使用鎖存器,若數(shù)據(jù)提前于控制信號,并要求同步操作,則可以選擇寄存器來存放數(shù)據(jù) 第26頁/共33頁第二十六頁,共34頁。module shifter(din,clk,clr,dout); input din,clk,clr; output7:0 dout; reg7:0 dout; always (posedge clk) begi
22、n if(clr) dout=8b0; else begin dout=dout1; dout0=din; end endendmodule5 5、左移寄存器、左移寄存器第27頁/共33頁第二十七頁,共34頁。6、循環(huán)(xnhun)左移寄存器 module shifter(clk,clr,dout,load,d); input clk,clr,load; input7:0d; output7:0 dout; reg7:0 dout; reg din; always (posedge clk) begin if(clr) dout=8b0; /同步低電平復(fù)位(f wi) else if(load) dout=d; /同步高電平置數(shù) else begin din=dout7; /循環(huán)左移 dout=dout1; dout0=din; end end endmodule第28頁/共33頁第二十八頁,共34頁。仿真(fn zhn)波形第29頁/共33頁第二十九頁,共34頁。7 7、計數(shù)器、計數(shù)器module updown_count(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年湖南化工職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫匯編
- 2025至2030年中國梳棉機(jī)蓋板數(shù)據(jù)監(jiān)測研究報告
- 2025年廣東省河源市單招職業(yè)傾向性測試題庫完美版
- 2025年河南藝術(shù)職業(yè)學(xué)院單招職業(yè)傾向性測試題庫新版
- Module 6 Unit 2教學(xué)設(shè)計-2024-2025學(xué)年外研版英語八年級下冊
- 2025年廣西理工職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及答案一套
- 2025至2030年中國捆條產(chǎn)品數(shù)據(jù)監(jiān)測研究報告
- 2025年湖南電子科技職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案一套
- 第二單元第十三課《控制輸出模塊工作》-教學(xué)設(shè)計 2023-2024學(xué)年粵教版(2019)初中信息技術(shù)八年級下冊
- 2025至2030年中國手動車位鎖數(shù)據(jù)監(jiān)測研究報告
- 無痛病房管理課件
- 讓孩子變成學(xué)習(xí)的天使——由《第56號教室的奇跡》讀書分享
- 球泡檢驗標(biāo)準(zhǔn)
- 公安筆錄模板之詢問嫌疑人(書面?zhèn)鲉局伟舶讣?
- 振動分析基礎(chǔ)講義1
- 記賬憑證匯總表excel模板
- 鄧麗君經(jīng)典歌曲30首簡譜(共33頁)
- 故障診斷技術(shù)的國內(nèi)外發(fā)展現(xiàn)狀(共3頁)
- 園林綠化施工通用表格模板
- 人民檢察院信訪案件終結(jié)辦法
評論
0/150
提交評論