EDA技術(shù)與應(yīng)用_EDA技術(shù)的應(yīng)用_第1頁
EDA技術(shù)與應(yīng)用_EDA技術(shù)的應(yīng)用_第2頁
EDA技術(shù)與應(yīng)用_EDA技術(shù)的應(yīng)用_第3頁
EDA技術(shù)與應(yīng)用_EDA技術(shù)的應(yīng)用_第4頁
EDA技術(shù)與應(yīng)用_EDA技術(shù)的應(yīng)用_第5頁
已閱讀5頁,還剩45頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、2021-11-241第第7 7章章 EDAEDA技術(shù)的應(yīng)用技術(shù)的應(yīng)用 本章概要:本章通過用硬件描述語言本章概要:本章通過用硬件描述語言VHDL和和Verilog HDL實(shí)現(xiàn)的設(shè)計(jì)實(shí)例,進(jìn)一步介紹實(shí)現(xiàn)的設(shè)計(jì)實(shí)例,進(jìn)一步介紹EDA技術(shù)在組合邏輯、時(shí)序邏技術(shù)在組合邏輯、時(shí)序邏輯電路設(shè)計(jì)以及在測(cè)量?jī)x器、通信系統(tǒng)和自動(dòng)控制等技術(shù)領(lǐng)輯電路設(shè)計(jì)以及在測(cè)量?jī)x器、通信系統(tǒng)和自動(dòng)控制等技術(shù)領(lǐng)域的綜合應(yīng)用。本章列出的全部域的綜合應(yīng)用。本章列出的全部HDL源程序均通過源程序均通過Quartus II或或ModelSim工具軟件的編譯。工具軟件的編譯。知識(shí)要點(diǎn):(知識(shí)要點(diǎn):(1)VHDL的組合邏輯、時(shí)序邏輯以及綜合應(yīng)

2、的組合邏輯、時(shí)序邏輯以及綜合應(yīng)用實(shí)例。用實(shí)例。 (2)Verilog HDL的組合邏輯、時(shí)序邏輯以及綜合應(yīng)的組合邏輯、時(shí)序邏輯以及綜合應(yīng)用的實(shí)例。用的實(shí)例。 (3)VHDL和和Verilog HDL實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的實(shí)例。實(shí)現(xiàn)系統(tǒng)設(shè)計(jì)的實(shí)例。教學(xué)安排:本章教學(xué)安排教學(xué)安排:本章教學(xué)安排8學(xué)時(shí)。學(xué)時(shí)。2021-11-2427.1 7.1 組合邏輯電路設(shè)計(jì)應(yīng)用組合邏輯電路設(shè)計(jì)應(yīng)用7.1.1 8 8位乘法器的設(shè)計(jì)位乘法器的設(shè)計(jì) 8 8位乘法器的元件符號(hào)如圖位乘法器的元件符號(hào)如圖7.17.1所示,所示,a7.0a7.0和和b7.0b7.0是被乘數(shù)和乘數(shù)輸入端,是被乘數(shù)和乘數(shù)輸入端,q15.0q15.0是乘

3、積輸出端。是乘積輸出端。 8位乘法器元件符號(hào)位乘法器元件符號(hào)2021-11-243用用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 P

4、ROCESS ;END struc;2021-11-249Verilog HDL描述如下描述如下: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;2021-11-24108b11011101: s=5;8b11011011: s=6;8b11010111: s=7;8b10111110: s=8;8b10111101: s=9;8b1011101

5、1: s=10;8b10110111: s=11;8b01111110: s=12;8b01111101: s=13;8b01111011: s=14;8b01110111: s=15; default :s=0;endcase endendmodule2021-11-24117.1.3 譯碼器設(shè)計(jì)譯碼器設(shè)計(jì) 3線線-8線譯碼器的元件符號(hào)如圖線譯碼器的元件符號(hào)如圖7.6所示,所示,ENA是譯碼器是譯碼器的使能控制輸入端,當(dāng)?shù)氖鼓芸刂戚斎攵?,?dāng)ENA=1時(shí),譯碼器不能工作,時(shí),譯碼器不能工作,8線輸線輸出出Y7.0=11111111(譯碼器的輸出有效電平為低電平);(譯碼器的輸出有效電平為低電平

6、);當(dāng)當(dāng)ENA=0時(shí),譯碼器工作。時(shí),譯碼器工作。C、B、A是是3線數(shù)據(jù)輸入端,譯線數(shù)據(jù)輸入端,譯碼器處于工作狀態(tài)時(shí),當(dāng)碼器處于工作狀態(tài)時(shí),當(dāng)CBA=000時(shí),時(shí),Y7.0=11111110(即(即Y0=0);當(dāng));當(dāng)CBA=001時(shí),時(shí),Y7.0=11111101(即(即Y1=0);依此類推。);依此類推。 3線線-8線譯碼器的元件符號(hào)線譯碼器的元件符號(hào)2021-11-2412用用VHDL描述的源程序如下:描述的源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY Decoder ISPORT(a,b,c,ena:IN BIT; y:OU

7、T BIT_VECTOR(7 DOWNTO 0); END Decoder; ARCHITECTURE one OF Decoder ISBEGIN PROCESS(a,b,c,ena)VARIABLE cba:BIT_VECTOR(2 DOWNTO 0); BEGINcba:=(c & b & a); 2021-11-2413IF (ena=1) THEN y y y y y y y y y NULL;END CASE; END IF; END PROCESS; END one; 2021-11-2414用用Verilog HDL描述的描述的3線線-8線譯碼器源程序如下:線譯

8、碼器源程序如下:moduledecoder(a,b,c,ena,y);inputa,b,c,ena;output7:0 y;reg7:0y;alwaysbeginif (ena=1) y = b11111111; elsecase (c,b,a) b000: y= b11111110;b001: y= b11111101;2021-11-2415b010: y= b11111011;b011: y= b11110111;b100: y= b11101111;b101: y= b11011111;b110: y= b10111111;b111: y= b01111111; default : y

9、= b11111111; endcaseendendmodule 2021-11-24167.1.4 16選1數(shù)據(jù)選擇器設(shè)計(jì)數(shù)據(jù)選擇器設(shè)計(jì) 16選選1數(shù)據(jù)選擇器的元件符號(hào)如圖數(shù)據(jù)選擇器的元件符號(hào)如圖7.8所示,所示,ENA是使能是使能控制輸入端,當(dāng)控制輸入端,當(dāng)ENA=1時(shí),電路不能工作,輸出時(shí),電路不能工作,輸出Y=0;ENA=0時(shí),電路處于工作狀態(tài)。時(shí),電路處于工作狀態(tài)。A15.0是數(shù)據(jù)輸入端,是數(shù)據(jù)輸入端,S3、S2,S1和和S0是數(shù)據(jù)選擇控制端,當(dāng)電路處于工作狀態(tài)時(shí)是數(shù)據(jù)選擇控制端,當(dāng)電路處于工作狀態(tài)時(shí)(ENA=0),若),若S3S2S1S0=0000,則輸入,則輸入A0被選中,輸出被

