用循环语句设计一个7人投票表决器

合集下载

七人多路表决器实验总结

七人多路表决器实验总结

Eda与数字系统课程设计课题名称:用VHDL文本输入法设计一个7人多数表决电路班级:09电科四班学号:2220091497姓名:楚惠一.课题题目:多数表决电路的设计之二要求:用VHDL文本输入法设计一个7人多数表决电路二.实验内容所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。

实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。

表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。

三.设计步骤1、表决器主控电路代码如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity biao isport (xin: in std_logic_vector ( 6 downto 0 );xout,xout0,xout1,xout2 : out std_logic_vector ( 6 downto 0 ));end entity ;architecture bev of biao isbeginprocess ( xin )variable j: integer :=0;beginj:=0;for i in 0 to 6 loopif xin(i)='1' thenj:=j+1;end if;end loop;if j>3 thenxout<="0110000";else xout<="1111110";end if;case j iswhen 0 =>xout1<="1111110";when 1 =>xout1<="0110000";when 2 =>xout1<="1101101";when 3 =>xout1<="1111001";when 4 =>xout1<="0110011";when 5 =>xout1<="1011011";when 6 =>xout1<="1011111";when 7 =>xout1<="1110000";when others =>xout1<="XXXXXXX";end case;case j iswhen 7 =>xout0<="1111110";when 6 =>xout0<="0110000";when 5 =>xout0<="1101101";when 4 =>xout0<="1111001";when 3 =>xout0<="1011011";when 2 =>xout0<="0010010";when 1 =>xout0<="1011111";when 0 =>xout0<="1110000";when others =>xout0<="XXXXXXX";end case;end process;end architecture bev;2、输出显示部分数码管扫描用到的六进制计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity cnt6a isport(cp,reset : in std_logic;sel :out std_logic_vector(2 downto 0));end cnt6a;architecture behave of cnt6a issignal sec :std_logic_vector (2 downto 0);beginprocess(reset,cp)beginif (reset='0')thensec<="000";elsif (cp'event and cp='1')thenif(sec="101") thensec<="000";elsesec<=sec+1;end if;end if;end process;sel<=sec;end behave;数码管的七段输出library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity mux6 isport (cnthh,cnthl,cntmh,cntml,cntsh,cntsl :in std_logic_vector(6 downto 0);sel :in std_logic_vector(2 downto 0);cntout :out std_logic_vector(6 downto 0));end mux6;architecture behav of mux6 isbeginprocess(sel)begincase sel iswhen"000"=>cntout<=cntsl(6 downto 0);when"001"=>cntout<=cntsh(6 downto 0);when"010"=>cntout<=cntml(6 downto 0);when"011"=>cntout<=cntmh(6 downto 0);when"100"=>cntout<=cnthl(6 downto 0);when"101"=>cntout<=cnthh(6 downto 0);when others=>cntout<="0000000";end case;end process;end behav;顶层原理图:八.实验结果通过muxplus2对七人表决器进行设计,完成实验要求,得到实验结果,实现了七人表决的效果,4人或4人以上通过则亮绿灯,否则亮红灯。

七人表决器

七人表决器
目录
1.设计任务 2.设计分析 3.系统框图 4.模块说明 5.编程,下载,测试
任务:实用表决系统设计
要求:在实用表决器系统中,每个表决者 都有三种选择:分别是同意、反对和弃权。 将所有表决结果进行累计,得出同意、反 对和弃权票的总数,当同意票数大于反对 票数,表决通过,否则不通过,同时在数 码管上显示同意、反对和弃权票的总数。
开始
按键输入表决器
绿色LED亮 Y 同意数>反对数 N 红色LED亮
LED显示同意 LED显示反
人数
对人数
LED显示弃权 人数
模块说明
• 扫描是将投票结果统计出来,根据结果分别
驱动电路是数码管显示数字
• 判断模块用来比较同意与不同意人数,根据
判断,使相应的LED亮
1.VHDL语言(略)
2.测试:K9~K15为ON时,表 示同意,K17~K23为ON时,表示反对。当同 意票数大于反对票数,表决通过,实验箱输出 指示OUT1亮;当反对票大于同意票数,表决
设计分析
• 实用表决器系统设计,首先要判断表决者是投的
同意票、反对票还是弃权票,然后累计表决结果 (同意、反对和弃权票的总数),接下来比较同 意票数和反对票数的大小,当同意票数大于半数, 表决通过,否则不通过,因此需要一个判断并累 计表决的子系统。又因为任务还要求在数码管上 显示同意、反对和弃权票的总数,因此,需要动 态扫描子系统和7段-BCD译码子系统。最后得出实 用表决系统(7人)的结构框图E END

EDA技术与Verilog_HDL(潘松)第6章习题答案

EDA技术与Verilog_HDL(潘松)第6章习题答案

6-1 在Verilog设计中,给时序电路清零(复位)有两种不同方法,它们是什么,如何实现?答:同步清零、异步清零,在过程语句敏感信号表中的逻辑表述posedge CLK用于指明正向跳变,或negedge用于指明负向跳变实现6-2 哪一种复位方法必须将复位信号放在敏感信号表中?给出这两种电路的Verilog 描述。

答:异步复位必须将复位信号放在敏感信号表中。

同步清零:always @(posedge CLK) //CLK上升沿启动Q<=D; //当CLK有升沿时D被锁入Q异步清零:always @(posedge CLK or negedge RST) begin //块开始if(!RST)Q<=0; //如果RST=0条件成立,Q被清0else if(EN) Q<=D;//在CLK上升沿处,EN=1,则执行赋值语句end//块结束6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。

module Statistics8(sum,A); output[3:0]sum;input[7:0] A;reg[3:0] sum;integer i;always @(A)beginsum=0;for(i=0;i<=8;i=i+1) //for 语句if(A[i]) sum=sum+1;else sum=sum;endendmodule module Statistics8(sum,A); parameter S=4;output[3:0]sum;input[7:0] A;reg[3:0] sum;reg[2*S:1]TA;integer i;always @(A)beginTA=A; sum=0;repeat(2*S)beginif(TA[1])sum=sum+1;TA=TA>>1;endendendmodulerepeat循环语句for循环语句module Statistics8(sum,A);parameter S=8;output[3:0]sum;input[7:0] A;reg[S:1] AT;reg[3:0] sum;reg[S:0] CT;always @(A) beginAT={{S{1'b0}},A}; sum=0; CT=S;while(CT>0) beginif(AT[1])sum=sum+1;else sum=sum;begin CT= CT-1; AT=AT>>1; end end endendmodule6-3 用不同循环语句分别设计一个逻辑电路模块,用以统计一8位二进制数中含1的数量。

七人表决器的VHDL程序设计

七人表决器的VHDL程序设计

一、题目用VHDL设计七人表决器二、分析讨论:七人表决器这一功能用C语言、汇编语言或VHDL编程然后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握使用quartus软件的步骤和方法。

所以我们使用VHDL完成。

七人表决器就是当投票的人中,同意个数过半(即大于等于4)时,认为通过;否则,不通过。

在编程中我们使用一个七位二进制输入变量表示投票人;一个七位二进制输出变量表示一个七段数码管显示同意的票数;一个一位的输出变量表示最终的投票结果。

此结果能够在quartus软件中通过时序仿真。

在硬件上我们用七个拨动开关来表示七个投票人,拨动开关为‘1’时表示同意,为‘0’表示不同意;同意的票数和表决的时间分别通过一个七段数码管显示出来;最终的表决结果用一个LED表示。

三、设计方案3.1实现原理首先,编写一个十进制的减法计数器,其输入为clk, clr, en,输出为q[3..0]。

外部的时钟信号的频率选择为1KHz,此频率太大无法显示投票的限制时间,所以要用一个分频器来增大计数时间。

设计一个分频器的程序,将时钟信号经过分频器输入到计数器中,输入为clk, 输出为new clk。

当clk 有1000个上升沿是newclk产生一个脉冲,也就是计数器计数一次。

其次,编辑七人表决器在主程序,其输入为clk, clr, en, input[6..0],q[3..0],输出为output,led[6..0]。

此程序的是时钟脉冲clk也为1KHz;当q 从9到4期间投票是有效的,在4到0期间是无效的,此时就显示之前同意的票数。

记录的票数通过casa语句转换到8位七段数码管显示出来。

投票的时间和记录的票数要通过两个数码管显示,所以要用一个三八译码器来完成。

接着编辑一个三八译码器的程序,其输入为clk, led[6..0], q[3..0], 输出为choice, data[7..0]。

程序中当用一个中间变量来选择数码管,由于clk的扫描的频率很大,所以两个数码管看上去是同时显示。

课程设计报告---七人表决器设计

课程设计报告---七人表决器设计

电子综合设计题目七人抢答器设计学院计信学院专业电子信息工程班级学生姓名指导教师2012 年 6 月18 日一、设计原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于 4 时,则认为同意;反之,当否决的票数大于或者等于4 时,则认为不同意。

二、分析讨论七人表决器这一功能可以用C语言、汇编语言或VHDL编程后下载到单片机上实现,不过用VHDL编程不仅技术含量高而且能让我们更熟练的掌握和使用quartus软件的步骤和方法。

所以我们是采用VHDL编程来实现的。

三、设计准备根据七人表决器的原理,我们的准备过程如下:1、使用Altera的Cyclone II器件,所用的芯片为EP2C35F672C8,开发平台为quartus II。

2、使用七个拨动开关(K1~K7)作为输入变量来表示七个投票人,当拨动开关输入为‘1’时,表示对应的人投同意票,否则当拨动开关输入为‘0’时,表示对应的人投反对票。

3、使用一个七段数码管来显示同意的票数。

4、使用七个LED(LED2~LED8)用来分别记录投票人的个人投票结果,当LED亮起时就表示对应的投票人同意,否则就表示不同意。

5、使用一个LED(LED1)来表示最终的投票结果,当LED1亮起时表示表决通过,不亮时就表示表决不通过。

6、使用一个拨动开关(K8)来达到复位要求,即需要复位时能够达到同时清零数码管的显示结果和LED的显示情况。

7、软件仿真成功后,通过专用的连接线再用硬件进行测试,并将硬件测试的结果以照片的形式做记录。

四、设计思路根据程序设计的一般步骤,我们首先设计出七人表决器的系统框图,也就是说先要确定一个大的设计方向;然后再根据设计要求并结合系统框图来设计程序流程图;由程序流程图来编写VHDL程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。

第6章 Verilog HDL设计进阶习题

第6章 Verilog HDL设计进阶习题
15
1CLK7476N 1K ~1Q ~1CLR 14
U3A 7400N
3
V1 100 Hz 5V J1
10 9 2 7 6 5 4 3
74194N
9 QD QC QB QA 12 13 14 15 11 13 14 15 16 17 18 19 20 21 22 23 1 2 3 4 5 6 7 8 G D C B A
//Verilog设计一个4位4输入最大数值检测电路 module Maximum_value_detection(Mostlarge,a,b,c,d);//4位 4输入最大数值检测电路 output [3:0] Mostlarge; input [3:0] a,b,c,d; wire[3:0]sum1,sum2,sum3;

CP 1 2 3 4 5 6 QD(A2) QC(D4、~D5) 0 0 0 1 1 1 1 1 1 0 ~0 0 QB(A1) 0 1 1 0 0 1

QA(A0、D7) 1 0 1 0 1 0 D D1 D2 D3 D4 D5 D6 F 0 1 0 0 1 0
7
8 9 10 11
1
1 1 1 1
U1
74150N
Key = Space
XSC1
Ext Trig + _ A + _ + B _
U5A 7404N
E15 E14 E13 E12 E11 E10 E9 E8 E7 E6 E5 E4 E3 E2 E1 E0
0
1 ~1 1 1
1
0 0 1 1
1
0 1 0 1
D7
D4 D5 D6 D7
1
1 0 0 1
VDD 5V U2 U1A 74S04D

最新FPGA题及答案

最新FPGA题及答案

1、本课程的讲授目标:了解一种新技术EDA;掌握一种设计工具(器件:Altera FPGA软件:Quartus II);掌握一种语言Verilog HDL。

2、使用Quartus II进行逻辑设计,常用的设计思想的输入方式有:原理图、HDL 等。

3、高级语言C程序经过软件程序编译器形成cpu指令/数据代码流;Verilog HDL程序经过综合器形成电路网表文件4、CPLD是在PAL,GAL等类型器件的基础上发展起来的与或阵列型PLD器件,大多数FPGA采用了查找表结构,其物理结构是静态存储器SRAM.。

5、JTAG边界扫描技术用于对高密度、引脚密集的器件和系统进行测试,如:CPU,DSP,ARM,PLD 等。

同时,JTAG接口也被赋予了更多的功能:编程下载、在线逻辑分析。

6、使用Verilog HDL进行逻辑设计,变量的值有4种状态:0、1、x、z;7、定义逻辑功能的几种基本方法:用assign持续赋值语句定义、用always过程块定义、调用元件(元件例化)。

8、整数按如下方式书写:+/-<size> '<base><value> 即+/-<位宽>'<进制><数字>size 为对应二进制数的宽度;base为进制;value是基于进制的数字序列。

进制有如下4种表示形式:二进制(b或B)、十进制(d或D或缺省)、十六进制(h或H)、八进制(o或O)9、定义reg型标量型变量:reg qout;//变量名qout10、定义wire型向量:wire[7:0] databus;//databus的宽度是8位11、在状态机设计中使用一位热码定义5种状态,并定义状态变量:parameter s0=5’b00001,s1=5’b 00010,s2=5’b 00100,s3=5’b 01000,s4=5’b 10000;reg [4:0] state,next_state;12、在状态机设计中使用顺序码定义5种状态,并定义状态变量:parameter s0=3’b 000,s1=3’b 001,s2=3’b 010,s3=3’b 011,s4=3’b 100;reg [2:0] state,next_state;1、成为IEEE 标准的HDL 有( CD )A 、ABEL-HDLB 、AHDLC 、VHDLD 、Verilog HDL2、Quartus II 是 ( A )公司的( D )开发工具。

EDA七人表决器

EDA七人表决器

河北科技大学实验报告2011级电信专业班学号14年4月10日姓名同组人指导教师于国庆实验名称实验一七人表决器成绩实验类型设计型批阅教师一、实验目的:(1)掌握MUXPLUS II语言输入的设计过程。

(2)初步了解VHDL语言。

(3)熟悉FPGA项目设计的基本流程。

二、实验原理:用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为逻辑“0”时表示表决者“不赞同”;输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”;当表决器的七个输入变量中有4个及以上为“1”时,则表决器输出为“1”,否则为“0”。

表决器输入采用试验箱K1~K16,输出采用试验箱L15、L16指示;同意红灯亮,否则黄灯亮。

三、实验内容及步骤:1.打开MUXPLUS II VHDL编辑器,完成七人表决器的设计。

包括VHDL程序输入、编译、综合。

实验程序如下:library ieee;use ieee.std_logic_1164.ALL;entity GSL isport(a:in std_logic_vector(6 downto 0);b:out std_logic;c:out std_logic);end entity GSL;architecture number of GSL is beginprocess(a)variable cnt:integer range 0 to 7; begin cnt:=0;for i in 6 downto 0 loopif a(i)='1'thencnt:=cnt+1;end if;end loop;if cnt>3 then b<='1';c<='0';else b<='0';c<='1';end if;end process;end architecture number;2、建立仿真波形文件,使用 MAXPLUS II Simulator 功能进行功能仿真。

七人表决器的设计

七人表决器的设计

硬件课程设计课题名称:七人多数表决电路的设计七人多数表决电路的设计课题:题目:七人多数表决电路的设计要求:用VHDL文本输入法设计一个7人多数表决电路难度:10分摘要:所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。

实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。

表决的结果用一个LED灯表示,若表决的结果为同意,则LED灯亮;否则,如果表决的结果为反对,则LED不会亮。

关键词:七人,多数,表决器,全加器,半加器。

设计要求(1)根据设计要求,绘制出电路状态转换图,实现七人四票制表决。

(2)根据电路状态转换图,用门电路设计出七人表决器。

(3)运用半加器,全加器,实现表决器的设计。

(4)逻辑设计要求:用七个开关作为表决器的七个输入变量,逻辑“1”时表示“赞同”,逻辑“0”时表示“不赞同”,用发光二极管作为输出指令,输出逻辑“1”表示“通过”;输出逻辑“0”时表示“不通过”。

当表决器的七个输入变量中的4个以上(包含4个)为“1”时,则表决器输出为“1”;否则为“0”。

设计步骤:表决结果与多数人意见相同。

设A1,A1,A2,A3,A4,A5,A6,A7为七个人(输入逻辑变量),赞成为1,不赞成为0;green和red为表决结果(输出逻辑变量),多数赞成green为1,red为0,否则,green为0,red为1,. 其真值表如表(1)所示。

(1)电路状态转换图:表(1)从真值表发现,A1 A2 A3 A4 A5 A6 A7中有四个或四个以上表示赞同,则绿灯亮,否则红灯亮。

根据电路状态转换图设计电路,用一个半加器实现设计一个全加器,运用4个全加器实现七人表决器的设计。

数字集成电路综合设计7人表决器电路前端设计--大学毕业设计论文

数字集成电路综合设计7人表决器电路前端设计--大学毕业设计论文

摘要7人表决器电路是一简单的输入信号检测与处理、产生运算控制信号的逻辑电路。

本文详细介绍了依据功能要求进行运算控制电路方案设计的过程,并在此基础上将整体电路分为数据接收模块、数据处理模块、结果显示模块等主要功能模块。

电路设计完成后通过Design Compiler对电路进行逻辑综合。

使用Tcl命令编写电路的约束文件,设定约束条件,对电路进行优化以保证设计的功能性,同时生成网表文件、时序报告、面积报告,并进行结果分析。

再通过延时文件与顶层文件的激励进行电路功能的时序仿真,分析设计的可行性。

再通过Primetime对电路进行静态时序分析,得到静态时序报告。

最后通过IC_Compler对生成的网表进行物理实现,生成GDS II版图信息。

关键词Design Compiler;Primetime;逻辑综合;静态时序分析;物理实现;目录摘要 (1)目录 (2)引言 (4)1 总体电路结构设计 (5)1.1电路功能 (5)1.2 关键功能电路设计 (5)1.3 电路接口 (6)1.4 顶层TOP的设计 (6)2 设计约束及脚本 (8)2.1 约束设计 (8)2.2 脚本设计 (8)3 逻辑综合过程 (11)3.1 综合文件 (11)3.2 综合环境 (11)3.3综合过程 (12)4 结果分析及时序仿真 (16)4.1 时序报告分析 (16)4.2 面积报告分析 (19)4.3时序仿真 (20)5 静态时序分析及脚本 (21)5.1 静态时序分析 (21)5.2 PrimeTime 进行时序分析的流程 (21)5.3 脚本 (22)5.4 静态时序报告分析 (24)6 物理实现 (28)6.1 物理实现文件 (28)6.2物理实现环境 (28)6.3物理实现过程 (29)6.3.1 Floorplan (29)6.3.2 placemant (30)6.3.3 Clock Tree synthesis (30)6.3.4 Routing (31)6.3.5 Write Design Out (32)6.4 报告输出 (32)6.5 LVS和DRC (34)结论 (35)参考文献 (36)附录A:顶层设计源代码 (37)附录B:设计约束代码 (38)附录C:静态时序分析脚本代码 (40)引言现代集成电路技术急剧发展,输百万级晶体管电路使设计面临着巨大的挑战。

7人投票表决器VHDL设计实验报告

7人投票表决器VHDL设计实验报告

实验二7人投票表决器VHDL设计一、实验目的1、设计7人投票表决器;2、学习组合电路的设计方法;3、学习设计的多种描述风格;4、学习仿真工具的使用,激励信号波形的生成(生成输入信号的所有可能的组合);二、实验环境QuartusII 、PC机、GW-PK2 EDA实验箱三、实验原理给出原理图,说明结构描述方式和行为描述方式设计7人投票表决器的原理。

(1)结构描述7人投票表决器由四个全加器组成,a,b,c,d,e,f,g代表7个投票人,pass表示是否通过。

7人投票表决器的结构体功能是利用component元件例化语句将四个全加器实体描述的独立器件,按照7人投票表决器内部逻辑原理图中的接线方式连接起来。

(2)行为描述用一个长度为7的数组作为输入,在结构体中定义一个中间变量来计算7位数组中“1”的个数,最后判断此变量是否大于等于4,如果是,则通过,否则不通过。

四、实验内容及要求利用QuartusII完成7人投票表决器的VHDL设计及仿真测试,给出仿真波形,进行引脚锁定,并在实验箱上进行硬件验证。

五、实验步骤(1)用文本方式输入设计文件并存盘①创建工程,利用“New Preject Wizard”创建此设计工程。

选择菜单“File” “New Preject Wizard”,点击Next,即可弹出工程设置对话框点击此框最上一栏右侧的按钮“…”,设置工程路径,找到文件夹D:\Quartus8\vhdl_code\two,填写工程名和顶层文件名称后,点击Next 按钮进行下一步。

②将全加器设计文件加入③选择目标芯片。

首先在“Family”栏选芯片系列,在此选“ACEX1K”系列,选择此系列的具体芯片:EP1K30TC144-3。

④选择仿真器和综合器类型。

点击上图的Next按钮,这时弹出的窗口是选择仿真器和综合器类型的,如果都是选默认的“NONE”,表示都选QuartusII中自带的仿真器和综合器,因此,在此都选默认项“NONE”。

eda技术实用教程verilog答案

eda技术实用教程verilog答案

eda技术实用教程verilog答案【篇一:eda技术实用教程课后答案---潘松,黄继业】端有四个输入:s0、s1、s2、s3。

当且仅当s0=0时:y=a;s1=0时:y=b;s2=0时:y=c;s3=0时:y=d。

--解:4选1多路选择器vhdl程序设计。

library ieee;use ieee.std_logic_1164.all; entity mux41a isport( a,b,c,d : in std_logic;s0,s1,s2,s3 : in std_logic; y : outstd_logic); end entity mux41a;architecture one of mux41a issignal s0_3 : std_logic_vector(3 downto 0); begins0_3=s0s1s2s3;y=a when s0_3=0111 else b when s0_3=1011 else c whens0_3=1101 else d when s0_3=1110 else z;end architecture one;3-4 给出1位全减器的vhdl描述;最终实现8位全减器。

要求:1)首先设计1位半减器,然后用例化语句将它们连接起来,图4-20中h_suber是半减器,diff是输出差a xin (diff=x-y),s_out是借位输出(s_out=1,xy),sub_in是借位输入。

