EDA技术课程设计设计题目:七人表决器设计院系:电气信息学院专业年级:电子信息工程2010级学生姓名:XXX学号:XXXXXXX指导教师:XXXXX时间:2013年1月13日用VHDL设计七人表决器一、实验目的1、熟悉VHDL的编程。2、熟悉七人表决器的工作原理。3、进一步了解实验系统的硬件结构。二、实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。三、实验内容本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票;LED模块中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。四、硬件系统组成框图五、VHDL程序实现libraryieee;useieee.std_logic_1164.all;useieee.std_logic_unsigned.all;entitybjq7isport(input:instd_logic_vector(6downto0);led:outstd_logic_vector(6downto0);y:outstd_logic);end;architectureoneofbjq7isbeginprocess(input)variablecnt:integerrange0to7;begincnt:=0;foriin6downto0loopifinput(i)='1'thencnt:=cnt+1;endif;endloop;ifcnt3theny='1';elsey='0';endif;casecntiswhen0=led=1111110;when1=led=0110000;when2=led=1101101;when3=led=1111001;when4=led=0110011;when5=led=1011011;when6=led=1011111;when7=led=1110000;whenothers=led=0000000;endcase;endprocess;end;对编写的VHDL程序进行编译并仿真,对程序的错误进行修改。编译仿真无误后,依照拨动开关、LED、数码管与FPGA的管脚连接表或参照附录进行管脚分配。下图是本实验的管脚分配图。分配完成后,再进行全编译一次,以使管脚分配生效。用下载电缆通过JTAG口将对应的sof文件加载到FPGA中,观察实验结果。综合后的原理图如下图所示六、实验结果与现象当设计文件加载到目标器件后,拨动实验系统中拨动开关模块的K0-K7七位拨动开关,如果拨动开关的值为“1”)即拨动开关的开关置于上端,表示此人通过表决)的个数大于或等于四时LED模块的LED1被点亮,否则LED1不被点亮。同时数码管上显示通过表决的人数。七、设计总结在设计的过程中我熟悉了QuartusII的基本使用方法,熟悉了EDA程序的运行环境,对各个运行器件及操作按钮有了新的认识和了解,熟悉了VHDL语言能够利用VHDL语言实现简单基本的程序。同时也了解了试验台上大板和小板的数码管的极性。在对按键K1-K7进行统计时,采用了按位统计的方法,利用简单的FOR循环。通过这次EDA的课程设计,我进一的了解了EDA的编程技术及其应用。EDA作为现在电子行业的热门技术之一,有着较强的专业性和实用性。而此次的EDA设计给我们接触EDA技术的机会,同时为以后的就业提供了很好的演练平台。对于这个实验,由于比较简单,没花多少时间。所以就做了数字频率计的设计,但由于知识有限,没法把最终的实验结果得出来,很是遗憾。所以在以后的学习中,一定会更加努力的学习。