七人表决器的设计

合集下载

七人表决器

七人表决器
目录
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实验一 七人表决器

EDA实验一  七人表决器

河北科技大学实验报告2013级电信专业132 班学号130701213 2016年5月23日姓名田继辉同组人指导教师于国庆实验名称实验一七人表决器成绩实验类型设计型批阅教师一、实验目的(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;use ieee.std_logic_unsigned.all;ENTITY vote7 ISPORT( men : IN std_logic_vector(6 downto 0);pass,stop : buffer std_logic);END vote7;ARCHITECTURE behave OF vote7 ISBEGINstop<=not pass;PROCESS (men)variable temp:std_logic_vector(2 downto 0);BEGINtemp:="000";for i in 0 to 6 loopif(men(i)='1') thentemp:=temp+1;elsetemp:=temp+0;end if;end loop;pass<=temp(2);END PROCESS;END behave;2、建立仿真波形文件,使用MAXPLUS II Simulator功能进行功能仿真。

七人表决器设计设计报告

七人表决器设计设计报告

七人表决器设计一.设计要求1. 能够完成七人表决的功能,并且直观的显示结果:决议通过显示字母P,否则显示字母E;2.能够选择显示表决双方的人数,有控制开关与显示指示灯,并且能够实时的显示反对与赞成的人数;3.能够选择是否记名,并有指示灯显示。

当选择记名时,与表决参与者相对应的指示灯亮起;4.不设置弃权的状况,超过三人同意则表示决议通过。

二.设计思路1.使用Altera的Cyclone II器件,FPGA型号为EP2C35F672C6N;开发平台为Quartus II 8.02.使用6个拨动开关用以进行表决,开关闭合时表示同意,断开时表示不同意;3.使用6个LED用以显示表决的个人结果,用以显示记名时的情况。

LED亮起表示表决人同意,否则表示不同意;4.使用一个七段数码管用以显示表决结果,通过显示P,否则显示E;另外使用两个数码管用以分别显示同意与不同意的人数;5.使用两个拨动开关控制是否记名,是否显示表决的人数结果;6.其他电路按需要搭建。

三.硬件系统组成框图注释:set:选择是否记名set1:选择是否显示投票人数及比例xin[0:6]:表决输入,分别是七个拨动开关sel:输出指示是否记名投票sel1:输出指示是否显示投票人数及比例xout[0:6]:译码用数码管输出表决是否通过xout0[0:6]:译码用数码管输出同意的人数(set1=1)xout1[0:6]:译码用数码管输出不同意同意的人数(set1=1)xout2[0:6]:译码用七个LED输出记名结果设计HDL源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity biao isport (set, set1: in std_logic ; ----控制按键xin: in std_logic_vector ( 6 downto 0 ); ----按键输入表决sel,sel2: out std_logic; -------控制指示灯xout,xout0,xout1,xout2 : out std_logic_vector ( 6 downto 0 )); ----xout显示结果,xout0显示否决的人数,xout1赞成的人数,xout2 LED输出end entity ;architecture bev of biao isbeginprocess ( xin ,set,set1)variable j: integer :=0;beginj:=0;for i in 0 to 6 loop ------统计同意的个数if xin(i)='1' thenj:=j+1;end if;end loop;if (set='1') then -------是否记名投票sel<='1';xout2<=xin; -------记名投票elsesel<='0';xout2<="0000000";end if;if j>3 then ------判决是否表决通过并输出结果xout<="0001100"; ----数码管显示Pelse xout<="0000110"; -----数码管显示Eend if;if set1='1' then ------是否显示表决比例sel2<='1'; ------显示指示灯亮并且译码输出同意与不同意的数目case j is ------显示赞成的人数when 0 =>xout1<="1000000";when 1 =>xout1<="1111001";when 2 =>xout1<="0100100";when 3 =>xout1<="0110000";when 4 =>xout1<="0011001";when 5 =>xout1<="0010010";when 6 =>xout1<="0000010";when 7 =>xout1<="1111000";when others =>xout1<="XXXXXXX";end case;case j is ------显示不赞成的人数when 7 =>xout0<="1000000";when 6 =>xout0<="1111001";when 5 =>xout0<="0100100";when 4 =>xout0<="0110000";when 3 =>xout0<="0011001";when 2 =>xout0<="0010010";when 1 =>xout0<="0000010";when 0 =>xout0<="1111000";when others =>xout0<="XXXXXXX";end case;else ------不显示表决比例sel2<='0';xout0<="1111111"; ----不显示数字xout1<="1111111";end if;end process;end architecture bev;四.DE2平台仿真1.在Quartus中打开已经建好的工程文件;2.按要求选择设备并且分配管脚,重新编译,连接实验板的电源线与下载线,下载程序文件3.分别拨动开关sw0到sw6,看是否能够满足基本要求;在分别拨动sw16,sw17,看是否能够按要求显示表决人数结果与对应的LED灯是否正常亮与灭。

7人表决器设计设计任务书

7人表决器设计设计任务书
7人表决器设计设计任务书
引导文3
7人表决器设计任务书
姓名
页 数:
一、项目描述
1、项目工作要求(任务书)
请根据要求设计7人表决器,要求如下:
(1)七人表决器,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,当对应的拨动开关输入为‘1’时,表示此人同意;否则若拨动开关输入为‘0’,则表示此人反对。表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。同时,数码管上显示通过的票数。
(2)要求在Quartus II5.1软件平台上用VHDL设计七人表决器电路,并通过编译及仿真检查设计结果。
图1七人表决器仿真结果
2、已具备资料
(1)七人表决器仿真结果
(2)Quartus II5.1软件的使用教程
(3)Quartus II5.1软件操作PPT
(4)SOPC-IIIEDA实验指导书
二、项目资讯
4、整理相关资料,列表说明项目资料及资料来源,注明存档情况。
项目名称
项目资料名称
资料来源
存档备注
5、成品上交资料备注。
项目名称
上交资料名称
七、备注(需要注明的内容)
指导老师评语:
项目完成人签字: 日期: 年 月 日
指导老师签字: 日期: 年 月 日
辅助设备
备注
四、项目决策
1、分小组讨论,分析阐述各自的设计方案和设计电路。
2、老师指导确定最终设计方案和设计电路。
3、每组选派一位成员阐述设计方案。
五、项目实施
1、设计前的准备工作具体有哪些?
2、Quartus IIVHDL设计时要注意哪些事项?

七人表决器的设计(数字电路)

七人表决器的设计(数字电路)

预习报告
班号:学号:姓名:
一、设计题目
七人表决器的设计
二、设计任务
设计一个七人表决器,并进行模拟仿真。

三、设计要求
①有七人参与表决,显示赞同者个数。

②当赞同者达到及超过4人时,绿灯显示表示通过。

四、设计内容
1.①采用74LS161,74LS151。

②设计相应的电路图,标注元件参数,并进行仿真验证。

2.电路原理及仿真图
五、设计环境
Multisim
六、仪器设备及元器件
EEL—69模拟、数字电子技术实验箱一台
集成运算放大器实验插板一块
直流稳压电源一台
双踪示波器一台
数字万用表一块
主要元器件
两个同步加法计数器74LS161、两个数字选择器74LS151、一个与非门74LS00、导线等。

七人表决器设计

七人表决器设计

EDA 课程设计报告书课题名称 七人表决器设计姓 名 学 号 院、系、部 电气系 专 业 电子信息工程指导教师2013年12月3日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2011级EDA课程设计七人表决器设计一、设计目的1.熟悉Quartus II软件的使用。

2.熟悉EDA开发的基本流程。

二、设计要求所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

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

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

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

三、流程图设计四、程序设计(程序代码)LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY asdfgh ISPORT(clk:IN STD_LOGIC;am:IN STD_LOGIC_VECTOR(6 DOWNTO 0);y:OUT STD_LOGIC;y1:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));END ENTITY asdfgh;ARCHITECTURE one OF asdfgh ISSIGNAL q:STD_LOGIC;SIGNAL q1:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(am)VARIABLE shu:INTEGER;BEGINshu:=0;IF clk'EVENT AND clk='1' THENIF am(0)='1' THEN shu:=shu+1;END IF;IF am(1)='1' THEN shu:=shu+1;END IF;IF am(2)='1' THEN shu:=shu+1;END IF;IF am(3)='1' THEN shu:=shu+1;END IF;IF am(4)='1' THEN shu:=shu+1;END IF;IF am(5)='1' THEN shu:=shu+1;END IF;IF am(6)='1' THEN shu:=shu+1;END IF;CASE shu ISWHEN 0 => q<='0';q1<="0111111";WHEN 1 => q<='0';q1<="0000110";WHEN 2 => q<='0';q1<="1011011";WHEN 3 => q<='0';q1<="1001111";WHEN 4 => q<='1';q1<="1100110";WHEN 5 => q<='1';q1<="1101101";WHEN 6 => q<='1';q1<="1111101";WHEN 7 => q<='1';q1<="0000111";WHEN OTHERS => q<='Z';q1<="ZZZZZZZ";END CASE;y<=q;y1<=q1;END IF;END PROCESS;END ARCHITECTURE one;五、仿真图及结果图(结果说明)当a[6]-a[0]依次输入为1101001时,则数码管y1[6]-y1[0]为1100110,即数码管显示为4,LED灯即为高电平,即为亮。

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

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

