七人表决器课程设计报告
七人表决器实验

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. 多人表决器应用案例分析- 分析现实生活中的表决器应用案例- 了解表决器在不同场景下的作用- 探讨表决器在科技发展中的重要性教学内容按照以上大纲进行安排和进度制定,注重系统性和科学性。
在教学过程中,将引用教材相关章节,如“逻辑门电路”、“组合逻辑电路”等,确保教学内容与课本紧密关联。
- 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月。