版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、合肥工業(yè)大學(xué)宣城校區(qū) 微電子科學(xué)與工程 Verilog數(shù)字系統(tǒng)設(shè)計(jì) Verilog數(shù)字系統(tǒng)設(shè)計(jì) 代碼90例Contents1、二選一多路選擇器.12、多路器模塊的編寫測試平臺.13、三位加法器.24、比較器.25、實(shí)例調(diào)用三態(tài)門選擇器.26、同步置位/清零的計(jì)數(shù)器.37、異步清零.38、case語句實(shí)現(xiàn)3-8譯碼器的部分代碼.39、for語句來實(shí)現(xiàn)8位數(shù)據(jù)中低4位左移到高4位.410、for語句計(jì)算出13路脈沖信號為高電平的個數(shù).411、生成語句對兩個N位的總線用門級原語進(jìn)行按位異或.512、用條件生成語句實(shí)現(xiàn)參數(shù)化乘法器.513、使用case生成語句實(shí)現(xiàn)N位加法器.614、四選一多路器.71
2、5、四位計(jì)數(shù)器.716、使用任務(wù)控制交通燈.817、CPU總線控制的任務(wù).918、自動任務(wù)示例.919、用函數(shù)實(shí)現(xiàn)乘累加器.1020、計(jì)算32位地址值的偶校驗(yàn)位.1121、左/右移位寄存器.1222、用函數(shù)的遞歸調(diào)用定義階乘計(jì)算.1223、常量函數(shù).1324、帶符號函數(shù).1325、顯示任務(wù).1426、文件寫入操作的例子.1427、讀取文件的示例1.1528、讀取文件的示例2.1529、使用$random生成隨機(jī)數(shù).1630、宏定義語句define.1631、帶有宏定義的8位加法器.1732、用include語句設(shè)計(jì)的16位加法器.1733、結(jié)構(gòu)化描述方式對四選一多路選擇器.1834、結(jié)構(gòu)化描述
3、方式實(shí)現(xiàn)一位全加器.1835、結(jié)構(gòu)化描述方式實(shí)例化四個一位全加器實(shí)現(xiàn)四位串行進(jìn)位全加器.1836、用戶定義原語.1937、四選一的多路選擇器的自定義原語設(shè)計(jì).2038、用戶定義原語的方式設(shè)計(jì)電平敏感鎖存器.2039、用戶定義原語的方式設(shè)計(jì)D觸發(fā)器(時(shí)鐘下降沿觸發(fā)).2040、采用實(shí)例化前面用定義原語設(shè)計(jì)的四選一多路選擇器(MUX)的方法實(shí)現(xiàn)十六 選一的多路選擇器.2141、數(shù)據(jù)流建模描述方式:一位全加器.2242、行為建模方式設(shè)計(jì)一位加法器.2243、混合設(shè)計(jì)方式設(shè)計(jì)一位全加器.2244、數(shù)據(jù)流描述方式對四選一多路選擇器建模.2345、行為建模方式設(shè)計(jì)四選一多路選擇器.2346、用RTL級建模
4、方式設(shè)計(jì)此電路.2447、四位全加器.2448、組合邏輯電路.2449、單向三態(tài)端口.2550、單向總線緩沖器.2551、雙向三態(tài)端口.2552、雙向總線緩沖器.2653、2選1多路選擇器.2654、多路比較器.2755、帶使能端的38譯碼器.2856、4位二進(jìn)制到格雷碼的轉(zhuǎn)換器.2957、時(shí)序邏輯電路.3058、JK觸發(fā)器.3159、D觸發(fā)器.3260、帶異步復(fù)位端D觸發(fā)器.3261、帶異步置位端D觸發(fā)器.3262、帶有異步置位和復(fù)位的D觸發(fā)器.3363、帶有同步復(fù)位的D觸發(fā)器.3364、帶同步置位端的上升沿觸發(fā)器.3365、帶異步復(fù)位端和輸出使能端的上升沿觸發(fā)器.3466、鎖存器:電平觸發(fā)
5、的存儲器單元,基本SR鎖存器.3467、透明鎖存器.3568、基本N位同步計(jì)數(shù)器.3569、帶有異步復(fù)位、同步計(jì)數(shù)使能和可預(yù)置的十進(jìn)制計(jì)數(shù)器.3570、格雷碼計(jì)數(shù)器.3671、四位移位寄存器.3772、8位串入串出移位寄存器.3773、利用移位寄存器產(chǎn)生順序脈沖.3874、可輸出輸入信號的2分頻信號、4分頻信號和8分頻信號的分頻器.3875、分頻系數(shù)為12的分頻器.3976、分頻系數(shù)為6,占空比為1:5的偶數(shù)分頻器.3977、3分頻占空比為1:1的奇數(shù)分頻器.4078、分頻系數(shù)為5、占空比為1:1的奇數(shù)分頻器.4179、分頻系數(shù)為7、占空比為1:6的奇數(shù)分頻器.4280、帶使能端和復(fù)位端的時(shí)鐘
6、同步8位寄存器組邏輯.4281、自觸發(fā)always塊.4282、1001序列信號檢測器.4383、米利型有限狀態(tài)機(jī).4784、自動售飲料機(jī)的設(shè)計(jì).4985、并行數(shù)據(jù)流轉(zhuǎn)換為一種特殊串行數(shù)據(jù)流模塊的設(shè)計(jì).5386、設(shè)計(jì)對數(shù)字采集芯片AD0809的控制接口電路的Verilog代碼.5787、面積優(yōu)化設(shè)計(jì)乘法選擇器.6188、串行化描述一個乘法累加器,其位寬位16位 對8個16位數(shù)據(jù)進(jìn)行乘法和加法運(yùn)算.6389、流水線設(shè)計(jì)流水線計(jì)數(shù)使用實(shí)例:8位加法器.6490、流水線設(shè)計(jì)設(shè)計(jì)一個為8位全加器 (一個是直接實(shí)現(xiàn),一個采用4級流水線實(shí)現(xiàn)).65合肥工業(yè)大學(xué)宣城校區(qū) 微電子科學(xué)與工程 Verilog數(shù)字
7、系統(tǒng)設(shè)計(jì)1、二選一多路選擇器行為描述:module muxtwo(out,a,b,sl);input a,b,sl;output out;reg out;always(a or b or sl) if(!sl) out = a; else out = b;endmodule邏輯描述:module muxtwo(out,a,b,sl);input a,b,sl;output out;不用寫寄存器 wire nsl,sela,selb;assign nsl = sl;assign sela = a&nsl;assign selb = b&sl;assign out = sela|s
8、elb;endmodule門級描述:module muxtwo(out,a,b,sl); input a,b,sl;output out;不用寫寄存器 not u1(nsl,sl); and u2(sela,a,nsl); and u3(selb,b,sl); or u4(out,sela,selb); endmodule2、多路器模塊的編寫測試平臺include “muxtwo.v” module t; reg ain,bin,select; reg clock; wire outw; initial begin ain=0; bin=0; select=0; clock=0; end al
9、ways #50 clock =clock; always(posedge clock) begin#1 ain = $random%2;#3 bin = $random%2; end muxtwo m(.out(outw),.a(ain),.b(bin),.sl(select);endmodule3、 三位加法器module adder ( count,sum,a,b,cin ); input 2:0 a,b; input cin; output count; output 2:0 sum; assign count,sum=a+b+cin;endmodule4、比較器:module com
10、pare ( equal,a,b ); output equal; /聲明輸出信號equal input 1:0 a,b; /聲明輸入信號a,b assign equal=(a=b)?1:0;/如果兩個輸入信號相等,輸出為1。否則為0endmodule5、實(shí)例調(diào)用三態(tài)門選擇器module mytri(out,in,enable); output out; input in, enable; assign out = enable? in : 'bz;endmodulemodule trist1(sout,sin,ena); output sout; input sin, ena; my
11、tri tri_inst(.out(sout), .in(sin),.enable(ena);endmodulemodule trist2(sout,sin,ena); output out; input in, enable; mytri tri_inst(sout,sin,ena);endmodule6、同步置位/清零的計(jì)數(shù)器module sync(out,d,load,clr,clk) input d,load,clk,clr; input7:0 d; output7:0out; reg7:0 out; always ( posedge clk ) /clk上升沿觸發(fā) begin if
12、( !clr ) out <= 8h00; /同步清0,低電平有效 else if ( load ) out <= d; /同步置數(shù),高電平有效 else out <= out+1 /計(jì)數(shù) endendmodule7、異步清零module async(d,clk,clr,q); input d,clk,clr; output q: reg q; always ( posedge clk or posedge clr) /異步清0 begin if ( clr ) q <= 1b0; else q <= d; endendmodule8、case語句實(shí)現(xiàn)3-8譯碼器
13、的部分代碼wire2:0 sel;reg7:0 res;always (sel or res) begin case (sel) 3b000 : res=8b00000001; 3b001 : res=8b00000010; 3b010 : res=8b00000100; 3b011 : res=8b00001000; 3b100 : res=8b00010000; 3b101 : res=8b00100000; 3b110 : res=8b01000000; default : res=8b10000000; endcase end9、for語句來實(shí)現(xiàn)8位數(shù)據(jù)中低4位左移到高4位intege
14、r i;reg 7:0 datain; always (posedge clk) begin for(i=4;i<=7;i=i+1) begin dataini <= datain i-4; end end10、for語句計(jì)算出13路脈沖信號為高電平的個數(shù) input clk,rst; input 12:0 datain; /輸入13路數(shù)據(jù) output 15:0 num; /13路數(shù)據(jù)電平為高的路數(shù) reg 3:0 i; reg 15:0 num; always (posedge clk) begin
15、160; if ( !rst ) begin num <= 0; end else begin for ( i = 0; i < 13; i = i + 1) /用for循環(huán)進(jìn)行
16、計(jì)算 if ( datain i ) num <= num +1; end end11、生成語句對兩個N位的總線用門級原語進(jìn)行按位異或/本模塊生成兩條N位總線變量的按位異或 module gen_xor(out,i0,i1); parameter N = 32; /參數(shù)聲明語句,
17、參數(shù)可以重新定義; /默認(rèn)的總線位寬為32位 output N-1:0 out; inputN-1:0 i0,i1; /聲明一個臨時(shí)循環(huán)變量 /該變量只用于生成塊的循環(huán)計(jì)算 /Verilog仿真時(shí)該變量在設(shè)計(jì)中并不存在 genvar j;/用一個單循環(huán)生成按位異或的異或門(xor) generate for( j = 0 ; j < N ; j = j+1) begin :xor_loop xor g1(out j ,i0 j , i1 j ); end endgenerate/用一個單循環(huán)生成用always塊來描述的異或門(xor) /reg N-1 : 0 out; generate
18、 for( j = 0 ; j < N ; j = j+1) begin :xor_loop always(i0j,i1j ) outj= i0ji1j ; end endgenerate endmodule12、用條件生成語句實(shí)現(xiàn)參數(shù)化乘法器/本模塊實(shí)現(xiàn)一個參數(shù)化乘法器 module multiplier(product,a0,a1); parameter a0_width = 8; /參數(shù)聲明,該參數(shù)可以重新定義 parameter a1_width = 8; /本地參數(shù)聲明 /本地參數(shù)不能用參數(shù)重新定義(defparam)修改 /也不能在實(shí)例引用時(shí)通過傳遞參數(shù)語句,即#(參數(shù)1,參
19、數(shù)2,)的方法修改 localparam product_width = a0_width+a1_width; /端口聲明語句 output product_width -1 :0 product; input a0_width -1: 0 a0; input a1_width -1: 0 a1; /有條件地調(diào)用(實(shí)例引用)不同類型的乘法器 /根據(jù)參數(shù)a0_width和a1_width的值,在調(diào)用時(shí)引用相對應(yīng)的乘法器實(shí)例 generate if( (a0_width < 8) | (a1_width < 8) ) cal_multiplier # (a0_width,a1_widt
20、h) m0(product,a0,a1); else tree_multiplier # (a0_width,a1_width) m0(product,a0,a1); endgenerate endmodule13、使用case生成語句實(shí)現(xiàn)N位加法器/本模塊生成N位的加法器 module addr(co,sum,a0,a1,ci); /參數(shù)聲明,本參數(shù)可以重新定義 parameter N= 4; /缺省的.急線位寬為4 /端口聲明 output N-1:0 sum; output co; input N-1:0 a0,a1; input ci; /根據(jù)總線的位寬,調(diào)用(實(shí)例引用)相應(yīng)的加法器
21、/參數(shù)N在調(diào)用(實(shí)例引用)時(shí)可以重新定義。調(diào)用(實(shí)例引用) /不同位寬的加法器是根據(jù)不同的N來決定的 generate case(N) /當(dāng)N=1或2時(shí)分別選用位寬為1位或2位的加法器 1 : addr_1bit addr1(co,sum,a0,a1,ci); /1位的加法器 2 : addr_2bit addr2(co,sum,a0,a1,ci); /2位的加法器 / 默認(rèn)的情況下選用位寬為N位的超前進(jìn)位加法器 default : addr_cla #(N) addr3(co,sum,a0,a1,ci); endgenerate/生成塊的結(jié)束endmodule14、四選一多路器/四選一多路器
22、,其端口列表完全根據(jù)輸人/輸出圖編寫 module mux4_to_1(out,i0,i1,i2,i3,s1,s0); /根據(jù)輸入/輸出圖的端口聲明 output out; input i0, i1, i2, i3; input s1, s0; /輸出端口被聲明為寄存器類型變量reg out; /若輸人信號改變,則重新計(jì)算輸出信號out /造成輸出信號out重新計(jì)算的所有輸人信號 /必須寫入always(.)的電平敏感列表 always(s1,s0,i0,i1,i2,i3) begin case(s1,s0) 2'b00 : out = i0; 2'b01 : out = i1
23、; 2'b10 : out = i2; 2'b11 : out = i3; default : out = bx; endendmodule15、四位計(jì)數(shù)器/四位二進(jìn)制計(jì)數(shù)器module counter(Q,clock,clear);/輸入/輸出端口 output 3:0 Q; inputclock,clear;/輸出變量Q被定義為寄存器類型 reg 3:0 Q; always(posedge clear or negedge clock) begin if(clear) Q<=4'd0;/為了能生成諸如觸發(fā)器一類的時(shí)序邏輯, /建議使用非阻塞賦值 else Q&
24、lt;=Q+1; /Q是一個四位的寄存器, endendmodule16、使用任務(wù)控制交通燈module traffic_lights; reg clock, red, amber, green; parameter on = 1, off = 0, red_tics = 350, amber_tics = 30, green_tics = 200; /交通燈初始化 initial red = off; initial amber = off; initial green = off;/交通燈控制時(shí)序 always begin red=on;/開紅燈 light(red,red_tics);/
25、調(diào)用等待任務(wù) green=on;/開綠燈 light(green,green_tics);/等待 amber=on;/開黃燈 light(amber,amber_tics);/等待 end/定義交通燈開啟時(shí)間的任務(wù) task light; /注意此行不需要端口名列表 output color;/ task的輸出參量 input31:0 tics;/ task的輸入?yún)⒘?begin repeat ( tics ) ( posedge clock ); /等待tics個時(shí)鐘的上升沿 color = off;/關(guān)燈 end endtask/產(chǎn)生時(shí)鐘脈沖的always塊always begin #10
26、0 clock = 0; #100 clock = 1; endendmodule17、CPU總線控制的任務(wù)timescale 1ns/10psmodule bus_ctrl_tb; reg 7: 0 data; reg data_valid; reg data_rd; cpu u1(data_valid, data,data_rd); initial begin / /任務(wù)調(diào)用 cpu_driver (8'b0000_0000); cpu_driver (8'b1010_1010); cpu_driver (8'b0101_0101); end/定義任務(wù)task cp
27、u_driver; input 7:0 data_in; begin #30 data_valid = 1; wait (data_rd = 1); #20 data = data_in; wait (data_rd = 0); #20 data = 8'hzz; #30 data_valid = 0; end endtask /任務(wù)結(jié)束endmodule18、自動任務(wù)示例module auto_task; reg 4:0 cd_add, ef_add; reg 4:0 c, d , e, f; reg clk1,clk2; parameter delay=1; initial beg
28、in clk1=0; clk2=0; c=3; d=5; e=7; f=4; #20 c=2; d=4; e=8; f=10; #20 $stop; endinitial forever #4 clk1=clk1;initial forever #5 clk2=clk2;task automatic adder; / 任務(wù)定義 output 4: 0 ab_adder; input 4: 0 a, b; begin #delay ab_adder = a + b; endendtaskalways (posedge clk1) adder(ef_add,e,f);always (posedge clk2) adder(cd_add, c, d);endmodule19、用函數(shù)實(shí)現(xiàn)乘累加器module mac(out,a,b,clk,clr); /? output15:0 out; input7:0 a,b; input clk,clr; reg15:0 out; wire15:0 sum; /定義函數(shù)mult;function15:0 mult; input7:0 a,b; reg15:0 result; integer i; begin result = a0 ? b:0; fo
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 土石方承包合同書范文(6篇)
- 醫(yī)院核酸采集工作人員先進(jìn)事跡(5篇)
- 溯源數(shù)據(jù)區(qū)塊鏈應(yīng)用-洞察分析
- 探究元宇宙玩具發(fā)展趨勢-洞察分析
- 藝術(shù)家個人品牌構(gòu)建-洞察分析
- 研究團(tuán)隊(duì)協(xié)作模式-洞察分析
- 新型驅(qū)動系統(tǒng)開發(fā)-洞察分析
- 維護(hù)質(zhì)量改進(jìn)策略-洞察分析
- 《住宅建筑節(jié)能設(shè)計(jì)》課件
- 反校園欺凌活動總結(jié)范文(6篇)
- b族鏈球菌孕婦的護(hù)理
- 生產(chǎn)工藝驗(yàn)證方案(藥品)
- 水庫白蟻防治標(biāo)書
- 電子電路EWB仿真技術(shù)
- 小學(xué)三年級語文教研活動記錄表1
- 初中九年級化學(xué)課件化學(xué)實(shí)驗(yàn)過濾
- 教學(xué)課件:《新時(shí)代新征程》
- 廢氣治理設(shè)施運(yùn)行管理規(guī)程、制度
- 蛋糕店合伙開店合同
- 短視頻的拍攝與剪輯
- 七彩課堂課程表
評論
0/150
提交評論