fpga課程實驗報告_第1頁
fpga課程實驗報告_第2頁
fpga課程實驗報告_第3頁
fpga課程實驗報告_第4頁
fpga課程實驗報告_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

FPGA原理及應用設計實驗報告-27-實驗二、編譯碼器的設計2.1實驗目的(1)熟練使用QuartusII開發(fā)環(huán)境的基本操作(2)鞏固組合邏輯電路的設計方法(3)掌握QuartusII中基于VHDL語言設計的流程(4)掌握QuartusII中基于原理圖設計的流程(5)綜合應用VHDL語言及原理圖進行數(shù)字電路設計編碼器和譯碼器是數(shù)字系統(tǒng)中廣泛使用的多輸入多輸出組合邏輯部件。編碼器的邏輯功能就是把輸入的高低電平信號編成一個對應的二進制代碼,經(jīng)常使用的編碼器有普通編碼器和優(yōu)先編碼器兩類。在普通編碼器中,任何時刻只允許輸入一個編碼信號,否則輸出將發(fā)生混亂。在優(yōu)先編碼器中,允許同時輸入兩個以上的編碼信號,只對其中優(yōu)先權最高的一個進行編碼。譯碼器是編碼器的反操作,它的邏輯功能是將每個輸入的二進制代碼譯成對應的輸出高、低電平信號。常用的譯碼器電路有二進制譯碼器、顯示譯碼器和二-十進制譯碼器。BCD碼-八段數(shù)碼管顯示譯碼器是一個4線-8線譯碼器,數(shù)碼管有共陰極和共陽極兩種結構,下面只介紹共陰極結構。共陰極結構見圖,在共陰極結構中,各段發(fā)光二極管的陰極連在一起,將此公共點接地,某一段發(fā)光二極管的陰極為高電平時,該段發(fā)光。顯示0~9某個字符時,則要求在a~dp送固定的字段碼。例如輸入信號為“0000”要使LED顯示“0”,小數(shù)點不亮的話,則要求輸出a、b、c、d、e,f各段為高電平,g和dp為低電平,字段碼為“abcdefgdp”為“11111100”,其他數(shù)字顯示以此類推。2.2實驗要求用VHDL設計一個BCD碼-八段數(shù)碼管顯示譯碼器,仿真驗證結果2.3實驗完成內(nèi)容①創(chuàng)建工程選擇菜單欄File->NewProjectWizard,進入NewProjectWizard:Introduct-ion界面,單擊Next,進入創(chuàng)建工程向?qū)У谝徊剑x擇工程存放文件夾(這里為:H:/2132401/e5)和填寫工程文件名(這里為:yimaqi),再單擊Next,進入創(chuàng)建工程向?qū)У诙剑瑸楣こ烫砑游募?,本次試驗沒有文件可以調(diào)用,直接單擊Next,進入創(chuàng)建工程向?qū)У谌剑x擇FPGA芯片類型,這里首先選擇Cyclone系列,然后選擇EP1C12Q240C8型號,單擊下一步,進入創(chuàng)建工程向?qū)У谒牟?,選擇仿真工具,這里不選擇任何仿真工具,直接用quartus自帶仿真工具即可,單擊Next,進入進入創(chuàng)建工程向?qū)ё詈笠徊?,生成詳細設置列表,確認無誤后,單擊Finish,完成創(chuàng)建工程操作。見圖2-1圖2-1創(chuàng)建工程報表②設計文件輸入選擇File->New->DesignFiles->VerilogFile.在文本輸入框中輸入以下代碼:libraryieee;useieee.std_logic_1164.all;entityyimaqiis port(a:instd_logic_vector(3downto0); b:outstd_logic_vector(7downto0)); endyimaqi;architecturertlofyimaqiisbegin process(a) begin caseais when"0000"=>b<="11111100"; when"0001"=>b<="01100000"; when"0010"=>b<="11110010"; when"0011"=>b<="01100110"; when"0100"=>b<="10110110"; when"0101"=>b<="00111110"; when"0110"=>b<="11100000"; when"0111"=>b<="11111110"; when"1000"=>b<="11100110"; whenothers=>b<="ZZZZZZZZ";endcase;endprocess;endrtl;保存成yimaqi.VHD文件,直至編譯無誤。圖2-2編譯完成功能仿真File->New->VectorWaveformFile,仿真結果如下:圖2-3仿真結果從仿真結果看出,與預期一致。④引腳分配:單擊Assignments->PinPlaner,進入引腳分配界面,按下圖所示分配好引腳。圖2-4引腳分配圖⑤全編譯及程序下載單擊全編譯按鈕,完成后如下圖所示:圖2-5全編譯完成全編譯后,進行程序下載。觀察實驗現(xiàn)象。⑥實驗現(xiàn)象通過撥碼開關,直接在數(shù)碼管上顯示出來,如K1K2K3K4=0110,數(shù)碼管顯示6,K1K2K3K4=1001,數(shù)碼管上顯示9。至此,譯碼器實驗結束,驗證了其譯碼預期功能。