电子综合设计题目七人抢答器设计学院计信学院专业电子信息工程班级学生姓名指导教师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程序,并画出表决器的外围引脚图;再将程序用软件仿真,软件仿真成功后进行硬件测试。

广工eda课程设计-七人表决器

广工eda课程设计-七人表决器

课程设计课程名称硬件描述语言与EDA技术课程设计题目名称学生学院材料与能源学院专业班级学号学生姓名指导教师陈先朝2017年6 月10日目录一、设计目的 (1)二、设计内容 (1)三、设计思路 (1)四、Verilog源程序 (1)五、管脚分配 (3)六、总结设计与体会 (3)七、参考文献 (4)七人表决器设计一、设计目的1.熟悉Quartus II软件的使用。

2..熟悉七人表决器的工作原理3.熟悉EDA开发的基本流程。

二、设计内容基础功能:设计一个七人表决器,当赞成人数大于等于四时显示表决通过,同时分别将投票中赞成人数和反对人数在数码管显示出来。

新加:清零键和通过时蜂鸣器响。

三、设计思路(1)使用一个模块完成所有功能。

(2)用alawys语句检测赞同和反对人数信号(A和B),再用两个独立共阴极数码管显示人数0到7。

(3)用if语句判断总人数是否超出7人(s)(4)用另一个clk实现蜂鸣器,因为原来的clk信号频率过低。