10、選中,輸出Y=A0;若;若S3S2S1S0=0001,則輸入,則輸入A1被選中,輸出被選中,輸出Y=A1;依此類推。;依此類推。 16選選1數(shù)據(jù)選擇器元件符號(hào)數(shù)據(jù)選擇器元件符號(hào)2021-11-2417用用VHDL描述的描述的16選選1數(shù)據(jù)選擇器數(shù)據(jù)選擇器源程序如下:源程序如下: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_

11、1;ARCHITECTURE one OF mux16_1 ISSIGNAL s: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN s=s0&s1&s2&s3; -將將s0,s1,s2和和s3并為并為s2021-11-2418PROCESS(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

12、 = 0;fb = 0;fe b) begin fa = 1; fb = 0; fe = 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 2021-11-24267.1.6 ROM的設(shè)計(jì)的設(shè)計(jì)對(duì)于容量不大的對(duì)于容量不大的ROM,可以用,可以用VHDL的的case語句來實(shí)現(xiàn)。下語句來實(shí)現(xiàn)。下面是用面是用case語句實(shí)現(xiàn)語句實(shí)現(xiàn)88位位ROM的源程序的源程序 LIBRARY IEEE;USE IEEE.STD_LOG

13、IC_1164.ALL;ENTITY from_rom ISPORT(addr : 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 2021-11-2427PROCESS (ena,addr) BEGINIF (ena=1) THEN q q q q q q q q q=01001000;END CASE;2021-11-2428END IF; END PROCESS ;END a; 由由VHD

14、L源代碼生成的源代碼生成的88位位ROM的元件符號(hào)如圖所示,的元件符號(hào)如圖所示,其中其中ADDR3.0是地址輸入端,是地址輸入端,ENA是使能控制輸入端,當(dāng)是使能控制輸入端,當(dāng)ENA=1時(shí),時(shí),ROM不能工作,輸出不能工作,輸出Q7.0為高阻態(tài),為高阻態(tài),ENA=0時(shí),時(shí),ROM工作,其輸出的數(shù)據(jù)由輸入地址決定。工作,其輸出的數(shù)據(jù)由輸入地址決定。 88位位ROM的元件符號(hào)的元件符號(hào)2021-11-2429用用Veilog HDL實(shí)現(xiàn)實(shí)現(xiàn)88位位ROM的源程序如下:的源程序如下:module from_rom(addr,ena,q); input 2:0 addr;input ena; outp

15、ut 7:0 q;reg 7:0 q;always (ena or addr)beginif (ena)q = bzzzzzzzz;elsecase (addr) 0:q = b01000001;1:q = b01000010;2021-11-24302:q = b01000011;3:q = b01000100;4:q = b01000101;5:q = b01000110;6:q = b01000111;7:q = b01001000; default :q = bzzzzzzzz; endcase endendmodule 2021-11-24317.2 7.2 時(shí)序邏輯電路設(shè)計(jì)應(yīng)用時(shí)序

16、邏輯電路設(shè)計(jì)應(yīng)用 7.2.1 JK觸發(fā)器設(shè)計(jì)觸發(fā)器設(shè)計(jì)JK觸發(fā)器的元件符號(hào)如圖觸發(fā)器的元件符號(hào)如圖7.14所示,其中所示,其中J、K是數(shù)據(jù)輸入端,是數(shù)據(jù)輸入端,CLR是復(fù)位控制輸入端,當(dāng)是復(fù)位控制輸入端,當(dāng)CLR=0時(shí),觸發(fā)器的狀態(tài)被置為時(shí),觸發(fā)器的狀態(tài)被置為0態(tài);態(tài);CLKCLK是時(shí)鐘輸入端;是時(shí)鐘輸入端;Q Q和和QNQN是觸發(fā)器的兩個(gè)互補(bǔ)輸出端。是觸發(fā)器的兩個(gè)互補(bǔ)輸出端。 JK觸發(fā)器的元件符號(hào)觸發(fā)器的元件符號(hào)2021-11-2432用用VHDL描述的描述的JK觸發(fā)器源程序如下:觸發(fā)器源程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTIT

17、Y myjkff ISPORT(j,k,clr:IN STD_LOGIC; clk: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); BEGIN2021-11-2433jk:=(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 ; E

18、ND IF;END PROCESS;END one; 2021-11-2434用用Verilog HDL描述的描述的JK觸發(fā)器源程序如下:觸發(fā)器源程序如下: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; end20

19、21-11-2435b10: begin q = 1; qn = 0; endb11: begin q = q; qn = qn; enddefault begin q = 0; qn = 1;end endcase endendmodule 2021-11-24367.2.2 8D鎖存器設(shè)計(jì)鎖存器設(shè)計(jì) 具有三態(tài)輸出的具有三態(tài)輸出的8D鎖存器元件符號(hào)如圖所示。鎖存器元件符號(hào)如圖所示。CLR是復(fù)是復(fù)位控制輸入端,當(dāng)位控制輸入端,當(dāng)CLR=0時(shí),時(shí),8位數(shù)據(jù)輸出位數(shù)據(jù)輸出Q7.0=00000000。ENA是使能控制輸入端,當(dāng)是使能控制輸入端,當(dāng)ENA=1時(shí),時(shí),鎖存器處于工作狀態(tài),輸出鎖存器處于工

20、作狀態(tài),輸出Q7.0D7.0;ENA=0時(shí),鎖時(shí),鎖存器的狀態(tài)保持不變。存器的狀態(tài)保持不變。OE是三態(tài)輸出控制端,當(dāng)是三態(tài)輸出控制端,當(dāng)OE=1時(shí),時(shí),輸出為高阻態(tài);輸出為高阻態(tài);OE=0時(shí),鎖存器為正常輸出狀態(tài)。時(shí),鎖存器為正常輸出狀態(tài)。 8D鎖存器元件符號(hào)鎖存器元件符號(hào)2021-11-2437用用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 DOW

21、NTO 0); q:BUFFER STD_LOGIC_VECTOR(7 DOWNTO 0);END latch8;ARCHITECTURE one OF latch8 ISSIGNAL q_temp:STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN 2021-11-2438u1: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

22、= ZZZZZZZZ; ELSE q = q_temp; END IF; END PROCESS u1;END one; 2021-11-2439用用Verilog HDL描述三態(tài)輸出描述三態(tài)輸出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_te

23、mp = q; if (oe) q = 8bzzzzzzzz; else q = q_temp; endendmodule 2021-11-24407.2.3 8位雙向移位寄存器設(shè)計(jì)位雙向移位寄存器設(shè)計(jì) 8位雙向移位寄存器電路的元件符號(hào)如圖位雙向移位寄存器電路的元件符號(hào)如圖7.18所示,其中所示,其中CLR是復(fù)位控制輸入端;是復(fù)位控制輸入端;LOD是預(yù)置控制輸入端;是預(yù)置控制輸入端;S是移位方是移位方向控制輸入端,當(dāng)向控制輸入端,當(dāng)S=1時(shí),是右移移位寄存器,時(shí),是右移移位寄存器,S=0時(shí),是左時(shí),是左移移位寄存器;移移位寄存器;DIR是右移串入輸入信號(hào);是右移串入輸入信號(hào);DIL是左移串入輸

24、是左移串入輸入信號(hào)。入信號(hào)。 8位雙向移位寄存器元件符號(hào)位雙向移位寄存器元件符號(hào)2021-11-2441用用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_

25、temp:BIT_VECTOR(7 DOWNTO 0); BEGIN PROCESS(clr,clk,lod,s,dir,dil) BEGIN2021-11-2442IF clr=0 THEN q_temp = 00000000;ELSIF clkEVENT AND clk=1 THENIF (lod=1) THENq_temp = d; ELSIF (S=1) THEN FOR i IN 7 downto 1 LOOP -實(shí)現(xiàn)右移操作實(shí)現(xiàn)右移操作 q_temp(i-1) = q(i);END LOOP ;q_temp(7) = dir;ELSE 2021-11-2443FOR i IN 0

26、TO 6 LOOP -實(shí)現(xiàn)左移操作實(shí)現(xiàn)左移操作 q_temp(i+1) = q(i);END LOOP ;q_temp(0) = dil;END IF; END IF;q 1;-實(shí)現(xiàn)右移操作實(shí)現(xiàn)右移操作 q7 = dir; end2021-11-2445else begin q = q 1;-實(shí)現(xiàn)左移操作實(shí)現(xiàn)左移操作 q0 = dil; end endendmodule 2021-11-24467.2.4 8位二進(jìn)制加減計(jì)數(shù)器設(shè)計(jì)位二進(jìn)制加減計(jì)數(shù)器設(shè)計(jì)8位二進(jìn)制加減計(jì)數(shù)器的元件符號(hào)如圖位二進(jìn)制加減計(jì)數(shù)器的元件符號(hào)如圖7.20所示,所示,CLR是復(fù)位是復(fù)位控制輸入端;控制輸入端;ENA是使能控制輸入端;是使能控制輸入端;LOAD是預(yù)置控制輸入是預(yù)置控制輸入端;端;D7.0是是8位并行數(shù)據(jù)輸入端;位并行數(shù)據(jù)輸入端;UPDOWN是加減控制輸是加減控制輸入端,當(dāng)入端,當(dāng)UPDOWN=0時(shí),計(jì)數(shù)器作加法操作,時(shí),計(jì)數(shù)器作加法操作,UPDOWN=1時(shí),計(jì)數(shù)器作減法操作;時(shí),計(jì)數(shù)器作減法操作;COUT是進(jìn)是進(jìn)/借位輸出端。借位輸出端。 8位二進(jìn)制加減計(jì)數(shù)器元件符號(hào)位二進(jìn)制加減計(jì)數(shù)器元件符號(hào)2021-11-2447用用VHDL描述的描述的8位二進(jìn)制加減計(jì)數(shù)器源程序如下:位二進(jìn)制加減計(jì)數(shù)器源程序如下:LIBRA

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論