课程设计报告---七人表决器设计.doc_第1页
课程设计报告---七人表决器设计.doc_第2页
课程设计报告---七人表决器设计.doc_第3页
课程设计报告---七人表决器设计.doc_第4页
课程设计报告---七人表决器设计.doc_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

电子综合设计题 目七人抢答器设计学 院计信学院专 业电子信息工程班 级学生姓名指导教师2012年6 月18日一、设计原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4 时,则认为同意;反之,当否决的票数大于或者等于4 时,则认为不同意。二、分析讨论七人表决器这一功能可以用C语言、汇编语言或VHDL编程后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握和使用quartus软件的步骤和方法。所以我们是采用VHDL编程来实现的。三、设计准备根据七人表决器的原理,我们的准备过程如下:1、使用Altera的Cyclone II器件,所用的芯片为EP2C35F672C8,开发平台为quartus II。2、使用七个拨动开关(K1K7)作为输入变量来表示七个投票人,当拨动开关输入为1时,表示对应的人投同意票,否则当拨动开关输入为0时,表示对应的人投反对票。3、使用一个七段数码管来显示同意的票数。4、使用七个LED(LED2LED8)用来分别记录投票人的个人投票结果,当LED亮起时就表示对应的投票人同意,否则就表示不同意。5、使用一个LED(LED1)来表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。6、使用一个拨动开关(K8)来达到复位要求,即需要复位时能够达到同时清零数码管的显示结果和LED的显示情况。7、软件仿真成功后,通过专用的连接线再用硬件进行测试,并将硬件测试的结果以照片的形式做记录。四、设计思路根据程序设计的一般步骤,我们首先设计出七人表决器的系统框图,也就是说先要确定一个大的设计方向;然后再根据设计要求并结合系统框图来设计程序流程图;由程序流程图来编写VHDL程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。1、系统框图如下:数码管显示电源系统LED灯显示FPGA开关按钮复位按钮2、程序流程图如下:开始按键输入表决同意人数(3) Y N表决不通过(LED1不亮)用LED灯显示反对的投票人表决通过(LED1亮)用LED灯显示同意的投票人3、外围管脚图如下:biaojueqi CLK LED1 CLR LEDAG0:6 K0:6 LED0:6注释: CLK:系统时钟 CLR:复位引脚,当需要复位时,按下该管脚对应的开关就可以复位。K0:6:表决输入,分别是七个拨动开关。LED1:表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。LEDAG0:6:为七段数码管,用来显示同意的票数。LED0:6:为七个LED(LED2LED8),用来分别记录投票人的个人投票结果。五、VHDL源程序设计根据设计要求,我们组设计的七人表决器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BJQ ISPORT(CLK,CLR:IN STD_LOGIC; -CLK为系统时钟,CLR为复位按键 K:IN STD_LOGIC_VECTOR(6 DOWNTO 0); -拨动开关输入表决 Result:OUT STD_LOGIC; -显示表决是否通过LEDAG,LED:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -LEDAG为七段数码管,用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。 END ENTITY BJQ; ARCHITECTURE one OF BJQ IS BEGIN PROCESS(K) VARIABLE shu:INTEGER; -定义变量shu来统计同意的个数 BEGIN IF (CLR=1) THEN -不复位,即正常工作 LEDResult=0;LEDAG=0111111;LEDResult=0;LEDAG=0000110;LEDResult=0;LEDAG=1011011;LEDResult=0;LEDAG=1001111;LEDResult=1;LEDAG=1100110;LEDResult=1;LEDAG=1101101;LEDResult=1;LEDAG=1111101;LEDResult=1;LEDAG=0100111;LEDResult=Z;LEDAG=ZZZZZZZ;LED=K; END CASE; END IF; ELSE -启动复位功能,同时复位指示灯和数码管 Result=0; LEDAG=0111111; LEDNew Project Wizard,创建一个新的工程;输入此工程所在的工作目录(应为每个工程创建一个单独的目录)、工程名称(通常和顶层设计实体名称相同)、顶层设计实体名称(每个工程只有一个);注意工作目录不要建在默认位置,最好建立在自带的 U 盘上。所选的芯片为 Cyclone II系列的 EP2C35F672C8;最后点击点击 Finish,完成一个新工程的创建。2、建立程序文件1)在创建好设计工程后,选择FileNEW菜单2)在New 对话框中选择Device Design Files 页下的 VHDL File ,点击OK 按钮,打开程序编辑器对话框,然后在输入自己编写的VHDL程序。3)程序输入完成后,进行保存,然后再选择菜单项 ProcessingStart Compilation,或者通过点击图标进行编译。3、管脚分配有以下两种方法进行管脚分配:1)点击Assignments 菜单下面的Assignment Editor,进入到引脚分配窗口;然后将需要分配管脚的信号放置在 To 下方,双击To 下方的New,选择Node Finder,在Filter 窗口中选择Pins:all,在Named 窗口中输入“*”,点击List 在Nodes Found 窗口出现所有信号的名称,点击中间的按钮,则Selected Nodes 窗口下方出现被选择的端口名称,然后再双击OK 按钮,完成设置。2)点击Assignments 菜单下面的Pin Planner也能进行管脚分配。3)本次设计所用到的管脚分配表如下:当管脚分配完之后一定要进行再进行一次全编译,以使分配的管脚有效。4、对设计文件进行仿真1)创建一个仿真波形文件,选择QUARTUSII 软件FileNew,选取对话框中的Other File 标签页,从中选取Vector Waveform File,点击OK 按钮。2)设置仿真结束时间,选择QUARTUS II 软件的EditEnd Time命令,弹出线路束时间对话框,在Time 框中输入仿真结束时间,点击OK 按钮。3)加入输入、输出端口,在波形编辑器窗口左边的端口名列表区点击鼠标右键,在弹出的右键菜单中选择Insert Node or Bus命令,在弹出的Insert Node or Bus 对话框中点击Node Finder按钮。在出现的 Node Finder 界面中,在Filter 列表中选择Pins:all,在Named 窗口中输入“*”,点击List 在Nodes Found 窗口出现所有信号的名称,点击中间的按钮则在Selected Nodes 窗口下方出现被选择的端口名称,双击OK 按钮,完成设置。4)编辑输入端口波形,即指定输入端口的逻辑电平变化,根据仿真的需要输入波形,最后选择软件的FileSave进行保存。5)指定仿真器设置,在仿真过程中有时序仿真和功能仿真之分,测试过程中选择的是功能仿真,在 QUARTUS II 软件中选择 ToolSimulator Tool 命令,打开仿真器工具窗口,首先产生功能仿真网表文件,点击产生功能仿真网表的按钮 Generate Functional Simulation Netlist,产生功能仿真网表,然后点击开始仿真的 START 按钮开始进行仿真,直到仿真进度条为100%时完成仿真。6)本次仿真的波形如下图所示:从波形图可以看出:当拨动开关的输入序列为“0100101”时,即同意的投票人数小于4时,用于显示个人投票结果的LED(6)LED(0)显示序列也为“0100101”,这样就实现了记名投票的功能;此时七段数码管的LEDAG(6)LEDAG(0)显示为“1001111”,由于同意的投票人数只有3个,没有超过4个人,所以最终的投票结果是不同意,即最终投票结果 Result 显示为低电平。当拨动开关的输入序列为“1010111”时,即同意的投票人数大于4时,用于显示个人投票结果的LED(6)LED(0)显示序列也为“1010111”,同样也实现了记名投票的功能;此时七段数码管的LEDAG(6)LEDAG(0)显示为“1101101”,由于同意的投票人数有5个,已经超过4个人,所以最终的投票结果是同意,即图示最终投票结果 Result 显示为高电平。5、从设计文件到目标器件的加载完成对器件的加载有两种形式,一种是对目标器件进行加载文件,一种是对目标器件的配置芯片进行加载。我们在测试过程中采用的是对目标器件 EP2C35F672C8 进行加载的方法。1)使用下载电缆线将 PC 机与实验系统连接起来。2)选择 QUARTUS II 软件的 ToolProgrammer 命令,进入编程器窗口,如果没有设置编程硬件,则编程硬件类型为 No Hardware,所以需要对编程硬件进行设置,点击 Hardware Setup编程硬件设置按钮。3)点击 Add Hardware 按钮,出现 Add Hardware 对话框,在 Add Hardware 对话框中,测试过程中选择的是 USB-BlasterUSB-0,配置模式选择 JTAG,然后添加与工程对应的.sof 文件,在 Program/Configure 一栏打勾。点击 Start 开始配置。七、硬件测试结果根据上述准备,我们组所做的七人表决器的硬件测试结果已用照片的形式记录,如下面各图所示:1) K8为复位开关,当不需要复位时必须向上拨;当只有一个人同意时,如下图所示,当K1向上拨时,对应的 D2 点亮,并且七段数码管的显示为“1”,由于同意的人数小于4个,所以 D1不亮。2) 当K1、K2向上拨时,对应的 D2、D3 点亮,并且七段数码管的显示为“2”。由于同意的人数小于4个,所以 D1不亮。3) 当K1、K3、K5向上拨时,对应的 D2、D4、D5 点亮,并且七段数码管的显示为“3”。这表明了拨动开关和LED是一一对应的,也就是前面提到的记名投票功能。由于同意的人数小于4个,所以 D1不亮。4)当K1、K2、K3、K4向上拨时,对应的 D2、D3、D4、D5 点亮,并且七段数码管的显示为“4”,由于同意的人数大于3个,所以表决结果 D1 也会点亮。5)当K1、K3、K5、K6、K7向上拨时,对应的 D2、D4、D6、D7、D8 点亮,并且七段数码管的显示为“5”,由于同意的人数大于3个,所以表决结果 D1 也会点亮。6)当K1、K2、K3、K4、K5、K6向上拨时,对应的 D2、D3、D4、D5、D6、D7 点亮,并且七段数码管的显示为“6”,由于同意的人数大于3个,所以表决结果D1 也会点亮。7)当K1、K2、K3、K4、K5、K6、K7向上拨时,对应的D2、D3、D4、D5、D6、D7 、D8点亮,并且七段数码管的显示为“7”,由于同意的人数大于3个,所以表决结果 D1 也会点亮。8)K8为复位开关,在上图的基础上,即K1K7均向上拨,数码管显示为“7”时,若此时将拨动开关K8向下拨,则数码管显示为“0”, D2D8由亮变灭,表决最终结果 D1 也熄灭,即达到了复位要求,如下图所示:八、心得体会通过这次的课程设计,我从中学到了很多知识,并且锻炼了自己的程序设计能力。从抽到题目开始,然后到图书馆去查找相关资料,通过各种资料的帮助,再根据设计要求设计框图,然后编写VHDL程序,上机进行程序调试、修改,再进行软件仿真,得到仿真波形,最后下载到硬件上进行测试。在这个过程中,我遇到了很多棘手的问题,通过进一步查找资料和向指导老师请教之后,这些问题才得到解决,虽然花掉了不少的时间,但我们还是在规定的时间里完成了任务。在这个过程中,通过反复的调试程序,让我们对用VHDL语言编写程序和单片机等有了更深入的认识和熟悉,并且使我们更好的掌握了 QUARTUS II 这个软件的使用方法。通过不断的仿真,不断地尝试,我们终于成功地得出了正确的结果。通过此次课程设计,使我们的综合实践能力、动手能力和设计能力得到了锻炼和提高,与此同时也让我们发现其实要做好一个设计并不难,关键是看你怎么去对待它和付出多大的努力,并且也让我更加懂得了怎样去完成一个课程设计。在这次的设计过程中,我发现了自己的缺点和不足,在以后的学习和课程设计中我会不断地改正和弥补。最后,我真诚的感谢陈老师和徐老师在这次的课程设计中给予我们的帮助,正是有了指导老师的教导,我们才顺利的完成了这次课程设计。九、参考文献1 EDA技术与CPLD/FPGA开发应用简明教程,李履信、沈建华,清华大学出版社2EDA技术与应用第二版,谭会生、张昌凡,西安电子科技大学出版社3可编程器件EDA技术与实践,李国洪、沈明山,机械工业出版社4基于QUARTUS II 的CPLD/FPGA设计,电子工业出版社5EDA技术与应用,朱正伟,清华大学出版社十、附录根据设计要求,我们组设计的七人表决器程序如下:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY BJQ ISPORT(CLK,CLR:IN STD_LOGIC; -CLK为系统时钟,CLR为复位按键 K:IN STD_LOGIC_VECTOR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论