概述
基于VHDL语言的多人表决器设计
实验原理
用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为逻辑“0”时,表示表决者“不赞同”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。
七人表决器设计方案很多,比如用多个全加器采用组合电路实现。用VHDL语言设计七人表决器时,也有多种选择。我们可以用结构描述的方式用多个全加器来实现电路,也可以用行为描述。采用行为描述时,可用一变量来表示选举通过的总人数。当选举人大于或等于4时为通过,绿灯亮;反之不通过时,黄灯亮。描述时,只须检查每一个输入的状态(通过为“1”,不通过为“0”),并将这些状态值相加,判断状态值和即可选择输出。
设计思路:
本设计采用多个全加器实现组合电路,用七个开关作为表决器的七个输入变量,逻辑“1”时表示“赞同”,逻辑“0”时表示“不赞同”,用发光二极管作为输出指令,输出逻辑“1”表示“通过”;输出逻辑“0”时表示“不通过”。当表决器的七个输入变量中的4个以上(包含4个)为“1”时,则表决器输出为“1” ,绿灯亮;否则为“0”绿灯不亮。
软件说明:ModelSimSetup-13.1.0.162,QuartusSetup-13.1.0.162。
建立工程:
第一步:打开Quartus软件。
第二步:点击New Project Wizard -> next.
第三步:选择工程文件的存放位置,输入工程名 -> next -> next。
第四步:在family栏选择芯片型号-Cyclone IV E,在Name栏选择EP4CE115F29C7,选择完之后点击next。(如果不进行硬件调试时,此处默认即可)
第五步:检查工程有没有建错,点击完成。如下图:
程序设计:
表决器顶层文件设计:
library ieee;
use ieee.std_logic_1164.all;
entity bjq is
port(
a:in std_logic_vector(6 downto 0); --7个人
num:buffer integer range 0 to 7; --表决通过人数
co:out std_logic); --是否通过信号
end bjq;
architecture art of bjq is
Begin
process(a)
variable b:integer range 0 to 7; --定义变量b
begin
b:=0;
for n in 0 to 6 loop
if a(n)='1' then
b:=b+1; --统计通过人数
end if;
end loop;
num<=b;
if(b>=4)then co<='1';
else co<='0';
end if;
end process;
end art;
文件仿真(这里采用modelsim仿真波形):
- 选择File-> New -> Verification/Debugging Files ->University Program VWF。
2.打开测试文件。(右键点击添加端口,对输入信号初始化,赋值。)
3.仿真结果:
逻辑电路图:
显示编译成功后,选择菜单栏 Tools –>Netlist Viewers –>RTL Viewer 显示逻辑电路图
最后
以上就是阳光柜子为你收集整理的基于VHDL语言的多人表决器的设计的全部内容,希望文章能够帮你解决基于VHDL语言的多人表决器的设计所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复