




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、黑龍江大學(xué)電子工程學(xué)院第五章 VHDL設(shè)計進(jìn)階本章對VHDL的語言規(guī)則和語句類型做系統(tǒng)的論述。一、 VHDL語言要素 二、VHDL順序語句三、VHDL并行語句四、子程序五、庫、程序包及其配置六、VHDL描述風(fēng)格七、常用元件設(shè)計舉例八、VHDL與原理圖混合設(shè)計方式黑龍江大學(xué)電子工程學(xué)院四、 子程序-略講子程序是一個VHDL程序模塊,它是利用順序語句來定義和完成算法的,可以有效的完成重復(fù)性的設(shè)計工作。不能調(diào)用子程序時候使用結(jié)構(gòu)體重定義的信號,只能通過子程序調(diào)用及與子程序的界面端口進(jìn)行通信。子程序分為過程(PROCEDURE)和函數(shù)(FUNCTION)。過程和函數(shù)的區(qū)別在于:(1)過程的調(diào)用通過其界
2、面獲得多個返回值,函數(shù)只有一個返回值;(2)在函數(shù)入口中所有的參數(shù)都是輸入?yún)?shù)、而過程有輸入?yún)?shù)、輸出參數(shù)和雙向參數(shù);(3)過程一般被看做一種語句結(jié)構(gòu),函數(shù)通常是表達(dá)式的一部分;(4)過程可以單獨(dú)存在,而函數(shù)通常作為語句的一部分被調(diào)用;(5)可重載; (6)與主電路同一級別,調(diào)用一次就生成一個電路塊。1、函數(shù)(FUNCTION) 2、重載函數(shù) 3、過程(PROCEDURE) 4、重載過程黑龍江大學(xué)電子工程學(xué)院1、函數(shù)(FUNCTION)VHDL中有多種函數(shù)形式,如在庫中的庫函數(shù)和用戶自定義的函數(shù)等。格式如下,分為函數(shù)首和函數(shù)體兩部分,程序包中的函數(shù)有函數(shù)首 FUNCTION 函數(shù)名(參數(shù)表)
3、RETURN 數(shù)據(jù)類型;-函數(shù)首 FUNCTION 函數(shù)名(參數(shù)表) RETURN 數(shù)據(jù)類型 IS 函數(shù)體開始 說明部分; BEGIN 順序語句; END FUNCTION 函數(shù)名;(1)、函數(shù)首 函數(shù)通常放在程序包中,此時函數(shù)首不能省函數(shù)首是由函數(shù)名、參數(shù)表和返回值的數(shù)據(jù)類型三部分組成的。函數(shù)名可以是標(biāo)識符也可以是重載運(yùn)算符(需要加雙引號)。函數(shù)名后面的參數(shù)表是函數(shù)的輸入值,可以信號或常量,常量可不說明函數(shù)RETURN 后面的是返回值的數(shù)據(jù)類型。例如:FUNCTION max(a,b:IN STD_LOGIC) RETURN STD_LOGIC; FUNCTION func1(a,b,c:R
4、EAL) RETURN REAL;-參量為常數(shù)FUNCTION “*”(a,b:INTERGER) RETURN INTERGER;-操作符函數(shù)FUNCTION as2(SIGNAL in1,in2:REAL) RETURN REAL;-信號型參數(shù) 黑龍江大學(xué)電子工程學(xué)院(2)、 函數(shù)體函數(shù)體的說明部分用于對函數(shù)中使用的數(shù)據(jù)類型、常量、變量進(jìn)行說明;順序語句部分用來完成規(guī)定的算法或轉(zhuǎn)換。LIBRARY IEEE;-例5-33函數(shù)的應(yīng)用USE IEEE.STD_LOGIC_1164.ALL;ENTITY func IS PORT(a:IN STD_LOGIC_VECTOR(0 TO 2); m:
5、OUT STD_LOGIC_VECTOR(0 TO 2);END ENTITY func;ARCHITECTURE demo OF func IS FUNCTION sam(x,y,z:STD_LOGIC) RETURN STD_LOGIC IS-函數(shù) BEGIN -函數(shù)說明部分省略,從BEGIN開始為順序語句部分 RETURN (x AND y )OR z; END FUNCTION sam; -函數(shù)結(jié)束 函數(shù)定義在結(jié)構(gòu)體的說明部分BEGIN -結(jié)構(gòu)體的功能描述開始 PROCESS(a) -結(jié)構(gòu)體中定義一個進(jìn)程 BEGIN -進(jìn)程開始 后面為順序語句 m(0)=sam(a(0),a(1),a
6、(2); -進(jìn)程中調(diào)用了函數(shù) m(1)=sam(a(2),a(0),a(1); m(2)r THEN RETURN l; ELSE RETURN r; END IF; END; FUNCTION “+”(l:STD_LOGIC_VECTOR; r:INTEGER) RETURN STD_LOGIC_VECTOR IS VARIBLE result:STD_LOGIC_VECTOR(lRANGE); BEGIN result:= UNSGNED(l)+r; RETURN STD_LOGIC_VECTOR(result); end; :-其他重載函數(shù)END STD_LOGIC_UNSIGNED;黑
7、龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; -例5-35重載函數(shù)使用USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cnt4 ISPORT(clk: IN STD_LOGIC; q:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0);END cnt4ARCHITECTURE one OF cnt4 ISBEGIN PROCESS(clk) BEGIN IF (clkEVENT AND clk=1) THEN IF q=15 THEN 判左右等,調(diào)用重載函數(shù)和整形比較 q=“0000”;
8、 ELSE q=q+1;- 調(diào)用重載函數(shù)”+”完成邏輯矢量和整形相加 END IF; END IF; END PROCESS;END ARCHITECTURE; 黑龍江大學(xué)電子工程學(xué)院3、過程(PROCEDURE)過程和函數(shù)是子程序的兩種形式,過程也分為過程首和過程體兩部分,格式: PROCEDURE 過程名(參數(shù)表);-過程首 PROCEDURE 過程名(參數(shù)表) IS -過程體開始 說明部分; BEGIN 順序語句; END PROCEDURE 過程名;(1)、過程首 函數(shù)通常放在程序包中,此時過程首不能省過程首是由過程名和參數(shù)表組成。例如:PROCEDURE pro1(VARIABLE
9、a,b:INOUT REAL); PROCEDURE pro2(CONSTANT a1:IN INTEGER; VARIABLE b1:OUT INTEGER) ;PROCEDURE pro3(SIGNAL sig:INOUT BIT);信號類型有IN、OUT、INOUT三種,如果沒有給數(shù)數(shù)據(jù)對象的類型 IN對應(yīng)常量,INOUT和OUT對應(yīng)目標(biāo)為變量。黑龍江大學(xué)電子工程學(xué)院(2)、 過程體過程體是順序語句,調(diào)用時啟動過程體中順序語句的執(zhí)行,過程中可以使用順序語句中的所有語句,包括WAIT語句,如果過程在進(jìn)程中,那么當(dāng)進(jìn)程有敏感變量時,過程中也不能使用WAIT語句。例5-36過程使用示例1 PR
10、OCEDURE shift( din,s:IN STD_LOGIC_VECTOR; SIGNAL dout: OUT STD_LOGIC_VECTOR) ISVARIABLE sc: INTEGER;BEGIN sc:= CONV_INTEGER(s); FOR i IN dinRANGE LOOP IF(sc+i=dinRIGHT) THEN dout(sc+i) =din(i); -將din數(shù)據(jù)右移sc位賦給dout ELSE dout(sc+i-dinLENGTH) v1;-當(dāng)條件滿足時候,跳出循環(huán) END LOOP q1; ASSERT(v2v1); -如果v2b) THEN RETU
11、RN a;ELSE RETURN B;END IF; END max;END my_pkg;由于程序包也是用VHDL語言編寫的,所以其源程序也需要以.vhd文件類型保存,my_pkg的源程序名為my_pkg.vhd。為了使用my_pkg程序包中定義內(nèi)容,在設(shè)計實(shí)體的開始,需要將其打開,打開my_pkg程序包的語句是USE work. my_pkg.ALL; 常用的程序包有 STD_LOGIC_1164, STD_LOGIC_ARITH, STD_LOGIC_UNSIGNED, STD_LOGIC_SIGNED程序包黑龍江大學(xué)電子工程學(xué)院3、配置(CONFIGURATION)配置語句用來描述層與
12、層之間的連接關(guān)系以及實(shí)體與結(jié)構(gòu)之間的連接關(guān)系。設(shè)計者可以使用這些語句來選擇不同的構(gòu)造體,使其與設(shè)計實(shí)體相對應(yīng)。在仿真某一實(shí)體時,可以使用配置來選擇不同的構(gòu)造體,進(jìn)行性能對比試驗(yàn),以得到性能最佳的構(gòu)造體。 語法格式如下: CONFIGURATION 配置名 OF 實(shí)體名 IS 語句說明; END 配置名;配置主要為頂層設(shè)計實(shí)體指定結(jié)構(gòu)體,或?yàn)閰⑴c例化的元件指定所希望的結(jié)構(gòu)體,以層次方式來對元件例化做結(jié)構(gòu)配置。I、在設(shè)計實(shí)體中選配使用結(jié)構(gòu)體的配置格式簡單配置的應(yīng)用CONFIGURATION 配置名 OF 實(shí)體名 IS FOR 選配結(jié)構(gòu)體名 END FOR; END 配置名; 黑龍江大學(xué)電子工程學(xué)院
13、例5-39配置的簡單應(yīng)用LIBRARY IEEE; -選擇使用結(jié)構(gòu)體USE IEEE.STD_LOGIC_1164.ALL;ENTITY nand1 ISPORT(a:IN STD_LOGIC; b:IN STD_LOGIC; c:OUT STD_LOGIC );END ENTITY nand1;ARCHITECTURE one OF nand1 ISBEGINc=NOT(a AND b);END ARCHITECTURE one;ARCHITECTURE two OF nand1 ISBEGINc=s,b=q,c=q); u2:nand1 PORT MAP(a=q,b=r,c=qf);END
14、 ARCHITECTURE rsf;CONFIGURATION sel OF rs1 IS FOR rsf -使用rsf結(jié)構(gòu)體 FOR u1,u2:nand1 USE CONFIGURATION WORK.first; END FOR; -使用first庫中元件nand1來例化生成電路u1,u2 END FOR;END sel; 黑龍江大學(xué)電子工程學(xué)院第五章 VHDL設(shè)計進(jìn)階本章對VHDL的語言規(guī)則和語句類型做系統(tǒng)的論述。一、 VHDL語言要素 二、VHDL順序語句三、VHDL并行語句四、子程序五、庫、程序包及其配置六、VHDL描述風(fēng)格七、常用元件設(shè)計舉例八、VHDL與原理圖混合設(shè)計方式黑龍江
15、大學(xué)電子工程學(xué)院六、VHDL描述風(fēng)格VHDL程序中對于相同的邏輯功能,可以在結(jié)構(gòu)體的執(zhí)行語句中使用不同的語句表達(dá)方式,這種不同的描述方法稱為描述風(fēng)格。共分為三種描述風(fēng)格,即行為描述、數(shù)據(jù)流描述和結(jié)構(gòu)描述。 1、行為描述 2、數(shù)據(jù)流描述 3、結(jié)構(gòu)描述 黑龍江大學(xué)電子工程學(xué)院1、行為描述數(shù)據(jù)流描述 行為描述只表示輸入與輸出間的轉(zhuǎn)換行為,不包含任何的結(jié)構(gòu)信息。行為描述主要使用函數(shù)、過程和進(jìn)程語句,以算法形式描述數(shù)據(jù)的變換與傳送.優(yōu)點(diǎn):只需要清楚輸入輸出的行為,而不需要花費(fèi)精力關(guān)注設(shè)計功能的門級實(shí)現(xiàn),使自頂向下的設(shè)計成為可能。例5-41 一位全加器的行為描述 LIBRARY IEEE; USE IEE
16、E.STD_LOGIC_1164.ALL; ENTITY onebitadder IS PORT( x,y,cin:IN STD_LOGIC; sum,count:OUT STD_LOGIC); END onebitadder; ARCHITECTURE behave OF onebitadder IS BEGIN PROCESS(x,y,cin) 黑龍江大學(xué)電子工程學(xué)院 PROCESS(x,y,cin) VARIABLE n: INTEGER; BEGIN n:=0; IF(x=1) THEN n:= n+1; END IF; IF(y=1) THEN n:=n+1; END IF; IF(
17、cin=1)THEN n:=n+1;-輸入求和 END IF; IF(n=0) THEN sum=0; count=0; ELSIF(n=1) THEN sum=1;count=0; ELSIF(n=2) THEN sum=0 ;count=1; ELSE sum=1; count=1; END IF; END PROCESS; END behave;真值表x y cin sum cout0 0 0 0 00 0 1 1 00 1 0 1 00 1 1 0 11 0 0 1 01 0 1 0 11 1 0 0 11 1 1 1 1 黑龍江大學(xué)電子工程學(xué)院2、數(shù)據(jù)流描述 數(shù)據(jù)流描述方式(RTL描
18、述方式),主要使用并行的型號賦值語句,即顯示的表示了該設(shè)計單元的行為,又隱含了該設(shè)計單元的結(jié)構(gòu)。例5-42 一位全加器的數(shù)據(jù)流描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY onebitadder1 IS PORT( x,y,cin:IN BIT; sum,count:OUT BIT); END onebitadder1; ARCHITECTURE dataflow OF onebitadder1 IS BEGIN sum= x XOR y XOR cin; count=(a AND y)OR(x AND cin)OR(y AND ci
19、n); END dataflow;邏輯方程:count=xy+ycin+cinxsum=x y cin黑龍江大學(xué)電子工程學(xué)院2、結(jié)構(gòu)描述 結(jié)構(gòu)描述是描述該設(shè)計單元的硬件結(jié)構(gòu),即硬件是如何構(gòu)成的。主要使用元件例化和配置語句來描述元件的類型和元件之間的互聯(lián)關(guān)系。例5-43 一位全加器的結(jié)構(gòu)描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY onebitadder2 IS PORT( x,y,cin:IN BIT; sum,count:OUT BIT); END onebitadder2; ARCHITECTURE structure OF on
20、ebitadder2 IS COMPONENT xor3-三輸入異或門 PORT(a,b,c:IN BIT; o:OUT BIT); END COMPONENT; COMPONENT and-兩輸入與門 PORT(a,b:IN BIT; o:OUT BIT); END COMPONENT; 黑龍江大學(xué)電子工程學(xué)院 COMPONENT or3 三輸入或門 PORT(a,b,c:IN BIT; o: OUT BIT); END COMPONENT; SIGNAL s1,s2,s3:BIT; BEGIN G1:xor3 PORT MAP(x,y,cin,sum); G2:and2 PORT MAP(
21、x,y,s1); G3:and2 PORT MAP(x,cin,s2); G4:and2 PORT MAP(y,cin,s3); G5:or3 PORT MAP(s1,s2,s3,cout); END structure;黑龍江大學(xué)電子工程學(xué)院第五章 VHDL設(shè)計進(jìn)階本章對VHDL的語言規(guī)則和語句類型做系統(tǒng)的論述。一、 VHDL語言要素 二、VHDL順序語句三、VHDL并行語句四、子程序五、庫、程序包及其配置六、VHDL描述風(fēng)格七、常用元件設(shè)計舉例八、VHDL與原理圖混合設(shè)計方式黑龍江大學(xué)電子工程學(xué)院七、常用元件設(shè)計舉例本小節(jié)通過一些常用基本邏輯電路的設(shè)計,介紹VHDL語言描述基本邏輯電路的方
22、法。 1、組合邏輯電路設(shè)計 2、時序邏輯電路設(shè)計 黑龍江大學(xué)電子工程學(xué)院1、組合邏輯電路設(shè)計I、基本門電路例5-44 二輸入與門LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY andgate IS PORT( a,b:IN STD_LOGIC; c:OUT STD_LOGIC);END andgate;ARCHITECTURE and_2 OF andgate ISBEGIN c=a AND b;END and_2; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; II、 8-3線優(yōu)先編碼器 例5-45 方法1USE IEEE.STD_LOGI
23、C_1164.ALL; -使用條件賦值語句實(shí)現(xiàn)ENTITY encoder IS PORT( a,b,c,d,e,f,g,h:IN STD_LOGIC; out0,out1,out2:OUT STD_LOGIC);END encoder;ARCHITECTURE behave1 OF encoder IS -條件賦值方式SIGNAL outvec:STD_LOGIC_VECTOR(2 WOWNTO 0);BEGIN outvec(2 DOWNTO 0)=“111”WHEN h=1 ELSE “110”WHEN g=1 ELSE “101”WHEN f=1 ELSE “100”WHEN e=1
24、ELSE “011”WHEN d=1 ELSE “010”WHEN c=1 ELSE “001”WHEN b=1 ELSE “000”WHEN a=1 ELSE“000”; out0 = outvec(0); out1 = outvec(1); out2 0 AND inputs(i)/=1 LOOP找到第一個inputs(i)=1 i:=i-1; END LOOP; (out2,out1,out0)=CONV_STD_LOGIC_VECTOR(i,3); END PROCESS;-將整形i轉(zhuǎn)化為3位標(biāo)準(zhǔn)邏輯矢量類型賦給端口END behave2; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEE
25、E; - 8-3線優(yōu)先編碼器 例5-45 方法3USE IEEE.STD_LOGIC_1164.ALL; -使用IF語句實(shí)現(xiàn)ENTITY encoder IS PORT( in1:IN STD_LOGIC_VECTOR(7 DOWNTO 0); out1:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END encoder;ARCHITECTURE behave3 OF encoder IS BEGINPROCESS(in1)BEGIN IF in1(7)=1 THEN out1=“111”;-注意優(yōu)先級 ELSIF in1(6)=1 THEN out1=“110”; EL
26、SIF in1(5)=1 THEN out1=“101”; ELSIF in1(4)=1 THEN out1=“100”; ELSIF in1(3)=1 THEN out1=“011”; ELSIF in1(2)=1 THEN out1=“010”; ELSIF in1(1)=1 THEN out1=“001”; ELSIF in1(0)=1 THEN out1=“000”; ELSE out1=“XXX”; END IF; END PROCESS;END behave3; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; III、 7段顯示譯碼器 例5-46USE IEEE.STD_LOGI
27、C_1164.ALL; -使用條件賦值語句實(shí)現(xiàn)ENTITY decoder IS PORT( d:IN STD_LOGIC_VECTOR(3 DOWNTO 0); x:OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END decoder;ARCHITECTURE a OF decoder IS -選擇信號賦值BEGIN WITH d SELECT x=“1111110”WHEN “0000”,-7段共陽數(shù)碼管 “0110000”WHEN “0001”, “1101101”WHEN “0010”, “1111001”WHEN “0011”, “0110011”WHEN “01
28、00”, “1011011”WHEN “0101”, “1011111”WHEN “0110”, “1110000”WHEN “0111”, “1111111”WHEN “1000”, “1111011”WHEN “1001”, “0000000”WHEN OTHERS; END a; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; IV、多路分配器 例5-47USE IEEE.STD_LOGIC_1164.ALL; -使用條件賦值語句實(shí)現(xiàn)ENTITY dmux1to8 IS PORT( data,enable:IN STD_LOGIC; s:IN STD_LOGIC_VECTOR(2 DO
29、WNTO 0) y0,y1,y2,y3,y4,y5,y6,y7: OUT STD_LOGIC);END dmux1to8;ARCHITECTURE a OF dmux1to8 IS BEGIN PROCESS( enable, s, data ) BEGIN IF enable=0 THEN y0=1;y1=1;y2=1;y3=1; y4=1;y5=1;y6=1;y7=1; -輸出負(fù)邏輯 ELSIF s=“000” THEN y0=NOT(data); ELSIF s=“001” THEN y1=NOT(data); ELSIF s=“010” THEN y2=NOT(data); ELSIF
30、 s=“011” THEN y3=NOT(data); ELSIF s=“100” THEN y4=NOT(data); ELSIF s=“101” THEN y5=NOT(data); ELSIF s=“110” THEN y6=NOT(data); ELSIF s=“111” THEN y7=NOT(data); -s不同時候,通道不同 END IF; END PROCESS;END a; 黑龍江大學(xué)電子工程學(xué)院V、多位加法運(yùn)算 例5-48LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;E
31、NTITY adder IS PORT( a,b:IN STD_LOGIC_VECTOR(7 DOWNTO 0); cin:IN STD_LOGIC; s: OUT STD_LOGIC_VECTOR(8DOWNTO 0);END adder;ARCHITECTURE behave OF adder IS BEGIN s= (0&a)+(0&b)+(“00000000”&cin);-都通過并置擴(kuò)展為9位寬END behave; 在進(jìn)行加法的時候?qū),和b的高位都擴(kuò)展了一個位0,在進(jìn)位位cin前面擴(kuò)展了7個位0,也就是都變成了9位,然后進(jìn)行加法操作的。黑龍江大學(xué)電子工程學(xué)院
32、VI、三態(tài)門電路及總線緩沖器 例5-49 三態(tài)門電路LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tristate IS PORT( en,din:IN STD_LOGIC; dout:OUT STD_LOGIC); END tristate;ARCHITECTURE tri OF tristate IS BEGIN PROCESS(en,din) BEGIN IF en=1 THEN dout=din; ELSE dout=Z; END IF; END PROCESS;END tri; 74LVC1G125黑龍江大學(xué)電子工程學(xué)院VI、三態(tài)
33、門及總線緩沖器 例5-50 8位單向總線緩沖器LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY tr1_buf8 IS PORT( din:IN STD_LOGIC_VECTOR(7 DOWNTO 0); dout:OUT STD_LOGIC_VECTOR(7 DOWNTO 0); en: IN STD_LOGIC); END tr1_buf8;ARCHITECTURE behave OF tr1_buf8 IS BEGIN PROCESS(en,din) BEGIN IF (en=1) THEN dout=din; ELSE dout=“ZZ
34、ZZZZZZ”; END IF; END PROCESS;END behave; 黑龍江大學(xué)電子工程學(xué)院VI、三態(tài)門及總線緩沖器 例5-51 8位雙向總線緩沖器LIBRARY IEEE; -74lS245USE IEEE.STD_LOGIC_1164.ALL; ENTITY bidir IS PORT( a,b:INOUT STD_LOGIC_VECTOR(7 DOWNTO 0); noe,dir: IN STD_LOGIC); END bidir;ARCHITECTURE bi OF bidir ISSIGNAL aout,bout:STD_LOGIC_VECTOR (7 DOWNTO 0)
35、; BEGIN PROCESS(a,en,dir) BEGIN IF (noe=0) AND (dir=1)THEN bout=a; ELSE bout=“ZZZZZZZZ”; END IF; b=bout; END PROCESS; 黑龍江大學(xué)電子工程學(xué)院 PROCESS(b,en,dir) BEGIN IF (noe=0) AND (dir=0)THEN aout=b; ELSE aout=“ZZZZZZZZ”; END IF; a=aout; END PROCESS;END bi; 黑龍江大學(xué)電子工程學(xué)院2、時序邏輯電路設(shè)計LIBRARY IEEE; - I、JK觸發(fā)器 例5-52USE
36、 IEEE.STD_LOGIC_1164.ALL;ENTITY jkff IS PORT( clk,j,k:IN STD_LOGIC; q,nq:OUT STD_LOGIC); j=1,k=0 輸出Q=1END jkff; j=0,k=1 輸出Q=0ARCHITECTURE behave OF jkff IS j=1,k=1 輸出Q=Not(Q) SIGNAL q_s,nq_s:STD_LOGIC; j=0,k=0 輸出Q不變BEGIN PROCESS(clk,j,k) BEGIN IF(clkEVENT AND clk=1) THEN if (j=0)AND(k=1) THEN q_s=0;
37、 nq_s=1; ELSIF(j=1)AND (k=0) THEN q_s=1;nq_s=0; ELSIF(j=1)AND(k=1) THEN q_s=NOT q_s;nq_s=NOT nq_s; END IF; END IF; q=q_s; nq=nq_s; END PROCESS;END behave; 黑龍江大學(xué)電子工程學(xué)院II、8位鎖存器 例5-53LIBRARY IEEE; -74LS273 USE IEEE.STD_LOGIC_1164.ALL;ENTITY reg_8 IS PORT( d:IN STD_LOGIC_VECTOR(0 TO 7); clk :IN STD_LOGI
38、C; q:OUT STD_LOGIC_VECTOR(0 TO 7);END reg_8;ARCHITECTURE behave OF reg_8 ISBEGIN PROCESS(clk) BEGIN IF(clkEVENT AND clk=1) THEN 時鐘邊沿鎖存 q=d; END IF; END PROCESS;END behave; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; III、異步復(fù)位和置位、同步預(yù)置的4位計數(shù)器 例5-54USE IEEE.STD_LOGIC_1164.ALL; -使用位矢量方式USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.
39、STD_LOGIC_UNSIGNED.ALL;ENTITY cnt41 IS PORT( pst,clk,enable ,rst,load:IN STD_LOGIC; date :IN STD_LOGIC_VECTOR(3 DOWNTO 0); cnt: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0) );END cnt41;ARCHITECTURE behave OF cnt41 ISBEGIN count: PROCESS(rst,clk,pst) BEGIN IF(rst=1) THEN cnt0); -異步清零 ELSIF pst=1 THEN cnt1); -
40、異步置1 ELSIF (clkEVENT AND clk=1) THEN IF load=1 THEN cnt=date; -同步加載 ELSIF enable =1 THEN cnt=cnt+1; -同步計數(shù)END IF; END IF; END PROCESS count;END behave; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; III、異步復(fù)位和置位、同步預(yù)置的4位計數(shù)器 例5-54USE IEEE.STD_LOGIC_1164.ALL; -使用整數(shù)形式實(shí)現(xiàn)ENTITY cntm41 IS PORT( pst,clk,enable ,rst,load:IN BIT; da
41、ta :IN INTEGER RANGE 0 TO 15; q: OUT INTEGER RANGE 0 TO 15 );END cntm41;ARCHITECTURE behave OF cntm41 ISBEGIN PROCESS(rst,clk,pst) VARIABLE cnt: INTEGER RANGE 0 TO 15; BEGIN IF(rst=1) THEN cnt:= 0; ELSIF pst=1 THEN cnt:=15; ELSIF(clkEVENT AND clk=1) THEN IF load =1 THEN cnt:=data; -同步加載 ELSIF enable
42、 =1 THEN cnt :=cnt+1; -同步計數(shù) END IF; END IF; q=cnt; END PROCESS;END behave; -教材寫的不對,進(jìn)行了修正黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; IV、同步計數(shù)器 例5-55USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY cntm60 IS PORT( ci:IN STD_LOGIC; -1增加,0不變 nreset :IN STD_LOGIC; -異步清零端 load:IN STD_LOGIC;-并行加載控制 d: IN STD
43、_LOGIC_VECTOR(7 DOWNTO 0);-輸入 clk:IN STD_LOGIC; co:OUT STD_LOGIC;-溢出信號 qh: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); ql: BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0););END cntm60;ARCHITECTURE behave OF cntm60 ISBEGIN co=1 WHEN(qh=“0101” AND ql=“1001” AND ci=1) ELSE 0; -計數(shù)溢出輸出一個時鐘周期高電平 59秒時候輸出進(jìn)位 黑龍江大學(xué)電子工程學(xué)院PROCESS
44、(clk,nreset) BEGIN IF(nreset=0) THEN qh=“0000”; ql=“0000”;-異步清零 ELSIF ( clkEVENT and clk =1) THEN IF(load =1) THEN qh=d (7 DOWNTO 4); ql=d(3 DOWNTO 0); -同步預(yù)置 ELSIF (ci =1) THEN -模60的實(shí)現(xiàn) IF(ql = 9) THEN q=“0000”; -如低4位為9,則低位清零 IF (qh = 5 ) THEN qh=“0000”; -若高位為5,則高位清零 ELSE qh=qh+1; -若高位不是5,則高位加1 END I
45、F; ELSE ql=ql+1; -如低位不等于9,則低位加1 END IF; END IF; END IF; END PROCESS;END behave; 黑龍江大學(xué)電子工程學(xué)院LIBRARY IEEE; V、序列信號發(fā)生器 例5-56USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_ARITH.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY senqgen IS PORT( clk,clr,clock:IN STD_LOGIC; zo :OUT STD_LOGIC); END senqgen;ARCHITE
46、CTURE behave OF senqgen IS SIGNAL count:STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL z:STD_LOGIC:=0;BEGIN PROCESS(clk,clr) 進(jìn)程1,實(shí)現(xiàn)每個脈沖同步計數(shù)加1 BEGIN IF(clr=1) THEN count=“000”; ELSE IF(clk=1 AND clkEVENT) THEN IF(count=“111”) THEN count =“000”; ELSE count zzzzzzzzz=0; END CASE; END PROCESS; PROCESS(clock,z) 進(jìn)程3,同步輸出進(jìn)程 BEGIN IF(clockEVENT AND clock=1) THEN z0=z; END IF; END PROCESS;END behave; 黑龍江大學(xué)電子工程學(xué)院第五章 VHDL設(shè)計進(jìn)階本章對VHDL的語言規(guī)則和語句類型做系統(tǒng)的論述。一、 VHDL語言要素 二、VHDL順序語句三、VHDL并行語句四、子程序五、庫、程序包及其配置六、VHDL描述風(fēng)格七、常用元件設(shè)計舉例八、VHDL與原理圖混合設(shè)
溫馨提示
- 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)部門薪資管理辦法
- 自制山藥種植管理辦法
- 自營渠道賬單管理辦法
- 藥品運(yùn)輸公司管理辦法
- 營業(yè)場所鑰匙管理辦法
- 營口維修資金管理辦法
- 西寧住宅庫存管理辦法
- 西安醫(yī)院統(tǒng)籌管理辦法
- 西瓜視頻續(xù)費(fèi)管理辦法
- 西藏游客住宿管理辦法
- 建筑施工安全生產(chǎn)治本攻堅三年行動方案(2024-2026年)
- 萬科物業(yè)服務(wù)工作手冊
- 共享工作室租賃合同
- 無人機(jī)航空測繪與后期制作 課件 第二十二課時 ContextCapture傾斜攝影測量數(shù)據(jù)處理流程-空三加密
- 三板大斧子小品《反詐銀行》臺詞劇本
- 新部編版語文1-6年級2460個生字表(帶拼音)
- 溧陽市安息堂規(guī)劃建設(shè)方案
- 學(xué)校準(zhǔn)軍事化管理投標(biāo)方案(技術(shù)方案)
- 中國成人ICU鎮(zhèn)痛和鎮(zhèn)靜治療指南
- 中華民族共同體概論課件專家版3第三講 文明初現(xiàn)與中華民族起源(史前時期)
- 2024年國家電網(wǎng)招聘之金融類題庫【易錯題】
評論
0/150
提交評論