




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、可 編 程 邏 輯 器 件實驗講義目 錄目 錄實驗一 Quartus軟件及EDA實驗平臺介紹1實驗二 Quartus文本設計輸入4實驗三 Quartus混合設計輸入5實驗四 D、T觸發(fā)器7實驗五 十六進制數碼管顯示8實驗六 3-8譯碼器設計10實驗七 計數器的設計12實驗八 數控分頻器的設計13實驗九 鎖存器的設計14實驗十 4選1多路選擇器19實驗十一 循環(huán)彩燈控制器的設計21可編程邏輯器件實驗講義實驗一 Quartus軟件及EDA實驗平臺介紹(1)實驗目的:熟悉Quartus軟件的使用,學習其操作過程及仿真過程。(2)實驗內容:學習使用Quartus對程序進行編輯輸入、編譯及仿真。1、打開
2、QuartusII軟件。2、選擇路徑。選擇File/New Project Wizard,指定工作目錄,指定工程和頂層設計實體稱;注意:工作目錄名不能有中文。3、添加設計文件。將設計文件加入工程中。單擊“Next”,如果有已經建立好的VHDL或者原理圖等文件可以在File name中選擇路徑然后添加,或者選擇Add All添加所有可以添加的設計文件(.VHDL ,.Verilog原理圖等)。如果沒有直接點擊“Next”,等建立好工程后再添加也可,這里我們暫不添加。4、選擇FPGA器件。Family選擇Cyclone,Available device選EP1C12Q240C8,點擊“Next”。
3、5、選擇外部綜合器、仿真器和時序分析器。Quartus II支持外部工具,可通過選中來指定工具的路徑。這里我們不做選擇,默認使用Quartus II自帶的工具。6、結束設置。單擊“Next”,彈出“工程設置統計”窗口,上面列出了工程的相關設置情況。最后單擊“Finish”,結束工程設置。7、建立VHDL原文件。選擇菜單“File”“New”。8、添加文件到工程中。VHDL原文件編輯完后,選擇File/Save,選擇和工程相同的文件名。點擊“保存”,文件就被添加進工程當中。21library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_
4、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&a; bb=0&b; sin
5、t=aa+bb+cin; s=sint(3 downto 0); coutGenerate Functional Simulator NetList, 生產網表文件之后,點擊Start Simulator,進行功能仿真,然后驗證邏輯功能是否正確。(4)實驗報告:簡述實驗步驟,寫出實驗的源程序,給出波形仿真結果。實驗二 Quartus文本設計輸入(1)實驗目的:熟悉Quartus軟件的使用及仿真過程;掌握操作符的邏輯運算關系及數據類型,熟悉VHDL文本輸入法。(2)實驗內容:使用VHDL文本輸入法完成基本門的設計,學習使用Quartus對程序進行編輯輸入、編譯及仿真。library ieee;u
6、se 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 xor b); end; (3)思考題根據上述實驗結果與現象,獨立完成2位二進制數的“與、或非、異或、同或”邏輯運算,要求數據類型為標準邏輯矢量類型。(4)實驗報告寫出實驗的源程序,給出相應表達式完成的邏輯關系,并給出波形
7、仿真結果。獨立完成思考題,給出源程序。實驗三 Quartus混合設計輸入(1)實驗目的:熟悉Quartus軟件的使用及仿真過程;熟悉VHDL混合輸入法,并完成一位全加器的設計。(2)實驗原理表3-1 半加器真值表absoco0000011010101101建立一位半加器half_adder工程:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY HALF_ADDER ISPORT(A,B: IN STD_LOGIC;S,Co: OUT STD_LOGIC);END ENTITY HALF_ADDER;ARCHITECTURE RTL OF HALF_
8、ADDER ISBEGINS = NOT(A XOR(NOT B);Co 【Create/Update】-【Create symbol file for current file】;新建原理圖文件,并添加剛生成新元件;連接電路圖根據文本輸入的半加器,結合所給原理圖,進行合理的電路圖連接。注意:原理圖保存名稱不要與半加器實體名重合。指定頂層文件(4)實驗報告給出半加器的原理,寫出一位半加器的文本源程序;畫出一位全加器的原理圖,對一位全加器進行功能仿真,給出波形仿真結果,并舉例驗證結果是否正確。 實驗四 D、T觸發(fā)器(1)實驗目的:熟悉QuartusII的VHDL文本設計過程,學習簡單時序電路的設
9、計、仿真。(2)實驗原理時序邏輯電路是現代復雜數字電路的重要組成部分,往往占到整個設計的90以上。觸發(fā)器是時序電路的基本單元,本實驗將涉及到D觸發(fā)器與T觸發(fā)器,采用的是邊沿觸發(fā),邊沿觸發(fā)是實際電路實現的主要方式。D觸發(fā)器:在時鐘上升沿時,輸出q=d,qb=;T觸發(fā)器:在時鐘上升沿的作用下,T=0輸出不變,T=1輸出翻轉。(3)實驗內容:設計上升沿觸發(fā)的同步復位的D觸發(fā)器及上升沿觸發(fā)的T觸發(fā)器,分別利用Quartus對程序進行編輯輸入、編譯及仿真。上升沿觸發(fā)的同步復位的D觸發(fā)器library ieee; use ieee.std_logic_1164.all; use ieee.std_logi
10、c_signed.all; entity syndff is port(d,clk,reset:in std_logic; q,qb:out std_logic); end syndff; architecture dff_art of syndff is begin process(clk) begin if (clkevent 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; us
11、e ieee.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; end if; en
12、d if; q=q_temp; end process; q=q_temp; end tff_art;(4)實驗報告寫出D觸發(fā)器及T觸發(fā)器的程序代碼及原理,找出D觸發(fā)器的錯誤及T觸發(fā)器的警告,說明其錯誤原因并改正,最后給出兩個觸發(fā)器的波形仿真結果。實驗五 十六進制數碼管顯示(1)實驗目的學習7段數碼顯示譯碼器設計,學習VHDL的case設計方法。(2)實驗儀器計算機一臺,EL教學實驗箱(EDA-VI),QUARTUS II(3)實驗原理七段數碼管由8個(a,b,c,d,e,f,g,dp)按照一定位置排列的發(fā)光二極管構成,通常采取共陰極或者共陽極的設計,將8個二極管的同一極接在一起,通過分別控制
13、另外的8個電極的電平,使二極管導通(發(fā)光)或截止(不發(fā)光)。本實驗采用共陰極設計,高電平點亮。七段數碼顯示譯碼器的功能就是根據需要顯示的字符,輸出能夠控制七段數碼管顯示出該字符的編碼。(4)實驗內容用VHDL設計7段數碼管顯示電路設計,利用case語句實現數碼管上顯示字符的電路。十六進制數碼管顯示源代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;use ieee.std_logic_unsigned.all;ENTITY shuma ISPORT (clk:IN STD_LOGIC;vga:out std_logic_vector (3 downto 0
14、);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 clkEVENT) THENcqseg_ledseg_ledseg_ledseg_ledseg_ledseg_ledseg_ledseg_ledseg_ledseg_
15、ledseg_ledseg_ledseg_ledseg_ledseg_ledseg_led NULL;END CASE;end process;END;用QuartusII對中的設計進行編譯、綜合、仿真,驗證其功能是否與預期一致。管腳配置: 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_93sel4:PIN_94
16、sel5: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,將設計下載到實驗電路上進行硬件測試。(4)實驗連線clk的頻率由SW17-SW20控制,用導線將IO3與IOCLK相連;SW17-SW20控制時鐘的頻率,011
17、1表示頻率為5Hz,1111表示時鐘頻率為1Hz,本實驗選用這兩個頻率進行測試,觀察數碼管顯示字符的變化。(5)實驗報告給出十六進制的數碼管的程序代碼、原理,自己改寫程序選擇不同的數碼管顯示字符,并提供實驗過程中的拍攝圖片。 實驗六 3-8譯碼器設計(1)實驗目的通過3-8譯碼器的設計,掌握組合邏輯電路的設計方法,熟悉軟件的使用,并利用實驗箱對程序進行硬件測試。(2)實驗儀器計算機一臺,EL教學實驗箱(EDA-VI),QUARTUS II(3)實驗原理輸入輸出g1 g2ag2bC B A Y0 Y1Y2Y3Y4Y5Y6Y70 X X X X X 1 1 1 1 1 1 1 1 1 0 0 0
18、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語句設計3-8譯碼器,譯碼器的輸出接LED燈,為低電平點亮。(4)實驗內容3-8譯碼器源程序代碼:LIBRARY ieee;USE ieee.std_log
19、ic_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 YYYYYYYYY=XXXXXXXX;END CASE;ELSEYdevice.-devi
20、ce&pin options -unused pins-Reserve all unused pins:As input tri-stated。(5)實驗連線C、B、A、G1、G2A、G2B分別對應EDA-VI實驗箱底板SW1-SW6;Y0-Y7分別對應EDA-VI實驗箱底板IO9-IO16;用導線將IO9-IO16與8位LED L1-L8相連,LED為低電平點亮;功能選擇位VGA3.0狀態(tài)為0001,即16位撥碼開關SW1-SW6被選中輸出到總線D15.0;控制撥碼開關SW1-SW6,觀察L1-L8顯示狀態(tài)是否與預期輸出結果一致。(6)實驗報告簡述3-8譯碼器原理,并根據提供的程序代碼改用i
21、f語句描述,并給出其波形仿真結果;根據撥碼開關的控制位置,簡述實驗箱變化情況。實驗七 計數器的設計(1)實驗目的進一步學習并掌握Quartus II 開發(fā)系統的基本操作,熟悉設計計數器電路與仿真的方法,掌握CPLD/FPGA的開發(fā)流程。(2)實驗原理:計數器是邏輯電路中使用最廣泛的電路,并且在復雜電路的設計中幾乎離不開計數器。計數器的計數功能是在時鐘信號的控制下進行的,當時鐘出現上升沿,則計數一次,以此類推,直至計數到最大值,在時鐘上升沿時,返回到起點。(3)實驗內容設計一個簡單的4位二進制計數器,相當于16進制計數器。library ieee; use ieee.std_logic_1164
22、.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 (clkevent and clk = 1) then q1=q1+1; end if;end process; q=q1;end behave;利用Quartu
23、s II軟件進行編譯、仿真,驗證該計數器的功能。根據之前所學內容,設計一個可以在實驗箱上顯示的計數器。(4)實驗報告給出計數器的程序代碼,提供波形仿真結果。實驗八 數控分頻器的設計(1)實驗目的學習數控分頻器的設計、分析和測試方法。(2)實驗原理分頻器電路的實質其實就是計數器的設計。對于二進制計數器,每一個輸出端都是對前一個輸出端的二分頻。數控分頻器是利用計數器可并行預置的加法計數器完成的。方法是將計數器溢出位與預置數加載輸入信號加減即可。這種方法類似于單片機的定時器工作模式。(3)實驗內容設計數控分頻器library ieee;use std_logic_1164.all;use std_l
24、ogic_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 clkevent and clk=1 then if cnt8=“11111111” then- CNT8計數計
25、滿時 cnt8:=d; -輸入數據D被同步預置給CNT8 full=1; -溢出標志信號FULL輸出高電平elsecnt8:=cnt8+1; -否則繼續(xù)作加1計數full=0; -輸出溢出標志信號FULL為低電平 end if; end if;end process p_reg;p_div:process(full)variable cnt2: std_logic;beginif fullevent and full=1 thencnt2:=not cnt2; -如果溢出標志信號FULL為高電平,T觸發(fā)器輸出取反if cnt2=1thenfout=1;elsefout=0;end if;end
26、 if;end process p_div;end;利用Quartus II軟件進行編譯、仿真,驗證該數控分頻器的功能。(4)思考題根據上述數控分頻器源程序,對程序進行修改,可以完成任意分頻功能。具體實現的分頻數根據課堂隨機設置,每小組均不同。(5)實驗報告給出數控分頻器的程序代碼,實驗步驟并提供波形仿真結果。寫出課堂隨機分頻器的源程序代碼。實驗九 鎖存器的設計(1)實驗目的掌握生成語句的設計方法,熟悉Quartus II軟件的操作及仿真過程。(2)實驗原理鎖存器是一種用來暫時保存數據的邏輯器件,當使能輸入端ena為高電平時,鎖存器處于工作狀態(tài),輸出q3.0=d3.0;當輸入端ena為低電平,
27、鎖存器的狀態(tài)保持不變。本實驗利用生成語句來完成一個4位鎖存器的設計。(3)實驗內容設計1位鎖存器library ieee;use ieee.std_logic_1164.all;entity latch1b isport(d: in std_logic; ena: in std_logic; -使能端 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軟件進
28、行編譯、仿真,驗證一位鎖存器的功能。將元件聲明裝入my_package程序包中,便于生成語句的元件例化。library ieee;use ieee.std_logic_1164.all;package my_package iscomponent latch1b port(d:in std_logic; ena:in std_logic; q: out std_logic);end component;end;利用生成語句重復調用4個latch1b來完成頂層文件的設計。library ieee;use ieee.std_logic_1164.all;use work.my_package.al
29、l; -用戶自定義程序包entity latch4d isport(d: in std_logic_vector(3 downto 0); oen: in bit; q:out std_logic_vector(3 downto 0);end latch4d;architecture 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個1位鎖存器lat : latch1b port map(d(n),g,sig_save(n);
30、-關聯 end generate; q=sig_save when oen=0else ZZZZ;end one;利用Quartus II軟件進行編譯、仿真,并驗證4位鎖存器的功能。(3)思考題根據上述生成語句描述的鎖存器,用元件例化語句完成上述鎖存器的設計。(4)實驗報告寫出鎖存器的兩種描述語句的源程序,給出波形仿真結果,分析比較其結果。實驗十 4選1多路選擇器(1)實驗目的通過4選1多路選擇器的設計,掌握if語句、case語句、when.else語句及with.select語句的使用及相互轉換,熟悉軟件的使用。(2)實驗原理4選1多路選擇器關系表輸入輸出XS1S0Ya00ab01bc10c
31、d11d其中輸入數據端口為a、b、c、d,s1、s0為控制信號,Y為輸出。令S1S0=“00”時,輸出Y=a;令S1S0=“01”時,輸出Y=b;令S1S0=“10”時,輸出Y=c; 令S1S0=“11時,輸出Y=d;(3)實驗內容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
32、OF mux4 is signal sel: std_logic_vector(1 downto 0); begin sel=b&a; process(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)思考題根據上述if語句4選1多路選擇器的程序,完成case語句、when.else語句及with.select語句的描述。(5)實驗報告要求寫出四種語句的4選1多路選擇器的程序、原理及波形仿真結果。實驗十一 循環(huán)彩燈控制器的設計(1)實驗目的掌握狀態(tài)機的設計方法,鞏固case語句及Quartus II軟件的操作與仿真。(2)實驗原理設計一個循環(huán)彩燈控制器,該控制器控制LED 8個發(fā)光管循環(huán)發(fā)亮。要求:LED等按照一定的變化規(guī)律進
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030年中國步進式熱處理調制生產線行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國植物粉碎機市場調查研究報告
- 2025至2030年中國梭織襯行業(yè)發(fā)展研究報告
- 2025至2030年中國標準模具部件行業(yè)投資前景及策略咨詢報告001
- 2025至2030年中國板帶卷行業(yè)投資前景及策略咨詢報告
- 2025至2030年中國木雕琉璃金佛像行業(yè)投資前景及策略咨詢研究報告
- 2025至2030年中國木制拉手數據監(jiān)測研究報告
- 探險高手分享生存秘訣
- 2024年五月墻體廣告仿蝙蝠聲吶避障系統合同
- 廣告高手速成:創(chuàng)意體能雙突破
- 市政城市環(huán)境管理
- 2025年高考英語二輪復習測試04 從句綜合+語法填空(測試)(原卷版)
- 春季肝膽排毒課件
- 建筑公司勞動防護用品管理制度
- 醫(yī)院藥品采購制度及流程
- 宿舍管理考試試題及答案
- 2025年鄭州鐵路職業(yè)技術學院單招職業(yè)適應性考試題庫附答案
- 《審計風險防范與控制的案例分析-以康得新為例》10000字
- 2025福建德化閩投抽水蓄能有限公司招聘15人筆試參考題庫附帶答案詳解
- 《安全生產治本攻堅三年行動方案》培訓
- 16J914-1 公用建筑衛(wèi)生間
評論
0/150
提交評論