版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、3.1 4位加法計(jì)數(shù)器的位加法計(jì)數(shù)器的VHDL描述描述3.1.1 4位加法計(jì)數(shù)器位加法計(jì)數(shù)器【例【例3-1】ENTITY CNT4 IS PORT ( CLK : IN BIT ; Q : BUFFER INTEGER RANGE 15 DOWNTO 0 ) ; END ; ARCHITECTURE bhv OF CNT4 IS BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q = Q + 1 ; END IF; END PROCESS ;END bhv;3.1.2 整數(shù)、自然數(shù)和正整數(shù)數(shù)據(jù)類型整數(shù)、自然數(shù)和正整數(shù)數(shù)據(jù)類型整數(shù)常量
2、的書寫方式示例如下:整數(shù)常量的書寫方式示例如下:1 1 十進(jìn)制整數(shù)十進(jìn)制整數(shù)0 0 十進(jìn)制整數(shù)十進(jìn)制整數(shù)3535 十進(jìn)制整數(shù)十進(jìn)制整數(shù)1010E3E3 十進(jìn)制整數(shù)十進(jìn)制整數(shù)16#16#D9#D9# 十六進(jìn)制整數(shù)十六進(jìn)制整數(shù)8#720#8#720# 八進(jìn)制整數(shù)八進(jìn)制整數(shù) 2#11010010# 2#11010010# 二進(jìn)制整數(shù)二進(jìn)制整數(shù)3.1 4位加法計(jì)數(shù)器的位加法計(jì)數(shù)器的VHDL描述描述3.1.3 4位加法計(jì)數(shù)器的另一種表達(dá)方式位加法計(jì)數(shù)器的另一種表達(dá)方式【例【例3-2】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; USE IEEE.STD_LO
3、GIC_UNSIGNED.ALL ; ENTITY CNT4 IS PORT ( CLK : IN STD_LOGIC ; Q : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ) ; END ; ARCHITECTURE bhv OF CNT4 IS SIGNAL Q1 : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN Q1 = Q1 + 1 ; END IF; Q XOTHERS=X) 為了簡化表達(dá)才使用短語為了簡化表達(dá)才使用短語“(“(OTHER
4、S=X)”O(jiān)THERS=X)”,這是一個(gè)省略賦這是一個(gè)省略賦值操作符,它可以在較多位的位矢量賦值中作省略化的賦值,值操作符,它可以在較多位的位矢量賦值中作省略化的賦值,如以下語句:如以下語句: SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT10 IS
5、PORT (CLK,RST,EN : IN STD_LOGIC; CQ : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT10;ARCHITECTURE behav OF CNT10 ISBEGIN PROCESS(CLK, RST, EN) VARIABLE CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF RST = 1 THEN CQI := (OTHERS =0) ; -計(jì)數(shù)器復(fù)位計(jì)數(shù)器復(fù)位 ELSIF CLKEVENT AND CLK=1 THEN -檢測時(shí)鐘上
6、升沿檢測時(shí)鐘上升沿 IF EN = 1 THEN -檢測是否允許計(jì)數(shù)檢測是否允許計(jì)數(shù) IF CQI 0);-大于大于9,計(jì)數(shù)值清零,計(jì)數(shù)值清零 END IF; END IF; END IF; IF CQI = 1001 THEN COUT = 1; -計(jì)數(shù)大于計(jì)數(shù)大于9,輸出進(jìn)位信號,輸出進(jìn)位信號 ELSE COUT = 0; END IF; CQ = CQI; -將計(jì)數(shù)值向端口輸出將計(jì)數(shù)值向端口輸出 END PROCESS;END behav;3.2.2 帶有復(fù)位和時(shí)鐘使能的帶有復(fù)位和時(shí)鐘使能的10進(jìn)制計(jì)數(shù)器進(jìn)制計(jì)數(shù)器【例【例3-3】 If 語句的嵌套語句的嵌套 另一個(gè)另一個(gè) If 語句語句
7、圖圖3-3 例例3-3的的RTL電路電路圖圖3-4 例例3-3的工作時(shí)序的工作時(shí)序3.2.3 帶有并行置位的移位寄存器帶有并行置位的移位寄存器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHFRT IS - 8位右移寄存器位右移寄存器 PORT ( CLK,LOAD : IN STD_LOGIC; DIN : IN STD_LOGIC_VECTOR(7 DOWNTO 0); QB : OUT STD_LOGIC );END SHFRT;ARCHITECTURE behav OF SHFRT IS BEGIN PROCESS (CLK, LOA
8、D) VARIABLE REG8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF LOAD = 1 THEN - 裝載新數(shù)據(jù)裝載新數(shù)據(jù) REG8 := DIN; ELSE REG8(6 DOWNTO 0) := REG8(7 DOWNTO 1); END IF; END IF; QB = REG8(0); END PROCESS; - 輸出最低位輸出最低位END behav;【例3-4】3.2.3 帶有并行置位的移位寄存器帶有并行置位的移位寄存器圖圖3-5 例例3-4的工作時(shí)序的工作時(shí)序(1 1)在第)
9、在第一個(gè)時(shí)鐘到來時(shí),一個(gè)時(shí)鐘到來時(shí),LOADLOAD恰為高電平恰為高電平(2 2)第二個(gè)時(shí)鐘,以及以后的時(shí)鐘信號都是移位時(shí)鐘)第二個(gè)時(shí)鐘,以及以后的時(shí)鐘信號都是移位時(shí)鐘(3 3)第二)第二個(gè)時(shí)鐘后,個(gè)時(shí)鐘后,QBQB輸出了右移出的第輸出了右移出的第2 2個(gè)位個(gè)位116.3 數(shù)據(jù)對象數(shù)據(jù)對象DATA OBJECTS6.3.1 常數(shù)(常數(shù)(CONSTANT)常數(shù)定義的一般表述:常數(shù)定義的一般表述: CONSTANT 常數(shù)名:數(shù)據(jù)類型常數(shù)名:數(shù)據(jù)類型 := 表達(dá)式表達(dá)式 ;6.3.2 變量(變量(VARIABLE)定義變量的一般表述:定義變量的一般表述: VARIABLE 變量名變量名 : 數(shù)據(jù)類型
10、數(shù)據(jù)類型 := 初始值初始值 ; 6.3.3 信號(信號(SIGNAL)定義格式:定義格式: SIGNAL 信號名:信號名: 數(shù)據(jù)類型數(shù)據(jù)類型 := 初始值初始值 ;3.3 數(shù)據(jù)對象數(shù)據(jù)對象DATA OBJECTS3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程中的信號與變量賦值語句 信號信號SIGNAL 變量變量VARIABLE基本用法基本用法 用于作為電路中的信號連線用于作為電路中的信號連線 用于作為進(jìn)程中局部數(shù)據(jù)存儲(chǔ)單元用于作為進(jìn)程中局部數(shù)據(jù)存儲(chǔ)單元適用范圍適用范圍 在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都能適用在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都能適用只能在所定義的進(jìn)程中使用只能在所定義的進(jìn)程中使用行為特性行為特性
11、 在進(jìn)程的最后才對信號賦值在進(jìn)程的最后才對信號賦值 立即賦值立即賦值表表3-1 信號與變量賦值語句功能的比較信號與變量賦值語句功能的比較3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程中的信號與變量賦值語句【例【例3-5】 LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC); END ; ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ;
12、 BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; Q1 = QQ; END PROCESS ; END ;3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程中的信號與變量賦值語句【例例3-6】 . . . ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK =1 THEN QQ = D1 ; END IF; Q1 = QQ; END PROCESS ; END ;3.3.4 進(jìn)程中的信號與變量賦值語句
13、進(jìn)程中的信號與變量賦值語句【例【例3-7】 SIGNAL in1,in2,e1, . : STD_LOGIC ; . PROCESS(in1,in2, . . .) VARIABLE c1,. . . : STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN IF in1 = 1 THEN . - 第第 1 行行 e1 = 1010 ; - 第第 2 行行 . IF in2 = 0 THEN . . . - 第第 15+n 行行 . c1 := 0011 ; - 第第 30+m 行行 . END IF; END PROCESS;【例【例3-8】 LIBRARY IEEE ;
14、 USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC); END ; ARCHITECTURE bhv OF DFF3 IS SIGNAL A,B : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN A = D1; B = A; Q1 =B; END IF; END PROCESS ; END ;3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程中的信號與變量賦值語句【例【例3-9
15、】LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL ; ENTITY DFF3 IS PORT ( CLK,D1 : IN STD_LOGIC ; Q1 : OUT STD_LOGIC); END ; ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE A,B : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK =1 THEN A:= D1; B := A; Q1 = B; END IF; END PROCESS ; END ;3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程
16、中的信號與變量賦值語句3.3.4 進(jìn)程中的信號與變量賦值語句進(jìn)程中的信號與變量賦值語句DQDQDQDQD1Q1D1Q1CLKCLK圖圖3-6例例3-7的的RTL電路電路 圖圖3-7 例例3-8的的RTL電路電路 【例【例3-10】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 IS PORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 IS signal muxval : integer
17、range 7 downto 0; BEGIN process(i0,i1,i2,i3,a,b) begin muxval = 0;if (a = 1) then muxval = muxval + 1; end if;if (b = 1) then muxval q q q q null; end case; end process; END body_mux4;【例【例3-11】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT S
18、TD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 IS BEGIN process(i0,i1,i2,i3,a,b) variable muxval : integer range 7 downto 0; begin muxval := 0;if (a = 1) then muxval := muxval + 1; end if;if (b = 1) then muxval := muxval + 2; end if; case muxval is when 0 = q q q q null; end case; end process; EN
19、D body_mux4;圖圖3-8 例例3-10的的RTL電路電路例3-11的RTL電路圖圖3-10 例例3-10的錯(cuò)誤的工作時(shí)序的錯(cuò)誤的工作時(shí)序圖圖3-11 例例3-11的正確工作時(shí)序的正確工作時(shí)序3.4 雙向電路和三態(tài)控制電路設(shè)計(jì)雙向電路和三態(tài)控制電路設(shè)計(jì)3.4.1 三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì)【例【例3-12】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tri_s IS port ( enable : IN STD_LOGIC; datain : IN STD_LOGIC_VECTOR(7 DOWNTO 0); dataout : OUT ST
20、D_LOGIC_VECTOR(7 DOWNTO 0);END tri_s ; ARCHITECTURE bhv OF tri_s ISBEGINPROCESS(enable,datain) BEGIN IF enable = 1 THEN dataout = datain ; ELSE dataout =ZZZZZZZZ ; END IF ;END PROCESS;END bhv;圖圖3-12 8位位3態(tài)控制門電路態(tài)控制門電路3.4.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)【例【例3-13】library ieee;use ieee.std_logic_1164.all;entity tri_state
21、isport (control : in std_logic; in1: in std_logic_vector(7 downto 0); q : inout std_logic_vector(7 downto 0); x : out std_logic_vector(7 downto 0);end tri_state;architecture body_tri of tri_state isbeginprocess(control,q,in1)beginif (control = 1) then x = q ; else q = in1; x=ZZZZZZZZ ;end if;end pro
22、cess;end body_tri;3.4.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)圖圖3-13 例例3-13的仿真波形圖的仿真波形圖3.4.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)【例【例3-14】(以上部分同上例)(以上部分同上例)process(control,q,in1)beginif (control=1) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZZZZ;end if;end process;end body_tri;圖圖3-14 例例3-14的仿真波形圖的仿真波形圖3.4.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)圖圖3-15 例例3-13的綜合結(jié)果的綜合結(jié)果3
23、.4.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì)圖圖3-16 例例3-14的綜合結(jié)果的綜合結(jié)果3.4.3 三態(tài)總線電路設(shè)計(jì)三態(tài)總線電路設(shè)計(jì)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tristate2 IS port ( input3, input2, input1, input0 : IN STD_LOGIC_VECTOR (7 DOWNTO 0); enable : IN STD_LOGIC_VECTOR(1 DOWNTO 0); output : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);END tristate2 ; AR
24、CHITECTURE multiple_drivers OF tristate2 IS BEGIN PROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output Z); END IF ; IF enable = 01 THEN output = input2 ; ELSE output Z); END IF ; IF enable = 10 THEN output = input1 ; ELSE output Z); END IF ; IF enab
25、le = 11 THEN output = input0 ; ELSE output Z); END IF ; END PROCESS;END multiple_drivers;【例3-15】3.4.3 三態(tài)總線電路設(shè)計(jì)三態(tài)總線電路設(shè)計(jì)圖圖3-17 例例3-15錯(cuò)誤的綜合結(jié)果錯(cuò)誤的綜合結(jié)果3.4.3 三態(tài)總線電路設(shè)計(jì)三態(tài)總線電路設(shè)計(jì)library ieee;use ieee.std_logic_1164.all;entity tri isport (ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4
26、: in std_logic_vector(7 downto 0); q : out std_logic_vector(7 downto 0) );end tri;architecture body_tri of tri isbegin q Z) ; q Z) ; q Z) ; q Z) ;end body_tri;【例【例3-16】3.4.3 三態(tài)總線三態(tài)總線電路設(shè)計(jì)電路設(shè)計(jì)圖圖3-18 例例3-16正正確的綜合結(jié)果確的綜合結(jié)果3.4.4 順序條件語句順序條件語句IF語句語句(1)IF 條件句條件句 Then 順序語句順序語句 END IF ;(2)IF 條件句條件句 Then 順序語句順序
27、語句 ELSE 順序語句順序語句 END IF ;(3)IF 條件句條件句 Then IF 條件句條件句 Then . END IF END IF (4)IF 條件句條件句 Then 順序語句順序語句 ELSIF (5)順序語句順序語句 IF 條件句條件句 Then . ELSE 順序語句順序語句 END IF3.4.4 順序條件語句順序條件語句IF語句語句【例【例3-17】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY control_stmts IS PORT (a, b, c: IN BOOLEAN; output: OUT BOOL
28、EAN); END control_stmts; ARCHITECTURE example OF control_stmts IS BEGIN PROCESS (a, b, c) VARIABLE n: BOOLEAN; BEGIN IF a THEN n := b; ELSE n := c; END IF; output = n; END PROCESS; END example;3.4.4 順序條件語句順序條件語句IF語句語句【例【例3-18】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT ( din : IN S
29、TD_LOGIC_VECTOR(0 TO 7); output : OUT STD_LOGIC_VECTOR(0 TO 2) );END coder;ARCHITECTURE behav OF coder IS SIGNAL SINT : STD_LOGIC_VECTOR(4 DOWNTO 0); BEGIN PROCESS (din) BEGIN IF (din(7)=0) THEN output = 000 ; ELSIF (din(6)=0) THEN output = 100 ; ELSIF (din(5)=0) THEN output = 010 ; ELSIF (din(4)=0)
30、 THEN output = 110 ; ELSIF (din(3)=0) THEN output = 001 ; ELSIF (din(2)=0) THEN output = 101 ; ELSIF (din(1)=0) THEN output = 011 ; ELSE output = 111 ; END IF ; END PROCESS ; END behav;表表3-2 8線線-3線優(yōu)先編碼器真值表線優(yōu)先編碼器真值表 輸輸 入入 輸輸 出出din0 din1 din2 din3 din4 din5 din6 din7 din0 din1 din2 din3 din4 din5 din6
31、 din7 output0 output1 output2 output0 output1 output2 x x x x x x x 0 0 0 0 x x x x x x x 0 0 0 0 x x x x x x 0 1 1 0 0 x x x x x x 0 1 1 0 0 x x x x x 0 1 1 0 1 0 x x x x x 0 1 1 0 1 0 x x x x 0 1 1 1 1 1 0 x x x x 0 1 1 1 1 1 0 x x x 0 1 1 1 1 0 0 1 x x x 0 1 1 1 1 0 0 1 x x 0 1 1 1 1 1 1 0 1 x x
32、0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1注:表中的注:表中的“x”為任意,類似為任意,類似VHDL中的中的“”值。值。3.4.4 順序條件語句順序條件語句IF語句語句3.5 進(jìn)程語句結(jié)構(gòu)進(jìn)程語句結(jié)構(gòu) 3.5.1 進(jìn)程語句格式進(jìn)程語句格式PROCESS語句結(jié)構(gòu)的一般表達(dá)格式如下語句結(jié)構(gòu)的一般表達(dá)格式如下 進(jìn)程標(biāo)號進(jìn)程標(biāo)號: : PROCESS ( PROCESS ( 敏感信號參數(shù)表敏感信號參數(shù)表 ) ) ISIS 進(jìn)程說明部分進(jìn)
33、程說明部分 BEGINBEGIN 順序描述語句順序描述語句 END PROCESS END PROCESS 進(jìn)程標(biāo)號進(jìn)程標(biāo)號;3.5 進(jìn)程語句結(jié)構(gòu)進(jìn)程語句結(jié)構(gòu) 3.5.2 PROCESS 組成組成PROCESS語句結(jié)構(gòu)語句結(jié)構(gòu)進(jìn)程說明進(jìn)程說明順序描述語句順序描述語句敏感信號參數(shù)表敏感信號參數(shù)表信號賦值語句變量賦值語句進(jìn)程啟動(dòng)語句子程序調(diào)用語句順序描述語句進(jìn)程跳出語句3.5.3 進(jìn)程要點(diǎn)進(jìn)程要點(diǎn)1. 1. PROCESSPROCESS為一無為一無限循環(huán)語句限循環(huán)語句2. 2. PROCESSPROCESS中的順序語句具有明顯的順序中的順序語句具有明顯的順序/ /并行運(yùn)行雙重性并行運(yùn)行雙重性3.
34、3. 進(jìn)程必須由敏感信號的變化來啟動(dòng)進(jìn)程必須由敏感信號的變化來啟動(dòng)4. 4. 進(jìn)程語句本身是并行語句進(jìn)程語句本身是并行語句3.5 進(jìn)程語句結(jié)構(gòu)進(jìn)程語句結(jié)構(gòu) 【例例3-19】ENTITY mul ISPORT (a, b, c, selx, sely : IN BIT; data_out : OUT BIT );END mul;ARCHITECTURE ex OF mul IS SIGNAL temp : BIT; BEGINp_a : PROCESS (a, b, selx) BEGIN IF (selx = 0) THEN temp = a; ELSE temp = b; END IF; E
35、ND PROCESS p_a; p_b: PROCESS(temp, c, sely) BEGIN IF (sely = 0) THEN data_out = temp; ELSE data_out = c; END IF; END PROCESS p_b;END ex;5. 5. 信號是多個(gè)進(jìn)程間的通信線信號是多個(gè)進(jìn)程間的通信線6. 6. 一個(gè)進(jìn)程中只允許描述對應(yīng)于一個(gè)時(shí)鐘信號的同步時(shí)序邏輯一個(gè)進(jìn)程中只允許描述對應(yīng)于一個(gè)時(shí)鐘信號的同步時(shí)序邏輯 圖圖3-19 例例3-19的綜合結(jié)果的綜合結(jié)果3.6 仿真仿真延時(shí)延時(shí)3.6.1 固有延時(shí)固有延時(shí) z = x XOR y AFTER 5ns ; z
36、 = x XOR y ;3.6.2 傳輸延時(shí)傳輸延時(shí) z = TRANSPORT x AFTER 10 ns;3.6.3 仿真仿真 x = 9 ;y = x ;z = x AFTER 5ns ;實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)實(shí)驗(yàn)3-1 含異步清含異步清0和同步時(shí)鐘使能的和同步時(shí)鐘使能的4位加法計(jì)數(shù)器位加法計(jì)數(shù)器(1) 實(shí)驗(yàn)?zāi)康模簩?shí)驗(yàn)?zāi)康模簩W(xué)習(xí)計(jì)數(shù)器的設(shè)計(jì)、仿真和硬件測試,進(jìn)一學(xué)習(xí)計(jì)數(shù)器的設(shè)計(jì)、仿真和硬件測試,進(jìn)一步熟悉步熟悉VHDL設(shè)計(jì)技術(shù)。設(shè)計(jì)技術(shù)。(2)實(shí)驗(yàn)原理:實(shí)驗(yàn)原理:圖圖3-20是一含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并是一含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并行預(yù)置功能的行預(yù)置功能的4位加法計(jì)數(shù)器,例位加法計(jì)數(shù)
37、器,例3-20是其是其VHDL描述。由圖描述。由圖3-20所示,圖中間是所示,圖中間是4位鎖存器;位鎖存器;rst是異步清信號,高電平是異步清信號,高電平有效;有效;clk是鎖存信號;是鎖存信號;D3:0是是4位數(shù)據(jù)輸入端。當(dāng)位數(shù)據(jù)輸入端。當(dāng)ENA為為1時(shí),多路選擇器將加時(shí),多路選擇器將加1器的輸出值加載于鎖存器的數(shù)據(jù)器的輸出值加載于鎖存器的數(shù)據(jù)端;當(dāng)端;當(dāng)ENA為為0時(shí)將時(shí)將“0000”加載于鎖存器。加載于鎖存器。實(shí)實(shí) 驗(yàn)驗(yàn) 圖圖3-20 含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并行預(yù)置功能含計(jì)數(shù)使能、異步復(fù)位和計(jì)數(shù)值并行預(yù)置功能4位加法計(jì)數(shù)器位加法計(jì)數(shù)器實(shí)驗(yàn)實(shí)驗(yàn)3-1 含異步清含異步清0和同步時(shí)鐘使能
38、的和同步時(shí)鐘使能的4位加法計(jì)數(shù)器位加法計(jì)數(shù)器多路選擇器多路選擇器4位鎖存器位鎖存器4位加法器(加位加法器(加1器)器)實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)實(shí)驗(yàn)3-1 含異步清含異步清0和同步時(shí)鐘使能的和同步時(shí)鐘使能的4位加法計(jì)數(shù)器位加法計(jì)數(shù)器(3)實(shí)驗(yàn)內(nèi)容)實(shí)驗(yàn)內(nèi)容1:對例對例3-20進(jìn)行編輯、編譯、綜合、適配、進(jìn)行編輯、編譯、綜合、適配、仿真。說明例仿真。說明例3-20各語句的作用,詳細(xì)描述示例的功能特點(diǎn)各語句的作用,詳細(xì)描述示例的功能特點(diǎn),給出其所有信號的時(shí)序仿真波形,給出其所有信號的時(shí)序仿真波形?!纠纠?-20】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IE
39、EE.STD_LOGIC_UNSIGNED.ALL;ENTITY CNT4B IS PORT (CLK : IN STD_LOGIC; RST : IN STD_LOGIC; ENA : IN STD_LOGIC; OUTY : OUT STD_LOGIC_VECTOR(3 DOWNTO 0); COUT : OUT STD_LOGIC ); END CNT4B;ARCHITECTURE behav OF CNT4B IS SIGNAL CQI : STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN P_REG: PROCESS(CLK, RST, ENA) BEGIN I
40、F RST = 1 THEN CQI = 0000; ELSIF CLKEVENT AND CLK = 1 THEN IF ENA = 1 THEN CQI = CQI + 1; ELSE CQI = 0000; END IF; END IF; OUTY = CQI ; END PROCESS P_REG ; COUT LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL ; END CASE ; END PROCESS ; END ;實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)實(shí)驗(yàn)3-2 7段數(shù)碼顯示譯碼器設(shè)計(jì)段數(shù)碼顯示譯碼器設(shè)計(jì)圖圖3-22
41、計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)實(shí)驗(yàn)3-3 數(shù)控分頻器的設(shè)計(jì)數(shù)控分頻器的設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康模海?shí)驗(yàn)?zāi)康模簩W(xué)習(xí)數(shù)控分頻器的設(shè)計(jì)、分析和測試方法。學(xué)習(xí)數(shù)控分頻器的設(shè)計(jì)、分析和測試方法。(2)實(shí)驗(yàn)原理:)實(shí)驗(yàn)原理:數(shù)控分頻器的功能就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時(shí),數(shù)控分頻器的功能就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時(shí),將對輸入的時(shí)鐘信號有不同的分頻比,例將對輸入的時(shí)鐘信號有不同的分頻比,例3-22的數(shù)控分頻器就是用計(jì)數(shù)值可并的數(shù)控分頻器就是用計(jì)數(shù)值可并行預(yù)置的加法計(jì)數(shù)器設(shè)計(jì)完成的,方法是將計(jì)數(shù)溢出位與預(yù)置數(shù)加載輸入信行預(yù)置的加法計(jì)數(shù)器設(shè)計(jì)完成的,
42、方法是將計(jì)數(shù)溢出位與預(yù)置數(shù)加載輸入信號相接即可。號相接即可。(3)實(shí)驗(yàn)內(nèi)容)實(shí)驗(yàn)內(nèi)容1:根據(jù)圖根據(jù)圖3-23的波形提示,分析例的波形提示,分析例3-22中的各語句功能、中的各語句功能、設(shè)計(jì)原理、邏輯功能,并詳述進(jìn)程設(shè)計(jì)原理、邏輯功能,并詳述進(jìn)程P_REG和和P_DIV的作用。的作用。圖圖3-23 當(dāng)給出不同輸入值當(dāng)給出不同輸入值D時(shí),時(shí),F(xiàn)OUT輸出不同頻率(輸出不同頻率(CLK周期周期=50ns)【例【例3-22】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY PULSE IS P
43、ORT ( CLK : IN STD_LOGIC; D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); FOUT : OUT STD_LOGIC );END;ARCHITECTURE one OF PULSE IS SIGNAL FULL : STD_LOGIC; BEGIN P_REG: PROCESS(CLK) VARIABLE CNT8 : STD_LOGIC_VECTOR(7 DOWNTO 0); BEGIN IF CLKEVENT AND CLK = 1 THEN IF CNT8 = 11111111 THEN CNT8 := D; -當(dāng)當(dāng)CNT8計(jì)數(shù)計(jì)滿時(shí),輸
44、入數(shù)據(jù)計(jì)數(shù)計(jì)滿時(shí),輸入數(shù)據(jù)D被同步預(yù)置給計(jì)數(shù)器被同步預(yù)置給計(jì)數(shù)器CNT8 FULL = 1; -同時(shí)使溢出標(biāo)志信號同時(shí)使溢出標(biāo)志信號FULL輸出為高電平輸出為高電平 ELSE CNT8 := CNT8 + 1; -否則繼續(xù)作加否則繼續(xù)作加1計(jì)數(shù)計(jì)數(shù) FULL = 0; -且輸出溢出標(biāo)志信號且輸出溢出標(biāo)志信號FULL為低電平為低電平 END IF; END IF; END PROCESS P_REG ; P_DIV: PROCESS(FULL) VARIABLE CNT2 : STD_LOGIC; BEGIN IF FULLEVENT AND FULL = 1 THEN CNT2 := NOT
45、CNT2; -如果溢出標(biāo)志信號如果溢出標(biāo)志信號FULL為高電平,為高電平,D觸發(fā)器輸出取反觸發(fā)器輸出取反 IF CNT2 = 1 THEN FOUT = 1; ELSE FOUT = 0; END IF; END IF; END PROCESS P_DIV ;END;實(shí)實(shí) 驗(yàn)驗(yàn) 實(shí)驗(yàn)實(shí)驗(yàn)3-4 4位十進(jìn)制頻率計(jì)位十進(jìn)制頻率計(jì)設(shè)計(jì)設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康模海?shí)驗(yàn)?zāi)康模涸O(shè)計(jì)設(shè)計(jì)4位十進(jìn)制頻率計(jì),學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)方法。位十進(jìn)制頻率計(jì),學(xué)習(xí)較復(fù)雜的數(shù)字系統(tǒng)設(shè)計(jì)方法。(2)實(shí)驗(yàn)原理:)實(shí)驗(yàn)原理:對于頻率測試,根據(jù)頻率的定義和頻率測量的基本原理,對于頻率測試,根據(jù)頻率的定義和頻率測量的基本原理,測定信號的頻率必須有一個(gè)脈寬為測定信號的頻率必須有一個(gè)脈寬為1秒的輸入信號脈沖計(jì)數(shù)允許的信號;秒的輸入信號脈沖計(jì)數(shù)允許的信號;1秒秒計(jì)數(shù)結(jié)束后,計(jì)數(shù)值鎖入鎖存器的鎖存信號并為下一測頻計(jì)數(shù)周期作準(zhǔn)備的計(jì)數(shù)結(jié)束后,計(jì)數(shù)值鎖入鎖存器的鎖存信號并為下一測頻計(jì)數(shù)周期作準(zhǔn)備的計(jì)數(shù)器清計(jì)數(shù)器清0信號。這信號。這3個(gè)信號可以由一個(gè)測頻控制信號發(fā)生器產(chǎn)生,即圖個(gè)信號可以由一個(gè)測頻控制信號發(fā)生器產(chǎn)生,即圖3-24中中的的TESTC
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教師職稱晉升制度
- 企業(yè)員工培訓(xùn)與素質(zhì)拓展訓(xùn)練制度
- 交通宣傳教育材料制作與發(fā)放制度
- 2026年工程監(jiān)理員工程質(zhì)量控制與安全管理試題
- 2026年全科醫(yī)師規(guī)范化培訓(xùn)結(jié)業(yè)考試醫(yī)學(xué)診斷技能題
- 鑄造培訓(xùn)課件范文
- 昆蟲標(biāo)本鑒定服務(wù)合同
- 古對今課件練習(xí)題
- 2026適應(yīng)氣候變化從業(yè)人員指南:自然環(huán)境風(fēng)險(xiǎn)與解決方案-
- 2024年靈璧縣幼兒園教師招教考試備考題庫帶答案解析(奪冠)
- 經(jīng)銷商會(huì)議總結(jié)模版
- 兩癌預(yù)防知識(shí)講座
- 用電安全隱患檢測的新技術(shù)及應(yīng)用
- 新疆克州阿合奇縣2024-2025學(xué)年七年級上學(xué)期期末質(zhì)量檢測英語試卷(含答案及聽力原文無音頻)
- 《水庫泥沙淤積及影響評估技術(shù)規(guī)范》
- 2023-2024學(xué)年浙江省杭州市西湖區(qū)教科版五年級上冊期末考試科學(xué)試卷
- GB/T 7948-2024滑動(dòng)軸承塑料軸套極限PV試驗(yàn)方法
- DL∕T 1057-2023 自動(dòng)跟蹤補(bǔ)償消弧線圈成套裝置技術(shù)條件
- AQ 2003-2018 軋鋼安全規(guī)程(正式版)
- 村委會(huì)指定監(jiān)護(hù)人證明書模板
- 送給業(yè)主禮物方案
評論
0/150
提交評論