VHDL-设计方案七人表决器
七人表决器

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

河北科技大学实验报告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。
VHDL-设计七人表决器

《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课程设计

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人表决器电路前端设计--大学毕业设计论文

摘要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)引言现代集成电路技术急剧发展,输百万级晶体管电路使设计面临着巨大的挑战。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
END IFo
IF K(4)='1' THEN
shu:=shu+1 o
END IFo
IF K(5)='1' THEN
shu:=shu+1 o
END IF o
IF K(6)='1' THEN
shu:=shu+1。
END IF。
CASE shu iS指示灯显示投票结果,数码管显示同意人数
WHEN others =>Result<='0'。LEDAG<="0000000。"
LED<=K。
END CAS。
1、打开QUARTUSII软件,新建一个工程。
2、建完工程之后,再新建一个VHDL File,打开VHDL编辑器对话框。
3、按照实验原理和自己的想法,在VHDL编辑窗口编写VHDL程序。
4、编写完VHDL程序后,保存起来,并建立工程。
5、对自己编写的VHDL程序进行编译并仿真,对程序的错误进行修改。
拨动开关输入为‘1'时,表示对应的人投同意票,对应的LED灯亮;否则当拨 动开关输入为‘0'时,表示对应的人投反对票,对应的LED灯不亮;LED模块 中LED1表示七人表决的结果,当LED1点亮时,表示此行为通过表决;否则当LED1熄灭时,表示此行为未通过表决。同时通过的票数在数码管上显示出来。
四、实验步骤
LEDAG3
数码管模块D段
E15
LEDAG4
数码管模块E段
F16
LEDAG5
数码管模块F段
F17
LEDAG6
数码管模块G段
E18
五、七人表决器VHDL程序
LIBRARY IEEE
USE IEEE.STD_LOGIC_1164.ALL
USE IEEE.STD_LOGIC_UNSIGNED.ALL
ENTITY BJQ IS
‘0',则表示此人反对,LED灯不亮。表决的结果也用一个LED表示,若表决的 结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点 亮。同时,数码管上显示通过的票数。
三、实验内容
本实验就是利用实验系统中的拨动开关模块和LED模块以及数码管模块来 实现一个简单的七人表决器的功能。拨动开关模块中的K1〜K7表示七个人,当
END ENTITY BJQ
ARCHITECTURE one OF BJQ IS
BEGIN
PROCESS(K)
VARIABLE shu:INTEGER ----定义变量shu来统计同意的个数
BEGIN
IF (CLR='1') THEN ----不复位,即正常工作
LED<=K ----将指示灯和投票人对应,即记名投票
《FPGA系统设计与开发》
课
程
设
计
报
题 目:七人表决器
专业:电子信息工程专业
学 号:1340820410
姓 名:杨彪指导老师:聂小燕
一、实验目的
1、熟悉VHD的编程。
2、熟悉七人表决器的工作原理。
3、进一步了解实验系统的硬件结构。
二、实验原理 所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认
为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4时,
则认为同意;反之,当否决的票数大于或者等于4时,则认为不同意。实验中用7个拨动开关来表示七个人,分别用7个LED等来反应每个人的决定,当对应的拨 动开关输入为‘1'时,表示此人同意,LED灯点亮;否则若拨动开关输入为
shu:=0 o
IF CLK'EVENT AND CLK='1' THEN
IF K(0)='1' THEN
shu:=shu+1 o
END IFo
IF K(1)='1' THEN
shu:=shu+1 o
END IFo
IF K(2)='1' THEN
shu:=shu+1 o
END IFo
IF K(3)='1' THEN
LED1
LED模块LED3
G14
LED2
LED模块LED4
H12
LED3
LED模块D6
J10
LED5
LED模块LED7
L9
LED6
LED模块LED8
H10
LEDAG0
数码管模块A段
F13
表决通过的票数
LEDAG1
数码管模块B段
F14
LEDAG2
数码管模块C段
F15
CLK
时钟
C13
CLR
复位
P25
低电平有效
K1
拨动开关K1
H8
七位投票人的表决器
K2
拨动开关K2
J8
K3
拨动开关K3
J9
K4
拨动开关K4
A4
K5
拨动开关K5
B4
K6
拨动开关K6
A5
K7
拨动开关K7
B5
Result
LED模块LED1
G13
表决结果亮为通过
LED0
LED模块LED2
G15
每个人投票的结果
WHEN0=>Result<='0'。
LEDAG<="0111111。"
LED<=K。
WHEN1=>Result<='0'。LEDAG<="0000110。" LED<=K。
WHEN2=>Result<='0'。LEDAG<="1011011。" LED<=K。
WHEN3=>Result<='0'。LEDAG<="1001111。" LED<=K。
6编译仿真无误后,依照拨动开关、LED、数码管与FPGA的管脚连接表或 参照附录进行管脚分配。表1是示例程序的管脚分配表。分配完成后,再进行全 编译一次,以使管脚分配生效。
7、下载程序到实验箱验证实验的正确性,观察现象,对错误的地方进行改 正。
表1程序的管脚分配表
端口名
使用模块信号
对应FPGA管脚
说明
WHEN4=>Result<='1'。LEDAG<="1100110。" LED<=K。
WHEN5=>Result<='1'。LEDAG<="1101101。" LED<=K。
WHEN6=>Result<='1'。LEDAG<="1111101。" LED<=K。
WHEN7=>Result<='1'。LEDAG<="0100111。" LED<=K。
PORT(CLK,CLR:IN STD_LOGIC ----CLK为系统时钟,CLR为复位按
K:IN STD_LOGIC_VECTOR(6 DOWNTO 0)---拨动开关输入表决Result:OUT STD_LOGIC ----显示表决是否通过
LEDAG,LED:OUT STD_LOGIC_VECTOR(6 DOWNTO-0)LEDAG为七段数码 管,用来显示同意的人数;LED为七个指示灯,用来指示投票人的个人投票结果。