版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、EDA 技術(shù)實(shí)用教程技術(shù)實(shí)用教程第第 6 6 章章 VHDL設(shè)計(jì)進(jìn)階設(shè)計(jì)進(jìn)階 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.1 常數(shù)常數(shù) 常數(shù)定義的一般表述如下:常數(shù)定義的一般表述如下:CONSTANT 常數(shù)名:數(shù)據(jù)類型常數(shù)名:數(shù)據(jù)類型 := 表達(dá)式表達(dá)式 ; CONSTANT FBT : STD_LOGIC_VECTOR := 010110 ; - 標(biāo)準(zhǔn)位矢類型標(biāo)準(zhǔn)位矢類型 CONSTANT DATAIN : INTEGER := 15 ; - 整數(shù)類型整數(shù)類型 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.2 變量變量 變量賦值的一般表述如下:變量賦值的一般表述如下:目標(biāo)變量名
2、目標(biāo)變量名 := 表達(dá)式表達(dá)式 定義變量的一般表述如下:定義變量的一般表述如下: VARIABLE 變量名變量名 : 數(shù)據(jù)類型數(shù)據(jù)類型 := 初始值初始值 ; VARIABLE a : INTEGER RANGE 0 TO 15 ;-變量變量a定義為常數(shù),取值范圍是定義為常數(shù),取值范圍是0到到5 VARIABLE d : STD_LOGIC := 1 ;-變量變量a定義為標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型定義為標(biāo)準(zhǔn)邏輯位數(shù)據(jù)類型, 初始值是初始值是1 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.3 信號(hào)信號(hào) SIGNAL 信號(hào)名:信號(hào)名: 數(shù)據(jù)類型數(shù)據(jù)類型 := 初始值初始值 ; 目標(biāo)信號(hào)名目標(biāo)信號(hào)名
3、 = 表達(dá)式表達(dá)式 AFTER 時(shí)間量時(shí)間量; SIGNAL a,b,c,y,z: INTEGER ; .PROCESS (a,b,c)BEGIN y = a + b ; z = c a ; y = b ;END PROCESS ; 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 信號(hào)信號(hào)SIGNAL變量變量VARIABLE基本用法基本用法用于作為電路中的信號(hào)連線用于作為電路中的信號(hào)連線用于作為進(jìn)程中局部數(shù)據(jù)存儲(chǔ)用于作為進(jìn)程中局部數(shù)據(jù)存儲(chǔ)單元單元適用范圍適用范圍在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都在整個(gè)結(jié)構(gòu)體內(nèi)的任何地方都能適用能適用只能在所定義的進(jìn)
4、程中使用只能在所定義的進(jìn)程中使用行為特性行為特性在進(jìn)程的最后才對(duì)信號(hào)賦值在進(jìn)程的最后才對(duì)信號(hào)賦值立即賦值立即賦值表表6-1 6-1 信號(hào)與變量賦值語(yǔ)句功能的比較信號(hào)與變量賦值語(yǔ)句功能的比較 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 【例【例6-1】. . . ARCHITECTURE bhv OF DFF3 IS BEGIN PROCESS (CLK) VARIABLE QQ : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN QQ := D1 ; END IF; END PROCESS ; Q1 = QQ; EN
5、D ; 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 【例【例6-2】 . . . ARCHITECTURE bhv OF DFF3 IS SIGNAL QQ : STD_LOGIC ; BEGIN PROCESS (CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN QQ = D1 ; END IF; END PROCESS ; Q1 = QQ; END ; 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 【例【例6-3】 LIBRARY IEEE ; U
6、SE 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 ; X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦
7、值 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 DQDQDQDQD1Q1D1Q1CLKCLK 圖圖6-1 例例6-3的的RTL電路電路 圖圖6-2 D觸發(fā)器電路觸發(fā)器電路 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 【例【例6-4】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
8、A,B : STD_LOGIC ; BEGIN IF CLKEVENT AND CLK = 1 THEN A := D1 ; B := A ; Q1 = B ; END IF; END PROCESS ; END ; X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 【例【例6-5】 SIGNAL in1,in2,e1, . : STD_LOGIC ; . PROCESS(in1,in2, . . .) VARIABLE c1,. . . : STD_LOGIC_VECTOR(3 DOWNTO 0) ; BEGIN IF in1 = 1 THEN . - 第第 1 行
9、行 e1 = 1010 ; - 第第 2 行行 . IF in2 = 0 THEN . . . - 第第 15+n 行行 . c1 := 0011 ; - 第第 30+m 行行 . END IF; END PROCESS; 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 X康芯科技康芯科技【例【例6-6】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT (i0, i1, i2, i3, a, b : IN STD_LOGIC; q : OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 I
10、Ssignal muxval : integer range 7 downto 0;BEGINprocess(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; X康芯科技康芯科技【例【例6-7】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux4 ISPORT (i0, i1, i2, i3, a
11、, b : IN STD_LOGIC; q : OUT STD_LOGIC);END mux4;ARCHITECTURE body_mux4 OF mux4 ISBEGINprocess(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;en
12、d case;end process; END body_mux4; X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 圖圖6-3 例例6-6的的RTL電路(電路(Synplify綜合)綜合) X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 圖圖6-4 例例6-7的的RTL電路(電路(Synplify綜合)綜合) X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 圖圖6-5 例例6-6中錯(cuò)誤的工作時(shí)序中錯(cuò)誤的工作時(shí)序 X康芯科技康芯科技6.1.4 進(jìn)程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦
13、值 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 圖圖6-6 例例6-7中正確的工作時(shí)序中正確的工作時(shí)序 X康芯科技康芯科技【例【例6-8】Library IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY SHIFT IS PORT (CLK,C0 : IN STD_LOGIC; -時(shí)鐘和進(jìn)位輸入時(shí)鐘和進(jìn)位輸入 MD : IN STD_LOGIC_VECTOR(2 DOWNTO 0); -移位模式控制字移位模式控制字 D : IN STD_LOGIC_VECTOR(7 DOWNTO 0); -待加載移位的數(shù)據(jù)待加載移位的數(shù)據(jù) QB : OUT STD_LOGIC_VECTOR(7 D
14、OWNTO 0); -移位數(shù)據(jù)輸出移位數(shù)據(jù)輸出 CN : OUT STD_LOGIC); -進(jìn)位輸出進(jìn)位輸出END ENTITY;ARCHITECTURE BEHAV OF SHIFT IS SIGNAL REG : STD_LOGIC_VECTOR(7 DOWNTO 0); SIGNAL CY : STD_LOGIC ; BEGIN PROCESS (CLK,MD,C0) BEGIN IF CLKEVENT AND CLK = 1 THEN CASE MD IS WHEN 001 = REG(0) = C0 ; REG(7 DOWNTO 1) = REG(6 DOWNTO 0); CY RE
15、G(0) = REG(7); (接下頁(yè))(接下頁(yè))X康芯科技康芯科技(接上頁(yè))(接上頁(yè))REG(7 DOWNTO 1) REG(7) = REG(0); REG(6 DOWNTO 0) REG(7) = C0 ; REG(6 DOWNTO 0) = REG(7 DOWNTO 1); CY REG(7 DOWNTO 0) REG = REG ; CY = CY ; -保持保持 END CASE; END IF; END PROCESS;QB(7 DOWNTO 0) = REG(7 DOWNTO 0); CN = CY; -移位后輸出移位后輸出END BEHAV; X康芯科技康芯科技6.1.4 進(jìn)
16、程中的信號(hào)與變量賦值進(jìn)程中的信號(hào)與變量賦值 6.1 數(shù)據(jù)對(duì)象數(shù)據(jù)對(duì)象 圖圖6-7 例例6-8中帶進(jìn)位循環(huán)左移仿真波形(中帶進(jìn)位循環(huán)左移仿真波形(MD=001) X康芯科技康芯科技6.2.1 三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 【例【例6-9】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 STD_LOGIC_VE
17、CTOR(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;X康芯科技康芯科技6.2.1 三態(tài)門設(shè)計(jì)三態(tài)門設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 圖圖6-8 8位位3態(tài)控制門電路(態(tài)控制門電路(Synplify綜合)綜合) X康芯科技康芯科技6.2.2 雙向端口設(shè)
18、計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 【例【例6-10】library ieee;use ieee.std_logic_1164.all;entity tri_state 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_stat
19、e isbeginprocess(control,q,in1)beginif (control = 0) then x = q ; else q = in1; x=ZZZZZZZZ ;end if;end process;end body_tri; X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 【例【例6-11】(以上部分同上例以上部分同上例)process(control,q,in1)beginif (control=0) then x = q ; q = ZZZZZZZZ; else q = in1; x =ZZZZZ
20、ZZZ;end if;end process;end body_tri; X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 1.0s 1.5s 2.0s 2.5s 3.0s 3.5s 圖圖6-9 例例6-10的仿真波形圖的仿真波形圖 X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 圖圖6-10 例例6-11的仿真波形圖的仿真波形圖 1.0s 1.5s 2.0s 2.5s 3.0s 3.5s X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向
21、和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 圖圖6-11 例例6-10的綜合結(jié)果(的綜合結(jié)果(Synplify綜合)綜合) X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 圖圖6-12 例例6-11的綜合結(jié)果(的綜合結(jié)果(Synplify綜合)綜合) X康芯科技康芯科技6.2.3 三態(tài)總線電路設(shè)計(jì)三態(tài)總線電路設(shè)計(jì) 【例【例6-12】 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY tristate2 IS port ( input3, input2, input1, in
22、put0 : 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 ; ARCHITECTURE multiple_drivers OF tristate2 ISBEGINPROCESS(enable,input3, input2, input1, input0 ) BEGIN IF enable = 00 THEN output = input3 ; ELSE output Z);
23、END IF ; IF enable = 01 THEN output = input2 ; ELSE output Z); END IF ; (接下頁(yè))(接下頁(yè)) X康芯科技康芯科技6.2.3 三態(tài)總線電路設(shè)計(jì)三態(tài)總線電路設(shè)計(jì) (接上頁(yè))(接上頁(yè))IF enable = 10 THEN output = input1 ; ELSE output Z); END IF ; IF enable = 11 THEN output = input0 ; ELSE output Z); END IF ;END PROCESS;END multiple_drivers; X康芯科技康芯科技6.2.2 雙
24、向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 【例【例6-13】 (注:(注:MaxplusII不支持本例)不支持本例)library ieee;use ieee.std_logic_1164.all;entity tri2 isport (ctl : in std_logic_vector(1 downto 0); datain1, datain2,datain3, datain4 : in std_logic_vector(7 downto 0); q : out std_logic_vector(7 downto 0) );end tri2;arc
25、hitecture body_tri of tri2 isbegin q Z) ; q Z) ; q Z) ; q Z) ;end body_tri; X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 6.2 雙向和三態(tài)電路信號(hào)賦值例解雙向和三態(tài)電路信號(hào)賦值例解 圖圖6-13 例例6-12錯(cuò)誤的綜合結(jié)果(錯(cuò)誤的綜合結(jié)果(Synplify綜合結(jié)果)綜合結(jié)果) X康芯科技康芯科技6.2.2 雙向端口設(shè)計(jì)雙向端口設(shè)計(jì) 圖圖6-14 例例6-13正確正確的綜合結(jié)果的綜合結(jié)果(Synplify綜合結(jié)果)綜合結(jié)果) X康芯科技康芯科技6.3 IF語(yǔ)句概述語(yǔ)句概述 (1) IF 條件句條件句 Then
26、 順序語(yǔ)句順序語(yǔ)句 END IF ; (2) IF 條件句條件句 Then 順序語(yǔ)句順序語(yǔ)句 ELSE 順序語(yǔ)句順序語(yǔ)句 END IF ; (3) IF 條件句條件句 Then IF 條件句條件句 Then . END IF END IF (4) IF 條件句條件句 Then 順序語(yǔ)句順序語(yǔ)句ELSIF 條件句條件句 Then順序語(yǔ)句順序語(yǔ)句.ELSE 順序語(yǔ)句順序語(yǔ)句END IF X康芯科技康芯科技6.3 IF語(yǔ)句概述語(yǔ)句概述 【例【例6-14】 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY control_stmts ISPORT (a
27、, b, c: IN BOOLEAN; output: OUT BOOLEAN); 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; X康芯科技康芯科技6.3 IF語(yǔ)句概述語(yǔ)句概述 輸輸 入入輸輸 出出din0 din1 din2 din3 din4 din5 din6 d
28、in7 output0 output1 output2 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 0 1 1 0 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 0 1 1 1 1 1 1 0 1 x 0 1 1 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1表表6-2 8線線-3線優(yōu)先編碼器真值表線優(yōu)先編碼器真值表 注:注:表中的表中的“x”為任意,類似為任意,類似VHDL中的中的“”值。值。 X康芯科技康芯科技【例【例6-15】LIBRARY I
29、EEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY coder IS PORT ( din : IN STD_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 out
30、put = 100 ; ELSIF (din(5)=0) THEN output = 010 ; ELSIF (din(4)=0) 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 so so so so so NULL ; END CASE; END PROCESS; X康芯科技康芯科技6.4.3 進(jìn)程要點(diǎn)進(jìn)程要點(diǎn) 6.4 進(jìn)程語(yǔ)句歸納進(jìn)程語(yǔ)句歸納 3. 進(jìn)程
31、必須由敏感信號(hào)的變化來啟動(dòng)進(jìn)程必須由敏感信號(hào)的變化來啟動(dòng) 4. 進(jìn)程語(yǔ)句本身是并行語(yǔ)句進(jìn)程語(yǔ)句本身是并行語(yǔ)句 X康芯科技康芯科技【例【例6-16】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; END PROCESS p_a
32、; 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; X康芯科技康芯科技6.4.3 進(jìn)程要點(diǎn)進(jìn)程要點(diǎn) 6.4 進(jìn)程語(yǔ)句歸納進(jìn)程語(yǔ)句歸納 5. 信號(hào)是多個(gè)進(jìn)程間的通信線信號(hào)是多個(gè)進(jìn)程間的通信線 6. 一個(gè)進(jìn)程中只允許描述對(duì)應(yīng)于一個(gè)時(shí)鐘信號(hào)的同步時(shí)序邏輯一個(gè)進(jìn)程中只允許描述對(duì)應(yīng)于一個(gè)時(shí)鐘信號(hào)的同步時(shí)序邏輯 X康芯科技康芯科技6.5 并行語(yǔ)句例解并行語(yǔ)句例解 【例【例6-17】ARCHITECTURE data
33、flow OF mux ISSIGNAL seiect : INTEGER RANGE 15 DOWNTO 0;BEGINSelect = 0 WHEN s0=0 AND s1=0 ELSE 1 WHEN s0=1 AND s1=0 ELSE 2 WHEN s0=0 AND s1=1 ELSE 3 ; x = a WHEN select=0 ELSE b WHEN select=1 ELSE c WHEN select=2 ELSE d ;. . . X康芯科技康芯科技6.6 仿真延時(shí)仿真延時(shí) 6.6.1 固有延時(shí)固有延時(shí) z = x XOR y AFTER 5ns ; z = x XOR y
34、 ; B = A AFTER 20ns ;-固有延時(shí)模型固有延時(shí)模型 X康芯科技康芯科技6.6 仿真延時(shí)仿真延時(shí) 6.6.2 傳輸延時(shí)傳輸延時(shí) B = TRANSPORT A AFTER 20 ns;- 傳輸延時(shí)模型傳輸延時(shí)模型 I116I117I113I118I119I120BBAA40ns302010040ns3020100圖圖6-15 固有延時(shí)輸入輸出波形固有延時(shí)輸入輸出波形 圖圖6-16傳輸延時(shí)輸入輸出波形傳輸延時(shí)輸入輸出波形 X康芯科技康芯科技6.6 仿真延時(shí)仿真延時(shí) 6.6.3 仿真仿真 VHDL仿真器和綜合器將自動(dòng)為系統(tǒng)中的信號(hào)賦值仿真器和綜合器將自動(dòng)為系統(tǒng)中的信號(hào)賦值配置一足夠
35、小而又能滿足邏輯排序的延時(shí)量,即仿真配置一足夠小而又能滿足邏輯排序的延時(shí)量,即仿真軟件的最小分辯時(shí)間,這個(gè)延時(shí)量就稱為仿真軟件的最小分辯時(shí)間,這個(gè)延時(shí)量就稱為仿真 (Simulation Delta),或稱),或稱 延時(shí),從而使并行語(yǔ)句延時(shí),從而使并行語(yǔ)句和順序語(yǔ)句中的并列賦值邏輯得以正確執(zhí)行。由此可和順序語(yǔ)句中的并列賦值邏輯得以正確執(zhí)行。由此可見,在行為仿真、功能仿真乃至綜合中,引入見,在行為仿真、功能仿真乃至綜合中,引入 延時(shí)延時(shí)是必需的。仿真中,是必需的。仿真中, 延時(shí)的引入由延時(shí)的引入由EDA工具自動(dòng)完工具自動(dòng)完成,無(wú)需設(shè)計(jì)者介入。成,無(wú)需設(shè)計(jì)者介入。 習(xí)習(xí) 題題 X康芯科技康芯科技6
36、-1. 什么是固有延時(shí)?什么是慣性延時(shí)?什么是固有延時(shí)?什么是慣性延時(shí)?6-2. 是什么?在是什么?在VHDL中,中, 有什么用處?有什么用處? 6-3. 哪些情況下需要用到程序包哪些情況下需要用到程序包STD_LOGIC_UNSIGNED?試舉一例。?試舉一例。6-4. 說明信號(hào)和變量的功能特點(diǎn),應(yīng)用上的異同點(diǎn)。說明信號(hào)和變量的功能特點(diǎn),應(yīng)用上的異同點(diǎn)。6-5. 在在VHDL設(shè)計(jì)中,給時(shí)序電路清設(shè)計(jì)中,給時(shí)序電路清0(復(fù)位復(fù)位)有兩種方法,它們是什么?有兩種方法,它們是什么?6-6. 哪一種復(fù)位方法必須將復(fù)位信號(hào)放在敏感信號(hào)表中?給出這兩種電哪一種復(fù)位方法必須將復(fù)位信號(hào)放在敏感信號(hào)表中?給出
37、這兩種電路的路的VHDL描述。描述。 6-7. 什么是重載函數(shù)?重載算符有何用處?如何調(diào)用重載算符函數(shù)?什么是重載函數(shù)?重載算符有何用處?如何調(diào)用重載算符函數(shù)? 習(xí)習(xí) 題題 X康芯科技康芯科技6-8. 判斷下面判斷下面3個(gè)程序中是否有錯(cuò)誤,若有則指出錯(cuò)誤所在,并給出完整程序。個(gè)程序中是否有錯(cuò)誤,若有則指出錯(cuò)誤所在,并給出完整程序。程序程序1:Signal A, EN : std_logic;Process (A, EN) Variable B : std_logic;Beginif EN = 1 then B = A; end if;end process;程序程序2:Architecture
38、 one of sample is variable a, b, c : integer;begin c LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL ; END CASE ; END PROCESS ; END ; 實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技(4) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容2:引腳鎖定及硬件測(cè)試。建議選引腳鎖定及硬件測(cè)試。建議選GW48系統(tǒng)的實(shí)驗(yàn)電路模式系統(tǒng)的實(shí)驗(yàn)電路模式6(參考附錄圖(參考附錄圖6),用數(shù)碼),用數(shù)碼8顯示譯
39、碼輸出顯示譯碼輸出(PIO46-PIO40),鍵,鍵8、鍵、鍵7、鍵、鍵6和和鍵鍵5四位控制輸入,硬件驗(yàn)證譯碼器的工作性能。四位控制輸入,硬件驗(yàn)證譯碼器的工作性能。(5) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容3:用第:用第4章介紹的例化語(yǔ)句,按圖章介紹的例化語(yǔ)句,按圖6-19的方式連接成頂層設(shè)計(jì)電的方式連接成頂層設(shè)計(jì)電路(用路(用VHDL表述),圖中的表述),圖中的CNT4B是一個(gè)是一個(gè)4位二進(jìn)制加法計(jì)數(shù)器,可以由位二進(jìn)制加法計(jì)數(shù)器,可以由例例4-22修改獲得;模塊修改獲得;模塊DECL7S即為例即為例6-18實(shí)體元件,重復(fù)以上實(shí)驗(yàn)過程。注實(shí)體元件,重復(fù)以上實(shí)驗(yàn)過程。注意圖意圖6-20中的中的tmp是是4位總線,
40、位總線,led是是7位總線。對(duì)于引腳鎖定和實(shí)驗(yàn),建議選位總線。對(duì)于引腳鎖定和實(shí)驗(yàn),建議選電路模式電路模式6,用數(shù)碼,用數(shù)碼8顯示譯碼輸出,用鍵顯示譯碼輸出,用鍵3作為時(shí)鐘輸入作為時(shí)鐘輸入(每按每按2次鍵為次鍵為1個(gè)時(shí)個(gè)時(shí)鐘脈沖鐘脈沖),或直接接時(shí)鐘信號(hào),或直接接時(shí)鐘信號(hào)clock0。(8) 實(shí)驗(yàn)報(bào)告實(shí)驗(yàn)報(bào)告:根據(jù)以上的實(shí)驗(yàn)內(nèi)容寫出實(shí)驗(yàn)報(bào)告,包括程序設(shè)計(jì)、軟件編譯、:根據(jù)以上的實(shí)驗(yàn)內(nèi)容寫出實(shí)驗(yàn)報(bào)告,包括程序設(shè)計(jì)、軟件編譯、仿真分析、硬件測(cè)試和實(shí)驗(yàn)過程;設(shè)計(jì)程序、程序分析報(bào)告、仿真波形圖及仿真分析、硬件測(cè)試和實(shí)驗(yàn)過程;設(shè)計(jì)程序、程序分析報(bào)告、仿真波形圖及其分析報(bào)告。其分析報(bào)告。 X康芯科技康芯科技
41、圖圖6-18共陰數(shù)碼管及其電路共陰數(shù)碼管及其電路 圖圖6-19 計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖計(jì)數(shù)器和譯碼器連接電路的頂層文件原理圖實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技6-2. 八位數(shù)碼掃描顯示電路設(shè)計(jì)八位數(shù)碼掃描顯示電路設(shè)計(jì)(1) 實(shí)驗(yàn)?zāi)康模簩?shí)驗(yàn)?zāi)康模簩W(xué)習(xí)硬件掃描顯示電路的設(shè)計(jì)。學(xué)習(xí)硬件掃描顯示電路的設(shè)計(jì)。(2) 實(shí)驗(yàn)原理:實(shí)驗(yàn)原理:圖圖6-20所示的是所示的是8位數(shù)碼掃描顯示電路,其中每個(gè)數(shù)碼管的位數(shù)碼掃描顯示電路,其中每個(gè)數(shù)碼管的8個(gè)個(gè)段:段:h、g、f、e、d、c、b、a(h是小數(shù)點(diǎn))都分別連在一起,是小數(shù)點(diǎn))都分別連在一起,8個(gè)數(shù)碼管分個(gè)數(shù)碼管分別由別由8個(gè)選通信號(hào)
42、個(gè)選通信號(hào)k1、k2、k8來選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)來選擇。被選通的數(shù)碼管顯示數(shù)據(jù),其余關(guān)閉。如在某一時(shí)刻,閉。如在某一時(shí)刻,k3為高電平,其余選通信號(hào)為低電平,這時(shí)僅為高電平,其余選通信號(hào)為低電平,這時(shí)僅k3對(duì)應(yīng)的對(duì)應(yīng)的數(shù)碼管顯示來自段信號(hào)端的數(shù)據(jù),而其它數(shù)碼管顯示來自段信號(hào)端的數(shù)據(jù),而其它7個(gè)數(shù)碼管呈現(xiàn)關(guān)閉狀態(tài)。根據(jù)這種個(gè)數(shù)碼管呈現(xiàn)關(guān)閉狀態(tài)。根據(jù)這種電路狀況,如果希望在電路狀況,如果希望在8個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得個(gè)數(shù)碼管顯示希望的數(shù)據(jù),就必須使得8個(gè)選通信號(hào)個(gè)選通信號(hào)k1、k2、k8分別被單獨(dú)選通,并在此同時(shí),在段信號(hào)輸入口加上希望在該分別被單獨(dú)選通,并在此同時(shí),在
43、段信號(hào)輸入口加上希望在該對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃變,就能實(shí)現(xiàn)掃描顯示的對(duì)應(yīng)數(shù)碼管上顯示的數(shù)據(jù),于是隨著選通信號(hào)的掃變,就能實(shí)現(xiàn)掃描顯示的目的。目的。 實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技圖圖6-20 8位數(shù)碼掃描顯示電路位數(shù)碼掃描顯示電路 X康芯科技康芯科技【例【例6-19】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY SCAN_LED IS PORT ( CLK : IN STD_LOGIC; SG : OUT STD_LOGIC_VECTOR(6
44、DOWNTO 0);-段控制信號(hào)輸出段控制信號(hào)輸出 BT : OUT STD_LOGIC_VECTOR(7 DOWNTO 0) );-位控制信號(hào)輸出位控制信號(hào)輸出 END;ARCHITECTURE one OF SCAN_LED IS SIGNAL CNT8 : STD_LOGIC_VECTOR(2 DOWNTO 0); SIGNAL A : INTEGER RANGE 0 TO 15;BEGINP1:PROCESS( CNT8 ) BEGIN CASE CNT8 IS WHEN 000 = BT = 00000001 ; A BT = 00000010 ; A BT = 00000100 ;
45、 A BT = 00001000 ; A BT = 00010000 ; A BT = 00100000 ; A BT = 01000000 ; A BT = 10000000 ; A NULL ; END CASE ; END PROCESS P1; 接下頁(yè)接下頁(yè)X康芯科技康芯科技P2:PROCESS(CLK) BEGIN IF CLKEVENT AND CLK = 1 THEN CNT8 SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG SG NULL ; END CASE ; END PROCESS P3; END; 接上頁(yè)接上頁(yè)實(shí)實(shí) 驗(yàn)驗(yàn) 與與
46、設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技(3) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容1:說明例說明例6-19中各語(yǔ)句的含義,以及該例的整體功能。對(duì)該例中各語(yǔ)句的含義,以及該例的整體功能。對(duì)該例進(jìn)行編輯、編譯、綜合、適配、仿真,給出仿真波形。實(shí)驗(yàn)方式:若考慮小進(jìn)行編輯、編譯、綜合、適配、仿真,給出仿真波形。實(shí)驗(yàn)方式:若考慮小數(shù)點(diǎn),數(shù)點(diǎn),SG的的8個(gè)段分別與個(gè)段分別與PIO49、PIO48、PIO42(高位在左)、(高位在左)、BT的的8個(gè)位分別與個(gè)位分別與PIO34、PIO35、PIO41(高位在左);電路模式不限,引腳(高位在左);電路模式不限,引腳圖參考附錄圖圖參考附錄圖10。將。將GW48EDA系統(tǒng)左下方的撥碼開關(guān)全部向
47、上撥,這時(shí)實(shí)系統(tǒng)左下方的撥碼開關(guān)全部向上撥,這時(shí)實(shí)驗(yàn)系統(tǒng)的驗(yàn)系統(tǒng)的8個(gè)數(shù)碼管構(gòu)成圖個(gè)數(shù)碼管構(gòu)成圖6-20的電路結(jié)構(gòu),時(shí)鐘的電路結(jié)構(gòu),時(shí)鐘CLK可選擇可選擇clock0,通過跳,通過跳線選擇線選擇16384Hz信號(hào)。引腳鎖定后進(jìn)行編譯、下載和硬件測(cè)試實(shí)驗(yàn)。將實(shí)驗(yàn)信號(hào)。引腳鎖定后進(jìn)行編譯、下載和硬件測(cè)試實(shí)驗(yàn)。將實(shí)驗(yàn)過程和實(shí)驗(yàn)結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。過程和實(shí)驗(yàn)結(jié)果寫進(jìn)實(shí)驗(yàn)報(bào)告。(4) 實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容2:修改例修改例6-19的進(jìn)程的進(jìn)程P1中的顯示數(shù)據(jù)直接給出的方式,增加中的顯示數(shù)據(jù)直接給出的方式,增加8個(gè)個(gè)4位鎖存器,作為顯示數(shù)據(jù)緩沖器,使得所有位鎖存器,作為顯示數(shù)據(jù)緩沖器,使得所有8個(gè)顯示數(shù)據(jù)都必須來
48、自緩沖器。個(gè)顯示數(shù)據(jù)都必須來自緩沖器。緩沖器中的數(shù)據(jù)可以通過不同方式鎖入,如來自緩沖器中的數(shù)據(jù)可以通過不同方式鎖入,如來自A/D采樣的數(shù)據(jù)、來自分時(shí)采樣的數(shù)據(jù)、來自分時(shí)鎖入的數(shù)據(jù)、來自串行方式輸入的數(shù)據(jù),或來自單片機(jī)等。鎖入的數(shù)據(jù)、來自串行方式輸入的數(shù)據(jù),或來自單片機(jī)等。 實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技6-3. 數(shù)控分頻器的設(shè)計(jì)數(shù)控分頻器的設(shè)計(jì)(1) 實(shí)驗(yàn)?zāi)康膶?shí)驗(yàn)?zāi)康模簩W(xué)習(xí)數(shù)控分頻器的設(shè)計(jì)、分析和測(cè)試方法。:學(xué)習(xí)數(shù)控分頻器的設(shè)計(jì)、分析和測(cè)試方法。(2) 實(shí)驗(yàn)原理實(shí)驗(yàn)原理:數(shù)控分頻器的功能就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時(shí),將對(duì):數(shù)控分頻器的功能就是當(dāng)在輸入端給定不同輸入數(shù)據(jù)時(shí),將
49、對(duì)輸入的時(shí)鐘信號(hào)有不同的分頻比,數(shù)控分頻器就是用計(jì)數(shù)值可并行預(yù)置的加輸入的時(shí)鐘信號(hào)有不同的分頻比,數(shù)控分頻器就是用計(jì)數(shù)值可并行預(yù)置的加法計(jì)數(shù)器設(shè)計(jì)完成的,方法是將計(jì)數(shù)溢出位與預(yù)置數(shù)加載輸入信號(hào)相接即可,法計(jì)數(shù)器設(shè)計(jì)完成的,方法是將計(jì)數(shù)溢出位與預(yù)置數(shù)加載輸入信號(hào)相接即可,詳細(xì)設(shè)計(jì)程序如例詳細(xì)設(shè)計(jì)程序如例6-20所示。所示。(3) 分析分析:根據(jù)圖:根據(jù)圖6-21的波形提示,分析例的波形提示,分析例6-20中的各語(yǔ)句功能、設(shè)計(jì)原理及中的各語(yǔ)句功能、設(shè)計(jì)原理及邏輯功能,詳述進(jìn)程邏輯功能,詳述進(jìn)程P_REG和和P_DIV的作用,并畫出該程序的的作用,并畫出該程序的RTL電路圖。電路圖。實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技圖圖6-21 當(dāng)給出不同輸入值當(dāng)給出不同輸入值D時(shí),時(shí),F(xiàn)OUT輸出不同頻率輸出不同頻率(CLK周期周期=50ns) 100.0s 200.0s 300.0s 400.0s 實(shí)實(shí) 驗(yàn)驗(yàn) 與與 設(shè)設(shè) 計(jì)計(jì)X康芯科技康芯科技(4)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度倉(cāng)儲(chǔ)物流倉(cāng)儲(chǔ)場(chǎng)地租賃合同6篇
- 二零二五年度技術(shù)開發(fā)合同:人工智能助手定制開發(fā)服務(wù)3篇
- 2025年度LED燈具安裝與節(jié)能效果評(píng)估合同3篇
- 二零二五年度展覽館租賃合同交接與展覽服務(wù)標(biāo)準(zhǔn)協(xié)議3篇
- 二零二五年度文化產(chǎn)業(yè)園區(qū)開發(fā)合作協(xié)議3篇
- 二零二五年度人工智能領(lǐng)域股東合作協(xié)議書模板3篇
- 海南職業(yè)技術(shù)學(xué)院《數(shù)控加工力學(xué)和動(dòng)力學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 海南衛(wèi)生健康職業(yè)學(xué)院《中小學(xué)音樂教學(xué)實(shí)訓(xùn)》2023-2024學(xué)年第一學(xué)期期末試卷
- 課程設(shè)計(jì)洗瓶器
- 護(hù)理博士課程設(shè)計(jì)
- 新疆塔城地區(qū)(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)部編版期末考試(下學(xué)期)試卷及答案
- 四人合伙投資協(xié)議書范本
- 反射療法師3級(jí)考試題庫(kù)(含答案)
- 汽車供應(yīng)商審核培訓(xùn)
- 山東省濟(jì)南市2023-2024學(xué)年高二上學(xué)期期末考試地理試題 附答案
- 期末復(fù)習(xí)試題1(試題)-2024-2025學(xué)年二年級(jí)上冊(cè)數(shù)學(xué)北師大版
- 1《地球的表面》說課稿-2024-2025學(xué)年科學(xué)五年級(jí)上冊(cè)教科版
- 汽車以租代購(gòu)合同完整版完整版
- 音樂制作基礎(chǔ)知識(shí)單選題100道及答案解析
- 2024至2030年大型儲(chǔ)油罐項(xiàng)目投資價(jià)值分析報(bào)告
- GB/T 44764-2024石油、石化和天然氣工業(yè)腐蝕性石油煉制環(huán)境中抗硫化物應(yīng)力開裂的金屬材料
評(píng)論
0/150
提交評(píng)論