已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
GDOU-B-11-302班級: 姓名: 學(xué)號: 試題共 1 頁 加白紙3 張 密 封 線廣東海洋大學(xué)2010 2011學(xué)年第一學(xué)期 EDA 課程考試設(shè)計答卷紙課程號:1610003-1考試A卷閉卷考查B卷開卷題 號一二三四五六七八九十總分閱卷教師各題分?jǐn)?shù)055404055100實得分?jǐn)?shù)注意:1、須在限定的日期、時間之前交卷;2、設(shè)計程序、仿真圖打印稿附在卷后上交;3、其他答案可以打印在本答卷紙上;4、原理圖可以粘貼在本答卷紙上;一、 請寫出自己設(shè)計項目(控制器)名稱;答:我的設(shè)計項目是:按鍵游戲機(jī)(按鍵控制)。二、 請描述本設(shè)計項目(控制器)的功能和性能(5分);答:假設(shè)點(diǎn)陣做為基本顯示屏,一個發(fā)光點(diǎn)表示一個圖形,完成按鍵游戲機(jī)的基本功能:下落、左右移動、消行和顯示得分情況,當(dāng)某一列到頂時游戲結(jié)束。設(shè)計包括2個大的元件,一個是FUNCTIONS,完成存儲狀態(tài),分頻,左右下移動以及計分等功能;另一個是SHOW,主要完成點(diǎn)陣掃描和數(shù)碼管譯碼。仿真使用三、 畫出本設(shè)計項目(控制器)的電原理圖(5分);四、 打印的VHDL設(shè)計程序及注釋(40分);(附在卷后上交)五、 打印的仿真波形(如:Max+PLUS II)(40分);(附在卷后上交)六、 列出參考文獻(xiàn)(5分);【1】潘松. EDA 技術(shù)與VHDL. 北京:清華大學(xué)出版社 【2】延明. 數(shù)字邏輯設(shè)計實驗與EDA技術(shù). 北京:北京郵電大學(xué)出版社七、 總結(jié)自己的設(shè)計(5分);答:這是本學(xué)期的EDA設(shè)計,使用VHDL進(jìn)行設(shè)計。開始兩個星期,幾乎沒有寫代碼,首先我要搞清自己的設(shè)計思路,開始想了幾個思路,后來發(fā)現(xiàn)不是很好,所以后來都改了,重新編寫,重新編譯。編譯通過了,最后是仿真,所用的時間也不比設(shè)計少。因為一個設(shè)計的測試驗證是非常重要的。有效的測試可以助我們快速的完成或改善設(shè)計。所以之后又寫了一個Testbenches測試代碼來通過Modelsim軟件實現(xiàn)可靠的驗證。我的代碼比較簡單,自己覺得很滿意,但是仍然有許多需要改進(jìn)和擴(kuò)展的地方。這次設(shè)計使自己更加了解VHDL了,也學(xué)會了Quartus 設(shè)計和modelsim仿真。無論做什么實驗,都要有個好習(xí)慣,例如建立好工程放在指定地方,別總是擺在桌面。有時候好的習(xí)慣決定了實驗的成敗,好習(xí)慣也能提高辦事效率,事半功倍。所以今后的很多實驗都要態(tài)度端正,養(yǎng)成良好的習(xí)慣。頂層文件KEYGAME:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;ENTITYKEYGAMEISPORT(CLK: IN STD_LOGIC;-低頻時鐘 RESET: IN STD_LOGIC;-開始復(fù)位鍵 LEFT: IN STD_LOGIC;-左移 RIGHT: IN STD_LOGIC;-右移 COL : OUT STD_LOGIC_VECTOR(0 TO 3);- 列 ROW : OUT STD_LOGIC_VECTOR(0 TO 3);- 行 DISP : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);- 數(shù)碼管顯示分?jǐn)?shù) CAT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -數(shù)碼管選擇 );END KEYGAME;ARCHITECTUREARCH OF KEYGAME ISSIGNALFENSHU : INTEGER RANGE 0 TO 15;SIGNAL STA0,STA1,STA2,STA3 : STD_LOGIC_VECTOR(0 TO 3) ;COMPONENT -元件例化說明FUNCTIONS PORT(CLK:IN STD_LOGIC; RESET:IN STD_LOGIC; LEFT:IN STD_LOGIC; RIGHT:IN STD_LOGIC; SCORES:OUT INTEGER RANGE 0 TO 15; STA0 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA1 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA2 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA3 : OUT STD_LOGIC_VECTOR(0 TO 3) );END COMPONENT;COMPONENT -元件例化申明 SHOW PORT( CLK:IN STD_LOGIC; -時鐘信號STA0 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第一行狀態(tài)STA1 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第二行狀態(tài)STA2 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第三行狀態(tài)STA3 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第四行狀態(tài)SCORE:IN INTEGER RANGE 0 TO 15; -計分COL :OUT STD_LOGIC_VECTOR(0 TO 3); - 列ROW :OUT STD_LOGIC_VECTOR(0 TO 3); - 行DISP : OUT STD_LOGIC_VECTOR(6 DOWNTO 0); - 數(shù)碼管顯示分?jǐn)?shù)CAT :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -數(shù)碼管選擇);END COMPONENT;BEGIN-元件例化C1:FUNCTIONS PORT MAP(CLK,RESET,LEFT,RIGHT,FENSHU,STA0,STA1,STA2,STA3);C2:SHOW PORT MAP(CLK,STA0,STA1,STA2,STA3,FENSHU,COL,ROW,DISP,CAT);END;FUNCTIONS的代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;ENTITYFUNCTIONSISPORT(CLK:IN STD_LOGIC;-時鐘頻率,選用低頻 RESET:IN STD_LOGIC;-復(fù)位鍵,1復(fù)位;0不改變 LEFT:IN STD_LOGIC;-左移鍵,1移動,0不改變 RIGHT:IN STD_LOGIC;-右移鍵,1移動,0不改變,左右同時0為下移 SCORES:OUT INTEGER RANGE 0 TO 15;-分?jǐn)?shù),這里定最高15分 STA0 : OUT STD_LOGIC_VECTOR(0 TO 3) ;-以下為四行狀態(tài)寄存 STA1 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA2 : OUT STD_LOGIC_VECTOR(0 TO 3) ; STA3 : OUT STD_LOGIC_VECTOR(0 TO 3) );END FUNCTIONS;ARCHITECTURE MOVING OF FUNCTIONS ISSIGNAL STATU0 : STD_LOGIC_VECTOR(0 TO 3) ;SIGNAL STATU1 : STD_LOGIC_VECTOR(0 TO 3) ;SIGNAL STATU2 : STD_LOGIC_VECTOR(0 TO 3) ;SIGNAL STATU3 : STD_LOGIC_VECTOR(0 TO 3) ;SIGNAL OVER: STD_LOGIC;-game over 標(biāo)志SIGNAL FP:INTEGER RANGE 0 TO 499;-1000分頻SIGNAL CLK1:STD_LOGIC;SIGNAL SCOR_TEMP :INTEGER RANGE 0 TO 15;SIGNAL ROW4 :STD_LOGIC;-消行標(biāo)志SIGNAL ROW,COL:INTEGER RANGE 0 TO 3;-點(diǎn)的坐標(biāo)控制BEGINP1:PROCESS(CLK,RESET) BEGINIF RESET=1 THEN FP=0;CLK1=0;ELSIF(CLKEVENT AND CLK=1)THENIF FP=2 THENFP=0;CLK1=NOT CLK1;ELSEFP=FP+1;END IF;END IF; END PROCESS;-p1用來分頻P2:PROCESS(CLK1,RESET) BEGINIF RESET=1 THEN-系統(tǒng)初始化STATU0=0100; -出點(diǎn)位置,1代表方塊所在STATU1=0000;STATU2=0000;STATU3=0000;OVER=0;SCOR_TEMP=0;ROW4=0;ROW=0;COL=1;ELSIF(CLK1EVENT AND CLK1=1)THEN IF OVER=1 THEN-game over 進(jìn)入空循環(huán) NULL; ELSIF ROW4=1 THEN-消行 STATU3=STATU2; -消行后狀態(tài)轉(zhuǎn)移STATU2=STATU1;STATU1=STATU0;ROW4=0;SCOR_TEMP=SCOR_TEMP+1;-加分 ELSIF (STATU0(0)=1 AND STATU1(0)=1 AND STATU2(0)=1 AND STATU3(0)=1 )OR(STATU0(1)=1 AND STATU1(1)=1 AND STATU2(1)=1 AND STATU3(1)=1 )OR(STATU0(2)=1 AND STATU1(2)=1 AND STATU2(2)=1 AND STATU3(2)=1 )OR(STATU0(3)=1 AND STATU1(3)=1 AND STATU2(3)=1 AND STATU3(3)=1) THEN OVER=1;-判斷四列中是否有一列全為1,是則game overELSIF STATU3=1111THEN ROW4=1;-可以消行了 ELSIF RIGHT=1 AND COLIF STATU0(COL+1)=0 THEN COL=COL+1;STATU0(COL+1)=1;STATU0(COL)IF STATU1(COL+1)=0 THEN COL=COL+1;STATU1(COL+1)=1;STATU1(COL)IF STATU2(COL+1)=0 THEN COL=COL+1;STATU2(COL+1)=1;STATU2(COL)IF STATU3(COL+1)=0 THEN COL=COL+1;STATU3(COL+1)=1; STATU3(COL)0 THEN-左移判斷 CASE ROW ISWHEN 0=IF STATU0(COL-1)=0 THEN COL=COL-1;STATU0(COL-1)=1;STATU0(COL)IF STATU1(COL-1)=0 THEN COL=COL-1;STATU1(COL-1)=1;STATU1(COL)IF STATU2(COL-1)=0 THEN COL=COL-1;STATU2(COL-1)=1;STATU2(COL)IF STATU3(COL-1)=0 THEN COL=COL-1;STATU3(COL-1)=1; STATU3(COL)=0; END IF ;END CASE;-以下elsif語句為點(diǎn)的下移處理ELSIF ROW=0 AND STATU1(COL)=0 THEN ROW=ROW+1;STATU1(COL)=1;STATU0(COL)=0;ELSIF ROW=1 AND STATU2(COL)=0 THEN ROW=ROW+1;STATU2(COL)=1;STATU1(COL)=0;ELSIF ROW=2 AND STATU3(COL)=0 THEN ROW=ROW+1;STATU3(COL)=1;STATU2(COL)=0;ELSE ROW=0;COL=1;STATU0(1)=1; -不能下移則產(chǎn)生一個新的點(diǎn)END IF; END IF;END PROCESS;SCORES=SCOR_TEMP;STA0=STATU0;STA1=STATU1;STA2=STATU2;STA3=STATU3;END;SHOW的代碼:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITYSHOWISPORT(CLK:IN STD_LOGIC;RESET:IN STD_LOGIC;STA0 : IN STD_LOGIC_VECTOR(0 TO 3);-以下為4行的狀態(tài)STA1 : IN STD_LOGIC_VECTOR(0 TO 3) ;STA2 : IN STD_LOGIC_VECTOR(0 TO 3) ;STA3 : IN STD_LOGIC_VECTOR(0 TO 3) ; -最底行狀態(tài)SCORE:IN INTEGER RANGE 0 TO 15;-分?jǐn)?shù)COL :OUT STD_LOGIC_VECTOR(0 TO 3);-點(diǎn)陣顯示的列控制ROW :OUT STD_LOGIC_VECTOR(0 TO 3); -點(diǎn)陣顯示的行控制DISP : OUT STD_LOGIC_VECTOR(6 DOWNTO 0);-數(shù)碼管譯碼CAT :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -數(shù)碼管選擇);END SHOW;ARCHITECTURE BEHAVE OF SHOW ISSIGNALCP :INTEGER RANGE 0 TO 3;SIGNAL ROWT,COLT:STD_LOGIC_VECTOR(0 TO 3);SIGNAL DISPT:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(CLK,SCORE,RESET)BEGIN IF RESET=1 THEN -復(fù)位信號,初始化信號DISPT=0000000;ROWT=0000;COLT=1111;CP=0; ELSIF CLKEVENT AND CLK=1 THENIF CP=3 THEN CP=0;ELSE CPROWT=1000;COLTROWT=0100;COLTROWT=0010;COLTROWT=0001;COLTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPTDISPT=0000000;END CASE;END IF;END PROCESS;ROW=ROWT;COL=COLT;DISP=DISPT;CAT
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)控激光切割機(jī)操作工崗前理論技術(shù)考核試卷含答案
- 拜耳法溶出工崗前全能考核試卷含答案
- 移動通信機(jī)務(wù)員安全宣傳能力考核試卷含答案
- 三氯氫硅還原工安全意識測試考核試卷含答案
- 水泥制成工創(chuàng)新思維測試考核試卷含答案
- 塑料真空成型工操作規(guī)程水平考核試卷含答案
- 傘制作工誠信道德強(qiáng)化考核試卷含答案
- 汽機(jī)輔機(jī)檢修工安全風(fēng)險競賽考核試卷含答案
- 苯酐裝置操作工操作管理競賽考核試卷含答案
- 稀土熔煉工崗前復(fù)試考核試卷含答案
- 江西省2024年“三新”協(xié)同教研共同體高三聯(lián)考 地理試卷(含答案解析)
- 餐(飲)具消毒及供應(yīng)、配送服務(wù)方案投標(biāo)文件
- 部編高教版2023·職業(yè)模塊 中職語文 2.《寧夏閩寧鎮(zhèn):昔日干沙灘今日金沙灘》 課件
- 國家開放大學(xué)《幼兒園課程與活動設(shè)計》期末大作業(yè)參考答案
- 時尚流行文化解讀知到智慧樹章節(jié)測試答案2024年秋天津科技大學(xué)
- 中醫(yī)門診病歷范文30份
- 北師大版三年級數(shù)學(xué)上冊第一單元《混合運(yùn)算》(大單元教學(xué)設(shè)計)
- 人工智能輔助的高血壓腎病變早期診斷
- 《做一個學(xué)生喜歡的老師》讀書分享
- GB/T 23132-2024電動剃須刀
- 03D201-4 10kV及以下變壓器室布置及變配電所常用設(shè)備構(gòu)件安裝
評論
0/150
提交評論