diff_out cyinb图3-19 1位全加器--解(1.1):实现1位半减器h_suber(diff=x-y;s_out=1,xy)library ieee;use ieee.std_logic_1164.all; entity h_suber isport( x,y: in std_logic;diff,s_out: out std_logic); end entityh_suber;architecture hs1 of h_suber is begindiff = x xor (not y);s_out = (not x) and y;end architecture hs1;--解(1.2):采用例化实现图4-20的1位全减器library ieee; --1位二进制全减器顺层设计描述 useieee.std_logic_1164.all; entity f_suber isport(xin,yin,sub_in: in std_logic;sub_out,diff_out: outstd_logic); end entity f_suber;architecture fs1 of f_suber iscomponent h_suber --调用半减器声明语句port(x, y: instd_logic; diff,s_out: out std_logic); end component;signal a,b,c: std_logic; --定义1个信号作为内部的连接线。

实验一七人表决器(1)

实验一七人表决器(1)

第三章数字电路与数字系统设计实验实验一七人表决器一、实验目的1 .初步了解VHDL语言。

2 .学会用行为描述方式来设计电路。

二、实验原理用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为“0”时,表示表决者“不赞同”。

输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。

当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。

七人表决器设计方案很多,比如用多个全加器采用组合电路实现。

用VHDL语言设计七人表决器时,也有多种选择。

