可編程邏輯器件實(shí)驗(yàn)講義11個(gè)_第1頁(yè)
可編程邏輯器件實(shí)驗(yàn)講義11個(gè)_第2頁(yè)
可編程邏輯器件實(shí)驗(yàn)講義11個(gè)_第3頁(yè)
可編程邏輯器件實(shí)驗(yàn)講義11個(gè)_第4頁(yè)
可編程邏輯器件實(shí)驗(yàn)講義11個(gè)_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、可 編 程 邏 輯 器 件實(shí)驗(yàn)講義目 錄目 錄實(shí)驗(yàn)一 Quartus軟件及EDA實(shí)驗(yàn)平臺(tái)介紹1實(shí)驗(yàn)二 Quartus文本設(shè)計(jì)輸入4實(shí)驗(yàn)三 Quartus混合設(shè)計(jì)輸入5實(shí)驗(yàn)四 D、T觸發(fā)器7實(shí)驗(yàn)五 十六進(jìn)制數(shù)碼管顯示8實(shí)驗(yàn)六 3-8譯碼器設(shè)計(jì)10實(shí)驗(yàn)七 計(jì)數(shù)器的設(shè)計(jì)12實(shí)驗(yàn)八 數(shù)控分頻器的設(shè)計(jì)13實(shí)驗(yàn)九 鎖存器的設(shè)計(jì)14實(shí)驗(yàn)十 4選1多路選擇器19實(shí)驗(yàn)十一 循環(huán)彩燈控制器的設(shè)計(jì)21可編程邏輯器件實(shí)驗(yàn)講義實(shí)驗(yàn)一 Quartus軟件及EDA實(shí)驗(yàn)平臺(tái)介紹(1)實(shí)驗(yàn)?zāi)康模菏煜uartus軟件的使用,學(xué)習(xí)其操作過程及仿真過程。(2)實(shí)驗(yàn)內(nèi)容:學(xué)習(xí)使用Quartus對(duì)程序進(jìn)行編輯輸入、編譯及仿真。1、打開

2、QuartusII軟件。2、選擇路徑。選擇File/New Project Wizard,指定工作目錄,指定工程和頂層設(shè)計(jì)實(shí)體稱;注意:工作目錄名不能有中文。3、添加設(shè)計(jì)文件。將設(shè)計(jì)文件加入工程中。單擊“Next”,如果有已經(jīng)建立好的VHDL或者原理圖等文件可以在File name中選擇路徑然后添加,或者選擇Add All添加所有可以添加的設(shè)計(jì)文件(.VHDL ,.Verilog原理圖等)。如果沒有直接點(diǎn)擊“Next”,等建立好工程后再添加也可,這里我們暫不添加。4、選擇FPGA器件。Family選擇Cyclone,Available device選EP1C12Q240C8,點(diǎn)擊“Next”。

3、5、選擇外部綜合器、仿真器和時(shí)序分析器。Quartus II支持外部工具,可通過選中來指定工具的路徑。這里我們不做選擇,默認(rèn)使用Quartus II自帶的工具。6、結(jié)束設(shè)置。單擊“Next”,彈出“工程設(shè)置統(tǒng)計(jì)”窗口,上面列出了工程的相關(guān)設(shè)置情況。最后單擊“Finish”,結(jié)束工程設(shè)置。7、建立VHDL原文件。選擇菜單“File”à“New”。8、添加文件到工程中。VHDL原文件編輯完后,選擇File/Save,選擇和工程相同的文件名。點(diǎn)擊“保存”,文件就被添加進(jìn)工程當(dāng)中。21library ieee;use ieee.std_logic_1164.all;use ieee.std_

4、logic_unsigned.all;entity adder4b isport(clr,cin: in std_logic;a,b: in std_logic_vector(3 downto 0);s: out std_logic_vector(3 downto 0);cout:out std_logic);end adder4b;architecture art of adder4b issignal sint:std_logic_vector(4 downto 0);signal aa,bb:std_logic_vector(4 downto 0);begin aa<='0

5、'&a; bb<='0'&b; sint<=aa+bb+cin; s<=sint(3 downto 0); cout<=sint(4);end art;9、編譯。選擇Processing/Start/Start Analysis&Synthesis,進(jìn)行綜合。10、功能仿真驗(yàn)證,從菜單File-New中選擇創(chuàng)建Vector Waveform File。在新的波形文件中選入需要驗(yàn)證的引腳,通過在左邊窗欄理點(diǎn)擊鼠標(biāo)右鍵,選Insert Node or Bus . , 在打開的對(duì)話框中點(diǎn)擊List, 選擇所要觀察的信號(hào)引腳,設(shè)置

