1、一、 实验目的1、 掌握 VHDL 设计流程2、 熟悉应用型电路设计方法二、 实验内容设计七人表决器电路,系统有七个输入,每个输入端输入1为通过, 0为不通过,七个输入中通过者超过半数输出为1 。三、 实验设备1、 硬件:PC 机一台2、 软件:Maxplus2 环境四、 实验设计程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY DFF1 ISPORT (A1,A2,A3,A4,A5,A6,A7:IN STD_LOGIC;Y:OUT STD_LOGIC);END;ARCHITEC
2、TURE bhv OF DFF1 ISBEGINPROCESS(A1,A2,A3,A4,A5,A6,A7)VARIABLE SUM:INTEGER RANGE 0 TO 7;BEGINSUM:=0;IF A1=1THEN SUM:=SUM+1;END IF;IF A2=1THEN SUM:=SUM+1;END IF;IF A3=1THEN SUM:=SUM+1;END IF;IF A4=1THEN SUM:=SUM+1;END IF;IF A5=1THEN SUM:=SUM+1;END IF;IF A6=1THEN SUM:=SUM+1;END IF;IF A7=1THEN SUM:=SUM+
3、1;END IF;IF SUM3 THEN Y=1;ELSE Y=0;END IF;END PROCESS;END;实验思路分析:在实体 H_7 中定义端口 A1,A2,A3,A4,A5,A6,A7 和 GAIN,其中 A1,A2,A3,A4,A5,A6,A7 为七位标准逻辑向量,用于表示七个人,GAIN 为标准逻辑输出。在结构体 BEHAV 中,用 A1,A2,A3,A4,A5,A6,A7 作为进程的敏感信号,在进程里定义一个整型变量 ABC,累计 1 的个数,利用 IF 条件语句统计 1 的个数放在 ABC 中,用 if 判断 ABC 的大小,若满足条件即超过半数则把 1 赋给 GAIN 输出,否则输出 0。实验结果图:如下图所示五、 结果分析通过波形仿真了两种情况,当低于四个人输入 1 时,输出端输出为 0;当大于等于四个人输入 1 时,输出端输出为 1,仿真结果与实验要求一致,达到预期结果。六、 实验体会通过本次实验,我基本掌握了 VHDL 设计流程,进一步熟悉了应用型电路设计方法,对信号赋值、变量赋值以及端口定义、变量定义等有了进一步的加深理解。