常见的VHDL语言描述方式有行为描述、寄存器传输(RTL)描述、结构描述以及这几种描述在一起的混合描述。

我们可以用结构描述的方式用多个全加器来实现电路,也可以用行为描述。

采用行为描述时,可用一变量来表示选举通过的总人数。

当选举人大于或等于4时为通过,绿灯亮;反之不通过时,黄灯亮。

描述时,只须检查每一个输入的状态(通过为“1”不通过为“0”)并将这些状态值相加,判断状态值和即可选择输出。

三、实验内容1.用VHDL语言设计上述电路。

2.下载并验证结果。

四、设计提示1.初次接触VHDL语言应注意语言程序的基本结构,数据类型及运算操作符。

2.了解变量和信号的区别。

3.了解进程内部顺序执行语句及进程外部并行执行语句的区别。

五、实验报告要求1.写出七人表决器的VHDL语言设计源程序。

2.书写实验报告时要结构合理,层次分明,在分析叙述时注意语言的流畅。

实验二格雷码变换电路一、实验目的1.用组合电路设计4位格雷码/二进制变换电路。

2.了解进程内部CASE语句的使用及用VHDL语言设计门级电路的方法。

二、实验原理用VHDL语言描述4位格雷码/二进制码变换电路有两种设计方法,即方程输入、状态选择方程。

