




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、2022-3-171第7章 EDA技術的應用 本章概要:本章通過用硬件描述語言本章概要:本章通過用硬件描述語言VHDL和和Verilog HDL實現的設計實例,進一步介紹實現的設計實例,進一步介紹EDA技術在組合邏輯、時技術在組合邏輯、時序邏輯電路設計以及在測量儀器、通信系統和自動控制等技序邏輯電路設計以及在測量儀器、通信系統和自動控制等技術領域的綜合應用。本章列出的全部術領域的綜合應用。本章列出的全部HDL源程序均通過源程序均通過MAX+plusII或或ModelSim工具軟件的編譯。工具軟件的編譯。知識要點:知識要點:(1)VHDL的組合邏輯、時序邏輯以及綜合應用實例。的組合邏輯、時序邏輯
2、以及綜合應用實例。(2)Verilog HDL的組合邏輯、時序邏輯以及綜合應用的實的組合邏輯、時序邏輯以及綜合應用的實例。例。(3)VHDL和和Verilog HDL實現系統設計的實例。實現系統設計的實例。 2022-3-1727.1 7.1 組合邏輯電路設計應用組合邏輯電路設計應用7.1.1 8 8位乘法器的設計位乘法器的設計8 8位乘法器的元件符號如圖位乘法器的元件符號如圖8.18.1所示,所示,a7.0a7.0和和b7.0b7.0是被乘數和乘數輸入端,是被乘數和乘數輸入端,q15.0q15.0是乘積是乘積輸出端。輸出端。 圖圖8.1 8位乘法器元件符號位乘法器元件符號2022-3-173
3、用用VHDL描述的描述的8位乘法器源程序如下:位乘法器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY mul ISPORT(a,b: IN integer range 0 to 255;q: OUT integer range 0 to 65535); END mul; ARCHITECTURE one OF mul IS BEGIN q S S S S S S S S S S S S S S S S S = B0000; END CASE;END PROCESS ;END struc;2022-3-179Verilog HDL描述
4、如下描述如下:Module hcoder(x,y,s);input3:0 x,y;output3:0s;reg3:0s;alwaysbegincase (x,y) 8b11101110:s=0;8b11101101:s=1;8b11101011:s=2;8b11100111:s=3;8b11011110:s=4;2022-3-17108b11011101: s=5;8b11011011: s=6;8b11010111: s=7;8b10111110: s=8;8b10111101: s=9;8b10111011: s=10;8b10110111: s=11;8b01111110: s=12;8
5、b01111101: s=13;8b01111011: s=14;8b01110111: s=15; default :s=0;endcase endendmodule2022-3-17117.1.3 譯碼器設計譯碼器設計3線線-8線譯碼器的元件符號如圖線譯碼器的元件符號如圖8.6所示,所示,ENA是譯碼是譯碼器的使能控制輸入端,當器的使能控制輸入端,當ENA=1時,譯碼器不能工作,時,譯碼器不能工作,8線線輸出輸出Y7.0=11111111(譯碼器的輸出有效電平為低電平);(譯碼器的輸出有效電平為低電平);當當ENA=0時,譯碼器工作。時,譯碼器工作。C、B、A是是3線數據輸入端,譯線數據輸
6、入端,譯碼器處于工作狀態時,當碼器處于工作狀態時,當CBA=000時,時,Y7.0=11111110(即(即Y0=0);當);當CBA=001時,時,Y7.0=11111101(即(即Y1=0);依此類推。);依此類推。 圖圖8.6 3線線-8線譯碼器的元件符號線譯碼器的元件符號2022-3-1712用用VHDL描述的源程序如下:描述的源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Decoder ISPORT(a,b,c,ena:IN BIT; y:OUT BIT_VECTOR(7 DOWNTO 0); END Decoder; A
7、RCHITECTURE one OF Decoder ISBEGIN PROCESS(a,b,c,ena)VARIABLE cba:BIT_VECTOR(2 DOWNTO 0); BEGINcba:=(c & b & a); 2022-3-1713IF (ena=1) THEN y y y y y y y y y NULL;END CASE; END IF; END PROCESS; END one; 2022-3-1714用用Verilog HDL描述的描述的3線線-8線譯碼器源程序如下:線譯碼器源程序如下:moduledecoder(a,b,c,ena,y);inputa,
8、b,c,ena;output7:0 y;reg7:0y;alwaysbeginif (ena=1) y = b11111111; elsecase (c,b,a) b000: y= b11111110;b001: y= b11111101;2022-3-1715b010: y= b11111011;b011: y= b11110111;b100: y= b11101111;b101: y= b11011111;b110: y= b10111111;b111: y= b01111111; default : y= b11111111; endcaseendendmodule 2022-3-171
9、67.1.4 16選1數據選擇器設計數據選擇器設計16選選1數據選擇器的元件符號如圖數據選擇器的元件符號如圖8.8所示,所示,ENA是使是使能控制輸入端,當能控制輸入端,當ENA=1時,電路不能工作,輸出時,電路不能工作,輸出Y=0;ENA=0時,電路處于工作狀態。時,電路處于工作狀態。A15.0是數據輸入端,是數據輸入端,S3、S2,S1和和S0是數據選擇控制端,當電路處于工作狀態時是數據選擇控制端,當電路處于工作狀態時(ENA=0),若),若S3S2S1S0=0000,則輸入,則輸入A0被選中,輸出被選中,輸出Y=A0;若;若S3S2S1S0=0001,則輸入,則輸入A1被選中,輸出被選中
10、,輸出Y=A1;依此類推。;依此類推。 圖圖8.8 16選選1數據選擇器元件符號數據選擇器元件符號2022-3-1717用用VHDL描述的描述的16選選1數據選擇器數據選擇器源程序如下:源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY mux16_1 ISPORT (s0,s1,s2,s3,ena: IN STD_LOGIC; a: IN STD_LOGIC_VECTOR(15 DOWNTO 0); y: OUT STD_LOGIC);END mux16_1;ARCHITECTURE one OF mux16_1 ISSIGNAL s
11、: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN s=s0&s1&s2&s3; -將將s0,s1,s2和和s3并為并為s2022-3-1718PROCESS(s0,s1,s2,s3,ena) BEGINIF ena=1 THEN y y y y y y y y y y y y y y y y y y b THEN fa = 1;fb = 0;fe = 0;ELSIF a b THEN fa = 0;fb = 1;fe = 0;ELSIF a = b THEN fa = 0;fb = 0;fe b) begin fa = 1; fb = 0; f
12、e = 0; endelse if (a b) begin fa = 0; fb = 1; fe = 0; endelse if (a = b) begin fa = 0; fb = 0; fe = 1; end endendmodule 2022-3-17267.1.6 ROM的設計的設計對于容量不大的對于容量不大的ROM,可以用,可以用VHDL的的case語句來實現。下語句來實現。下面是用面是用case語句實現語句實現88位位ROM的源程序的源程序 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY from_rom ISPORT(addr :
13、ININTEGER RANGE 0 TO 7;ena: IN STD_LOGIC;q: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END from_rom;ARCHITECTURE a OF from_rom IS BEGIN 2022-3-1727PROCESS (ena,addr) BEGINIF (ena=1) THEN q q q q q q q q q=01001000;END CASE;2022-3-1728END IF; END PROCESS ;END a; 由由VHDL源代碼生成的源代碼生成的88位位ROM的元件符號如圖的元件符號如圖8.9所示,所示,其
14、中其中ADDR3.0是地址輸入端,是地址輸入端,ENA是使能控制輸入端,當是使能控制輸入端,當ENA=1時,時,ROM不能工作,輸出不能工作,輸出Q7.0為高阻態,為高阻態,ENA=0時,時,ROM工作,其輸出的數據由輸入地址決定。工作,其輸出的數據由輸入地址決定。圖圖8.9 88位位ROM的元件符號的元件符號2022-3-1729用用Veilog HDL實現實現88位位ROM的源程序如下:的源程序如下:module from_rom(addr,ena,q); input 2:0 addr;input ena; output 7:0 q;reg 7:0 q;always (ena or add
15、r)beginif (ena)q = bzzzzzzzz;elsecase (addr) 0:q = b01000001;1:q = b01000010;2022-3-17302:q = b01000011;3:q = b01000100;4:q = b01000101;5:q = b01000110;6:q = b01000111;7:q = b01001000; default :q = bzzzzzzzz; endcase endendmodule 2022-3-1731用例化一個指定工藝的用例化一個指定工藝的ROM來實現來實現ROM的設計的設計2022-3-1732設計步驟:設計步驟:
16、1.從強函數庫中調出從強函數庫中調出lpm_rom2. 設置設置lpm_rom的參數的參數常見的設置有:常見的設置有:地址位寬地址位寬LPM_WIDTHAD數據位寬數據位寬LPM_WIDTH以及是否使用某些功能引腳以及是否使用某些功能引腳3.設置設置lpm_rom存儲數據存儲數據新建一個文本文件,按下頁的格式(或參考幫助文新建一個文本文件,按下頁的格式(或參考幫助文檔)編寫數據文件,并存為檔)編寫數據文件,并存為.mif文件。存完后將文件。存完后將lpm_file參數設為該文件。參數設為該文件。2022-3-1733.mif文件DEPTH = 16;% Memory depth and wid
17、th are required%WIDTH = 8;% Enter a decimal number%ADDRESS_RADIX = HEX; % Address and value radixes are optional %DATA_RADIX = HEX;% Enter BIN, DEC, HEX, or OCT; unless% otherwise specified, radixes = HEX%- Specify values for addresses, which can be single address or rangeCONTENTBEGIN0.F:3F;% Range-
18、Every address from 0 to F = 3F %6:F;% Single address-Address 6 = F%8:F E 5;% Range starting from specific address- % % Addr8 = F, Addr9 = E, AddrA = 5%END ;2022-3-1734注:若需要修改ROM的數據,除了通過編輯.mif文件外,也可以通過仿真窗口的菜單來修改。(要求事先通過編譯才能使用此菜單)2022-3-17357.2 時序邏輯電路設計應用時序邏輯電路設計應用 7.2.1 JK觸發器設計觸發器設計JK觸發器的元件符號如圖觸發器的元件
19、符號如圖8.14所示,其中所示,其中J、K是數據輸入端,是數據輸入端,CLR是復位控制輸入端,當是復位控制輸入端,當CLR=0時,觸發器的狀態被置為時,觸發器的狀態被置為0態;態;CLKCLK是時鐘輸入端;是時鐘輸入端;Q Q和和QNQN是觸發器的兩個互補輸出端。是觸發器的兩個互補輸出端。 圖圖8.14 JK觸發器的元件符號觸發器的元件符號2022-3-1736用用VHDL描述的描述的JK觸發器源程序如下:觸發器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY myjkff ISPORT(j,k,clr:IN STD_LOGIC; c
20、lk:IN STD_LOGIC; q,qn:BUFFER STD_LOGIC);END myjkff;ARCHITECTURE one OF myjkff ISBEGINPROCESS(j,k,clr,clk) VARIABLE jk:STD_LOGIC_VECTOR(1 DOWNTO 0); BEGIN2022-3-1737jk:=(j & k); IF clr=0 THEN q=0;qn q =q; qn q = 0; qn q = 1;qn q = NOT q;qn NULL;END CASE ; END IF;END PROCESS;END one; 2022-3-1738用用
21、Verilog HDL描述的描述的JK觸發器源程序如下:觸發器源程序如下:module myjkff(j,k,clr,clk,q,qn); input j,k,clr,clk;output q,qn; reg q,qn;always (negedge clr or negedge clk) beginif (clr)begin q = 0; qn = 1; endelse case (j,k)b00: begin q = q; qn = qn; endb01: begin q = 0; qn = 1; end2022-3-1739b10: begin q = 1; qn = 0; endb11
22、: begin q = q; qn = qn; enddefault begin q = 0; qn = 1;end endcase endendmodule 2022-3-17407.2.2 8D鎖存器設計鎖存器設計具有三態輸出的具有三態輸出的8D鎖存器元件符號如圖鎖存器元件符號如圖8.16所示。所示。CLR是復是復位控制輸入端,當位控制輸入端,當CLR=0時,時,8位數據輸出位數據輸出Q7.0=00000000。ENA是使能控制輸入端,當是使能控制輸入端,當ENA=1時,時,鎖存器處于工作狀態,輸出鎖存器處于工作狀態,輸出Q7.0D7.0;ENA=0時,鎖時,鎖存器的狀態保持不變。存器的狀
23、態保持不變。OE是三態輸出控制端,當是三態輸出控制端,當OE=1時,時,輸出為高阻態輸出為高阻態;OE=0時,鎖存器為正常輸出狀態。時,鎖存器為正常輸出狀態。 圖圖8.16 8D鎖存器元件符號鎖存器元件符號2022-3-1741用用VHDL描述的描述的8D鎖存器源程序如下:鎖存器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY latch8 ISPORT(clr,clk,ena,oe:IN STD_LOGIC; d:IN STD_LOGIC_VECTOR(7 DOWNTO 0); q:BUFFER STD_LOGIC_VECTOR(7
24、 DOWNTO 0);END latch8;ARCHITECTURE one OF latch8 ISSIGNAL q_temp:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN 2022-3-1742u1:PROCESS(clk,clr,ena,oe) BEGINIF clr=0 THEN q_temp = 00000000; ELSIF clkEVENT AND clk=1 THENIF (ena=1) THEN q_temp = d;END IF; END IF; IF oe=1 THEN q = ZZZZZZZZ; ELSE q = q_temp; END IF;
25、 END PROCESS u1;END one; 2022-3-1743用用Verilog HDL描述三態輸出描述三態輸出8D鎖存器的源程序如下:鎖存器的源程序如下:module latch8v(clk,clr,ena,oe,q,d); input 7:0 d; input clk,clr,ena,oe; output 7:0 q; reg 7:0 q,q_temp;always (posedge clk)beginif (clr)q_temp = 0;else if (ena) q_temp = d;else q_temp = q; if (oe) q = 8bzzzzzzzz; else
26、q = q_temp; endendmodule 2022-3-17447.2.3 8位雙向移位寄存器設計位雙向移位寄存器設計8位雙向移位寄存器電路的元件符號如圖位雙向移位寄存器電路的元件符號如圖8.18所示,其中所示,其中CLR是復位控制輸入端是復位控制輸入端;LOD是預置控制輸入端是預置控制輸入端;S是移位方向控是移位方向控制輸入端,當制輸入端,當S=1時,是右移移位寄存器,時,是右移移位寄存器,S=0時,是左移移時,是左移移位寄存器;位寄存器;DIR是右移串入輸入信號;是右移串入輸入信號;DIL是左移串入輸入信是左移串入輸入信號。號。 圖圖8.18 8位雙向移位寄存器元件符號位雙向移位寄
27、存器元件符號2022-3-1745用用VHDL描述的描述的8位雙向移位寄存器源程序如下:位雙向移位寄存器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY rlshift ISPORT(clr,lod,clk,s,dir,dil:IN BIT; d:IN BIT_VECTOR(7 DOWNTO 0); q:BUFFER BIT_VECTOR(7 DOWNTO 0);END rlshift;ARCHITECTURE one OF rlshift IS SIGNAL q_temp:BIT_VECTOR(7 DOWNTO 0); BEGIN
28、PROCESS(clr,clk,lod,s,dir,dil) BEGIN2022-3-1746IF clr=0 THEN q_temp = 00000000;ELSIF clkEVENT AND clk=1 THENIF (lod=1) THEN q_temp = d; ELSIF (S=1) THEN FOR i IN 7 downto 1 LOOP -實現右移操作實現右移操作 q_temp(i-1) = q(i); END LOOP ; q_temp(7) = dir;ELSE 2022-3-1747 FOR i IN 0 TO 6 LOOP -實現左移操作實現左移操作 q_temp(i+
29、1) = q(i); END LOOP ; q_temp(0) = dil;END IF; END IF; q 1;-實現右移操作實現右移操作 q7 = dir; end2022-3-1749else begin q = q 1;-實現左移操作實現左移操作 q0 = dil; end endendmodule 2022-3-17507.2.4 8位二進制加減計數器設計8位二進制加減計數器的元件符號如圖位二進制加減計數器的元件符號如圖8.20所示,所示,CLR是復位是復位控制輸入端控制輸入端;ENA是使能控制輸入端;是使能控制輸入端;LOAD是預置控制輸入是預置控制輸入端端;D7.0是是8位并行
30、數據輸入端;位并行數據輸入端;UPDOWN是加減控制輸是加減控制輸入端,當入端,當UPDOWN=0時,計數器作加法操作,時,計數器作加法操作,UPDOWN=1時,計數器作減法操作;時,計數器作減法操作;COUT是進是進/借位輸出端。借位輸出端。 圖圖8.20 8位二進制加減計數器元件符號位二進制加減計數器元件符號2022-3-1751用用VHDL描述的描述的8位二進制加減計數器源程序如下:位二進制加減計數器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY updowncnt8 ISPORT(clr,clk,ena,load,updown
31、:IN STD_LOGIC; d:IN INTEGER RANGE 0 TO 255;cout:OUT STD_LOGIC;q:BUFFER INTEGER RANGE 0 TO 255);END updowncnt8;ARCHITECTURE one OF updowncnt8 ISBEGIN PROCESS(clk,ena,clr,d,load,updown)2022-3-1752BEGIN IF CLR=0 THENq = 0; ELSIF clkEVENT AND clk=1 THENIF load = 1 THEN q = d;ELSIF ena=1 THEN IF updown = 0 THEN q = q+1;IF q = 254 THEN COUT = 1;else cout=0;END IF; ELSE q = q-1;IF q = 1THEN C
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025深圳寫字樓租賃合同模板
- 股權轉讓及退股合同協議
- 知識產權許可協議書模板
- 2025生產技術人員調崗合同
- ?;瘶藴驶c風險管控2
- 《新能源汽車的品牌戰略》課件
- 2025辦公室租賃合同模板下載2
- 消防安全檢查附帶標準依據
- 2025年軟件維護合同示范文本
- 2025雙邊銷售合同范本
- 國家開放大學《人文英語3》章節測試參考答案
- 中國暈厥診斷與治療專家共識(2014 )
- 長途大客車總布置設計
- Q∕GDW 10799.6-2018 國家電網有限公司電力安全工作規程 第6部分:光伏電站部分
- T∕CAAA 002-2018 燕麥 干草質量分級
- 一年級《20以內的加減法填括號口算題(共100道)》專項練習題
- 方格網計算步驟及方法
- 課題評分表(共1頁)
- 六年級趣味數學(課堂PPT)
- 詢價單(模板)
- 關于我縣二次供水調研報告
評論
0/150
提交評論