




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1電子電路設計訓練
數字部分(Verilog)第四講、簡單數字電路設計24.1門級電路一個邏輯電路是由許多邏輯門和開關所組成,因此用邏輯門的模型來描述邏輯電路結構是最直觀的。Verilog提供了一些描述門類型的關鍵字,可以用于門級結構建模。Verilog基本元件模型共有26種,其中14種為基本門級元件,12種為開關級元件,34.1門級電路門級電路列表多輸入門and(與門)nand(與非門)or(或門)
nor(或非門)
xor(異或門)
xnor(異或非門,同或門)多輸出門buf(緩沖器)not(非門)三態(tài)門(如果不被使能,
則輸出“z”)bufif0(低電平使能緩沖器)
bufif1(高電平使能緩沖器)notif0(低電平使能非門)
notif1(高電平使能非門)上拉,下拉電阻pullup(上拉電阻)pulldown(下拉電阻)<實例元件名>(<數據輸出>,<數據輸入>,<控制輸入>)44.1門級電路門級電路調用(實例化)<門的類型>[<驅動能力><延時>]<門實例1>[,<門實例2>,
<門實例3>……];而每個門實例,按照<實例元件名>(<數據輸出>,<數據輸入>,<控制輸入>)例:nand#10nd1(a,data,clock,clear);這個例子說明在模塊中只使用了一個名為nd1的與非門實例,輸入為clock,data,clear輸出為a,輸出與輸入的延時為10個單位時間。54.1門級電路門級電路例子--D觸發(fā)器6門級電路例子--D觸發(fā)器(續(xù))module
flop
(data,clock,clear,q,qb);input data,clock,clear;outputq,qb;endmodulenand #10
nd1(a,data,clock,clear), nd2(b,ndata,clock),nd4(d,c,b,clear),nd5(e,c,nclock),nd6(f,d,nclock),nd8(qb,q,f,clear);nand #9
nd3(c,a,d),nd7(q,e,qb);not #10
iv1(ndata,data),iv2(nclock,clock);74.1門級電路門級電路例子—4位寄存器`include“flop.v”module
hardreg
(d,clk,clrb,q);input clk,clrb;input[3:0]d;output[3:0]q;endmoduleflopf0(d[0],clk,clrb,q[0],),f1(d[1],clk,clrb,q[1],),
f2(d[2],clk,clrb,q[2],),f3(d[3],clk,clrb,q[3],);注意但是,對于自行定義的模塊,推薦的作法:flopf0(.data(d[0]),.clock(clk),.clear(clrb),.q(q[0]),),f1(.data(d[1]),.clock(clk),.clear(clrb),.q(q[1]),),f2(.data(d[2]),.clock(clk),.clear(clrb),.q(q[2]),),f3(.data(d[3]),.clock(clk),.clear(clrb),.q(q[3]),);84.1門級電路門級電路例子—行為描述對比module
behaviorreg
(d,clk,clrb,q);input clk,clrb;input[3:0]d;output[3:0]q;endmodulealways
@(posedgeclkorclrb)
begin
if(!clrb)q<=0;
elseq<=d;
end94.2常用組合邏輯電路組合邏輯電路—
功能上無記憶,結構上無反饋電路任一時刻的輸出狀態(tài)只取決于該時刻各輸入狀態(tài)的組合,而與電路的原狀態(tài)無關。對于任何一個多輸入多輸出組合邏輯電路,可以用框圖或者一組邏輯函數來表示。y1=f1
(a1,a2,…,an)y2=f2
(a1,a2,…,an)…ym
=fm
(a1,a2,…,an)
104.2常用組合邏輯電路加法器回憶多位加法器114.2常用組合邏輯電路加法器module
add_4(A,B,CI,S,CO);input[3:0] A,B;input CI;output[3:0]S;output CO;assign {CO,S}=A+B+CI;endmodule4位全加器16位?module
add_16(A,B,CI,S,CO);input[15:0] A,B;input CI;output[15:0]S;output CO;assign {CO,S}=A+B+CI;endmodule16位全加器124.2常用組合邏輯電路乘法器modulemult_4(X,Y,Product); input[3:0]X,Y; output[7:0]Product; assignProduct=X*Y;endmodule134.2常用組合邏輯電路比較器XY(X>Y)(X>=Y)(X=Y)(X<=Y)(X<Y)(X!=Y)00011100010001111011000111011100(X>Y)=X·(~Y)(X<Y)=(~X)·Y(X=Y)=(~X)·(~Y)+X·Y14比較器modulecompare_n(X,Y,XGY,XSY,XEY);parameterwidth=8;//必須在用以前寫input[width-1:0]X,Y;outputXGY,XSY,XEY;regXGY,XSY,XEY;
always@(XorY)//每當X或Y變化時beginif(X==Y)XEY=1;//設置X等于Y的信號為1elseXEY=0;if(X>Y)XGY=1;//設置X大于Y的信號為1elseXGY=0;if(X<Y)XSY=1;//設置X小于Y的信號為1elseXSY=0;endendmodule154.2常用組合邏輯電路多路器modulemuxtwo(out,a,b,sl);inputa,b,sl;outputout;regout;always@(sloraorb) if(!sl)out=a; elseout=b;endmodulen位數據選擇信號數據輸出數據輸入D0D1二選一8選一?164.2常用組合邏輯電路多路器moduleMux_8(addr,in1,in2,in3,in4,in5,in6,in7,in8,Mout,nCS);parameterwidth=8;
input[2:0]addr;input[width-1:0]in1,in2,in3,in4,in5,in6,in7,in8;inputnCS;output[windth-1:0]Mout;reg[windth-1:0]Mout;
always@(addrorin1orin2orin3orin4orin5orin6orin7orin8ornCS)beginif(!nCS) case(addr)3'b000:Mout=in1;3'b001:Mout=in2;….endcaseelse Mout=0;endendmodule八選一…174.2常用組合邏輯電路編碼器(8-3編碼器)moduleencode8to3(in,out);input[7:0]in;output[2:0]out;reg[2:0]out;always@(in)begincase(in)8'b00000001:out=3'b000;8'b00000010:out=3'b001;8'b00000100:out=3'b010; 8'b00001000:out=3'b011; 8'b00010000:out=3'b100; 8'b00100000:out=3'b101; 8'b01000000:out=3'b110; 8'b10000000:out=3'b111;
default:out=3’b000;
//討論,default的重要性endcaseendendmodule184.2常用組合邏輯電路譯碼器(3-8譯碼器)moduledecode3to8(addr,out);
input[2:0]addr;
output[7:0]out;
assignout=1’b1<<addr;
endmodule194.3常用時序邏輯電路輸出不只是當前輸入的邏輯電平的函數,還與目前電路所處的狀態(tài)有關。時序邏輯通常是由多個觸發(fā)器和多個組合邏輯塊組成的網絡,時序邏輯電路是設計復雜數字電路的核心。204.3常用時序邏輯電路RS觸發(fā)器moduleRS_FF(R,S,Q,QB);
inputR,S;
outputQ,QB;
regQ,QB;
always@(RorS)
case({R,S})
0:beginQ<=Q;QB<=QB;end
1:beginQ<=1;QB<=0;end
2:beginQ<=0;QB<=1;end
3:beginQ<=1‘bx;QB<=1’bx;end//思考是否影響綜合?
endcase
endmodule214.3常用時序邏輯電路RS觸發(fā)器224.3常用時序邏輯電路同步RS觸發(fā)器234.3常用時序邏輯電路同步RS觸發(fā)器moduleSY_RS_FF(R,S,CLK,Q,QB);
inputR,S,CLK;
outputQ,QB;
regQ;
assignQB=~Q;
always@(posedgeCLK)
case({R,S})
0:Q<=0;
1:Q<=1;
2:Q<=0;
3:Q<=1‘bx;
endcase
endmodule
244.3常用時序邏輯電路同步RS觸發(fā)器moduleSY_RS_FF(R,S,CLK,Q,QB);
inputR,S,CLK;
outputQ,QB;
regQ;
assignQB=~Q;
always@(posedgeCLK)
case({R,S})
0:Q<=0;
1:Q<=1;
2:Q<=0;
3:Q<=1'bx;
endcase
endmodule254.3常用時序邏輯電路D觸發(fā)器
moduleSY_D_FF(D,CLK,Q,QB);
inputD,CLK;
outputQ,QB;
regQ;
assignQB=~Q;
always@(posedgeCLK)
Q<=D;
endmodule264.3常用時序邏輯電路JK觸發(fā)器274.3常用時序邏輯電路JK觸發(fā)器moduleSY_JK_FF(J,K,CLK,Q,QB);
inputJ,K,CLK;
outputQ,QB;
regQ;
assignQB=~Q;
always
@(posedgeCLK)
case({J,K})
0:Q<=Q;
1:Q<=0;
2:Q<=1;
3:Q<=~Q;
endcase
endmoduleQnJK010001111011101000284.3常用時序邏輯電路寄存器
moduleREG4(CLR,D,CLK,Q);
inputCLR,CLK;
input[3:0]D;
output[3:0]Q;
reg[3:0]Q;
always@(posedgeCLKornegedgeCLR)
Q<=(!CLR)?0:D;
endmodule294.3常用時序邏輯電路移位寄存器moduleshifter_1(IN,CLK,CLR,Q);inputI
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 刨花板原料認證與追溯考核試卷
- 中藥材種植生態(tài)補償與社會責任考核試卷
- 紡織行業(yè)數字化轉型政策分析考核試卷
- 供熱職工個人工作總結
- 計劃生育家庭獎勵扶助協(xié)議書
- 云南省昆明市2024-2025學年高二下學期7月期末考試政治試題(無答案)
- 水果色拉活動方案
- 殘疾人共享節(jié)日活動方案
- 河北板房活動方案
- 池州秋季工會活動方案
- 學前教育研究方法課題研究報告
- 道路運輸企業(yè)安全管理范本
- 新概念英語第二冊課文及翻譯
- 醫(yī)藥健康合規(guī)培訓課件
- 魯教版六年級下冊英語期末試題
- 文化旅游有限責任公司員工手冊
- 淺談舞龍舞獅游戲在幼兒園中的傳承 論文
- 影視視聽視聽語言課件
- 2023電力建設工程監(jiān)理月報范本
- 活性污泥法PPT參考課件
- 語文六年級下冊口語交際辯論20張
評論
0/150
提交評論