1)方程输入法4位格雷码/二进制码的转换表如下表所示。

由此转换表(真值表)可以求得每个输出方程为:B3=G3;B2=!G3G2+G3!G2;B1=!G3!G2G1+!G3G2!G1+G3!G2!G1;B0=!G3!G2!G1G0+!G3!G2G1!G0+!G3G2G1G0+!G3G2!G1!G0+G3G2!G1G0+G3G2G1!G0+G3!G2G1G0+G3!G2!G1!G0;考虑实验时观察方便,每个输出均受一个EN信号控制;EN=0时,4个输出为0;EN=1时,4个输出由上式决定。

vhdl7人表决器

vhdl7人表决器

一、实验目的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;ARCHITECTURE bhv OF DFF1 ISBEGINPROCESS(A1,A2,A3,A4,A5,A6,A7)VARIABLE SUM:INTEGER RANGE 0 TO 7;BEGINSUM:=0;IF A1='1'THEN SUM:=SUM+1;END IF;IF A2='1'THEN SUM:=SUM+1;END IF;IF A3='1'THEN SUM:=SUM+1;END IF;IF A4='1'THEN SUM:=SUM+1;END IF;IF A5='1'THEN SUM:=SUM+1;END IF;IF A6='1'THEN SUM:=SUM+1;END IF;IF A7='1'THEN SUM:=SUM+1;END IF;IF SUM>3 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为标准逻辑输出。