6、引腳的信號(hào)值, 如下圖所示。點(diǎn)擊保存Save.在Settings對(duì)話框中,選中Simulator Settings選擇頁(yè),設(shè)置Function類型仿真,并將新創(chuàng)建的波形文件當(dāng)作仿真輸入,如下圖所示: 設(shè)置完畢之后,點(diǎn)擊Processing ->Generate Functional Simulator NetList, 生產(chǎn)網(wǎng)表文件之后,點(diǎn)擊Start Simulator,進(jìn)行功能仿真,然后驗(yàn)證邏輯功能是否正確。(4)實(shí)驗(yàn)報(bào)告:簡(jiǎn)述實(shí)驗(yàn)步驟,寫出實(shí)驗(yàn)的源程序,給出波形仿真結(jié)果。實(shí)驗(yàn)二 Quartus文本設(shè)計(jì)輸入(1)實(shí)驗(yàn)?zāi)康模菏煜uartus軟件的使用及仿真過程;掌握操作符的邏輯運(yùn)算關(guān)

7、系及數(shù)據(jù)類型,熟悉VHDL文本輸入法。(2)實(shí)驗(yàn)內(nèi)容:使用VHDL文本輸入法完成基本門的設(shè)計(jì),學(xué)習(xí)使用Quartus對(duì)程序進(jìn)行編輯輸入、編譯及仿真。library ieee;use iee.std_logic_1164.all;entity jbm is port(a,b: in bit; f1,f2,f3,f4,f5,f: out bit);end jbm;architecture a of jbm isbegin f1<=a and b; f2<=a or b; f<=not a; f3<=a nand b; f4<=a nor b; f5<=not(a

8、 xor b); end; (3)思考題根據(jù)上述實(shí)驗(yàn)結(jié)果與現(xiàn)象,獨(dú)立完成2位二進(jìn)制數(shù)的“與、或非、異或、同或”邏輯運(yùn)算,要求數(shù)據(jù)類型為標(biāo)準(zhǔn)邏輯矢量類型。(4)實(shí)驗(yàn)報(bào)告寫出實(shí)驗(yàn)的源程序,給出相應(yīng)表達(dá)式完成的邏輯關(guān)系,并給出波形仿真結(jié)果。獨(dú)立完成思考題,給出源程序。實(shí)驗(yàn)三 Quartus混合設(shè)計(jì)輸入(1)實(shí)驗(yàn)?zāi)康模菏煜uartus軟件的使用及仿真過程;熟悉VHDL混合輸入法,并完成一位全加器的設(shè)計(jì)。(2)實(shí)驗(yàn)原理表3-1 半加器真值表absoco0000011010101101建立一位半加器half_adder工程:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL

9、;ENTITY HALF_ADDER ISPORT(A,B: IN STD_LOGIC;S,Co: OUT STD_LOGIC);END ENTITY HALF_ADDER;ARCHITECTURE RTL OF HALF_ADDER ISBEGINS <= NOT(A XOR(NOT B);Co <= A AND B;END ARCHITECTURE HD;(3)實(shí)驗(yàn)內(nèi)容:使用VHDL文本輸入法完成一位半加器的設(shè)計(jì),利用Quartus對(duì)程序進(jìn)行編輯輸入、編譯及仿真;將半加器生成元件符號(hào),執(zhí)行菜單【File】->【Create/Update】->【Create symb

10、ol file for current file】;新建原理圖文件,并添加剛生成新元件;連接電路圖根據(jù)文本輸入的半加器,結(jié)合所給原理圖,進(jìn)行合理的電路圖連接。注意:原理圖保存名稱不要與半加器實(shí)體名重合。指定頂層文件(4)實(shí)驗(yàn)報(bào)告給出半加器的原理,寫出一位半加器的文本源程序;畫出一位全加器的原理圖,對(duì)一位全加器進(jìn)行功能仿真,給出波形仿真結(jié)果,并舉例驗(yàn)證結(jié)果是否正確。 實(shí)驗(yàn)四 D、T觸發(fā)器(1)實(shí)驗(yàn)?zāi)康模菏煜uartusII的VHDL文本設(shè)計(jì)過程,學(xué)習(xí)簡(jiǎn)單時(shí)序電路的設(shè)計(jì)、仿真。(2)實(shí)驗(yàn)原理時(shí)序邏輯電路是現(xiàn)代復(fù)雜數(shù)字電路的重要組成部分,往往占到整個(gè)設(shè)計(jì)的90以上。觸發(fā)器是時(shí)序電路的基本單元,本實(shí)

