【正文】
DOUT45B=00010111。DOUT45B=00011001。DOUT45B=00100001。DOUT45B=00100011。DOUT45B=00100101。DOUT45B=00100111。DOUT45B=00101001。DOUT45B=00110001。DOUT45B=00110011。DOUT45B=00110101。DOUT45B=00110111。DOUT45B=01101001。DOUT45B=01000001。DOUT45B=01000011。DOUT45B=01000101。DOUT45B=01000111。DOUT45B=01001001。 END PROCESS。039。)THEN IF EN45=39。 THEN CNT6B=CNT6BCNT6B1。 END ENTITY CNT45S 。 USE 。 END IF。 THEN OUTA=39。 OUTA: OUT STD_LOGIC)。 第 6章 VHDL設計應用實例 LIBRARY IEEE。 END CASE。139。 EN:= 39。039。039。039。 第 6章 VHDL設計應用實例 END IF。 CLR:= 39。039。 ELSIF SB=39。139。 EN:= 39。139。039。039。139。 EN:= 39。039。 IF S=5 THEN STATE=C。 BY0=39。MG0=39。 WHEN B=MR=39。139。EN:= 39。139。 EN:= 39。039。 THEN IF S=45 THEN STATE=B。 BG0=39。BR=39。 MY0=39。 ELSE S:=S+1。THEN S:=0。EVENT AND CLK=39。 SIGNAL STATE: STATE_TYPE。 ENTITY JTDKZ IS PORT(CLK,SM,SB:IN STD_LOGIC。 第 6章 VHDL設計應用實例 (3) 當主 、 支道均有車時 , 兩者交替允許通行 , 主干道每次放行 45 s, 支干道每次放行 25 s, 在每次由亮綠燈變成亮紅燈的轉(zhuǎn)換過程中 , 要亮 5 s的黃燈作為過渡 , 并進行減計時顯示 。 第 6章 VHDL設計應用實例 交通燈信號控制器的設計 1.設計思路 欲設計一個由一條主干道和一條支干道的匯合點形成的十字交叉路口的交通燈控制器,具體要求如下: (1) 主、支干道各設有一個綠、黃、紅指示燈,兩個顯示數(shù)碼管。; 允許 A/D工作 ELSE AD_CS= 39。EVENT AND LATCH1= 39。139。; END IF; 寫禁止 第 6章 VHDL設計應用實例 END PROCESS; PROCESS (WR_ENABLE2 ) IS 數(shù)據(jù)寫入寄存器 2 BEGIN IF WR_ENABLE239。EVENT AND WR_ENABLE1 = 39。039。 第 6章 VHDL設計應用實例 1. 設計思路 對單片機與 FPGA/CPLD以總線方式通信的邏輯設計, 應詳細了解單片機的總線讀 /寫時序,根據(jù)時序圖來設計邏輯結(jié)構(gòu)。如圖 ,如果將圖中的譯碼 DECODER設置足夠的譯碼輸出,以及安排足夠的鎖存器,就能僅通過 19根 I/O口線在 FPGA/CPLD與單片機之間進行各種類型的數(shù)據(jù)與控制信息交換。 單片機與 CPLD的接口方式一般有兩種 , 即總線方式與獨立方式 。139。139。 THEN CQI=0000; ELSIF CLK39。; ELSE NEWCLK=39。 第 6章 VHDL設計應用實例 圖 數(shù)字秒表電路邏輯圖 D O U T [ 1 1 . . 8 ]D O U T [ 7 . . 4 ]E N AC L RC L KC N T 1 0C A R R Y _ O U TC Q [ 3 . . 0 ]C L RC L KC L K N E W C L KC L K G E NE N AE N AC L RC L KC N T 1 0C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 1 0D O U T [ 3 . . 0 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 6D O U T [ 2 3 . . 2 0 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 1 0D O U T [ 1 9 . . 1 6 ]C A R R Y _ O U TC Q [ 3 . . 0 ]E N AC L RC L KC N T 6D O U T [ 1 5 . . 1 2 ]C A R R Y _ O U TC Q [ 3 . . 0 ]D O U T [ 2 3 . . 0 ]U0U1S1U2S2U3S3U6U5S5S4U4S0第 6章 VHDL設計應用實例 2. VHDL源程序 1) 3 MHz→ 100 Hz分頻器的源程序 LIBRARY IEEE; USE ; ENTITY CLKGEN IS PORT (CLK: IN STD_LOGIC; 3 MHz信號輸入 NEWCLK: OUT STD_LOGIC); 100 Hz計時時鐘信號輸出 END ENTITY CLKGEN; 第 6章 VHDL設計應用實例 ARCHITECTURE ART OF CLKGEN IS SIGNAL CNTER: INTEGER RANGE 0 TO 1029999; 十進制計數(shù)預制數(shù) BEGIN PROCESS(CLK) IS 分頻計數(shù)器 , 由 3 MHz時鐘產(chǎn)生 100 Hz信號 BEGIN IS IF CLK’ EVENT AND CLK=39。 ; END IF; END PROCESS; LOAD=NOT DIV2CLK; TSTEN=DIV2CLK; 根據(jù)時序圖來確定 END ARCHITECTURE ART; 第 6章 VHDL設計應用實例 4) 數(shù)字頻率計的源程序 LIBRARY IEEE; USE ; ENTITY FREQ IS PORT(FSIN: IN STD_LOGIC; CLK: IN STD_LOGIC; DOUT: OUT STD_LOGIC_VECTOR(31 DOWNTO 0)); END ENTITY FREQ; ARCHITECTURE ART OF FREQ IS 第 6章 VHDL設計應用實例 COMPONENT CNT10 IS 待調(diào)用的有時鐘使能的十進制計數(shù)器端口定義 PORT(CLK, CLR, ENA: IN STD_LOGIC; CQ: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CARRY_OUT: OUT STD_LOGIC); END COMPONENT CNT10; COMPONENT REG32B IS 待調(diào)用的 32位鎖存器端口定義 ... COMPONENT TESTCTL IS 待調(diào)用的測頻控制信號發(fā)生器端口定義 第 6章 VHDL設計應用實例 ... SIGNAL SE, SC, SL: STD_LOGIC; SIGNAL S1, S2, S3, S4, S5, S6, S7, S7, S8:STD_LOGIC; SIGNAL SD: STD_LOGIC_VECTOR(31 DOWNTO 0); BEGIN U0: TESTCTL PORT MAP(CLK=CLK, TSTEN=SE, CLR_CNT=SC, LOAD=SL); U1: CNT10 PORT MAP(CLK=FSIN, CLR=SC, ENA=SE,CQ=SD (3 DOWNTO 0), CARRY_OUT=S1); 名字關(guān)聯(lián) 第 6章 VHDL設計應用實例 U2: CNT10 PORT MAP(CLK=S1, CLR=SC, ENA=SE, CQ=SD (7 DOWNTO 4), CARRY_OUT=S2); U3: CNT10 PORT MAP(S2, SC, SE, SD (11 DOWNTO 8 ), S3); 位置關(guān)聯(lián) U4: CNT10 PORT MAP(S3, SC, SE, SD (15 DOWNTO 12), S4); U5: CNT10 PORT MAP(S4, SC, SE, SD (19 DOWNTO 16), S5); U6: CNT10 PORT MAP(S5, SC, SE, SD (23 DOWNTO 20), S6); U7: CNT10 PORT MAP(S6, SC, SE, SD (27 DOWNTO 24), S7); U8: CNT10 PORT MAP(S7, SC, SE, SD (31 DOWNTO 28), S8); U9: REG32B PORT MAP(LOAD=SL, DIN=SD(31 DOWNTO 0),DOUT=DOUT); END ARCHITECTURE ART; 第 6章 VHDL設計應用實例 數(shù)字秒表的設計 1.設計思路 設計一個計時范圍為 ~ 1小時的數(shù)字秒表, 因此要有一個比較精確的計時基準信號,這里用周期為 1/100 s的計時脈沖。 AND DIV2CLK = 39。EVENT AND CLK= 39。; END IF; END PROCESS; CQ=CQI; END ARCHITECTURE ART; 第 6章 VHDL設計應用實例 2) 32位鎖存器的源程序 LIBRARY IEEE; USE ; ENTITY REG32B IS PORT(LOAD: IN STD_LOGIC; DIN: IN STD_LOGIC_VECTOR(31 DOWNTO 0); DOUT: OUT STD_LOGEC_VECTOR(31 DOWNTO 0)); END ENTITY REG32B; 第 6章 VHDL設計應用實例 ARCHITECTURE ART OF REG32B IS BEGIN PROCESS ( LOAD, DIN ) IS BEGIN IF LOAD 39。 THEN 第 6章 VHDL設計應用實例 IF CQI9 THEN CQI=CQI+1; ELSE CQI=0; END IF; 等于 9, 則計數(shù)器清零 END IF; END IF; END PROCESS; PROCESS (CQI) IS BEGIN IF CQI=9 THEN CARRY_OUT= 39。EVENT AND CLK= 39。 當高電平時計數(shù)允許 , 低電平時計數(shù)禁止 。 測頻控制信號發(fā)生器的工作時序如圖 。; END IF; END PROCESS; LD1=NOT PSINT; LD2=PSINT; PSOUT=PSINT; END ARCHITECTURE ART; 第 6章 VHDL設計應用實例 數(shù)字頻率計的設計 1. 設計思路 圖 8位十進制數(shù)字頻率計的電路邏輯