1五人多数表决器的VHDL设计1设计要求(1)五人多数表决逻辑:多数通过;(2)在主持人控制下,10秒内表决有效;(3)设主持人控制键,复位键:控制键:启动表决;复位键:系统复位。2设计说明在脉冲作用下,使用减法计数器,在初值为10秒的时候,主持人按控制键启动表决后,开始计时。每来一个脉冲计数器就减少1。一直这样下去,直到计数器变为0。计数器为0时投票无效。最后统计投票人数通过同意人数决定表决结果,当投票人不小于3人时,投票通过。在主持人按下复位键时,计数回到10,重新进行减法计数器。直到为0。3设计结果3.1电路原理图图1原理图3.2信号表voter:一维数组voter用来表示五位表决者;pass:表决最终是否通过(‘1’为“通过”,‘0’为“未通过”);2total:表决通过的人数;count:用来显示倒计时;reset:主持人复位键,用来系统复位;start:主持人控制键,用来启动表决;clk:系统时钟;图2信号图3.3仿真结果当处于复位状态时,外界的输入对结果没有影响。故时间仍为10秒,输出统计人数为0。仿真波形如图3所示。图3复位时的模拟结果在非复位状态下,主持人按下开始键。表决开始。在没有人投票的情况下。时间变为0。表决结束。仿真波形如图4所示。3图4无人赞成时的模拟结果在非复位状态下,主持人按下开始键。表决开始。当超出表决时间时才进行表决,此表决无效。仿真波形如图5所示。图5规定时间外的模拟结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有两人赞同,仿真波形如图6所示。图6两人赞成时的结果4在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有三人赞同,仿真波形如图7所示。图7三人赞成时的结果在非复位状态下,主持人按下开始键。表决开始。在规定时间内只有四人赞同,仿真波形如图8所示。图7四人赞成时的结果该实验是一个具有计时功能的五人表决器,时间限制为10秒,主持人控制复位,开始。输出结果为表决通过的人数和最后表决是否通过。3.4电路图5图8电路图3.5程序清单LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;USEIEEE.STD_LOGIC_ARITH.ALL;USEIEEE.STD_LOGIC_UNSIGNED.ALL;ENTITYvote5ISPORT(voter:INSTD_LOGIC_VECTOR(1TO5);pass:OUTBIT;total:OUTSTD_LOGIC_VECTOR(3DOWNTO1);count:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);reset,start,clk:INSTD_LOGIC);ENDvote5;ARCHITECTUREoneOFvote5ISBEGINPROCESS(voter,clk,start,reset)VARIABLEsuo:BOOLEAN;VARIABLEsum:STD_LOGIC_VECTOR(1TO3);6BEGINIF(reset='0')THENpass<='0';count<="1010";suo:=FALSE;sum:="000";total<="000";ELSIF(clk'EVENTANDclk='1')THENIF(start='1')THENIF(NOTsuo)THENIFcount="0000"THENsuo:=TRUE;FORiIN1TO5LOOPsum:=voter(i)+sum;ENDLOOP;ELSEcount<=count-1;ENDIF;ENDIF;total<=sum;IF(sum>=3)THENpass<='1';ELSEpass<='0';ENDIF;ENDIF;ENDIF;ENDPROCESS;ENDone;74实验总结该实验的关键是统计表决通过的人数和时间的限制,即怎样将通过的人数加起来,并且应该在什么时候统计!通过实验知道:应该在倒计时完成之后统计。因为不管你是在第几秒赞成,但只要你赞成,就意味在倒计时结束时也是赞成的,所以应该在此时统计。并且在倒计时之外,表决无效。通过本次设计,我深深的体会到设计课的重要性和目的性。本次设计课不仅仅培养了我们实际操作能力,也培养了我们灵活运用课本知识,理论联系实际,独立自主的进行设计的能力。它不仅仅是一个学习新知识新方法的好机会,同时也是对我所学知识的一次综合的检验和复习,使我明白了自己的缺陷所在,从而查漏补缺。希望学校以后多安排一些类似的实践环节,让同学们学以致用。在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。在应用VHDL的过程中让我真正领会到了其并行运行与其他软件顺序执行的差别及其在电路设计上的优越性。用VHDL硬件描述语言的形式来进行数字系统的设计方便灵活,利用EDA软件进行编译优化仿真极大地减少了电路设计时间和可能发生的错误,降低了开发成本,这种设计方法必将在未来的数字系统设计中发挥越来越重要的作用。