七人表决器—VHDL

七人表决器—VHDL

北方民族大学课设报告院系电气信息工程学院姓名张海强学号 2017xxxx专业电子信息工程班级 2017级(1)班同组人员课程名称 EDA技术基础题目名称七人表决器起止时间成绩指导教师教师评语:北方民族大学教务处制1.设计任务要求:七人表决器的设计内容主要是,用七个开关作为表决器的7个输入变量,输入变量为逻辑“1”时表示表决者“赞同”;输入变量为“0”时,表示表决者“不赞同”。

输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。

当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。

实验要求:1)用VHDL语言进行上述电路设计。

2)仿真验证设计结果。

2.设计原理说明:七人表决器的设计方法很多,比如用多个全加器采用组合电路实现。

用VHDL语言设计七人表决器时,也有多种选择。

常见的VHDL语言描述方式有行为描述,寄存器传输(RTL)描述、结构描述以及这几种描述在一起的混合描述。

我们可以用结构描述的方式用多个全加器来实现电路,也可以进行行为描述。

采用行为描述时,可用一变量来表示选举通过的总人数。

当选举人大于或等于4时为通过,绿灯亮;反之不通过时,黄灯亮。

描述时,只须检查每一个输入的状态(通过为“1”不通过为“0”)并将这些状态值相加,判断状态值和即可选择输出。

这里我们采用的是VHDL行为描述,行为描述简单明了,思路清晰。

3.设计方法阐述:1)实验题目分析:通过分析题目可以发现,不论用何种方法进行设计,最终的结果是有七个输入端用来表示个人的投票观点,加上七个直接的输出端接到LED灯上,显示个人的投票观点。

开始时灯为全灭,如果个人表示同意,那么与个人相对应的LED灯亮,还有两个输出端接到绿色和黄色的LED灯上,若最终表决器的输出结果是通过,那么绿色的LED灯亮,否则在黄色LED灯亮。

上述为实验的基本功能,为了更加容易分析,可以在增加投票计数等程序,同时为了计数器功能上的实用性可以加入数码管显示电路,显示票数等信息。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档