




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、第4章 組合邏輯建模Verilog HDL 數字系統設計及實踐學習指南【知識目標】(1)了解組合邏輯建模的概念和作用;(2)了解Verilog HDL組合邏輯建模的各個層次及其相關描述方法。【技能目標】(1) 掌握利用Verilog HDL三種主要描述方式進行組合邏輯建模;(2) 學會描述常見的組合電路。【重點難點】(1) 各個層次描述形式的特點和差別;(2) 三態驅動電路的描述。4.1 數字電路建模方式小提示:Verilog HDL語法的分類是根據仿真機制和描述形式的不同而劃分的,并不是與實際電路結構一一對應的。 所謂建模方式,是指建立帶有某種實際功能的電路結構。該電路模型若可以綜合,往往與
2、實際的電路器件相對應;若不能綜合,則電路模塊的接口處應表現出一種特定的功能(如產生仿真時鐘,或生成滿足某種協議的激勵信號等等)。 圖4.1 常見的電路設計整體模型被測對象(Design Under Test)通常是可綜合的組合和時序邏輯模型,代表需要設計的芯片本身。 Testbench通常是不可綜合的行為級仿真模型,用于在仿真階段給被測對象添加測試激勵,并且檢測被測對象的輸出是否滿足功能規范的要求。4.1 數字電路建模方式 可綜合的建模方式一般分為組合邏輯建模和時序邏輯建模,其區別在于電路中是否使用了具有存儲功能的存儲單元(如寄存器,鎖存器等)。 在組合邏輯中,任意時刻的穩定輸出,只決定于該時
3、刻的輸入值,而與該時刻之前的輸入值沒有關系。時序邏輯則和組合邏輯相反,即時序邏輯的輸出與當前時刻的輸入和先前的輸入都有關。 圖4.2 組合邏輯示意圖 組合邏輯主要用于進行電路中的數學和邏輯運算,如實現加法、乘法、與、非運算等。組合邏輯沒有“記憶”功能,即任何時刻輸入變化時,輸出也在同一時刻變化 。4.2 數組合邏輯的門級描述組合邏輯的門級建模,是指利用Verilog HDL門級描述的方式來設計組合邏輯電路。門級描述屬于Verilog HDL層次化描述方式,即通過直接實例化Verilog HDL語言提供的預定義門單元的方式來構建組合邏輯電路。新構建的組合邏輯電路模塊又可以被再次實例化,以形成更大
4、的組合邏輯功能電路。Verilog HDL語言提供了26種預定義的基礎門單元,這里介紹常用的幾種 表4.1 Verilog HDL常用預定義門單元模塊名邏輯功能and與門nand與非門or或門nor或非門xor異或門xnor同或門buf緩沖器not非門bufif0三態緩沖器(控制信號低有效)bufif1三態緩沖器(控制信號高有效)notif0三態非門(控制信號低有效)notif1三態非門(控制信號高有效)4.2 組合邏輯的門級描述4.2.1 與門、或門以及同類門單元在Verilog HDL編程中實例化此類門單元需要用下列關鍵字中的一個作為實例化的模塊名:and nand nor or xor
5、xnor 由于數字電路的復雜性,使用門級描述進行建模的時,往往需要用到大量的門單元。不提供實例名的實例化方式為大規模進行門單元實例化減少了工作量,讓使用門級描述進行建模更為方便和高效。4.2.2 緩沖器和非門 和與/非類門單元相反,緩沖器和非門具有一個輸入端口,以及一個或多個輸出端口。在Verilog HDL編程中實例化此類門單元需要用下列關鍵字中的一個作為實例化的模塊名: buf not4.2.3 三態門 緩沖器和非門都提供帶控制端口的三態形式的門單元,我們稱之為三態緩沖器和三態非門。三態門在控制信號有效的時候才能將輸入信號傳遞到輸出端口,當控制信號無效時,三態門輸出高阻態。 在Verilo
6、g HDL語言編程中實例化此類門單元需要用下列關鍵字中的一個作為實例化的模塊名: bufif0 bufif1 notif0 notif14.2 組合邏輯的門級描述警告:小心設計你的三態驅動電路 設計三體驅動電路時,必須小心設計控制信號,以保證在同一時刻,所有輸出三態門的控制信號只有一個有效。例如,在設計讀/寫復用的總線驅動電路時,讀寫控制信號往往作為三態門的控制信號。 4.2.4 門級描述實例表4.2 一位全加器的真值表輸入輸出cinabsumcout0000000110010100110110010101011100111111由真值表可以寫出全加器的邏輯表達式為:4.2 組合邏輯的門級描述
7、圖4.3 一位全加器的門級電路圖/ example_4_1: 1-bit full addermodule full_adder ( input cin, input a, input b, output sum, output cout ); / 用預定義門單元實例化一位全加器電路 wire net0, net1, net2, net3; xor xr1(net0, a, b); xor xr2(sum, net0, cin); and nd1(net1, cin, a); and nd2(net2, cin, b); and nd3(net3, a, b); or or1(cout, ne
8、t1, net2, net3);endmodule參照電路圖,我們可以用Verilog HDL門級描述的方式,用預定義門單元構建一個一位全加器。4.2 組合邏輯的門級描述圖4.4 4位的串行進位加法器電路圖將一位全加器作為基本門單元,我們可以搭建出多位的加法器邏輯。其中最簡單的是串行進位加法器。 4.3 組合邏輯的數據流描述 Verilog HDL語言提供數據流的描述方式。數據流描述是指設計人員對電路功能的描述是站在數據在各存儲單元之間進行流動和運算的角度的。利用數據流描述方式,設計人員可以借助Verilog HDL提供的各種高層次的運算符(如+,*等等),直接對數據進行高層次的數學和邏輯運算
9、建模,而不需要關心具體的門級電路結構。利用數據流描述進行建模,設計人員可以專注于數據流的處理和控制,在數據運算層面對電路進行統籌和優化。4.3.1連續賦值語句 Verilog HDL的連續賦值語句(Continuous assignment)是進行數據流描述的基本語法。它表示對線網的賦值,且賦值發生在任意右邊信號發生變化時。連續賦值語句右邊表達式的值發生變化后,左邊變量的值在同一時刻發生相應改變,即值的傳播在該表達式是“連續”的,沒有時間上間隔。 連續賦值語句必須以關鍵詞assign開頭,并出現在與門單元實例化相同的代碼層次。其語法如下: assign 延遲 wire型變量 = 表達式;4.3
10、 組合邏輯的數據流描述4.3.2 數據流描述實例 利用數據流描述可以很方便的描述一個加法器。利用各種表達式操作符,可以快速的設計復雜的數學和邏輯運算。【例4.3】用Verilog HDL數據流描述構建4位的加法器。/ example_4_3: 4-bit adder using continuous assignment module adder_4 ( input 3:0 a, input 3:0 b, input cin, output 3:0 sum, output cout ); / 直接用+操作符對a, b, cin進行加運算 assign cout, sum = a + b + c
11、in;endmodule在使用加法運算,賦值語句左邊變量的位寬一般比右邊表達式操作數的位寬多一位。這個多出的一位用來存儲加法運算的進位值。 4.4 組合邏輯的行為描述 與數據流描述不同的是,行為描述中的賦值語句(出現在always或initial語句中)并不是右邊表達式的值變化后就立刻賦值給左邊變量,而是在一定的控制條件下進行賦值,如等待某個特定信號(如時鐘)跳變,或在仿真的某個指定時刻(利用initial和延遲語句)。由于行為描述加入了多種靈活的控制功能,因此主要用于構建更為復雜的時序邏輯和行為級仿真模型。但是,按照一定規范書寫的行為描述語句也可以用來構建組合邏輯模型。【例4.6】用Veri
12、log HDL行為描述構建16位的加法器。/ example_4_6: 16-bit adder using always statment module adder_16_always ( input 15:0 a, input 15:0 b, input cin, output reg 15:0 sum, output reg cout ); always (cin or a or b) cout, sum = a + b + cin;endmodule在賦值語句中使用*運算符,也可以很容易的構建乘法器,其對結果變量位寬的要求與數據流描述的情況相同。4.5 組合邏輯建模實例4.5.1比較器
13、/ example_4_7: Width configurable comparator. Default is 4 bit.module comparator #( parameter width = 4 / 通過配置參數width來調節比較器的位寬 ) ( input width-1:0 a, input width-1:0 b, output agb, / 若 a b,該輸出信號有效 output aeb, / 若 a = b, 該輸出信號有效 output alb / 若 a b); assign aeb = (a = b); assign alb = (a b);endmodule用
14、Verilog HDL語言描述實現位寬可調節的比較器。比較器的位寬調節通過給參數width賦不同的值來實現。4.5 組合邏輯建模實例4.5.2譯碼器和編碼器/ example_4_8: 2-4 binary decodermodule binary_decoder_2_4 ( input i_en, input 1:0 i_dec, output reg 3:0 o_dec ); always (i_en or i_dec) if (i_en) case (i_dec) 2b00: o_dec = 4b0001; 2b01: o_dec = 4b0010; 2b10: o_dec = 4b01
15、00; 2b11: o_dec = 4b1000; default: o_dec = 4bxxxx; endcase else o_dec = 4b0000; / 使能信號en無效時,所有輸出信號無效。endmodule2位寬輸入,4位寬輸出的2-4二進制譯碼器該譯碼器包含一個使能輸入端口i_en。當使能信號無效時,譯碼器的輸出信號全部無效(即輸出全0)。4.5 組合邏輯建模實例/ example_4_9: 4-2 binary encodermodule binary_encoder_4_2 ( input 3:0 i_dec, output 1:0 o_dec ); / 利用數據流描述和條
16、件運算符? :進行建模 assign o_dec = (i_dec = 4b0001) ? 2b00 : (i_dec = 4b0010) ? 2b01 : (i_dec = 4b0100) ? 2b10 : (i_dec = 4b1000) ? 2b11 : 2bxx;endmodule4位輸入,2位輸出的4-2二進制編碼器。當輸入編碼不是4中取一碼時,輸出編碼為全x。 4.5 組合邏輯建模實例4.5.3多路復用器圖4.5 多路選擇器功能示意圖/ example_4_10: A 4-1 multiplexer with configurable data widthmodule mux_4_
17、1 #( parameter width = 8 ) ( input 1:0 i_sel, input i_en_n, input width-1:0 i_dat0, input width-1:0 i_dat1, input width-1:0 i_dat2, input width-1:0 i_dat3, output reg width-1:0 o_dat ); always (i_sel or i_en_n or i_dat0 or i_dat1 or i_dat2 or i_dat3) if (! i_en_n) / 使能信號低電平有效 case (i_sel) 2b00: o_da
18、t = i_dat0; 4.5 組合邏輯建模實例2b01: o_dat = i_dat1; 2b10: o_dat = i_dat2; 2b11: o_dat = i_dat3; default: o_dat = bx; endcase else o_dat = b0;endmodule4.5.4三態驅動電路圖4.6 雙向總線功能原理示意圖4.5 組合邏輯建模實例/ example_4_11: Tri-state bus interface.module tri_bus_interface #( parameter width = 8 ) ( input write_en, input width-1:0 data_out, output width-1:0 data_in, inout width-1:0 bus_data ); assign bus_data = write_en ? data_out : hz; assign data_in = bus_data;endmodule用Verilog HDL設計圖4.6所示的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 家庭教育服務合同
- 酒店餐廳品牌使用權與管理合同
- 農村金融機構品牌建設方案
- 山東消防施工合同
- 工程設備材料采購合同
- 學校食堂大樓承包施工合同
- 銷售苗木合同
- 農戶打井合同范本
- (18)-《四大名著》常考知識點
- 剩余土方清運合同范本
- 第7課 全球航路的開辟和歐洲早期殖民擴張(教學課件)-【中職專用】《世界歷史》(高教版2023?基礎模塊)
- 采礦工程畢業設計-礦井設計(含全套CAD圖紙)
- 2024春期國開電大本科《中國當代文學專題》在線形考(形考任務一至六)試題及答案
- RFJ 011-2021 人民防空工程復合材料(玻璃纖維增強塑料)防護設備選用圖集(試行)
- 皮膚病的總論
- 讓改革創新成為青春遠航的動力
- 前房積血護理查房
- 【課件】五指活動課程講解
- 采煤機說明書-樣本
- 數控折彎機操作手冊樣本
- 河南省高等職業教育單招財經類職業技能測試考試題庫(含答案)
評論
0/150
提交評論