11、驗(yàn)將涉及到D觸發(fā)器與T觸發(fā)器,采用的是邊沿觸發(fā),邊沿觸發(fā)是實(shí)際電路實(shí)現(xiàn)的主要方式。D觸發(fā)器:在時(shí)鐘上升沿時(shí),輸出q=d,qb=;T觸發(fā)器:在時(shí)鐘上升沿的作用下,T=0輸出不變,T=1輸出翻轉(zhuǎn)。(3)實(shí)驗(yàn)內(nèi)容:設(shè)計(jì)上升沿觸發(fā)的同步復(fù)位的D觸發(fā)器及上升沿觸發(fā)的T觸發(fā)器,分別利用Quartus對(duì)程序進(jìn)行編輯輸入、編譯及仿真。上升沿觸發(fā)的同步復(fù)位的D觸發(fā)器library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_signed.all; entity syndff is port(d,clk,reset:in std_logic; q,q

12、b:out std_logic); end syndff; architecture dff_art of syndff is begin process(clk) begin if (clk'event and clk='1') then if (reset='0') then q<='0' qb<='1' else q<=d; qb<=not d; end if; end if; end process; end dff_art; T觸發(fā)器源程序代碼:library ieee; use ieee

13、.std_logic_1164.all; use ieee.std_logic_signed.all; entity tff is port(t,clk: in std_logic; q: out std_logic); end; architecture tff_art of tff is signal q_temp: std_logic; begin p1:process(clk,q_temp) begin if rising_edge(clk) then if t='1' then q_temp<=not q_temp; else q_temp<=q_temp

14、; end if; end if; q<=q_temp; end process; q<=q_temp; end tff_art;(4)實(shí)驗(yàn)報(bào)告寫出D觸發(fā)器及T觸發(fā)器的程序代碼及原理,找出D觸發(fā)器的錯(cuò)誤及T觸發(fā)器的警告,說明其錯(cuò)誤原因并改正,最后給出兩個(gè)觸發(fā)器的波形仿真結(jié)果。實(shí)驗(yàn)五 十六進(jìn)制數(shù)碼管顯示(1)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)7段數(shù)碼顯示譯碼器設(shè)計(jì),學(xué)習(xí)VHDL的case設(shè)計(jì)方法。(2)實(shí)驗(yàn)儀器計(jì)算機(jī)一臺(tái),EL教學(xué)實(shí)驗(yàn)箱(EDA-VI),QUARTUS II(3)實(shí)驗(yàn)原理七段數(shù)碼管由8個(gè)(a,b,c,d,e,f,g,dp)按照一定位置排列的發(fā)光二極管構(gòu)成,通常采取共陰極或者共陽(yáng)極的設(shè)計(jì),將

