




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
GDOU-B-11-302班级: 姓名: 学号: 试题共 1 页 加白纸3 张 密 封 线广东海洋大学2010 2011学年第一学期 EDA 课程考试设计答卷纸课程号:1610003-1考试A卷闭卷考查B卷开卷题 号一二三四五六七八九十总分阅卷教师各题分数055404055100实得分数注意:1、须在限定的日期、时间之前交卷;2、设计程序、仿真图打印稿附在卷后上交;3、其他答案可以打印在本答卷纸上;4、原理图可以粘贴在本答卷纸上;一、 请写出自己设计项目(控制器)名称;答:我的设计项目是:按键游戏机(按键控制)。二、 请描述本设计项目(控制器)的功能和性能(5分);答:假设点阵做为基本显示屏,一个发光点表示一个图形,完成按键游戏机的基本功能:下落、左右移动、消行和显示得分情况,当某一列到顶时游戏结束。设计包括2个大的元件,一个是FUNCTIONS,完成存储状态,分频,左右下移动以及计分等功能;另一个是SHOW,主要完成点阵扫描和数码管译码。仿真使用三、 画出本设计项目(控制器)的电原理图(5分);四、 打印的VHDL设计程序及注释(40分);(附在卷后上交)五、 打印的仿真波形(如:Max+PLUS II)(40分);(附在卷后上交)六、 列出参考文献(5分);【1】潘松. EDA 技术与VHDL. 北京:清华大学出版社 【2】延明. 数字逻辑设计实验与EDA技术. 北京:北京邮电大学出版社七、 总结自己的设计(5分);答:这是本学期的EDA设计,使用VHDL进行设计。开始两个星期,几乎没有写代码,首先我要搞清自己的设计思路,开始想了几个思路,后来发现不是很好,所以后来都改了,重新编写,重新编译。编译通过了,最后是仿真,所用的时间也不比设计少。因为一个设计的测试验证是非常重要的。有效的测试可以助我们快速的完成或改善设计。所以之后又写了一个Testbenches测试代码来通过Modelsim软件实现可靠的验证。我的代码比较简单,自己觉得很满意,但是仍然有许多需要改进和扩展的地方。这次设计使自己更加了解VHDL了,也学会了Quartus 设计和modelsim仿真。无论做什么实验,都要有个好习惯,例如建立好工程放在指定地方,别总是摆在桌面。有时候好的习惯决定了实验的成败,好习惯也能提高办事效率,事半功倍。所以今后的很多实验都要态度端正,养成良好的习惯。顶层文件KEYGAME:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_SIGNED.ALL;ENTITYKEYGAMEISPORT(CLK: IN STD_LOGIC;-低频时钟 RESET: IN STD_LOGIC;-开始复位键 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);- 数码管显示分数 CAT : OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -数码管选择 );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) ; -第一行状态STA1 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第二行状态STA2 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第三行状态STA3 : IN STD_LOGIC_VECTOR(0 TO 3) ; -第四行状态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); - 数码管显示分数CAT :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -数码管选择);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;-复位键,1复位;0不改变 LEFT:IN STD_LOGIC;-左移键,1移动,0不改变 RIGHT:IN STD_LOGIC;-右移键,1移动,0不改变,左右同时0为下移 SCORES:OUT INTEGER RANGE 0 TO 15;-分数,这里定最高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 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 标志SIGNAL FP:INTEGER RANGE 0 TO 499;-1000分频SIGNAL CLK1:STD_LOGIC;SIGNAL SCOR_TEMP :INTEGER RANGE 0 TO 15;SIGNAL ROW4 :STD_LOGIC;-消行标志SIGNAL ROW,COL:INTEGER RANGE 0 TO 3;-点的坐标控制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-系统初始化STATU0=0100; -出点位置,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 进入空循环 NULL; ELSIF ROW4=1 THEN-消行 STATU3=STATU2; -消行后状态转移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语句为点的下移处理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; -不能下移则产生一个新的点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行的状态STA1 : IN STD_LOGIC_VECTOR(0 TO 3) ;STA2 : IN STD_LOGIC_VECTOR(0 TO 3) ;STA3 : IN STD_LOGIC_VECTOR(0 TO 3) ; -最底行状态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);-数码管译码CAT :OUT STD_LOGIC_VECTOR(5 DOWNTO 0) -数码管选择);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 -复位信号,初始化信号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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- T/CCAS 028-2023水泥行业数字化智能矿山建设规范
- T/CCAAS 001-2019新时代企业文化绩效测评标准
- T/CASMES 146-2023公共防疫保障服务规范
- T/CAQI 87-2019洗碗机保管功能技术要求及评价方法
- T/CAQI 83-2019建筑能效与室内环境参数综合设计要求
- rfid考试题及答案
- 计分办法面试题及答案
- 辅助岗位考试题库及答案
- 黄金员工面试题及答案
- 编导统考试题及答案
- 医保按病种分值付费(DIP)院内培训
- 施工钢结构制作安装环境因素识别表
- 污水井巡查记录表
- 2关于更换现场项目经理的函
- 部编版小学道德与法治四年级下册期末复习简答及分析题专练(含答案)
- 电子商务那些事学习通超星课后章节答案期末考试题库2023年
- 环境及理化因素损伤-冻伤
- Unit7SeasonPartALetslearn(教学设计)闽教版英语四年级下册
- 世界文化遗产武当山古建筑群的资料
- 医院医疗设备采购项目HIS系统及硬件采购投标文件
- 【橡胶工艺】-橡胶产品生产工艺规程
评论
0/150
提交评论