VHDL-设计方案七人表决器
- 格式:docx
- 大小:16.66 KB
- 文档页数:7
河北科技大学实验报告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功能进行功能仿真。
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。
《FPGA系统设计与开发》课程设计报告题目:七人表决器专业:电子信息工程专业学号:姓名:指导老师:一、实验目的1、熟悉V HDL 的编程。
2、熟悉七人表决器的工作原理。
3、进一步了解实验系统的硬件结构。
二、实验原理所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。
实验中用7个拨动开关来表示七个人,分别用7个LED等来反应每个人的决定,当对应的拨动开关输入为‘1’时,表示此人同意,LED灯点亮;否则若拨动开关输入为‘0’,则表示此人反对,LED灯不亮。
表决的结果也用一个LED表示,若表决的结果为同意,则L ED 被点亮;否则,如果表决的结果为反对,则L ED 不会被点亮。
同时,数码管上显示通过的票数。
三、实验内容本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来实现一个简单的七人表决器的功能。
拨动开关模块中的K1~K7表示七个人,当拨动开关输入为‘1’时,表示对应的人投同意票,对应的LED灯亮;否则当拨动开关输入为‘0’时,表示对应的人投反对票,对应的LED灯不亮;LED 模块中 LED1 表示七人表决的结果,当 LED1 点亮时,表示此行为通过表决;否则当 LED1 熄灭时,表示此行为未通过表决。
同时通过的票数在数码管上显示出来。
四、实验步骤1、打开Q UARTUSII 软件,新建一个工程。
2、建完工程之后,再新建一个V HDL File,打开V HDL 编辑器对话框。
3、按照实验原理和自己的想法,在V HDL 编辑窗口编写V HDL 程序。
4、编写完V HDL 程序后,保存起来,并建立工程。
5、 对自己编写的 V HDL 程序进行编译并仿真,对程序的错误进行修改。
6、 编译仿真无误后,依照拨动开关、LED 、数码管与 FPGA 的管脚连接表或参照附录进行管脚分配。
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)要求:设计一个七人表决器,当赞成人数大于等于四时显示表决通过,同时分别将投票中赞成的人数和反对的人数在数码管上显示出来。
七人表决器实验报告篇一:哈工大电工学新技术实践实验报告-7人表决器总成绩:一、设计任务1、有七人参与表决,显示赞同者个数。
2当赞同者达到及超过4人时,绿灯显示表示通过。
二、设计条件本设计基于软件,在电机楼实验室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端输入单脉冲,记录输出端状态。
摘要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设计一、实验目的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”。
七人表决器徐浩杰通信09-1 2220091708一、实验目的:1.掌握用VHDL硬件描述语言做电路综合设计方法。
2.熟悉掌握程序的编译、仿真、生成模块及芯片引脚号码锁定方法并下载到目标芯片。
二、实验仪器:ZY11EDA13BE型实验箱三、实验内容及要求:1.设计一个数字时钟,要求能为24h制,要求能显示时、分、秒,并可手动调整时和分。
四:实验程序:七人表决器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity svm isport (input:in std_logic_vector(6 downto 0);ledz :out std_logic_vector(3 downto 0);ledf :out std_logic_vector(3 downto 0);co :out std_logic);end svm;architecture a of svm isbeginprocess(input)variable cont:integer range 0 to 7;begin cont:=0;for i in 6 downto 0 loopif input(i)='1'thencont:=cont+1;end if;end loop;if cont>3 thenco<='1';elseco<='0';end if;case cont iswhen 0=>ledz<="0000";when 1=>ledz<="0001";when 2=>ledz<="0010";when 3=>ledz<="0011";when 4=>ledz<="0100";when 5=>ledz<="0101";when 6=>ledz<="0110";when 7=>ledz<="0111";when others=>ledz<="1111";end case;end process;end a;显示管译码器==================================================== library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity bcdcoder isport (bcd :in std_logic_vector(3 downto 0);segout :out std_logic_vector(0 to 6));end bcdcoder;architecture a of bcdcoder isbeginprocess (bcd)begincase bcd iswhen"0000"=>segout<="1111110";when"0001"=>segout<="0110000";when"0010"=>segout<="1101101";when"0011"=>segout<="1111001";when"0100"=>segout<="0110011";when"0101"=>segout<="1011011";when"0110"=>segout<="1011111";when"0111"=>segout<="1110000";when"1000"=>segout<="1111111";when"1001"=>segout<="1111011";when others=>segout<="0000000";end case;end process;end a;五、实验总结通过本次实验,我们更加了解了VHDL语言,掌握了VHDL硬件描述语言做电路综合设计方法。
河北科技大学实验报告2012级电信专业122班学号38 15年5月20日姓名郑振兴同组人指导教师于国庆实验名称实验一七人表决器成绩实验类型设计型批阅教师一、实验目的(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 isbeginprocess(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功能进行功能仿真。
一、实验目的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设计七人表决器二、分析讨论:七人表决器这一功能用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的扫描的频率很大,所以两个数码管看上去是同时显示。
--------------------------------------- Title: 七人表决器---- Author:Pan hongtao ---- Data: 2006-10-1 ------------------------------------------library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;--------------------------------------------------------------------entity exp12 isport(k1,K2,K3,K4,K5,K6,K7 : in std_logic; --输入:7个人ledag : out std_logic_vector(6 downto 0); --数码管显示m_Result : out std_logic --表决结果);end exp12;--------------------------------------------------------------------architecture behave of exp12 issignal K_Num : std_logic_vector(2 downto 0);signal K1_Num,K2_Num: std_logic_vector(2 downto 0);signal K3_Num,K4_Num: std_logic_vector(2 downto 0);signal K5_Num,K6_Num: std_logic_vector(2 downto 0);signal K7_Num : std_logic_vector(2 downto 0);beginprocess(K1,K2,K3,K4,K5,K6,K7) --计算表决同意人数beginK1_Num<='0'&'0'&K1;K2_Num<='0'&'0'&K2;K3_Num<='0'&'0'&K3;K4_Num<='0'&'0'&K4;K5_Num<='0'&'0'&K5;K6_Num<='0'&'0'&K6;K7_Num<='0'&'0'&K7;end process;process(K1_Num,K2_Num,K3_Num,K4_Num,K5_Num,K6_Num,K7_Num)beginK_Num<=K1_Num+K2_Num+K3_Num+K4_Num+K5_Num+K6_Num+K7_Num;end process;process(K_Num) --根据人数输出结果beginif(K_Num>3) thenm_Result<='1';elsem_Result<='0';end if;end process;process(K_Num) --根据人数数码管显示表决通过人数begincase K_Num iswhen "000"=>ledag<="0111111";when "001"=>ledag<="0000110";when "010"=>ledag<="1011011";when "011"=>ledag<="1001111";when "100"=>ledag<="1100110";when "101"=>ledag<="1101101";when "110"=>ledag<="1111101";when "111"=>ledag<="0000111";when others=>ledag<="0000000";end case;end process;end behave;。
北方民族大学课设报告院系电气信息工程学院姓名张海强学号 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灯亮。
上述为实验的基本功能,为了更加容易分析,可以在增加投票计数等程序,同时为了计数器功能上的实用性可以加入数码管显示电路,显示票数等信息。