實驗三、觸發(fā)器的設計3.1實驗目的(1)熟練使用QuartusII開發(fā)環(huán)境的基本操作(2)學習時序邏輯電路的設計方法(3)掌握QuartusII中基于VHDL語言設計的流程(4)掌握QuartusII中基于原理圖設計的流程(5)綜合應用VHDL語言及原理圖進行數(shù)字電路設計時序邏輯電路的特點是:輸出不僅取決于當時的輸入值,而且還與電路過去的狀態(tài)有關。在數(shù)字\o"電路"電路中,不但需要對信號進行算術和邏輯運算,還經(jīng)常需要將運算結果保存起來,那么一般的時序電路的結構圖就包括組合邏輯電路和存儲電路兩部分。存儲電路是通過各種存儲單元來實現(xiàn)的,存儲單元按照觸發(fā)方式可以分為電平觸發(fā)和邊沿觸發(fā)兩種,電平觸發(fā)的稱為鎖存器,邊沿觸發(fā)的稱為觸發(fā)器。時序邏輯電路的基礎電路包括觸發(fā)器、鎖存器、計數(shù)器、寄存器、儲存器等。在時序電路中,時鐘信號是一個重要信號,任何時序電路都是以時鐘為驅(qū)動信號,是時序電路的執(zhí)行條件和同步信號。時鐘信號分為上升沿和下降沿,在對時鐘邊沿進行說明時,一定要指定是上升沿還是下降沿。1、時序電路中時鐘的描述:(1)時鐘信號上升沿到來的條件可寫為:IFIFclk'EVENTANDclk='1'ANDclk'LAST_VAULE=0;(2)時鐘信號下降沿的屬性描述為:IFclk'EVENTANDclk=0ANDclk'LAST_VALUE=1;也可用IEEE庫中標準程序包std_logic_1164內(nèi)的預定義函數(shù):Rising_edge(clk)上升沿判斷Falling_edge(clk)下降沿判斷2、復位的描述:時序電路的初始狀態(tài)應由復位信號來設置。根據(jù)復位信號對時序電路復位的操作不同,使其可以分為同步復位和異步復位。(1)同步復位在設計時序電路同步復位功能時,VHDL程序要把同步復位放在以時鐘為敏感信號的進程中定義,且用IF語句來描述必要的復位條件。常用的兩種形式如下:PROCESS(clock_signal)BEGINIF(clock_edge_condition)THENIF(reset_condition)THENSignal_out<=reset_value;ELSESignal_out<=signal_in;--其他時序語句ENDIF;ENDIF;ENDPROCESS;(2)異步復位所謂異步復位,就是當復位信號有效時,時序電路立即復位,與時鐘信號無關。異步復位方法有三個要點:首先,在進程敏感信號表中應有clk,Reset同時存在;其次,用IF語句描述復位條件;最后,ELSIF程序段描述時鐘信號邊沿的條件,并加clk'EVENT屬性。常用形式如下:PROCESS(reset_signal,clock_signal)BEGINIF(reset_condition)THEN--復位條件成立Signal_out<=reset_value;--復位賦予輸出信號ELSIF(clock_eventANDclock_edge_condition)THENSignal_out<=signal_in;--復位條件不成立其他時序語句;--執(zhí)行正常時序電路功能ENDIF;ENDPROCESS;3.2實驗要求設計一個帶有同步置位和異步復位的時鐘上升沿觸發(fā)的D觸發(fā)器3.3實驗完成內(nèi)容①創(chuàng)建工程選擇菜單欄File->NewProjectWizard,進入NewProjectWizard:Intro-duction界面,單擊Next,進入創(chuàng)建工程向?qū)У谝徊剑x擇工程存放文件夾(這里為:G:/2132401/e5)和填寫工程文件名(這里為:f),再單擊Next,進入創(chuàng)建工程向?qū)У诙剑瑸楣こ烫砑游募敬卧囼灈]有文件可以調(diào)用,直接單擊Next,進入創(chuàng)建工程向?qū)У谌剑x擇FPGA芯片類型,這里首先選擇Cyclone系列,然后選擇EP1C12Q240C8型號,單擊下一步,進入創(chuàng)建工程向?qū)У谒牟?,選擇仿真工具,這里不選擇任何仿真工具,直接用quartus自帶仿真工具即可,單擊Next,進入進入創(chuàng)建工程向?qū)ё詈笠徊?,生成詳細設置列表,確認無誤后,單擊Finish,完成創(chuàng)建工程操作。見圖3-1圖3-1創(chuàng)建工程②設計文件輸入選擇File->New->DesignFiles->VerilogFile.在文本輸入框中輸入以下代碼:libraryieee;useieee.std_logic_1164.all;entityflipflopisport(d:instd_logic;clk:instd_logic;clrn:instd_logic;ena:instd_logic;q:outstd_logic);endflipflop;architectureaofflipflopissignalq_signal:std_logic;beginprocess(clk,clrn)beginifclrn='0'thenq_signal<='0';elsif(clk'eventandclk='1')thenifena='1'thenq_signal<=d;elseq_signal<=q_signal;endif;endif;endprocess;q<=q_signal;enda;保存成flipflop.V文件,直至編譯無誤。圖3-2編譯完成③功能仿真File->New->VectorWaveformFile,仿真結果如下:圖3-3仿真結果從仿真結果看出,與預期一致。④本實驗沒有在硬件上實現(xiàn),故不用分配引腳。⑤全編譯及程序下載:單擊全編譯按鈕,完成后如下圖所示,圖3-4全編譯至此,D觸發(fā)器實驗結束,從仿真結果可以看出,實驗程序完成了D觸發(fā)器的功能。

