資源描述:
《eda課程設計畢業(yè)課程設計》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在學術論文-天天文庫。
1、課程設計說明書NO.20設計題目:搶答器的設計與仿真一.課程設計的目的EDA課程設計是電子信息科學與技術專業(yè)開設的一門獨立實踐環(huán)節(jié)課程。通過課程設計使學生具體掌握將理論知識與實際應用相結合的方法,提高分析問題和解決問題的能力,激發(fā)學習興趣、鍛煉動手能力和科研能力。了解CPLD為復雜可編程邏輯器件,通過EDA技術對其進行編程,可將一個較復雜的數(shù)字系統(tǒng)集成于一個芯片中,制成專用集成電路芯片,并可隨時在系統(tǒng)修改其邏輯功能。二.設計方案論證1.設計原理搶答器原理是根據(jù)所要設計的系統(tǒng)功能,將整個系統(tǒng)劃分成幾個主要模塊,再將每個模塊細
2、分成幾個子模塊,直到最底層的小模塊容易編程實現(xiàn)為止。只需對底層元件編程實現(xiàn),最后將各模塊連接起來組成所需的系統(tǒng)。對于一個搶答器系統(tǒng),可將其分為五個模塊:選手搶答模塊、搶答啟動模塊、加減分模塊、顯示模塊、蜂鳴器控制模塊,整體框圖如圖(1)所示。圖(1)總體框圖其中搶答啟動模塊具有啟動搶答及啟動定時功能,輸出使能信號給選手識別模塊,以及搶答剩余時間給顯示模塊;選手識別模塊完成鎖存搶答信號的功能,并輸出選手號給顯示模塊;蜂鳴器對搶答成功以及超時鳴聲報警;顯示模塊對輸入的數(shù)據(jù)進行顯示。2.設計內(nèi)容沈陽大學課程設計說明書NO.20(
3、1)設計一智力競賽搶答器,可同時供8名選手參加比賽。(2)給節(jié)目主持人設置一個控制開關,控制系統(tǒng)清零和搶答開始。(3)搶答器具有鎖存功能和顯示功能。搶答開始后,若有選手按動搶答按鈕,編號立即鎖存,并在LED數(shù)碼管上顯示選手編號,同時揚聲器響,禁止其他選手搶答。(4)搶答器具有搶答定時功能,時間由主持人確定。(5)參賽選手在設定的時間內(nèi)搶答有效,定時器停止工作。(6)如果定時時間到,無人搶答,本次搶答無效,系統(tǒng)報警,并封鎖輸入電路,禁止超時搶答,定時器顯示00。(7)為每組設計一個計分電路,0~999分,可加分,也可減分。3
4、.設計整體原理圖圖(2)設計原理圖三.設計結果與分析1、搶答啟動模塊啟動模塊除了有啟動的功能外,還有啟動定時的功能。定時時間分為5秒和20秒兩種,使用兩個按鍵對應兩種限時搶答。將本模塊再劃分為2個子模:一個模塊完成按鍵識別的功能,另一模塊完成倒計時功能。(1)按鍵識別子模塊按鍵的識別即對輸入信號進行電平變化檢測,電平發(fā)生跳變就認為是鍵被按下。但VHDL沈陽大學課程設計說明書NO.20程序中一個結構體內(nèi)不能同時對兩個信號進行電平跳變的檢測,所以對本模塊的程序設計采用狀態(tài)機來實現(xiàn),并使用統(tǒng)一的時鐘信號來掃描按鍵的電平狀態(tài)。模塊
5、如圖(3)所示。圖(3)按鍵識別子模塊對START5和START20兩個按鍵定義三種狀態(tài),START5按下為ST1狀態(tài),此時兩個按鍵“START5&START20”輸入電平為“01”;START20按下為ST2狀態(tài),此時電平為“10”;兩個都沒按下為ST0狀態(tài),此時電平為“11”。狀態(tài)轉換圖如圖(4)所示。圖(4)按鍵識別子模塊狀態(tài)轉換圖本模塊程序為:LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYSTART_5_20I
6、SPORT(CLK1,RST,START5,START20:INSTD_LOGIC;B,A:OUTSTD_LOGIC_VECTOR(3DOWNTO0);S_FLAG:OUTSTD_LOGIC);ENDENTITY;ARCHITECTUREONEOFSTART_5_20ISSIGNALDATAIN:STD_LOGIC_VECTOR(1DOWNTO0);TYPEST_TYPEIS(ST0,ST1,ST2);沈陽大學課程設計說明書NO.20SIGNALC_ST:ST_TYPE;BEGINDATAIN<=START5&START2
7、0;PROCESS(RST,CLK1)BEGINIFRST='0'THENB<="0000";A<="0000";C_ST<=ST0;S_FLAG<='0';ELSIFCLK1'EVENTANDCLK1='1'THENCASEC_STISWHENST0=>IFDATAIN="01"THENC_ST<=ST1;S_FLAG<='1';B<="0000";A<="0101";ELSIFDATAIN="10"THEN
C_ST<=ST2;S_FLAG<='1';B<="0011";A<="0000";ELSEC_ST<=ST0;
8、ENDIF;WHENST1=>IFDATAIN="11"THENC_ST<=ST0;S_FLAG<='0';ELSEC_ST<=ST1;ENDIF;WHENST2=>IFDATAIN="11"THENC_ST<=ST0;S_FLAG<='0';ELSEC_ST<=ST2;ENDIF;WHENOTHERS