五人表决器学院:信息电子技术学院班级:通信工程一班一、设计目的:1,学习使用EDA开发工具MAX+plusII。2,学习使用VHDL语言设计五人多数表决器。3,熟悉五人多数表决的原理。二、计任务:设计一个五人多数表决器。三、计要求:1)五人多数表决逻辑:多数通过;2)在主持人控制下,10秒内表决有效;3)采用数码管显示表决10秒倒计时;4)表决结束后用发光二极管结果形式:通过,不通过;5)设主持人控制键,复位键:控制键:启动表决;复位键:系统复位。四、任务分析:五人多数表决,只要在规定时间内,赞成人数大于或等于三,则表决通过。因此,只需将每位表决人的结果相加,判断结果值。设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的五个输入变量中有3个以上(含3个)为“1”时。则表决器输出为“1”;否则为“0”。五、管脚说明:FF:一维数组FF用来表示五位表决者;QQ:表决最终是否通过(‘1’为“通过”,‘0’为“未通过”);QALL:表决通过的人数;SHIJIAN:用来倒计时;SHUMAGUAN:用来显示时间;FUWEI:主持人复位键,用来系统复位;KAISHI:主持人控制键,用来启动表决;CLK:系统时钟。六、源程序:libraryieee;useieee.std_logic_1164.all;useieee.std_logic_ARITH.all;useieee.std_logic_UNSIGNED.all;ENTITYBIAOJUEISPORT(FF:INSTD_LOGIC_VECTOR(1TO5);QQ:OUTBIT;QALL:OUTSTD_LOGIC_VECTOR(3DOWNTO1);SHUMAGUAN:OUTSTD_LOGIC_VECTOR(15DOWNTO0);SHIJIAN:BUFFERSTD_LOGIC_VECTOR(3DOWNTO0);FUWEI,KAISHI,CLK:INSTD_LOGIC);ENDBIAOJUE;ARCHITECTUREFUNGOFBIAOJUEISBEGINPROCESS(FF,CLK,KAISHI,FUWEI)VARIABLESUO:BOOLEAN;VARIABLESUM:STD_LOGIC_VECTOR(1TO3);BEGINIF(FUWEI='0')THENQQ='0';SHIJIAN=1010;SUO:=FALSE;SUM:=000;QALL=000;ELSIF(CLK'EVENTANDCLK='1')THENIF(KAISHI='1')THENIF(NOTSUO)THENIFSHIJIAN=0000THENSUO:=TRUE;FORNIN1TO5LOOPSUM:=FF(N)+SUM;ENDLOOP;ELSESHIJIAN=SHIJIAN-1;ENDIF;ENDIF;QALL=SUM;IF(SUM=3)THENQQ='1';ELSEQQ='0';ENDIF;ENDIF;ENDIF;ENDPROCESS;PROCESS(SHIJIAN)BEGINCASESHIJIANISWHEN1010=SHUMAGUAN=0000011000111111;WHEN1001=SHUMAGUAN=0000000001101111;WHEN1000=SHUMAGUAN=0000000001111111;WHEN0111=SHUMAGUAN=0000000000000111;WHEN0110=SHUMAGUAN=0000000001111101;WHEN0101=SHUMAGUAN=0000000001101101;WHEN0100=SHUMAGUAN=0000000001100110;WHEN0011=SHUMAGUAN=0000000001001111;WHEN0010=SHUMAGUAN=0000000001011011;WHEN0001=SHUMAGUAN=0000000000000110;WHEN0000=SHUMAGUAN=0000011000111111;WHENOTHERS=SHUMAGUAN=0000000000000000;ENDCASE;ENDPROCESS;ENDFUNG;七、验证:建立工程,新建文本文件,选择File/New/TextEditorFile,输入源程序。保存(保存名为:biaojue.vhd),把文件加入工程中,编译,芯片选择,管脚锁定。下载执行。实验结果符合任务要求。八、体会:在次课程设计中,深感书到用时方恨少,平时的积累太少,对语言及掌握不够,在平时实践太少。