EDA技术实践七人表决器报告完美版_09级
- 格式:doc
- 大小:63.50 KB
- 文档页数:11
竭诚为您提供优质文档/双击可除七人表决器实验报告篇一:哈工大电工学新技术实践实验报告-7人表决器总成绩:一、设计任务1、有七人参与表决,显示赞同者个数。
2当赞同者达到及超过4人时,绿灯显示表示通过。
二、设计条件本设计基于软件multisim10.0.1进行仿真,在电机楼实验室20XX5进行验证。
三、设计要求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,其余类推。
图674Ls151引脚排列表174Ls151功能表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与数字系统课程设计课题名称:用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人以上通过则亮绿灯,否则亮红灯。
课程设计课程名称硬件描述语言与EDA技术题目名称硬件描述语言与EDA技术实践学生学院材料与能源专业班级 09微电子学(1)班学号 68 学生姓名钟万友指导教师陈先朝2011年 12月 9日广东工业大学课程设计任务书题目名称硬件描述语言与EDA技术实践学生学院材料与能源学院专业班级09微电子学(1)班姓名钟万友学号68一、课程设计的内容1.系统功能分析;2.实现系统功能的方案设计;3.编写各功能模块VHDL语言程序;4.对各功能模块进行编译、综合、仿真和验证;5.顶层文件设计;6.整个系统进行编译、综合、仿真和验证;7.在CPLD/FPGA实验开发系统试验箱上进行硬件验证。
二、课程设计的要求与数据1.按所布置的题目要求,每一位学生独立完成全过程;2.分模块层次化设计;3.各功能模块的底层文件必须用VHDL语言设计,顶层文件可用VHDL语言设计,也可以用原理图设计。
三、课程设计应完成的工作1.所要求设计内容的全部工作;2.按设计指导书要求提交一份报告书;3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书四、课程设计进程安排五、应收集的资料及主要参考文献1.陈先朝,硬件描述语言与EDA技术实践指导书,2011年11月2.曹昕燕等编着,EDA技术实验与课程设计,清华大学出版社,2006年5月3.刘欲晓等编着,EDA技术与VHDL电路开发应用实践,电子工业出版社,2009年4月4.刘昌华等编着,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双剑合璧,国防工业出版社,2009年5.刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月发出任务书日期: 2011年12月 5日指导教师签名:计划完成日期: 2011年12月 9日基层教学单位责任人签章:主管院长签章:七人表决器设计一、设计目的1.熟悉Quartus II软件的使用。
2.熟悉七人表决器的工作原理3.熟悉EDA开发的基本流程。
课题七人表决器
一、课题目的
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.书写课题报告时要结构合理,层次分明,在分析叙述时注意语言的流畅。
课程设计课程名称硬件描述语言与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年。
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。
七人表决器实验报告七人表决器实验报告引言:在日常生活中,我们经常会遇到需要做决策的情况。
而在集体决策中,如何快速、公正地达成共识成为了一个重要的问题。
为了解决这一问题,我们进行了七人表决器的实验。
本实验旨在探索七人表决器在集体决策中的效果和影响因素。
实验设计:我们邀请了七位志愿者参与实验,每个人都具有不同的背景和观点。
在实验开始前,我们向每位参与者提供了相同的决策问题,并要求他们独立思考并给出自己的答案。
然后,我们将七人表决器放置在桌面上,并告知参与者如何使用。
在每次决策中,参与者需要将自己的决策结果输入到表决器中,然后等待其他人完成决策。
当所有参与者完成决策后,表决器会自动计算出最终的决策结果。
实验结果:通过观察实验过程和分析实验数据,我们得出了以下结论:1. 影响决策结果的因素:参与者的个人观点、决策顺序以及决策权重等因素都可能影响最终的决策结果。
在实验中,我们发现当个人观点相差较大时,决策结果往往会偏向于多数人的意见。
而当个人观点相似或相同时,决策结果则更容易达成一致。
2. 决策效率的提升:相比于传统的集体讨论和投票方式,七人表决器在决策效率上具有明显的优势。
参与者只需输入自己的决策结果,无需进行冗长的讨论和辩论过程,从而节省了时间和精力。
3. 决策公正性的保障:七人表决器在一定程度上保障了决策的公正性。
由于每个参与者的决策权重相等,没有任何一方能够主导决策结果。
这种平等的决策机制能够避免个别参与者的意见被忽视或压制,从而提高了决策的公正性。
讨论:尽管七人表决器在决策效率和公正性方面具有优势,但仍存在一些潜在的问题和限制。
首先,由于每个参与者只能输入一个决策结果,可能无法充分体现个体的多样性和复杂性。
其次,决策结果可能受到决策顺序的影响,先行决策者的意见可能会对后续决策者产生影响。
此外,表决器本身的设计和算法也可能存在一定的偏差,需要进一步优化和改进。
结论:通过本次实验,我们初步探索了七人表决器在集体决策中的应用。
七人表决器一:实验目的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与数字系统设计》。
课程设计
课程名称硬件描述语言与EDA技术
题目名称硬件描述语言与EDA技术实践学生学院材料与能源
专业班级 09微电子学(1)班
学号 68 学生姓名钟万友
指导教师陈先朝
2011年 12月 9日
广东工业大学课程设计任务书
题目名称硬件描述语言与EDA技术实践
学生学院材料与能源学院
专业班级09微电子学(1)班
姓名钟万友
学号68
一、课程设计的内容
1.系统功能分析;
2.实现系统功能的方案设计;
3.编写各功能模块VHDL语言程序;
4.对各功能模块进行编译、综合、仿真和验证;
5.顶层文件设计;
6.整个系统进行编译、综合、仿真和验证;
7.在CPLD/FPGA实验开发系统试验箱上进行硬件验证。
二、课程设计的要求与数据
1.按所布置的题目要求,每一位学生独立完成全过程;
2.分模块层次化设计;
3.各功能模块的底层文件必须用VHDL语言设计,顶层文件可用VHDL语言
设计,也可以用原理图设计。
三、课程设计应完成的工作
1.所要求设计内容的全部工作;
2.按设计指导书要求提交一份报告书;
3.提交电子版的设计全部内容:工程目录文件夹中的全部内容,报告书
四、课程设计进程安排
五、应收集的资料及主要参考文献
1.陈先朝,硬件描述语言与EDA技术实践指导书,2011年11月
2.曹昕燕等编著,EDA技术实验与课程设计,清华大学出版社,2006年5
月
3.刘欲晓等编著,EDA技术与VHDL电路开发应用实践,电子工业出版社,
2009年4月
4.刘昌华等编著,数字逻辑EDA设计与实践:MAX+plusⅡ与QuartusⅡ双
剑合璧,国防工业出版社,2009年
5.刘江海主编,EDA技术课程设计,华中科技大学出版社,2009年1月
发出任务书日期: 2011年12月 5日指导教师签名:
计划完成日期: 2011年12月 9日基层教学单位责任人签章:
主管院长签章:
七人表决器设计
一、设计目的
1.熟悉Quartus II软件的使用。
2.熟悉七人表决器的工作原理
3.熟悉EDA开发的基本流程。
二、设计要求
表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。
实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮,;否则,如果表决的结果为反对,则LED不会被点亮。
同时用七段显示数码管来显示赞成的人数和反对的人数。
三、电路及连线设计
管脚分配:
实验符号对应附录符号管脚
K1K1PIN_28
K2K2PIN_29
K3K3PIN_30
K4K4PIN_31
K5K5PIN_38
K6K6PIN_39
K7K7PIN_40
A A PIN_141
B B PIN_142
C C PIN_143
D D PIN_144
E E PIN_147
F F PIN_148
G G PIN_149
m_Result SEG5PIN_190
A A PIN_157
B B PIN_158
C C PIN_159
D D PIN_160
E E PIN_170
F F PIN_172
G G PIN_173
四、使用说明
本设计就是利用芯片ACEX1K系列的EP1K30QC208-3,拨挡开关模块和LED模块来实现一个简单的七人表决器的功能。
拨挡开关模块中的sw1~sw7表示七个人,当拨挡开关输入为‘1’时,表示对应的人投同意票,否则当拨挡开关输入为‘0’时,表示对应的人投反对票;LED模块中SEG5表示七人表决的结果,当SEG5
点亮时,表示一致同意,否则当SEG5熄灭时,表示一致反对。
然后数码管SEG1和SEG2分别显示赞成,反对的人数。
五、流程图设计
六、程序设计如下:
LIBRARY IEEE;
USE UG IS
PORT(clk:IN STD_LOGIC;
am:IN STD_LOGIC_VECTOR(6 DOWNTO 0);
y:OUT STD_LOGIC;
y1,y2:OUT STD_LOGIC_VECTOR(6 DOWNTO 0)); END ENTITY UG;
ARCHITECTURE one OF UG IS
SIGNAL q:STD_LOGIC;
SIGNAL q1,q2:STD_LOGIC_VECTOR(6 DOWNTO 0); BEGIN
PROCESS(am)
VARIABLE shu:INTEGER;
BEGIN
shu:=0;
IF clk'EVENT AND clk='1' THEN
IF 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 IS
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;
y<=q;
y1<=q1;
y2<=q2;
END IF;
END PROCESS;
END ARCHITECTURE one;
七、波形时序仿真
八、波形分析
当七个人am(6)、am(5)、am(4)、am(3)、am(2)、am(1)、am(0)投票结果为“1101111“,则数码管SEG1的结果是“1011111”即显示数字“6”,数码管SEG2结果是“0110000”,显示数字“1”,此时LED灯亮,投票通过;当七个人投票结果是“0111000”,SEG1显示“3”,SEG2显示“4”,LED灯不亮,投票不通过。
以此类推。
九、管脚分配
十、设计问题与解决方法
在本程序中因为是多路输出,输出存在时序差,产生竞争冒险现象,导致在时序仿真的时候输出波形中产生“毛刺”,为了去除这些“毛刺”,加入一个时钟信号CLK,其周期设置为20ns.十一、设计总结:
通过这段时间的EDA课程设计,我更加熟练的掌握了EDA开发的基本流程,熟练的使用Quartus II软件进行编程,在大家的努力之下,我们完成了七人表决器的相关设计,在此我要感谢我的组员和在EDA设计中给于我们很多帮助的老师们。
同时,我发现了自己的编程思路还不是很清晰,需要在以后的学习中加强锻炼。
十二、参考文献:
[1] 延明,张亦化.数字电路EDA技术入门.北京:邮电大学出版社,2006
[2] 徐惠民,安德宁.数字逻辑设计与VHDL描述.北京:机械工程出版社,2002
[3]潘松,王国栋.VHDL实用教程.成都:电子科技大学出版社,2001。