資源描述:
《FPGA實驗報告北信科》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、實驗報告課程名稱復雜可編程邏輯器件及數(shù)字系統(tǒng)設計實驗項目FPGA上機實驗實驗儀器計算機quartusII軟件系別儀器科學與光電工程學院專業(yè)測控技術與儀器班級/學號測控1001學生姓名實驗日期2012.12成績指導教師實驗三時序邏輯電路的設計一、實驗目的1.設計8位鎖存器、60分頻器,并在實驗裝置上驗證所設計的電路;2.了解時序邏輯電路的設計特點。二、實驗要求用原理圖輸入方式設計8位鎖存器、用AHDL輸入方式設計60分頻器。驗證電路的外圍器件可選用按鍵輸入、數(shù)碼管輸出。三、實驗程序1、LIBRARYie
2、ee;USEieee.std_logic_1164.ALL;ENTITYkeepISPORT(clk,cr,cd:INstd_logic;d:INstd_logic_vector(7DOWNTO0);q:OUTstd_logic_vector(7DOWNTO0));END;ARCHITECTUREw1OFkeepISBEGINPROCESS(clk,cr)--進程的敏感信號為時鐘clk和清零信號crBEGINIFcr='1'THENq<=(OTHERS=>'0');--如果cr=1則異步清零ELSIF
3、rising_edge(clk)THEN--否則如果檢測到時鐘上升沿則嵌套IF語句IFcd='1'THENq<=d;--如果同步使能信號cd=1,則所存d的信號ENDIF;--否則保持原存數(shù)據(jù)ENDIF;ENDPROCESS;END;2、60分頻器libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfrq_divisport(clk:instd_logic;--輸入時鐘clk_out:outstd_lo
4、gic);--輸出時鐘endfrq_div;architecturebehavioraloffrq_divissignalcnt:std_logic_vector(28downto0);--計數(shù)器值signalclk_temp:std_logic;constantPRD:integer:=29;--計數(shù)器范圍,PRD=N/2-1beginprocess(clk)-----------------計數(shù)器beginifclk'eventandclk='1'thenifcnt=PRDthen------計數(shù)
5、器值等于PRD時,clk_temp翻轉cnt<="00000000000000000000000000000";clk_temp<=notclk_temp;elsecnt<=cnt+1;endif;endif;endprocess;clk_out<=clk_temp;endbehavioral;3、RTL原理圖思考題:如何消除險象競爭?競爭險象消除的方法有很多,如增加冗余項、引入封鎖脈沖、加通脈沖及接入濾波電容等。增加冗余項的方法[1],是通過在原函數(shù)表達式中增加多余的“與”項或“或”項,使原函數(shù)在任
6、何條件下都不會出現(xiàn)或的形式,從而消除險象的產(chǎn)生。對邏輯險象一般可通過增加冗余項或乘上A+或A的形式。在卡諾圖上相當于把相切的小方塊用一個復合圈包圍起來。通過在輸出端連接一個RC低通濾波器來消除險象。因為干擾脈沖的頻率遠遠高于正常輸出信號的頻率,利用RC的“隔高頻通低額”特性,可基本濾掉干擾脈沖。實驗四數(shù)字電路系統(tǒng)實驗——設計交通燈控制器一、實驗目的1.設計一個簡易交通燈控制器,并在實驗裝置上驗證所設計的電路;2.學習層次化設計方法。二、實驗要求位于十字路口的交通燈,在A方向和B方向各有紅、黃、綠三盞燈
7、,亮滅順序如表所示,1表示亮,0表示滅,假設燈亮滅時間均為1S。本實驗設計輸入方法、驗證器件不限,最終需建立一個元件符號。A方向B方向紅燈黃燈綠燈紅燈黃燈綠燈100001100010010010010100001100010100010010100010三、實驗程序libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entityfrq_divisport(clk:instd_logic;--輸入時鐘clk_out:
8、outstd_logic);--輸出時鐘endfrq_div;architecturebehavioraloffrq_divissignalcnt:std_logic_vector(22downto0);--計數(shù)器值signalclk_temp:std_logic;constantPRD:integer:=4999999;--計數(shù)器范圍,PRD=N/2-1beginprocess(clk)-----------------計數(shù)器beginifclk'ev