广西大学行健文理学院FPGA课程设计题目:五人多数表决器学部:电气信息学部专业:电子科学与技术班级:2012级1班学号:1238340126学生姓名:郑大发指导老师:周柳娜二〇一五年一月摘要在电子设计与制造技术的发展中,核心就是电子设计自动化(EDA,ElectronicDesignAutomation)技术。EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对特定目标芯片的适配编译、逻辑映射和编程下载等工作。EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。本次设计实验就是基于EDA技术和EP1C6Q240C8芯片(FPGA),及其外围电路,实现了五人多数表决器的设计。设计模块主要包括:控制单元、计数单元、显示单元。从而实现了用人数多于或等于3来判决是否通过,从而达到设计要求。关键词:EDA、VHDL、显示单元、控制单元目录设计要求.................................................................1前言.....................................................................11方案论证................................................................11.1方案一.............................................................11.2方案二.............................................................21.3方案对比与选择.....................................................32基本功能模块设计与说明................................................32.1十秒倒计时模块说明.................................................32.2数码管机二极管显示模块说明.........................................32.3电路原理图.........................................................43软件设计...............................................................44管脚说明...............................................................55仿真现象...............................................................66实验结论...............................................................97实验总结..............................................................10致谢....................................................................11参考文献................................................................12附录....................................................................131五人多数表决器设计要求1五人多数表决逻辑:多数通过;2在主持人控制下,10秒内表决有效;3采用数码管显示表决10秒倒计时;4表决结束后用发光二极管及数码管显示表决结果,数码管显示结果形式:通过,不通过;5设主持人控制键,复位键:控制键:启动表决;复位键:系统复位。前言本课程设计是一个基于EDA技术的五人多数表决器,通过时间的限制,主持人的控制,共同决定通过与不通过。当投票的人数大于等于三个时,表明通过,否则不通过。该设计可以应用到简单的表决竞赛中。下过很好。当时间超过规定,以后的投票都视为无效。从而实现表决功能。1方案论证1.1方案一五人多数表决,只要在规定时间内,赞成人数大于或等于三,则表决通过。因此,只需将每位表决人的结果相加,判断结果值。设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的五个输入变量中有3个以上(含3个)为“1”时。则表决器输出为“1”;否则为“0”。2EP1C6Q240C8开始键复位键键1键2键3键4键5二极管显示数码管1数码管2图1五人多数表决器系统框图1.2方案二1要实现供5人的表决器,由于是用于单片机表决器,而单片机的硬件电路与软件设计相结合的一种电路设计,因此在引硬件电路只能实按键的按下与释放,不能智能的实现检测按键被按下几次,因此该部分克用软件的汇编来实现其功能。2主持人通过按键来控制表决的开始与复位,可有两个外部中断来实现,按下外部中断0的按键式表示表决开始,黄灯亮,按下外部中断1是表示表决结束;当表决结束后统计“同意”和“反对”的票数,“同意”的票数大于“反对”的票数时,绿灯被点亮。在扩展时加上了同意数和剩余时间数的显示,可以通过两个数码管。STC89C52开始键复位键键1键2键3键4键5二极管显示数码管1数码管23图2五人多数表决器系统框图1.3方案对比与选择方案一通过FPGA芯片实现功能。方案二则改用STC89C52实现表决。二者都能很好地实现。由于实用单片机,程序较复杂,需考虑多方面的东西,并且需要自己另外制作电路板,必然增加成本。故综合考虑。本设计选用方案一。2基本功能模块设计与说明2.1十秒倒计时模块说明在脉冲作用下,使用减法计数器,在初值为10秒的时候,开始计时。每来一个脉冲计数器就减少1.一直这样下去,直到计数器变为0。在主持人按下复位键时,计数回到10,重新进行减法计数器。直到为0。2.2数码管机二极管显示模块说明FPGA/CPLD端口PI/O31~28(即PI/O31、PI/O30、PI/O29、PI/O28)、PI/O27~24、PI/O23~20和PI/O19~16,共4组4位二进制I/O端口分别通过一个全译码型7段译码器输向系统板的7段数码管。这样,如果有数据从上述任一组四位输出,就能在数码管上显示出相应的数值,其数值对应范围为:表1数码管变化范围FPGA/CPLD输出000000010010…1100110111101111数码管显示012…CDEF端口I/O32~39分别与8个发光二极管D8~D1相连,可作输出显示,高电平亮。还可分别通过键8和键7,发出高低电平输出信号进入端口I/049和48;键控输出的高低电平由键前方的发光二极管D16和D15显示,高电平输出为亮。此外,可通过按动键4至键1,分别向FPGA/CPLD的PIO0~PIO15输入4位16进制码。每按一次键将递增1,其序列为1,2,…9,A,…F。42.3电路原理图此电路图可实现表决器的控制与显示。键8到键2分别为五位投票者和复位,开始键。通过数码管显示投票人数,和剩余时间。二极管D8显示通过与不通过。CLOCK9CLOCK5CLOCK2CLOCK0PIO8D11D12PIO9D13PIO10D14PIO11D15PIO12PIO13D16D6D5D4D3D2D1D7D8)(12345678实验电路结构图NO.6目标芯片FPGA/CPLD扬声器SPEAKERPIO3-PIO0PIO7-PIO4HEXHEXPIO16PIO13-PIO8PIO23PIO22PIO21PIO20PIO19PIO18PIO17直接与7段显示器相接PIO46-PIO40PIO38-PIO32PIO30-PIO24PIO22-PIO16PIO46-PIO40接g,f,e,d,c,b,aPIO38-PIO32接g,f,e,d,c,b,aPIO30-PIO24接g,f,e,d,c,b,a七段PIO22-PIO16接g,f,e,d,c,b,a键1键2键3键4键5键6键7键8图3电路原理图3软件设计当主持人按下开始键,投票开始表决,统计同意的人数,当人数大于或等于三个时。D1点亮并且数码管显示时间变为0,当人数小于三个时,D1熄灭数码管显示时间为0.最后统计投票人数通过同意人数决定表决结果。5五个人开始投票表决统计同意的人数TOTALD1点亮并且数码管显示为0D1熄灭并且数码管显示为0数码管显示统计结果的人数判断TOTAL是否=3YN图4程序流程图4管脚说明AA:一维数组AA用来表示五位表决者;PASS:表决最终是否通过(‘1’为“通过”,‘0’为“未通过”);TOTAL:表决通过的人数;SHIJIAN:用来显示倒计时;FUWEI:主持人复位键,用来系统复位;KAISHI:主持人控制键,用来启动表决;CLK:系统时钟。6表2引脚锁定表5仿真现象当处于复位状态时,外界的输入对结果没有影响。故时间仍为10秒,输出统计人数为0。仿真波形如图5所示。图5复位时的模拟结果在非复位状态下,主持人按下开始键。表决开始。在没有人投票的情况下。时间变为0。表决结束。仿真波形如图6所示。7图6无人赞成时的模拟结果在非复位状态下,主持人按下开始键。表决开始。当超出表决时间时才进行表决,此表决无效。仿真波形如图7所示。图7规定时间外的模拟结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有两人赞同,仿真波形如图8所示。8图8两人赞成时的结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有三人赞同,仿真波形如图9所示。图9三人赞成时的结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有四人赞同,仿真波形如图10所示。9图10四人赞成时的结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有无五人赞同,仿真波形如图11所示。图11四人赞成时的结果管脚锁定之后再次编译,再下载到实验箱进行再次验证。KD2复位信号;KD3开始信号;KD4~KD8为五个人;LED1显示通过与不通过;静态数码管8显示倒计时和数码管7通过的人数。分别拨动相应的开关即显示相应的结果。(1)当KD2=0时,LED1不亮,数码管8显示A,数码管7显示为0。(2)当KD2=1,KD3=1时,AA1~AA5都为0时,LED1熄灭,数码管7显示为0,数码管8显示倒计时A.9.8.7.6.5.4.3.2.1。(3)当KD2=1,KD3=1时,AA1~AA5在倒计时时间外赋值。数码管8倒计时,数码管7显示为0。(4)当KD2=1,KD3=1时,AA5=1,AA4=1.其它为0时,LED1熄灭,数码管7显示为2,数码管8显示倒计时A.9.8.7.6.5.4.3.2.1。(5)当KD2=1,KD3=1时,AA5=1,AA4=1.AA3=1,其它为0时,LED1亮,数码管7显示为3,数码管8显示倒计时A.9.8.7.6.5.4.3.2.1。6实验结论该实验是一个具有计时功能的五人表决器,时间限制为10秒,主持人控制复位,开始。输出结果为表决通过的人数和最后表决是否通过。107实验总结该实验的关键是统计表决通过的人数和时间的限制,即怎样将通过的人数加起来,并且应该在什么时候统计!通过实验知道:应该在倒计时完成之后统计。因为不管你是在第几秒赞成,但只要你赞成,就意味在倒计时结束时也是赞成的,所以应该在此时统计。并且在倒计时之外,表决无效。