15、8個(gè)二極管的同一極接在一起,通過分別控制另外的8個(gè)電極的電平,使二極管導(dǎo)通(發(fā)光)或截止(不發(fā)光)。本實(shí)驗(yàn)采用共陰極設(shè)計(jì),高電平點(diǎn)亮。七段數(shù)碼顯示譯碼器的功能就是根據(jù)需要顯示的字符,輸出能夠控制七段數(shù)碼管顯示出該字符的編碼。(4)實(shí)驗(yàn)內(nèi)容用VHDL設(shè)計(jì)7段數(shù)碼管顯示電路設(shè)計(jì),利用case語(yǔ)句實(shí)現(xiàn)數(shù)碼管上顯示字符的電路。十六進(jìn)制數(shù)碼管顯示源代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY shuma ISPORT (clk:IN STD_LOGIC;vga:out std_logi

16、c_vector (3 downto 0);sel:out std_logic_vector(7 downto 0);seg_led: out std_logic_vector (7 downto 0) ) ;END;ARCHITECTURE one OF shuma ISsignal cq:std_logic_vector(3 downto 0);BEGINvga<="0010"sel<="11111110"PROCESS(clk,cq)BEGINIF (clk='1' AND clk'EVENT) THENcq&l

17、t;=cq+1;end if;CASE cq ISWHEN"0000"=>seg_led<="00111111"WHEN"0001"=>seg_led<="00000110"WHEN"0010"=>seg_led<="01011011"WHEN"0011"=>seg_led<="01001111"WHEN"0100"=>seg_led<="0110

18、0110"WHEN"0101"=>seg_led<="01101101"WHEN"0110"=>seg_led<="01111101"WHEN"0111"=>seg_led<="00000111"WHEN"1000"=>seg_led<="01111111"WHEN"1001"=>seg_led<="01101111"WHEN&

19、quot;1010"=>seg_led<="01110111"WHEN"1011"=>seg_led<="01111100"WHEN"1100"=>seg_led<="00111001"WHEN"1101"=>seg_led<="01011110"WHEN"1110"=>seg_led<="01111001"WHEN"1111"

20、=>seg_led<="01110001"WHEN OTHERS => NULL;END CASE;end process;END;用QuartusII對(duì)中的設(shè)計(jì)進(jìn)行編譯、綜合、仿真,驗(yàn)證其功能是否與預(yù)期一致。管腳配置: seg_led0:PIN_105seg_led1:PIN_104seg_led2:PIN_101seg_led3:PIN_100seg_led4:PIN_85seg_led5:PIN_84seg_led6:PIN_83seg_led7:PIN_82sel0:PIN_86sel1:PIN_87sel2:PIN_88sel3:PIN_93se

21、l4:PIN_94sel5:PIN_95sel6:PIN_98sel7:PIN_99vga0:PIN_162vga1:PIN_161vga2:PIN_164vga3:PIN_163clk:PIN_28注意:未分配管腳:Assignments->device.->device&pin options ->unused pins->Reserve all unused pins:As input tri-stated。通過QuartusII的usb-blaster,將設(shè)計(jì)下載到實(shí)驗(yàn)電路上進(jìn)行硬件測(cè)試。(4)實(shí)驗(yàn)連線clk的頻率由SW17-SW20控制,用導(dǎo)線將IO3

22、與IOCLK相連;SW17-SW20控制時(shí)鐘的頻率,0111表示頻率為5Hz,1111表示時(shí)鐘頻率為1Hz,本實(shí)驗(yàn)選用這兩個(gè)頻率進(jìn)行測(cè)試,觀察數(shù)碼管顯示字符的變化。(5)實(shí)驗(yàn)報(bào)告給出十六進(jìn)制的數(shù)碼管的程序代碼、原理,自己改寫程序選擇不同的數(shù)碼管顯示字符,并提供實(shí)驗(yàn)過程中的拍攝圖片。 實(shí)驗(yàn)六 3-8譯碼器設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康耐ㄟ^3-8譯碼器的設(shè)計(jì),掌握組合邏輯電路的設(shè)計(jì)方法,熟悉軟件的使用,并利用實(shí)驗(yàn)箱對(duì)程序進(jìn)行硬件測(cè)試。(2)實(shí)驗(yàn)儀器計(jì)算機(jī)一臺(tái),EL教學(xué)實(shí)驗(yàn)箱(EDA-VI),QUARTUS II(3)實(shí)驗(yàn)原理輸入輸出g1 g2ag2bC B A Y0 Y1Y2Y3Y4Y5Y6Y70 X X X

23、 X X 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 0 1 1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 1 1 1 1 1 0 0 1 0 0 1 1 1 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 1 0 1 1 1 0 0 1 1 0 1 1 1 1 1 1 0 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 利用case語(yǔ)句設(shè)計(jì)3-8譯碼器,譯碼器的輸出接LED燈,為低電平點(diǎn)亮。(4)實(shí)驗(yàn)內(nèi)容3-8譯碼器源程序代碼:

24、LIBRARY ieee;USE ieee.std_logic_1164.ALL;ENTITY decoder3_8 ISPORT(a,b,c,g1,g2a,g2b:IN STD_LOGIC;VGA:out std_logic_vector(3 downto 0);Y: OUTSTD_LOGIC_VECTOR(7 DOWNTO 0);END decoder3_8;ARCHITECTURE fun OF decoder3_8 ISSIGNAL indata: STD_LOGIC_VECTOR(2 DOWNTO 0);BEGINVGA<=“0001”; indata <= C&

25、B&A;PROCESS (indata, G1, G2A,G2B)BEGINIF (G1='1' AND G2A='0' AND G2B='0') THENCASE indata ISWHEN "000"=>Y<="11111110"WHEN "001"=>Y<="11111101"WHEN "010"=>Y<="11111011"WHEN "011"=>Y&

26、lt;="11110111"WHEN "100"=>Y<="11101111"WHEN "101"=>Y<="11011111"WHEN "110"=>Y<="10111111"WHEN "111"=>Y<="01111111"WHEN OTHERS =>Y<="XXXXXXXX"END CASE;ELSEY<="1111

27、1111"END IF;END PROCESS;END fun;管腳配置:A:PIN_105B:PIN_104C:PIN_101G1:PIN_100G2A:PIN_85G2B:PIN_84Y0:PIN_132Y1:PIN_133Y2:PIN_134Y3:PIN_135Y4:PIN_136Y5:PIN_137Y6:PIN_138Y7:PIN_139vga0:PIN_162vga1:PIN_161vga2:PIN_164vga3:PIN_163利用quartus II軟件對(duì)程序編譯、仿真,驗(yàn)證其功能,最后將程序下載到實(shí)驗(yàn)箱,利用硬件測(cè)試實(shí)驗(yàn)的正確性。注意:未分配管腳:Assignment

28、s->device.->device&pin options ->unused pins->Reserve all unused pins:As input tri-stated。(5)實(shí)驗(yàn)連線C、B、A、G1、G2A、G2B分別對(duì)應(yīng)EDA-VI實(shí)驗(yàn)箱底板SW1-SW6;Y0-Y7分別對(duì)應(yīng)EDA-VI實(shí)驗(yàn)箱底板IO9-IO16;用導(dǎo)線將IO9-IO16與8位LED L1-L8相連,LED為低電平點(diǎn)亮;功能選擇位VGA3.0狀態(tài)為0001,即16位撥碼開關(guān)SW1-SW6被選中輸出到總線D15.0;控制撥碼開關(guān)SW1-SW6,觀察L1-L8顯示狀態(tài)是否與預(yù)期輸出結(jié)果

29、一致。(6)實(shí)驗(yàn)報(bào)告簡(jiǎn)述3-8譯碼器原理,并根據(jù)提供的程序代碼改用if語(yǔ)句描述,并給出其波形仿真結(jié)果;根據(jù)撥碼開關(guān)的控制位置,簡(jiǎn)述實(shí)驗(yàn)箱變化情況。實(shí)驗(yàn)七 計(jì)數(shù)器的設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康倪M(jìn)一步學(xué)習(xí)并掌握Quartus II 開發(fā)系統(tǒng)的基本操作,熟悉設(shè)計(jì)計(jì)數(shù)器電路與仿真的方法,掌握CPLD/FPGA的開發(fā)流程。(2)實(shí)驗(yàn)原理:計(jì)數(shù)器是邏輯電路中使用最廣泛的電路,并且在復(fù)雜電路的設(shè)計(jì)中幾乎離不開計(jì)數(shù)器。計(jì)數(shù)器的計(jì)數(shù)功能是在時(shí)鐘信號(hào)的控制下進(jìn)行的,當(dāng)時(shí)鐘出現(xiàn)上升沿,則計(jì)數(shù)一次,以此類推,直至計(jì)數(shù)到最大值,在時(shí)鐘上升沿時(shí),返回到起點(diǎn)。(3)實(shí)驗(yàn)內(nèi)容設(shè)計(jì)一個(gè)簡(jiǎn)單的4位二進(jìn)制計(jì)數(shù)器,相當(dāng)于16進(jìn)制計(jì)數(shù)器。lib

30、rary ieee; use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt4 ISport( clk: in std_logic; q: out std_logic_vector(3 downto 0);end cnt4;architecture behave of cnt4 issignal q1: std_logic_vector(3 downto 0);begin process(clk) begin if (clk'event and clk = '1') then q1&l

31、t;=q1+1; end if;end process; q<=q1;end behave;利用Quartus II軟件進(jìn)行編譯、仿真,驗(yàn)證該計(jì)數(shù)器的功能。根據(jù)之前所學(xué)內(nèi)容,設(shè)計(jì)一個(gè)可以在實(shí)驗(yàn)箱上顯示的計(jì)數(shù)器。(4)實(shí)驗(yàn)報(bào)告給出計(jì)數(shù)器的程序代碼,提供波形仿真結(jié)果。實(shí)驗(yàn)八 數(shù)控分頻器的設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康膶W(xué)習(xí)數(shù)控分頻器的設(shè)計(jì)、分析和測(cè)試方法。(2)實(shí)驗(yàn)原理分頻器電路的實(shí)質(zhì)其實(shí)就是計(jì)數(shù)器的設(shè)計(jì)。對(duì)于二進(jìn)制計(jì)數(shù)器,每一個(gè)輸出端都是對(duì)前一個(gè)輸出端的二分頻。數(shù)控分頻器是利用計(jì)數(shù)器可并行預(yù)置的加法計(jì)數(shù)器完成的。方法是將計(jì)數(shù)器溢出位與預(yù)置數(shù)加載輸入信號(hào)加減即可。這種方法類似于單片機(jī)的定時(shí)器工作模式。(3

32、)實(shí)驗(yàn)內(nèi)容設(shè)計(jì)數(shù)控分頻器library ieee;use std_logic_1164.all;use std_logic_unsigned.all;entity freq1 is port(clk: in std_logic; d: in std_logic_vector(7 downto 0);fout: out std_logic);end;architecture one of dvf issignal full: std_logic;beginp_reg:process(clk)variable cnt8: std_logic_vector(7 downto 0); begin if

33、 clk'event and clk='1' then if cnt8=“11111111” then- CNT8計(jì)數(shù)計(jì)滿時(shí) cnt8:=d; -輸入數(shù)據(jù)D被同步預(yù)置給CNT8 full<='1' -溢出標(biāo)志信號(hào)FULL輸出高電平elsecnt8:=cnt8+1; -否則繼續(xù)作加1計(jì)數(shù)full<='0' -輸出溢出標(biāo)志信號(hào)FULL為低電平 end if; end if;end process p_reg;p_div:process(full)variable cnt2: std_logic;beginif full'e

34、vent and full='1' thencnt2:=not cnt2; -如果溢出標(biāo)志信號(hào)FULL為高電平,T觸發(fā)器輸出取反if cnt2='1'thenfout<='1'elsefout<='0'end if;end if;end process p_div;end;利用Quartus II軟件進(jìn)行編譯、仿真,驗(yàn)證該數(shù)控分頻器的功能。(4)思考題根據(jù)上述數(shù)控分頻器源程序,對(duì)程序進(jìn)行修改,可以完成任意分頻功能。具體實(shí)現(xiàn)的分頻數(shù)根據(jù)課堂隨機(jī)設(shè)置,每小組均不同。(5)實(shí)驗(yàn)報(bào)告給出數(shù)控分頻器的程序代碼,實(shí)驗(yàn)步驟并提供波形

35、仿真結(jié)果。寫出課堂隨機(jī)分頻器的源程序代碼。實(shí)驗(yàn)九 鎖存器的設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康恼莆丈烧Z(yǔ)句的設(shè)計(jì)方法,熟悉Quartus II軟件的操作及仿真過程。(2)實(shí)驗(yàn)原理鎖存器是一種用來暫時(shí)保存數(shù)據(jù)的邏輯器件,當(dāng)使能輸入端ena為高電平時(shí),鎖存器處于工作狀態(tài),輸出q3.0=d3.0;當(dāng)輸入端ena為低電平,鎖存器的狀態(tài)保持不變。本實(shí)驗(yàn)利用生成語(yǔ)句來完成一個(gè)4位鎖存器的設(shè)計(jì)。(3)實(shí)驗(yàn)內(nèi)容設(shè)計(jì)1位鎖存器library ieee;use ieee.std_logic_1164.all;entity latch1b isport(d: in std_logic; ena: in std_logic; -使能端

36、 q: out std_logic);end latch1b;architecture art of latch1b is begin process(d,ena) begin if ena='1' thenq<=d; end if;end process;end art;利用Quartus II軟件進(jìn)行編譯、仿真,驗(yàn)證一位鎖存器的功能。將元件聲明裝入my_package程序包中,便于生成語(yǔ)句的元件例化。library ieee;use ieee.std_logic_1164.all;package my_package iscomponent latch1b port(

37、d:in std_logic; ena:in std_logic; q: out std_logic);end component;end;利用生成語(yǔ)句重復(fù)調(diào)用4個(gè)latch1b來完成頂層文件的設(shè)計(jì)。library ieee;use ieee.std_logic_1164.all;use work.my_package.all; -用戶自定義程序包entity latch4d isport(d: in std_logic_vector(3 downto 0); oen: in bit; q:out std_logic_vector(3 downto 0);end latch4d;archite

38、cture one of latch4d is signal sig_save:std_logic_vector(3 downto 0);begin getlatch:for n in 0 to 3 generate-循環(huán)例化4個(gè)1位鎖存器lat : latch1b port map(d(n),g,sig_save(n); -關(guān)聯(lián) end generate; q<=sig_save when oen='0'else "ZZZZ"end one;利用Quartus II軟件進(jìn)行編譯、仿真,并驗(yàn)證4位鎖存器的功能。(3)思考題根據(jù)上述生成語(yǔ)句描述的鎖存器,

39、用元件例化語(yǔ)句完成上述鎖存器的設(shè)計(jì)。(4)實(shí)驗(yàn)報(bào)告寫出鎖存器的兩種描述語(yǔ)句的源程序,給出波形仿真結(jié)果,分析比較其結(jié)果。實(shí)驗(yàn)十 4選1多路選擇器(1)實(shí)驗(yàn)?zāi)康耐ㄟ^4選1多路選擇器的設(shè)計(jì),掌握if語(yǔ)句、case語(yǔ)句、when.else語(yǔ)句及with.select語(yǔ)句的使用及相互轉(zhuǎn)換,熟悉軟件的使用。(2)實(shí)驗(yàn)原理4選1多路選擇器關(guān)系表輸入輸出XS1S0Ya00ab01bc10cd11d其中輸入數(shù)據(jù)端口為a、b、c、d,s1、s0為控制信號(hào),Y為輸出。令S1S0=“00”時(shí),輸出Y=a;   令S1S0=“01”時(shí),輸出Y=b;令S1S0=“10”時(shí),輸出Y=c;

40、60; 令S1S0=“11 時(shí),輸出Y=d;(3)實(shí)驗(yàn)內(nèi)容4選1多路選擇器參考代碼:LIBRARY ieee;USE ieee.std_logic_1164.all;entity mux4 is port( input: in std_logic_vector(3 downto 0); a,b: in std_logic; y: out std_logic); end mux4; architecture be_mux4 OF mux4 is signal sel: std_logic_vector(1 downto 0); begin sel<=b&a; proces

41、s(input,sel) begin if(sel="00") then y<=input(0);elsif (sel="01") then y<=input(1);elsif (sel="10") then y<=input(2);else y<=input(3);end if;end process;end be_mux4;(4)思考題根據(jù)上述if語(yǔ)句4選1多路選擇器的程序,完成case語(yǔ)句、when.else語(yǔ)句及with.select語(yǔ)句的描述。(5)實(shí)驗(yàn)報(bào)告要求寫出四種語(yǔ)句的4選1多路選擇器的程序、原

42、理及波形仿真結(jié)果。實(shí)驗(yàn)十一 循環(huán)彩燈控制器的設(shè)計(jì)(1)實(shí)驗(yàn)?zāi)康恼莆諣顟B(tài)機(jī)的設(shè)計(jì)方法,鞏固case語(yǔ)句及Quartus II軟件的操作與仿真。(2)實(shí)驗(yàn)原理設(shè)計(jì)一個(gè)循環(huán)彩燈控制器,該控制器控制LED 8個(gè)發(fā)光管循環(huán)發(fā)亮。要求:LED等按照一定的變化規(guī)律進(jìn)行變換,利用狀態(tài)機(jī)來完成本次實(shí)驗(yàn)。(3)實(shí)驗(yàn)內(nèi)容自定義狀態(tài)機(jī)的狀態(tài)type states is (s0,s1,s2,s3,s4,s5,s6,s7);采用case語(yǔ)句設(shè)計(jì)狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)換;library ieee;use ieee.std_logic_1164.all; entity state8 is port(clk,clr : in std_logic; led:out std_logic_vector(7 downto 0); vga:out std_logic_vector(3 downto 0);end; architecture a of state8 is type states is (s0,s1,s2,s3,s4,s5,s6,s7); -對(duì)狀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論