四、Verilog源程序module biaojue(clk_1,clk_2,yes,no,clear,buzz,A,B,result);input clk_1,clk_2,yes,no,clear;reg [4:0] s1,s2,s;output reg [7:0] A,B;output reg result,buzz;always @(posedge clk_1)begins=s1+s2;if(clear) begin s1=0; s2=0; result=0; endelse if (s>4'b0111) begin s1=0; s2=0; result=0; endelse if (yes) s1=s1+1;else if (no) s2=s2+1;else if (s1>=4'b0100) begin result=1 ; endelse begin s1=s1; s2=s2; result=result; endendalways @(clk_2)begin if (result) buzz=~clk_2;endalways @(s1)begincase(s1)4'b0000:A=8'h3f;4'b0001:A=8'h06;4'b0010:A=8'h5b;4'b0011:A=8'h4f;4'b0100:A=8'h66;4'b0101:A=8'h6d;4'b0110:A=8'h7d;4'b0111:A=8'h07;default:A=8'h00;endcaseendalways @(s2)begincase(s2)4'b0000:B=8'h3f;4'b0001:B=8'h06;4'b0010:B=8'h5b;4'b0011:B=8'h4f;4'b0100:B=8'h66;4'b0101:B=8'h6d;4'b0110:B=8'h7d;4'b0111:B=8'h07;default:B=8'h00;endcaseendendmodule五、管脚分配错误!六、总结设计与体会七、参考文献(1)自编指导书;(2)Verilog与EDA相关教程:a)王金明等编著,EDA技术与Verilog HDL设计,电子工业出版社,2013年;b)艾明晶编著,EDA技术实验教程,清华大学出版社,2014年;c)潘松等编著,EDA技术与Verilog HDL ,清华大学出版社,2013年;d)张春晶等编著,现代数字电子技术及Verilog设计,清华大学出版社,2014年;e)刘靳等编著,Verilog程序设计与EDA ,西安电子科技大学出版社,2012年;f)刘福奇主编,Verilog HDL 应用程序设计实例精讲,电子工业出版社,2012年;g)周润景等主编,基于Quartus Ⅱ的数字系统Verilog HDL设计实例详解,电子工业出版社,2010年。

