七人表决器课程设计报告
七人表决器实验
3.3实验三七人表决器设计3.3.1实验目的1、掌握用QuartusII软件设计基本数字系统流程及注意事项。
2、进一步熟练掌握程序的编译、仿真、生成模块及芯片引脚号码锁定方法。
3、掌握分层设计的方法和注意事项4、在实验报告中,总结数字系统设计步骤及注意事项。
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<='0';else y<='1';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。
七人表决器
学院名称电子技术基础课程设计报告七人表决器电路设计报告学生姓名__ _____ 学号专业指导教师系别__ _年月日一、评语(根据学生答辩情况及其报告质量综合评定)。
二、评分指导教师签字:年月日摘要本次设计的七人表决器,是投票系统中的客户端,是一种代表投票或举手表决的表决装置。
表决时,与会的有关人员只要按动各自表决器上“赞成”“反对”“弃权”的某一按钮,相应灯的明亮即显示出表决结果。
在七人表决器中七个人分别用手指拨动开关 SW1、SW2、SW3、SW4、SW5、SW6、SW7 来表示自己的意愿,如果对某决议同意,各人就把自己的指拨开关拨到高电平(上方)不同意就把自己的指拨开关拨到低电平(下方)。
表决结果用 LED(高电平亮)显示,如果决议通过那么发光二极管会发亮;如果不通过那么发光二极管就不亮;如果对某个决议有任意四到七人同意,那么此决议通过,发光二极管就会发亮;如果对某个决议只有一个人或没人同意,那么此决议不通过,发光二极管就不会亮。
根据设计与制作的主要内容按照设计题目,以及所学的组合逻辑所学的知识及数字电路和嵌入式的知识完成七人表决器的设计,使之能够满足表决时少数服从多数的表决规则,根据逻辑真值表和逻辑表达式完成表决功能。
首先根据七人多数表决电路列出真值表,进行化简,写出逻辑表达式,画出逻辑图。
目录1 概述 (1)2 系统总体方案及硬件设计 (2)2.1电路的总体原理框图 (2)2.2元件选择 (2)3 各模块设计 (3)3.1投票按键部分电路设计 (3)3.2输入转换部分及控制电路 (3)3.3票数统计部分及控制电路 (4)3.4票据分析与结果显示分 (5)3.5总体电路 (7)4 软件仿真 (8)5 课程设计体会 (9)参考文献(按照标准格式) (10)数字电子技术课程设计1 概述1.1 七名表决人编号为:1,2,3,4, 5, 6, 7。
1.2七人根据自己的意愿进行表决,七人均可同意否决与弃权。
七人表决器设计设计报告
七人表决器设计一.设计要求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灯是否正常亮与灭。
实验五 七人表决器的设计
实验五七人表决器的设计一、实验目的1、掌握VHDL程序设计。
二、实验内容设计七人表决器,并在数码管上显示赞成票数。
三、实验仪器1、ZY11EDA13BE型实验箱通用编程模块,配置模块,开关按键模块,数码显示模块。
2、并口延长线,JTAG延长线。
3、安装MAX+PLUSII 10.2软件的PC机。
四、实验原理表决器是统计选票结果的工具,投票者通过拨位开关投票,表示赞成或反对,用循环语句完成赞成票计数过程,统计出赞成的票数之后,用CASE控制数码管显示赞成票数。
五、实验步骤:步骤1:输入VHDL程序,编译,仿真,锁定引脚并下载到目标芯片。
步骤2:验证设计结果。
六、实验报告1、列出数码管控制接口表(列出数码管显示数字的每段控制电平)。
七、思考题记录实验数据,列出七人表决器的真值表。
VHDL程序:library ieee;use ieee.std_logic_1164.all;ENTITY eda3 isPORT (men:in std_logic_vector(6 downto 0);a,b,c:out std_logic;output:out std_logic_vector(6 downto 0)); END entity eda3;ARCHITECTURE behave OF eda3 ISBEGINPROCESS(men)variable temp: integer range 0 to 7;BEGINtemp:=0;for i in 0 to 6 loopif(men(i)='1')thentemp:=temp+1;end if;end loop;case temp iswhen 0 => output <="1111110";when 1 => output <="0110000";when 2 => output <="1101101";when 3 => output <="1111001";when 4 => output <="0110011";when 5 => output <="1011011";when 6 => output <="1011111";when 7 => output <="1110000";when others => output <="0000000";end case;a <='1';b <='1';c <='1';END PROCESS;END architecture behave;。
课题 七人表决器
课题七人表决器
一、课题目的
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.书写课题报告时要结构合理,层次分明,在分析叙述时注意语言的流畅。
七人表决器实验报告doc
七人表决器实验报告篇一:哈工大电工学新技术实践实验报告-7人表决器总成绩:一、设计任务1、有七人参与表决,显示赞同者个数。
2当赞同者达到及超过4人时,绿灯显示表示通过。
二、设计条件本设计基于软件Multisim10.0.1进行仿真,在电机楼实验室XX5进行验证。
三、设计要求1、熟悉74LS161,74LS151,数码管的工作原理。
2、设计相应的电路图,标注元件参数,并进行仿真验证。
四、设计内容1. 电路原理图(含管脚接线)电路原理图如图1所示图1 电路原理图2. 计算与仿真分析仿真结果如图2、3、4所示图2 仿真结果图4 仿真结果4. 调试流程调试流程如图5所示图5 调试流程5. 设计和使用说明74LS151芯片为互补输出的8选1数据选择器,引脚排列如图6所示,功能见表1。
选择控制端(地址端)为C~A,按二进制译码,从8个输入数据D0~D7中,选择一个需要的数据送到输出端Y,G为使能端,低电平有效。
(1)使能端G=1时,不论C~A状态如何,均无输出(Y=0,W=1),多路开关被禁止。
(2)使能端G=0时,多路开关正常工作,根据地址码C、B、A的状态选择D0~D7中某一个通道的数据输送到输出端Y。
如:CBA=000,则选择D0数据到输出端,即Y=D0。
如:CBA=001,则选择D1数据到输出端,即Y=D1,其余类推。
图6 74LS151引脚排列表1 74LS151功能表74LS161功能:(1)异步置“0”功能:接好电源和地,将清除端接低电平无论其他各输入端的状态如何,测试计数器的输出端,如果操作无误Q3~Q0均为0。
(2)预置数功能:将清除端接高电平,预置控制端接低电平,数据输入端D3~D0置0011,在CP的上升沿作用后,测试输出端Q3~Q0的电平。
如果操作准确,D3~D0的数据为0011,说明D3~D0的数据已预置到Q3~Q0端。
(3)计数和进位功能:将 LD、Cr 、CET、CEP端均接高电平,CLK端输入单脉冲,记录输出端状态。
七人表决器设计
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灯即为高电平,即为亮。
多人表决器课程设计
多人表决器课程设计一、课程目标知识目标:1. 学生能够理解并掌握多人表决器的基本原理与电路组成。
2. 学生能够运用所学知识,分析并设计简单的多人表决器电路。
3. 学生能够解释多人表决器在现实生活中的应用及其重要性。
技能目标:1. 学生能够运用逻辑推理和分析能力,解决多人表决器电路设计中的问题。
2. 学生能够通过小组合作,进行电路搭建与调试,提高动手实践能力。
3. 学生能够运用信息技术工具,如电路仿真软件,进行电路设计与分析。
情感态度价值观目标:1. 学生培养对电子技术的兴趣,激发探究精神。
2. 学生养成合作、分享的学习习惯,增强团队协作能力。
3. 学生认识到科技进步对生活的影响,培养创新意识和责任感。
本课程针对初中年级学生,结合电子技术基础知识,以实用性为导向,注重培养学生的动手实践能力、逻辑思维能力和团队协作能力。
通过本课程的学习,使学生能够将所学知识应用于实际生活中,提高学生对电子技术的认识和应用能力。
同时,激发学生的学习兴趣,培养创新精神和责任感。
课程目标的设定旨在使学生在知识、技能和情感态度价值观方面取得全面发展,为后续学习打下坚实基础。
二、教学内容本课程依据课程目标,结合教材内容,组织以下教学大纲:1. 多人表决器基本原理- 介绍电路基本组成元素- 讲解逻辑门电路的工作原理- 分析多人表决器的逻辑功能2. 多人表决器电路设计- 学习使用逻辑门设计简单的表决器电路- 了解表决器电路在实际应用中的连接方式- 掌握使用电路图表示表决器电路3. 多人表决器电路搭建与调试- 学习使用实验器材进行电路搭建- 掌握电路调试方法,解决常见问题- 体验团队合作,完成电路搭建与调试4. 多人表决器应用案例分析- 分析现实生活中的表决器应用案例- 了解表决器在不同场景下的作用- 探讨表决器在科技发展中的重要性教学内容按照以上大纲进行安排和进度制定,注重系统性和科学性。
在教学过程中,将引用教材相关章节,如“逻辑门电路”、“组合逻辑电路”等,确保教学内容与课本紧密关联。
广工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年。
HDL七人表决器
实验报告课程名称:可编程硬件控制技术任课教师:实验一:七人表决器年级、专业:学号:姓名:日期:2010 年11月10 日云南大学信息学院一、实验目的1、熟悉元件库的使用方法2、掌握原理图模块的生成方法3、掌握原理图的层次化设计方法二、实验设备1、ALTERA DE2实验板一块2、CPU为586或更高配置的计算机一台3、QUARTUSⅡ软件三、原理说明当表决器的七个输入变量中有4个以上(含4个)为“1”时,则表决器输出为“1”;否则为“0”。
分析七人表决器全加结果CBA(从高位到低位)中的八种情况:000-111,输出为“1”的量为100-111, 根据这种真值表用卡诺图化简可得出最简逻辑表达示为OUT=C,即全加结果最高位决定了结果。
根据分析结果,可采用四个一位全加器完成七人表决器设计。
(1)七人表决器的原理图如下:(2)全加器的原理图图1 全加器原理图图2 7人表决器原理图四、实验内容及步骤1、在实验前中所建的工程打开,点击FILE—CREAT/UPDATA-CREAT SYMBOL FILE FORCURRENT FILES,如图1所示。
则在图形库中生成了如图2所示的半加器元件。
图3 创建半加器元件菜单图4 半加器元件2、打开图形编辑器窗口,参考实验原理图1,调用半加器模块完成全加器的设计,并生成如下图所示符号,即将f_adder模块编译成工作库(当前项目设计文件夹)中的一个元件。
3、利用全加器模块设计出七人表决器。
对输入、输出端口进行管脚分配和锁定、编译与下载,根据指定的管脚,列表记录实验现象,分析实验结果的正确性。
五、实验报告要求1. 全加器的原理图图中first为实验一设计的半加器。
2、七人表决器的原理图。
3、记录仿真波形,分析实验结果的正确性。
六、实验总结1.实验结果表明。
当有4个或4个以上的人为1时,输出结果为1,当少于4个人为1时,输出为02.在建工程时要选择好所需器材类型3.一个程序只能对应一个工程,否则不能正常运行。
七人表决器实验报告
七人表决器实验报告七人表决器实验报告引言:在日常生活中,我们经常会遇到需要做决策的情况。
而在集体决策中,如何快速、公正地达成共识成为了一个重要的问题。
为了解决这一问题,我们进行了七人表决器的实验。
本实验旨在探索七人表决器在集体决策中的效果和影响因素。
实验设计:我们邀请了七位志愿者参与实验,每个人都具有不同的背景和观点。
在实验开始前,我们向每位参与者提供了相同的决策问题,并要求他们独立思考并给出自己的答案。
然后,我们将七人表决器放置在桌面上,并告知参与者如何使用。
在每次决策中,参与者需要将自己的决策结果输入到表决器中,然后等待其他人完成决策。
当所有参与者完成决策后,表决器会自动计算出最终的决策结果。
实验结果:通过观察实验过程和分析实验数据,我们得出了以下结论:1. 影响决策结果的因素:参与者的个人观点、决策顺序以及决策权重等因素都可能影响最终的决策结果。
在实验中,我们发现当个人观点相差较大时,决策结果往往会偏向于多数人的意见。
而当个人观点相似或相同时,决策结果则更容易达成一致。
2. 决策效率的提升:相比于传统的集体讨论和投票方式,七人表决器在决策效率上具有明显的优势。
参与者只需输入自己的决策结果,无需进行冗长的讨论和辩论过程,从而节省了时间和精力。
3. 决策公正性的保障:七人表决器在一定程度上保障了决策的公正性。
由于每个参与者的决策权重相等,没有任何一方能够主导决策结果。
这种平等的决策机制能够避免个别参与者的意见被忽视或压制,从而提高了决策的公正性。
讨论:尽管七人表决器在决策效率和公正性方面具有优势,但仍存在一些潜在的问题和限制。
首先,由于每个参与者只能输入一个决策结果,可能无法充分体现个体的多样性和复杂性。
其次,决策结果可能受到决策顺序的影响,先行决策者的意见可能会对后续决策者产生影响。
此外,表决器本身的设计和算法也可能存在一定的偏差,需要进一步优化和改进。
结论:通过本次实验,我们初步探索了七人表决器在集体决策中的应用。
7人表决电路vhdl课程设计
7人表决电路vhdl课程设计一、课程目标知识目标:1. 让学生掌握7人表决电路的基本原理及其在数字电路设计中的应用。
2. 使学生了解并熟练运用VHDL语言对7人表决电路进行代码编写和仿真。
3. 帮助学生理解并掌握7人表决电路中的逻辑门、触发器等基本元件的功能及其相互关系。
技能目标:1. 培养学生运用VHDL语言进行数字电路设计的能力。
2. 提高学生分析、解决数字电路实际问题的能力。
3. 培养学生团队协作和沟通表达的能力。
情感态度价值观目标:1. 培养学生对数字电路设计及其编程的兴趣和热情。
2. 培养学生严谨、踏实的科学态度,提高学生的自主学习能力和创新意识。
3. 增强学生的团队合作意识,培养学生的集体荣誉感和责任感。
课程性质:本课程为实践性较强的数字电路设计与编程课程,旨在通过7人表决电路的实例,使学生掌握VHDL语言在数字电路设计中的应用。
学生特点:学生具备一定的数字电路基础知识,具有一定的编程能力,但对VHDL语言和实际电路设计可能还不够熟悉。
教学要求:结合学生特点,本课程要求教师采用循序渐进、任务驱动的教学方法,将理论与实践相结合,注重培养学生的实际操作能力和团队协作能力。
通过课程学习,使学生能够独立完成7人表决电路的VHDL代码编写和仿真,达到本课程设定的具体学习成果。
二、教学内容本章节教学内容围绕7人表决电路的VHDL课程设计,依据课程目标进行以下安排:1. 数字电路基础知识回顾:复习逻辑门、触发器等基本元件的功能和特性,为7人表决电路的学习打下基础。
2. VHDL语言基础:介绍VHDL的基本语法、结构、数据类型、运算符等,为学生编写7人表决电路代码做好准备。
3. 7人表决电路原理:讲解7人表决电路的原理和设计方法,分析电路中各部分的功能和相互关系。
4. VHDL代码编写:根据7人表决电路原理,指导学生进行VHDL代码编写,包括逻辑门、触发器等元件的描述。
5. 电路仿真与测试:介绍仿真软件的使用,指导学生进行7人表决电路的仿真、调试和测试。
七人表决器课程设计报告
课程设计课程名称硬件描述语言与EDA技术题目名称硬件描述语言与EDA技术实践学生学院材料与能源专业班级 11微电子学(1)班学号学生XX指导教师2021年 6月 27日XX工业大学课程设计任务书题目名称硬件描述语言与EDA技术实践学生学院材料与能源学院专业班级11微电子学(1)班姓名学号一、课程设计的内容与要求1.系统功能分析,分模块层次化设计;2.实现系统功能的方案设计;3.编写各功能模块VHDL语言程序;4.对各功能模块进展编译、综合、仿真和验证;5.顶层文件设计,可用VHDL语言设计,也可以用原理图设计;6.整个系统进展编译、综合、仿真和验证;7.在CPLD/FPGA实验开发系统试验箱上进展硬件验证;8.按所布置的题目要求,每一位学生独立完成全过程。
二、课程设计应完成的工作1.所要求设计内容的全部工作;2.按设计指导书要求提交一份报告书;3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书三、课程设计进程安排四、应收集的资料及主要参考文献1.陈先朝,硬件描述语言与EDA技术实践指导书,2021年3月2.曹昕燕等编著,EDA技术实验与课程设计,清华大学,2006年5月3.X欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业,2021年4月4.X昌华等编著,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双剑合璧,国防工业,2021年5.X江海主编,EDA技术课程设计,华中科技大学,2021年1月发出任务书日期: 2021年6月 23日指导教师签名:方案完成日期: 2021年6月 27日基层教学单位责任人签章:主管院长签章:七人表决器1.设计目的(1)学习和掌握Quartus II软件的根本操作;(2)通过设计七人表决器,掌握基于可编程器件的VHDL硬件描述语言的设计方法;(3)学习用CPLD/FPGA 实践系统硬件验证电路设计的正确性2.设计题目及要求(1)题目:表决器(2)要求:设计一个七人表决器,当赞成人数大于等于四时显示表决通过,同时分别将投票中赞成的人数和反对的人数在数码管上显示出来。
七人表决器——精选推荐
七人表决器一:实验目的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与数字系统设计》。
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”。
七人表决器实验报告
七人表决器一.实验目的1.掌握Quartus II软件安装,熟悉Quartus II操作环境。
2.初步了解VHDL语言。
3.学习使用行为级描述方法设计电路。
二.实验原理七人表决器使用7个电平开关作为表决器的7个输入变量,输入为电平“1”时表示表决者“赞同”,输入为电平“0”时表示表决者“不赞同”。
当表决器的7个输入变量中有不少于4个输入变量输入“1”,那么表决结果输出逻辑高电平,表示表决“通过”,否则,输出逻辑低电平,表示表决“不通过”。
七人表决器的可选设计方案非常多,可以采用使用全加器的组合逻辑。
使用VHDL 进行设计的时候,可以选择行为级描述、寄存器级描述,结等方法。
当采用行为级描述的时候,采用一个变量记载选举通过的总人数。
当这个变量的数值大于等于4时,表决通过,绿灯亮;否则表决不通过,黄灯亮。
因此,设计时,需要检查每一个输入的电平,并且将逻辑高电平的输入数目进行相加,并且进行判断,从而决定表决是否通过。
二.实验内容1.安装Quartus II软件,熟悉Quartus II操作环境。
2.使用VHDL实现上述描述。
3.波形仿真。
4.生成元件以及RTL四.设计提示1.初次接触VHDL应该注意程序的框架结构,数据类型和运算操作符。
2.了解变量和信号的区别。
3.了解进程内外语句的顺序和并行执行的区别。
4.设计文本的端口可如下:设计文本:LIBRARY IEEE;library ieee;USE vote7 ISPORT(men:in std_logic_vector(6 downto 0);LedPass,LedFail:OUT std_logic);END vote7;ARCHITECTURE behave OF vote7 ISsignal pass:std_logic;BEGINPROCESS(men)variable temp:std_logic_vector(2 downto 0);BEGINtemp:="000";for i in 0 to 6 loop--结束if(men(i)='1')thentemp:=temp+1;elsetemp:=temp+0;end if;end loop;pass<=temp(2);END PROCESS;LedPass<='1' WHEN pass='1'ELSE '0';LedFail<='1' WHEN pass='0'ELSE '0';--库和程序包--实体--结构体五.实验报告要求1.记录仿真波形。
七人表决器的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的扫描的频率很大,所以两个数码管看上去是同时显示。
哈工大电工七人表决器的设计
分类设计制作调试功能实现报告成绩总成绩:一、设计任务七人表决器的设计二、设计条件本设计基于学校实验室:EEL—69模拟、数字电子技术实验箱一台集成运算放大器实验插板一块直流稳压电源一台双踪示波器一台数字万用表一块主要元器件同步加法计数器74LS161、74LS151、导线等三、设计要求①有七人参与表决,显示赞同者个数。
②当赞同者达到及超过4人时,绿灯显示表示通过。
四、设计内容1.电路原理图与仿真分析2.计算74LS161功能表:74LS151功能表:按下14次J2,U3和U5输出高电平的次数等于开关J1按下的数量,且每两个高电平之间必有低电平输出,构成脉冲被U2接收,数码管显示赞同人数,赞同人数大于4时,Q2=1,绿灯亮。
3.元器件清单元器件类型元器件代号芯片型号开关J1/开关J2/同步加法计数器U174LS161同步加法计数器U274LS1618选1数据选择器U374LS1518选1数据选择器U574LS151与非门U6A74LS00与非门U6B74LS00绿灯X1/七段数码管(带译码芯片)U474LS473、调试流程首先查阅了74LS151和74LS161的详细资料,设计电路,用Multisim画出电路原理图,进行仿真,对比仿真结果与预期结果,修改电路图。
4、设计和使用说明七个人对应七个开关,当七人表决结束后,按下14次开关,数码管将显示赞同人数,若赞同人数大于4人则绿灯亮。
五、设计总结在Multisim上仿真时完全正确,但在实际操作过程中发现按下14次开关后并没有得到想要的结果,改接1Hz脉冲,等待14秒后观察,可得到理想结果。
六、设计参考资料[1] 杨世彦. 电工学(中册)电子技术. 机械工业出版社. 2008.。
单片机七人表决器
单片机七人表决器一.方案设计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欧的电阻,然后将单片机的最小系统加入此次的电路中。
数电课程设计_七人表决电路
数字电路课程设计报告课题:七人表决电路班级:电子信息工程1301姓名:张婷学号: 1 1 0 8 0 3 0 5 0指导教师:刘玲丽老师设计时间:2015.4-2015.5七人表决电路一、设计任务与要求1.设计一个七人表决器,用数码管显示出同意的人数。
2. 当赞同者达到及超过四人时,LED发光二极管灯亮表示通过3.学会根据已学知识设计具有某一特定功能的电路,学会基本电路的组装与调试。
二、方案设计与论证当按下开关时,代表同意赞成,开关没有按下去时,表示不赞成。
评委按照自己的意愿投票,选择是否按下开关,即选择逻辑电位。
对逻辑电位进行译码,对译码后芯片的输出进行显示。
方案一:先用74LS161自动计数,在计数的同时用数据选择器分别将通过和否决的高电平进行选择,之后将七人的选择结果用74LS161加法计数器进行累加。
然后在数码管显示并用数据比较器进行比较,如果通过的票数大于或等于4,则LED灯亮表示“通过”。
如果通过的票数小于4,则LED灯不亮表示“否决”。
方案二:将七人的通过、否决票数用移位寄存器进行寄存,弃权的票数用另一组移位寄存器进行寄存,然后用CLK脉冲信号使其移位寄存器进行右移,用T触发器构成的同步二进制加法计数器进行累加,如果通过的票数大于或等于4,则LED灯亮表示“通过”。
如果通过的票数小于4,则LED灯不亮表示“否决”。
方案二总体电路原理图方案对比:方案一是利用数据选择器和计数器原理,电路实现方便、设计思路明确、布线简单、电路的稳定性高、调试简单、易于实现要求;方案二利用寄存器以及计数器原理,电路复杂不容易查找错误,调试复杂。
通过分析,结合设计电路性能指标、器件的性价比,本设计电路选择方案一三、单元电路设计与参数计算1.555定时器先把555定时器时钟的2,6脚相连并通过电容C2接地,并同时通过R15接到7脚,7脚通过R16接电源Vcc,5脚接地C1再接到地,构成多谐振荡器。
用以产生方波时钟信号。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课程设计课程名称硬件描述语言与EDA技术题目名称硬件描述语言与EDA技术实践学生学院材料与能源专业班级 11微电子学(1)班学号学生姓名指导教师2014年6月27日广东工业大学课程设计任务书题目名称硬件描述语言与EDA技术实践学生学院材料与能源学院专业班级11微电子学(1)班姓名学号一、课程设计的内容与要求1.系统功能分析,分模块层次化设计;2.实现系统功能的方案设计;3.编写各功能模块VHDL语言程序;4.对各功能模块进行编译、综合、仿真和验证;5.顶层文件设计,可用VHDL语言设计,也可以用原理图设计;6.整个系统进行编译、综合、仿真和验证;7.在CPLD/FPGA实验开发系统试验箱上进行硬件验证;8.按所布置的题目要求,每一位学生独立完成全过程。
二、课程设计应完成的工作1.所要求设计内容的全部工作;2.按设计指导书要求提交一份报告书;3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书三、课程设计进程安排四、应收集的资料及主要参考文献1.陈先朝,硬件描述语言与EDA技术实践指导书,2014年3月2.曹昕燕等编著,EDA技术实验与课程设计,清华大学出版社,2006年5月3.刘欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业出版社,2009年4月4.刘昌华等编著,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双剑合璧,国防工业出版社,2009年5.刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月发出任务书日期: 2014年6月 23日指导教师签名:计划完成日期: 2014年6月 27日基层教学单位责任人签章:主管院长签章:七人表决器1.设计目的(1)学习和掌握Quartus II软件的基本操作;(2)通过设计七人表决器,掌握基于可编程器件的VHDL硬件描述语言的设计方法;(3)学习用CPLD/FPGA 实践系统硬件验证电路设计的正确性2.设计题目及要求(1)题目:表决器(2)要求:设计一个七人表决器,当赞成人数大于等于四时显示表决通过,同时分别将投票中赞成的人数和反对的人数在数码管上显示出来。
3.设计方案:表决器的功能是将所投票者的结果综合起来,超过半数赞成则表示结果通过,反之则不通过。
而七人表决器由七个人来投票,当赞成的票数大于或者等于4人,则认为通过;当反对的票数大于或者等于4人时,则认为不通过。
所以这次设计中我将用7个数据开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮,;否则,如果表决的结果为反对,则LED不会被点亮。
同时用七段显示数码管来显示赞成的人数和反对的人数。
4.实验箱使用说明本次使用的实验箱为KHF-3型CPLD/FPGA实践开发系统所用芯片:ACEX1K系列的EP1K30QC208-3,引脚为208个,5980逻辑单元。
数据开关SW1至SW7分别代表7人。
当数据开关按下时输出为高电平‘1’,代表该投票者赞成,反之输出为低电平‘0’,代表该投票者反对。
数码管SEG1为赞成者人数,数码管SEG4为反对者人数LED灯SEG5对应的P190为结果通过指示灯,当灯点亮,则代表投票结果为通过,反之熄灭时代表投票结果不通过。
5.设计流程图开始6.VHDL程序设计LIBRARY IEEE; --库的说明USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY bjq IS --定义实体bjq PORT --端口说明( clk:IN STD_LOGIC; --时钟输入端口vote:IN STD_LOGIC_VECTOR(6 DOWNTO 0); --七人投票端LED_pass:OUT STD_LOGIC; --结果LED灯LED_approve,LED_object:OUT STD_LOGIC_VECTOR(6 DOWNTO 0));--赞成人数及反对人数显示数码管END ENTITY bjq;ARCHITECTURE bhv OF bjq IS --结构体说明SIGNAL q:STD_LOGIC; --内部信号说明SIGNAL q1,q2:STD_LOGIC_VECTOR(6 DOWNTO 0);BEGINPROCESS(vote)V ARIABLE A:INTEGER; --定义变量A用于统计赞成人数BEGINA:=0;IF clk'EVENT AND clk='1' THENIF vote(0)='1' THEN A:=A+1;END IF;IF vote(1)='1' THEN A:=A+1;END IF;IF vote(2)='1' THEN A:=A+1;END IF;IF vote(3)='1' THEN A:=A+1;END IF;IF vote(4)='1' THEN A:=A+1;END IF;IF vote(5)='1' THEN A:=A+1;END IF;IF vote(6)='1' THEN A:=A+1;END IF;CASE A IS --通过CASE语句选择不同赞成人数下LED数码管的显示内容WHEN 0 => q<='0';q1<="1111110";q2<="1110000";WHEN 1 => q<='0';q1<="0110000";q2<="1011111";WHEN 2 => q<='0';q1<="1101101";q2<="1011011";WHEN 3 => q<='0';q1<="1111001";q2<="0110011";WHEN 4 => q<='1';q1<="0110011";q2<="1111001";WHEN 5 => q<='1';q1<="1011011";q2<="1101101";WHEN 6 => q<='1';q1<="1011111";q2<="0110000";WHEN 7 => q<='1';q1<="1110000";q2<="1111110";WHEN OTHERS => q<='Z';q1<="ZZZZZZZ";q2<="ZZZZZZZ";END CASE;LED_pass<=q; --将结果送到LED灯及数码管LED_approve<=q1;LED_object<=q2;END IF;END PROCESS;END ARCHITECTURE bhv;7.仿真端口设置完毕后如下图所示:仿真的最终结果:8.仿真波形分析(1)当输入vote为1100101时,表示有4人投于赞成票,LED_approve显示为0110011,即数码管显示为‘4’,LED_object显示为1111001,即数码管显示为‘3’,LED_pass为高电平即点亮;(2)当输入vote为1100000时,表示有2人投于赞成票,LED_approve显示为1101101,即数码管显示为‘2’,LED_object显示为1011011,即数码管显示为‘5’,LED_pass为低电平即熄灭;(3)当输入vote为1100001时,表示有3人投于赞成票,LED_approve显示为1111001,即数码管显示为‘3’,LED_object显示为0110011,即数码管显示为‘4’,LED_pass为低电平即熄灭;(4)当输入vote为1100010时,表示有3人投于赞成票,LED_approve显示为1111001,即数码管显示为‘3’,LED_object显示为0110011,即数码管显示为‘4’,LED_pass为低电平即熄灭;如此说明,仿真结果符合实际要求需要。
9.管脚分配10.设计所遇到的问题这次设计中所遇到的最大困难在于仿真。
由于对仿真的功能不够熟悉,一开始对于输入波形的设置就乱了阵脚。
最初时钟信号的输入设置并没有很大问题,但是我并没有考虑到仿真时的end time 。
由于end time 设置比较小,使得仿真结果并不完善。
后来请教了同学后才发现了这问题。
由于输入为多通道输入,每一个vote 信号我都使用了一个random波形,使得输入十分的紊乱,输出结果更是一塌糊涂。
后来将vote变成二进制类型输入,并且随机设置了初始值,解决了这个问题。
11.设计的收获和体会通过这次EDA的课程设计使我对于Quartus II的了解更加深入。
不仅学到了如何通过VHDL硬件描述语音来实现可编程器件的运用,还学到了如何利用Quartus II的强大的仿真功能验证器件功能的正确性。
但更多的是能够自己动手,这样的实践会比光看书更为有用。
在实践中我们可以发现一般书上可能不会出现的问题,这样问题出现了我们便可以通过自己发掘的途径解决问题,加深我们对这问题的认识,所谓实践出真知。
12.参考文献(1)陈先朝,硬件描述语言与EDA技术实践指导书,2014年3月(2)曹昕燕等编著,EDA技术实验与课程设计,清华大学出版社,2006年5月(3)刘欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业出版社,2009年4月(4)刘昌华等编著,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双剑合璧,国防工业出版社,2009年(5)刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月。