【文章內(nèi)容簡介】
GIC)。END ENTITY adder。ARCHITECTURE fh1 OF adder is BEGIN so 1位二進制全加器頂層設計描述 LIBRARY IEEE。USE 。ENTITY f_adder IS PORT(ain,bin,cin : IN STD_LOGIC。cout,sum : OUT STD_LOGIC)。END ENTITY f_adder。ARCHITECTURE fd1 OF f_adder IS COMPONENT h_adder PORT(a,b : IN STD_LOGIC。co,so : OUT STD_LOGIC)。END COMPONENT ; COMPONENT or2a PORT(a,b : IN STD_LOGIC。c : OUT STD_LOGIC)。END COMPONENT;SIGNAL d,e,f : STD_LOGIC。BEGIN u1 : h_adder PORT MAP(a=ain,b=bin,co=d,so=e)。u2 : h_adder PORT MAP(a=e,b=cin,co=f,so=sum)。u3 : or2a PORT MAP(a=d,b=f,c=cout)。END ARCHITECTURE fd1。二選一多路選擇器仿真結果:實驗三含異步清0和同步時鐘使能的4位加法計數(shù)器(4課時)一、實驗目的:學習計數(shù)器的設計、仿真,進一步熟悉VHDL設計技術。二、實驗內(nèi)容:設計一含計數(shù)使能、異步復位和能進行計數(shù)值并行預置功能的4位加法計數(shù)器。RST是異步清零信號,高電平有效;clk是時鐘輸入信號;D0、DDD3是4位數(shù)據(jù)輸入端(數(shù)據(jù)預置輸入端)。Q0、QQQ3為計數(shù)器輸出端。COUT為進位輸出端。ENA為使能端,為?1?時,計數(shù)器實現(xiàn)對CLK時鐘脈沖信號的加1計數(shù),為0時停止計數(shù)。參考程序:LIBRARY IEEE。USE 。USE 。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 IF RST = 39。139。 THEN CQI 實驗四7段數(shù)碼顯示譯碼器設計(2課時)一、實驗目的:學習7段數(shù)碼顯示譯碼器設計;學習VHDL的多層次設計方法。二、實驗原理:7段數(shù)碼是純組合電路,通常的小規(guī)模專用IC,如74或4000系列的器件只能作十進制BCD碼譯碼,然而數(shù)字系統(tǒng)中的數(shù)據(jù)處理和運算都是2進制的,所以輸出表達都是16進制的,為了滿足16進制數(shù)的譯碼顯示,最方便的方法就是利用譯碼程序在FPGA/CPLD中來實現(xiàn)。但為了簡化過程,首先完成7段BCD碼譯碼器的設計。例如輸出為“1101101”時,數(shù)碼管的7個段:g、f、e、d、c、b、a分別接0、0、1;接有高電平的段發(fā)亮,于是數(shù)碼管顯示“5”。圖621 共陰數(shù)碼管及其電路三、實驗內(nèi)容編程實現(xiàn)7段數(shù)碼顯示譯碼器設計;對7段數(shù)碼顯示譯碼器設計進行編輯、仿真,給出其所有信號的時序仿真波形; 參考程序: LIBRARY IEEE。USE 。ENTITY DECL7S IS PORT(A : IN STD_LOGIC_VECTOR(3 DOWNTO 0)。LED7S : OUT STD_LOGIC_VECTOR(6 DOWNTO 0))。END。ARCHITECTURE one OF DECL7S IS BEGIN PROCESS(A)BEGIN CASE A IS WHEN “0000” = LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S LED7S NULL。END CASE。END PROCESS。END。仿真結果:綜合后的計數(shù)器和譯碼器連接電路的頂層文件原理圖:實驗五用狀態(tài)機實現(xiàn)序列檢測器的設計(4課時)一、實驗目的:掌握狀態(tài)機的編程方法和步驟;掌握用狀態(tài)機設計序列檢測器的方法和步驟;二、實驗內(nèi)容用狀態(tài)機編程實現(xiàn)對系列數(shù)“11100101”的檢測,當某一系列串(以左移方式)進入檢測器后,若該串與預置的系列數(shù)相同,則輸出“A”,否則輸出“B”。三、實驗步驟:編輯系列檢測器的VHDL程序;仿真測試并給出仿真波形,了解控制信號的時序;將上述方案改為系列檢測密碼為可預置(外部輸入)情況,重新編寫程序、編譯和仿真,并記錄仿真結果。參考程序:LIBRARY IEEE。USE 。ENTITY SCHK IS PORT(DIN,CLK,CLR : IN STD_LOGIC。AB : OUT STD_LOGIC_VECTOR(3 DOWNTO 0))。END SCHK。ARCHITECTURE behv OF SCHK IS SIGNAL Q:INTEGER RANGE 0 TO 8。SIGNAL D:STD_LOGIC_VECTOR(7 DOWNTO 0)。BEGIN D IF DIN = D(7)THEN Q IF DIN = D(6)THEN Q IF DIN = D(5)THEN Q IF DIN = D(4)THEN Q IF DIN = D(3)THEN Q IF DIN = D(2)THEN Q IF DIN = D(1)THEN Q IF DIN = D(0)THEN Q Q提高型實驗:實驗六用VHDL實現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)(6課時)一、實驗目的及要求:掌握VHDL語言的基本結構及編程思想。掌握VHDL語言的進行系統(tǒng)設計的方法和步驟。提高學生綜合應用能力。二、實驗內(nèi)容:用VHDL實現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)的軟件編輯。用VHDL實現(xiàn)數(shù)字鐘及校園打鈴系統(tǒng)的軟件仿真。三、實驗步驟用VHDL編輯60進制計數(shù)器,并進行軟件仿真。用VHDL編輯24進制計數(shù)器,并進行軟件仿真。用VHDL編輯30進制計數(shù)器,并進行軟件仿真。用元件例化的方法實現(xiàn)數(shù)字鐘的軟件編輯及軟件仿真。實現(xiàn)數(shù)字鐘的校時功能。實現(xiàn)數(shù)字鐘的打鈴功能。完成數(shù)字鐘及校園打鈴系統(tǒng)的實驗報告。實驗七A/D采樣控制器設計一、實驗目的及要求:掌握VHDL語言的基本結構及編程思想。掌握A/D采樣控制器的工作原理。掌握A/D采樣控制器的VHDL語言編程方法。二、實驗內(nèi)容:設計一A/D0809模數(shù)轉(zhuǎn)換器控制器。將轉(zhuǎn)換結果送數(shù)碼管顯示器顯示(2位)。模擬輸入通道為IN0。三、實驗步驟:ADC0809特點介紹(1)、單極性輸入,8位A/D轉(zhuǎn)換精度。(2)、逐次逼近式,每次采樣時間約為100US(3)、8通道模擬輸入A/D轉(zhuǎn)換器外部引腳功能結構圖A/D轉(zhuǎn)換器時序圖AD轉(zhuǎn)換控制器與AD轉(zhuǎn)換器的接口電路框圖狀態(tài)控制S0狀態(tài):初始狀態(tài)。ADDC=‘1’,選擇1通道模擬信號輸入。ALE=START=OE=LOCK=‘0’;S1狀態(tài):通道鎖存。ALE=‘1’, START=OE=LOCK=‘0’;S2狀態(tài):啟動A/D轉(zhuǎn)換。ALE=‘1’,START=‘1’,OE=LOCK=‘0’; S3狀態(tài):A/D轉(zhuǎn)換等待狀態(tài)。ALE=START=‘0’,OE=LOCK=‘0’;IF EOC=‘0’保持當前狀態(tài)不變,繼續(xù)等待A/D轉(zhuǎn)換。ELSE轉(zhuǎn)換結束,進入下一狀態(tài)。S4狀態(tài):數(shù)據(jù)輸出允許狀態(tài)。A/D轉(zhuǎn)換完畢,開啟數(shù)據(jù)輸出允許信號。ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘0’;S5狀態(tài):數(shù)據(jù)鎖存狀態(tài)。開啟數(shù)據(jù)鎖存信號,將轉(zhuǎn)換結果送鎖存器鎖存。ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; S6狀態(tài):延時狀態(tài)。為了保證數(shù)據(jù)可靠鎖存,延時一個時鐘狀態(tài)周期。ALE=‘0’,START=‘0’,OE=‘1’,LOCK=‘1’; 其它狀態(tài):返回到初始狀態(tài)。ALE=START=OE=LOCK=‘0’;參考程序: LIBRARY IEEE。USE 。ENTITY AD0809 ISPORT(D :IN STD_LOGIC_VECTOR(7 DOWNTO 0)。CLK0,EOC : IN STD_LOGIC。ADDA,OE : OUT STD_LOGIC。ALE,START : OUT STD_LOGIC。Q : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)。 : OUT INTEGER RANGE 15 DOWNTO 0)。END AD0809。ARCHITECTURE behav OF AD0809 ISTYPE ST_TYPE IS(S0, S1, S2, S3,S4,S5,S6,S7)。SIGNAL CURRENT_STATE,NEXT_STATE : ST_TYPE。SIGNAL REGL:STD_LOGIC_VECTOR(7 DOWNTO 0)。SIGNAL LOCK :STD_LOGIC。BEGINADDAPRO: PROCESS(CURRENT_STATE,EOC)BEGINCASE CURRENT_STATE ISWHEN S0 = WHEN S1 = WHEN S2 = WHEN S3 = IF EOC=39。039。 THEN NEXT_STATE ELSE NEXT_STATE END IF。WHEN S4 = IF EOC=39。139。 THEN NEXT_STATE ELSE NEXT_STATE END IF。WHEN S5 = WHEN S6 = WHEN S7 = WHEN OTHERS = NEXT_STATE END CASE。END PROCESS PRO。REG:PROCESS(CLK0)BEGINIF CLK039。EVENT AND CLK0=39。139。 THENCURRENT_STATEEND IF。END PROCESS REG。COM:PROCESS(LOCK)BEGINIF LOCK39。EVENT AND LOCK=39。139。 THENREGLEND IF。END PROCESS COM。Q實驗八數(shù)字頻率計設計一、實驗目的及要求:掌握VHDL語言的基本結構及編程