数电—七人多路表决器

数电—七人多路表决器

(1)电路状态转换图:(4)七人表决器电路设计:六.设计源程序与电路图绘制(1)或门的设计源程序:--or2_1.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2_1 ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END ENTITY or2_1; ARCHITECTURE art1 OF or2_1 IS BEGINC<=A Or B;END ARCHITECTURE art1;(2)半加器的设计源程序:--h_adder.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder ISPORT(A,B:IN STD_LOGIC;SO,CO:OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE art2 OF h_adder IS BEGINSO<=NOT(A XOR(NOT B));CO<=A AND B;END ARCHITECTURE art2;电路图:(3)全加器的设计源代码:--f_adder.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder ISPORT(AIN,BIN,CIN:IN STD_LOGIC;SUM,COUT:OUT STD_LOGIC); END ENTITY f_adder; ARCHITECTURE art3 OF f_adder IS COMPONENT h_adder ISPORT(A,B:IN STD_LOGIC;SO,CO:OUT STD_LOGIC); END COMPONENT h_adder; COMPONENT or2_1 ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END COMPONENT or2_1;SIGNAL S1,S2,S3:STD_LOGIC;BEGINU1:h_adder PORT MAP(A=>AIN,B=>BIN,CO=>S1,SO=>S2);U2:h_adder PORT MAP(A=>S2,B=>CIN,CO=>S3,SO=>SUM); U3:or2_1 PORT MAP(A=>S1,B=>S3,C=>COUT);END ARCHITECTURE art3;电路图:(4)七人表决器设计电路:七.电路仿真仿真波形图:引脚锁定:。

实验一七人表决器实验指导书

实验一七人表决器实验指导书

EDA实验指导书(EL-SOPC4000实验箱)指导老师:姚晓通电工电子实验中心七人表决器一、实验目的1.了解表决器的原理。

2.熟悉QuartusII软件建立工程,图形输入法进行设计。

3.熟悉整个开发的流程,初步使用EL-SOPC4000实验箱。

二、实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。

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

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

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

根据电路状态转换表→设计数值输出→运用门电路设计电路图→仿真运行→实现七人多数表决器的设计。

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

(2)半加器电路设计:图 1 半加器的原理图(3)全加器电路设计:图 2 全加器的原理图(4)七人表决器电路设计:图3 七人表决器的原理图三、实验内容(1)根据设计要求,绘制出电路状态转换图,实现七人四票制表决。

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

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

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

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

通过状态用LED1表示,未通过用LED2表示。

四、实验步骤1.首先打开QuartusII软件,新建工程voter7。

VHDL 7人表决器

VHDL 7人表决器

一、实验目的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为标准逻辑输出。

七人表决器——精选推荐

七人表决器——精选推荐

七人表决器一:实验目的1.掌握用VHDL硬件描述语言做数字电路综合和设计的方法。

2.熟练掌握程序的编译,仿真,生成模块及引脚号码锁定方法并下载到目标芯片。

二:实验仪器ZY11EDA12BE三:实验要求设计一个七人表决电路,当参与表决的7人中有4人或4人以上赞同时,表决器输出“1”表示通过,否则输出“0”表示不通过。

实验时,可用7个电平开关作为表决器的7个输入变量,输入“1”表示表决者“赞同”输入“0”表示表决者“不赞同”。

可在上述电路的基础上,增加数码管显示功能,显示赞同和不赞同的票数。

四:实验原理根据设计任务要求,实验电路如上图,其中key表示七个输入cp为输入脉冲,result为表决结果显示,seg[6。

0]为送数码管显示结果,sel为选择要显示的数码管其vhdl语言编写后连接,程序如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity biaojue isport (cp:in std_logic;key_in:in std_logic_vector(6 downto 0);result:out std_logic;seg_out:out std_logic_vector(6 downto 0);sel:out std_logic_vector(2 downto 0));end biaojue;architecture arc of biaojue issignal sum:std_logic_vector(3 downto 0);signal seg1,seg0:std_logic_vector(6 downto 0);signal sel1: std_logic_vector(2 downto 0);beginprocessvariable sum1:std_logic_vector(3 downto 0);beginsum1:="0000";for i in 0 to 6 loopif key_in(i)='1' thensum1:=sum1+"0001";elsesum1:=sum1;end if;end loop;sum<=sum1;if sum(2)='1' thenresult<='1';elseresult<='0';end if;case sum iswhen "0000"=>seg1<="0111111";seg0<="0000111";when "0001"=>seg1<="0000110";seg0<="1111101";when "0010"=>seg1<="1011011";seg0<="1101101";when "0011"=>seg1<="1001111";seg0<="1100110";when "0100"=>seg1<="1100110";seg0<="1001111";when "0101"=>seg1<="1101101";seg0<="1011011";when "0110"=>seg1<="1111101";seg0<="0000110";when"0111"=> seg1<="0000111";seg0<="0111111";when others=>seg1<="0000000";seg0<="0000000"; end case;end process;process(cp)beginif(cp'event and cp='1') thenif sel1<="001"thensel1<="000";else sel1<=sel1+"001";end if;end if;end process;sel<=sel1;process(cp)beginif(cp'event and cp='1')then--sel<=sel1;if sel1="001"thenseg_out<=seg0;--sel<=sel1;elsif sel1="000" thenseg_out<=seg1;--sel<=sel1;end if;end if;end process;end arc;五:管脚锁定输入:1.掌握了用vhdl语言常用的设计方法,原理图和vhdl语言硬件描述法2.理解动态扫描电路的基本原理并实现七:参考资料《EDA技术习题与实践》《EDA与数字系统设计》。

七人表决器的设计

七人表决器的设计

硬件课程设计课题名称:七人多数表决电路的设计七人多数表决电路的设计课题:题目:七人多数表决电路的设计要求:用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)引言现代集成电路技术急剧发展,输百万级晶体管电路使设计面临着巨大的挑战。