實驗四、計數(shù)器的設計4.1實驗目的(1)熟練使用QuartusII開發(fā)環(huán)境的基本操作(2)熟練掌握時序邏輯電路的設計方法(3)掌握QuartusII中基于VHDL語言設計的流程(4)掌握QuartusII中基于原理圖設計的流程(5)綜合應用VHDL語言及原理圖進行數(shù)字電路設計計數(shù)器是數(shù)字系統(tǒng)中,計數(shù)器應用十分廣泛。它不僅能記錄輸入時鐘脈沖的個數(shù),還可以實現(xiàn)分頻、定時、產(chǎn)生節(jié)拍脈沖和脈沖序列等。例如,計算機中的時序發(fā)生器、分頻器、指令計數(shù)器等都要使用計數(shù)器。計數(shù)器的種類很多。按時鐘脈沖輸入方式的不同,可分為同步計數(shù)器和異步計數(shù)器;按進位體制的不同,可分為二進制計數(shù)器和非二進制計數(shù)器。按計數(shù)方法分類,可以分為加法計數(shù)器、減法計數(shù)器和可逆計數(shù)器。4.2實驗要求設計同步十進制計數(shù)器,要求計數(shù)器有同步使能信號,異步復位信號,進位指示。4.3實驗完成內(nèi)容①創(chuàng)建工程選擇菜單欄File->NewProjectWizard,進入NewProjectWizard:Introduction界面,單擊Next,進入創(chuàng)建工程向?qū)У谝徊剑x擇工程存放文件夾(這里為:G:/2132301/e4)和填寫工程文件名(這里為:jishuqi),再單擊Next,進入創(chuàng)建工程向?qū)У诙?,為工程添加文件,本次試驗沒有文件可以調(diào)用,直接單擊Next,進入創(chuàng)建工程向?qū)У谌剑x擇FPGA芯片類型,這里首先選擇Cyclone系列,然后選擇EP1C12Q240C8型號,單擊下一步,進入創(chuàng)建工程向?qū)У谒牟?,選擇仿真工具,這里不選擇任何仿真工具,直接用quartus自帶仿真工具即可,單擊Next,進入進入創(chuàng)建工程向?qū)ё詈笠徊剑稍敿氃O置列表,確認無誤后,單擊Finish,完成創(chuàng)建工程操作(見圖4-1):圖4-1創(chuàng)建工程報表②設計文件輸入選擇File->New->DesignFiles->VerilogFile.在文本輸入框中輸入以下代碼:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_arith.all;useieee.std_logic_unsigned.all;entityjisuqiisport(clk,reset,enable:instd_logic;a,b,c,d,e,f,g:outstd_logic;tp:outstd_logic_vector(0to3);xian:outstd_logic_vector(0to6);count:outstd_logic);endjisuqi;architecturexuofjisuqiissignaltemp:std_logic_vector(0to3);signalxianshi:std_logic_vector(0to6);beginprocess(clk,reset,enable)beginif(reset='1')thentemp<="0000";elsif(enable='1')thenif(clk'eventandclk='1')thenif(temp<="1000")thentemp<=temp+1;elsetemp<="0000";endif;endif;endif;endprocess;process(temp)begincasetempiswhen"0000"=>xianshi<="1111110";count<='0';when"0001"=>xianshi<="0110000";count<='0';when"0010"=>xianshi<="1101101";count<='0';when"0011"=>xianshi<="1111001";count<='0';when"0100"=>xianshi<="0110011";count<='0';when"0101"=>xianshi<="1011011";count<='0';when"0110"=>xianshi<="0011111";count<='0';when"0111"=>xianshi<="1110000";count<='0';when"1000"=>xianshi<="1111111";count<='0';when"1001"=>xianshi<="1110011";count<='1';whenothers=>xianshi<="0000000";count<='0';endcase;endprocess;保存成jishuqi.VHD文件,直至編譯無誤。圖4-2編譯完成③功能仿真File->New->VectorWaveformFile,仿真結果如下:圖4-3仿真結果從仿真結果看出,與預期一致。④引腳分配:單擊Assignments->PinPlaner,進入引腳分配界面,按下圖所示分配好引腳。圖4-4引腳分配⑤全編譯及程序下載單擊全編譯按鈕,完成后如下圖所示:圖4-5全編譯⑥實驗現(xiàn)象下載程序后,通過設置撥碼開關K1(使能EN)設置為1,撥碼開關K2(異步復位端Rst)設置為1,數(shù)碼管開始從0開始顯示,一直計數(shù)到9,再來一個脈沖后,Led燈亮,表示進位輸出。當在計數(shù)過程中,K1為0時,則數(shù)碼管停留在那個數(shù)。而當K2為0時,數(shù)碼管立即從0開始計數(shù)至此,計數(shù)器實驗結束,驗證了其計數(shù)預期功能。

實驗五、數(shù)據(jù)操作工程5.1實驗目的(1)掌握原理圖設計輸入方法(2)熟悉Megfunction庫的參數(shù)化宏功能模塊,并會利用宏模塊進行電路設計。5.2實驗要求本實驗數(shù)據(jù)工程的模塊劃分為:時鐘模塊的設計,數(shù)據(jù)抽取模塊的設計,數(shù)據(jù)選擇操作模塊的設計5.3實驗完成內(nèi)容①創(chuàng)建工程選擇菜單欄File->NewProjectWizard,進入NewProjectWizard:Introdu-ction界面,單擊Next,進入創(chuàng)建工程向?qū)У谝徊剑x擇工程存放文件夾(這里為:G:/2132401/sy7)和填寫工程文件名(這里為:SpreadSpectrum),再單擊Next,進入創(chuàng)建工程向?qū)У诙剑瑸楣こ烫砑游募?,本次試驗沒有文件可以調(diào)用,直接單擊Next,進入創(chuàng)建工程向?qū)У谌剑x擇FPGA芯片類型,這里首先選擇Cyclone系列,然后選擇EP1C12Q240C8型號,單擊下一步,進入創(chuàng)建工程向?qū)У谒牟?,選擇仿真工具,這里不選擇任何仿真工具,直接用quartus自帶仿真工具即可,單擊Next,進入創(chuàng)建工程向?qū)ё詈笠徊?,生成詳細設置列表,確認無誤后,單擊Finish,完成創(chuàng)建工程操作(見圖5-1):圖5-1創(chuàng)建工程②設計文件輸入選擇File->New->Blockdiagram/SchematicFile,生成總設計文件。在設計文件中添加三個模塊,模塊間的連接如下圖所示:圖5-2總設計文件框架圖保存文件,自動命名為:SpreadSpectrum。③創(chuàng)建各模塊的下層設計輸入文件鼠標移至模塊處,右擊選擇”CreateDesignFilefromSelectedBlock”,分別為每個模塊產(chǎn)生下層設計輸入文件,各模塊設計文件如下所示:圖5-3ClockGenerate和DataContract模塊設計輸入電路圖DataGate模塊采用代碼輸入,代碼如下:--SubscriptionAgreement,AlteraMegaCoreFunctionLicense--Agreement,orotherapplicablelicenseagreement,including,--withoutlimitation,thatyouruseisforthesolepurposeof--programminglogicdevicesmanufacturedbyAlteraandsoldby--Alteraoritsauthorizeddistributors.Pleaserefertothe--applicableagreementforfurtherdetails.--GeneratedbyQuartusIIVers

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論