实验三+七人表决器设计

实验三+七人表决器设计

3.3实验三七人表决器设计3.3.1实验目的1、掌握用QuartusII软件设计基本数字系统流程及注意事项。

2、进一步熟练掌握程序的编译、仿真、生成模块及芯片引脚号码锁定方法。

3、掌握分层设计的方法和注意事项3.3.2实验内容基于QuartusII软件及VHDL语言实现七人表决器。

当参与表决的7人中有4个或4个以上赞同时,表决器输出“1”表示通过,否则输出“0”表示不通过,并显示赞成和反对的人数。

用7个开关作为表决器的7个输入变量,数码管显示人数,LED灯显示是否通过。

本实验4学时。

3.3.3实验仪器ZY11EDA13BE型实验箱。

3.3.4实验原理分析实验要求,七人表决器系统主要由两个模块构成:投票计数模块和数码管显示模块。

一、建立项目(1)新建文件夹。

路径及文件名中不可出现汉字。

(2)新建项目。

一个数字系统可以由多个模块构成,使所有模块连接在一起的总文件叫做顶层文件,只有顶层文件名可以且必须与项目名相同。

项目取名为bjq7。

(3)选择芯片二、建立文件首先,建立各个VHDL功能模块。

1.投票计数模块。

(1)新建VHDL文件编辑VHDL程序。

投票计数模块输入为七个电平开关input,输出为同意的人数agree,反对的人数disagree,是否通过指示灯y,程序清单如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity BJQ isport(input:in std_logic_vector(6downto0);七个输入开关agree:out std_logic_vector(3downto0);同意的人数disagree:out std_logic_vector(3downto0);不同意的人数y:out std_logic);是否通过标志end;architecture one of BJQ isbeginprocess(input)variable cnt:integer range0to7;variable cnt0:integer range0to7;begincnt:=0;for i in6downto0loopif input(i)='1'thencnt:=cnt+1;end if;end loop;cnt0:=7-cnt;if cnt>3then y<='1';else y<='0';end if;case cnt iswhen0=>agree<="0000";when1=>agree<="0001";when2=>agree<="0010";when3=>agree<="0011";when4=>agree<="0100";when5=>agree<="0101";when6=>agree<="0110";when7=>agree<="0111";when others=>agree<="0000";end case;case cnt0iswhen0=>disagree<="0000";when1=>disagree<="0001";when2=>disagree<="0010";when3=>disagree<="0011";when4=>disagree<="0100";when5=>disagree<="0101";when6=>disagree<="0110";when7=>disagree<="0111";when others=>disagree<="0000";end case;end process;end;程序输入完成后进行保存,名字与实体名一致BJQ。

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”。

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程序设计

一、题目用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的扫描的频率很大,所以两个数码管看上去是同时显示。

单片机七人表决器

单片机七人表决器

单片机七人表决器一.方案设计1.设计题目:七人表决器。

2.实训要求利用at89s51单片机设计并制作会议投票表决计票器电路。

具体内容建议如下:1、可供57个人进行表决,每个人有一个“同意”和一个“反对”按键,表决时两个键先按下的一个有效,若再按另一个键将清楚前一次按键的效能;每次表决每个按键只能是第一次按的有效,多按的次数无效,除非前一次按键的效能已被清楚或没有生效。

2、会议主持人可以利用按键掌控投票表决已经开始和完结;已经开始投票表决后,照亮黄色指示灯,则表示可以展开投票表决,同时确切原来的投票表决结果;完结投票表决后表明投票表决结果;“同意”多于“反对”照亮绿色指示灯,反之照亮红色指示灯。

3、在实现上述功能的基础上增加“同意”数和“反对”数的显示。

二.硬件电路设计和原理。

1.硬件设计思路:设计题目为5―7人表决器,题目评选为七人表决器,七个按键表示同意,七个按键则表示反对,各按键与单片机的输出端口相连,因此可以采用单片机的四个i/o口,因为在单片机内部p1和p2都存有上啦电阻,而p0没上啦电阻,必须在外部加之一个上拉电阻,为了精简电路,把p1和p2口评选为按键同意和反对的输出端的,因为投票表决考试和完结必须利用主持人按键来控制,我采用外部中断0和外部中断一来控制其开始和结束;设计要求中需要四张灯,分别为2个红灯,一个黄灯,一个绿灯,其中三个灯用于输出显示,可用单片机的i/o口,另外一个红灯作为电源灯来显示,判断是否通电,因为p1口和p2口用做按键的同意和反对,把p2剩余的i/o口与三个灯连接,分别连接在p2.3,p2.4,p2.5口,因为p0口是低电平有效所以我的p0口与led现实器相连用于显示反对与同意的人数的多少,采用动态显示的方式,为了保证两个显示器不再相同时间显示相同的数字,所以led显示器的公共端受另外一组信号的控制,采用延时的方式让它们分别显示出来。

2.元件参数确认:设计中需要四盏灯,分别为两个红灯,一个绿灯,一个黄灯,p0口的输出端输出高电平一般为5伏左右,最大电流为五毫安,因此必须加上限流电阻,我选用的是470欧的电阻,然后将单片机的最小系统加入此次的电路中。

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







课题名称:七人多数表决电路的设计
七人多数表决电路的设计
课题:
题目:七人多数表决电路的设计
要求:用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个全加器实现七人表决器的设计。

(2)半加器电路设计:
(3)全加器电路设计:
(4)七人表决器电路设计:
逻辑电路图:
投票人通过输入信号灯的开关,输入表决内容,通过green和red两个灯表示出表示结果,如下图所示:
实验结果
通过muxplus2对七人表决器进行设计,完成实验要求,得到实验结果,实现了七人表决的效果,4人或4人以上通过则亮绿灯,否则亮红灯。

试验成功。

程序的应用:
将程序语句写入到PLC中,再进行接线:用七个开关分别控制A1、A2,A3,A4,A5,A6,A7用一盏指示灯来显示表决结果,并将COM1连接到24V直流电源的正极。

接线完毕就可以进行演示实验的操作了。

如果赞成,则合上开关;如果不赞成,则断开开关。

指示灯的亮灭,显示的是表决的结果。

灯亮表示多数赞成,灯不亮,则表示多数不赞成。

表决结果与多数人意见相同。

参考文献:
①数字逻辑王玉龙编高等教育出版社
②新编数字逻辑电路习题实验与实训汪国强编著北京邮电大学出版社
③数字逻辑电路实验作者侯传教、杨智敏等电子工业出版社。

相关文档
最新文档