七人表决器
- 格式:doc
- 大小:24.00 KB
- 文档页数:1
课程设计课程名称硬件描述语言与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年。
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。
七人表决器设计一.设计要求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灯是否正常亮与灭。
实验报告课程名称:可编程硬件控制技术任课教师:实验一:七人表决器年级、专业:学号:姓名:日期: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、掌握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为标准逻辑输出。
七人表决器实验报告七人表决器实验报告引言:在日常生活中,我们经常会遇到需要做决策的情况。
而在集体决策中,如何快速、公正地达成共识成为了一个重要的问题。
为了解决这一问题,我们进行了七人表决器的实验。
本实验旨在探索七人表决器在集体决策中的效果和影响因素。
实验设计:我们邀请了七位志愿者参与实验,每个人都具有不同的背景和观点。
在实验开始前,我们向每位参与者提供了相同的决策问题,并要求他们独立思考并给出自己的答案。
然后,我们将七人表决器放置在桌面上,并告知参与者如何使用。
在每次决策中,参与者需要将自己的决策结果输入到表决器中,然后等待其他人完成决策。
当所有参与者完成决策后,表决器会自动计算出最终的决策结果。
实验结果:通过观察实验过程和分析实验数据,我们得出了以下结论:1. 影响决策结果的因素:参与者的个人观点、决策顺序以及决策权重等因素都可能影响最终的决策结果。
在实验中,我们发现当个人观点相差较大时,决策结果往往会偏向于多数人的意见。
而当个人观点相似或相同时,决策结果则更容易达成一致。
2. 决策效率的提升:相比于传统的集体讨论和投票方式,七人表决器在决策效率上具有明显的优势。
参与者只需输入自己的决策结果,无需进行冗长的讨论和辩论过程,从而节省了时间和精力。
3. 决策公正性的保障:七人表决器在一定程度上保障了决策的公正性。
由于每个参与者的决策权重相等,没有任何一方能够主导决策结果。
这种平等的决策机制能够避免个别参与者的意见被忽视或压制,从而提高了决策的公正性。
讨论:尽管七人表决器在决策效率和公正性方面具有优势,但仍存在一些潜在的问题和限制。
首先,由于每个参与者只能输入一个决策结果,可能无法充分体现个体的多样性和复杂性。
其次,决策结果可能受到决策顺序的影响,先行决策者的意见可能会对后续决策者产生影响。
此外,表决器本身的设计和算法也可能存在一定的偏差,需要进一步优化和改进。
结论:通过本次实验,我们初步探索了七人表决器在集体决策中的应用。
课程设计课程名称硬件描述语言与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人表决器电路是一简单的输入信号检测与处理、产生运算控制信号的逻辑电路。
本文详细介绍了依据功能要求进行运算控制电路方案设计的过程,并在此基础上将整体电路分为数据接收模块、数据处理模块、结果显示模块等主要功能模块。
电路设计完成后通过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)引言现代集成电路技术急剧发展,输百万级晶体管电路使设计面临着巨大的挑战。
EDA 课程设计报告书课题名称 七人表决器设计姓 名学 号 院、系、部 电气系专 业 电气工程及其自动化指导教师2010年 7 月3日※※※※※※※※※ ※※ ※※ ※※ ※※※※※※※※※2007级EDA课程设计七人表决器设计一、设计目的1.熟悉Quartus II软件的使用。
2.熟悉七人表决器的工作原理3.熟悉EDA开发的基本流程。
二、设计要求表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。
实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
同时用七段显示数码管来显示同意的人数。
三、电路及连线设计管脚分配:实验符号对应附录符号管脚K1 K1 PIN_74K2 K2 PIN_73K3 K3 PIN_38K4 K4 PIN_39K5 K5 PIN_44K6 K6 PIN_45K7 K7 PIN_46A A 62B B 61C C 60D D 59E E 58F F 57G G 56m_Result D1_1 PIN_215四、使用说明本设计就是利用EDA/SOPC-II+实验箱中的拨挡开关模块和LED模块来实现一个简单的七人表决器的功能。
拨挡开关模块中的K1~K7表示七个人,当拨挡开关输入为‘1’时,表示对应的人投同意票,否则当拨挡开关输入为‘0’时,表示对应的人投反对票;LED模块中D1_1表示七人表决的结果,当D1_1点亮时,表示一致同意,否则当D1_1熄灭时,表示一致反对。
五、流程图设计六、程序设计如下:library ieee;use ieee.std_logic_1164.all;USE IEEE.STD_LOGIC_UNSIGNED.ALL;entity biao isport ( reset : in std_logic ;xin: in std_logic_vector ( 6 downto 0 );sel: out std_logic;xout : out std_logic_vector ( 6 downto 0 );xout1 : 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;case j iswhen 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 => null;end case;if j>3 thenxout<="1110011";sel<='1';else xout<="1111001";sel<='0';end if;end process;end architecture bev;七、设计总结:通过这段时间的EDA课程设计,我更加熟练的掌握了EDA开发的基本流程,熟练的使用Quartus II软件进行编程,在大家的努力之下,我们完成了七人表决器的相关设计,在此我要感谢我的组员和在EDA设计中给于我们很多帮助的老师们。
实验报告及心得体会实验名称:七人表决器实验目的:通过Max+plus2软件实现七人表决功能,熟练掌握用Max+plus2实现七人表决器的操作步骤实验步骤:1.打开Max+plus2软件2.打开file-open,在open对话框的Text Editor files选择后缀为*.vhd文件格式3.选择files为VOTE7.vhd的文件,单击ok,出现源程序文本4.单击file-project-set project to…,单击Assign-Device选择驱动,在弹出的Device窗口下选择Device为EPF1OK1OLC84-4,单击ok5.单击Assign-pin/location/chip…进行引脚锁定。
例如,输入从men0到men6,对应的input pin为28-30、35-38,在Node name中输入pass,对应输出pin为V ote7,output pin为23,在Node name中输入stop chip name为vote7,output pin为65,单击ok6.单击菜单下的compiler选项,在出现的窗口下单击start完成综合,单击确定,关闭窗口7.单击菜单下的programmer选项,若未出现Hardware setup窗口,则打开options菜单下的Hardware setup选项,在弹出的窗口下,选择Hardware type为Byteblaster(MV)选项,单击ok,然后再单击configure,完成进程8.使用仪器通过仪器观察,在K1-K8的八个输出发光二极管中(程序中选择七个)开始时都不亮。
在L1-L11,这十一个发光二极管中有L6开始时亮,L11不亮,依次按下K1-K8中的四个发光二极管的按钮使其发光,则L6熄灭,L11发光,说明实现了七人表决器实验结果:输出发光二极管K1-K8中有4个灯亮时,L6熄灭,L11发光,说明7人中只要有四人同意时,表决成功心得体会通过老师的实验演示,我基本明白了Max+plus2软件的使用方法。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,它体积小,质量轻,价格便宜,为学习、应用和开发提供了便利条件。
近几年来,开发推出单片机的公司很多,各种高性能单片机芯片市场也异常活跃,新技术不断采用,更加是单片机的种类、性能及应用领域不断扩大和提高,单片机已经在各个领域受到广泛应用。
本题就是基于单片机的一个七人表决器设计。
本题以AT89C52单片机为主控芯片,与LED显示灯、开关、七段数码管等共同构成七人表决器。
使用单片机可以使整个系统结构灵活,构成简单,且功能可以扩展或者裁减。
而且现在单片机已经很便宜,整个系统构成成本也不高。
在现实会议中使用电子表决器表决,可以使表决结果更加精确,表决效率大大提高,而且更能体现评为们的意志。
表决器设有赞成、反对开关,开始表决后,只要主持人按结果现实按键,结果就能实时显示出来。
在单片机的教学中,这也是一个很好的案例。
七人表决器包括C51单片机运行程序、表决器电路设计、按键设定、LED显示等模块。
关键词:表决器,单片机,KEIL,proteus仿真。
Single-chip microcomputer and says monolithic micro controller, it is not a complete a logical function chips, but put a computer system integration to a chip, it is small, light quality, the price is cheap, for learning, application and development provides the convenience. In recent years, the development of single chip company launched many, all kinds of high performance microprocessor chip market is very active, new technology is constantly, even more is the single chip microcomputer type, performance and application field to expand and improve, microcontroller has been widely applied in all fields.Ontology based on single chip computer is one of the seven Voter design. Subject to the microcontroller of AT89C52 main control chip, and LED display lights, switch, seven period of digital tube to form a Voter seven people. Using single chip can make the whole system flexible structure, a simple, and function can expand or cuts. And now microcontroller is cheap, the whole system construction cost is not high also.In reality Voter use electronic voting in the meeting, can make the voting results more accurate, voting efficiency greatly improved, and more can reflect the will of the as. Voter has agreed, against switch, began after a vote, as long as the host the buttons in reality, the results can real-time display. In the teaching of the single chip microcomputer, this is also a very good case. Seven people Voter including C51 operation procedures, Voter circuit design, key setting, LED display, and other modules.Keywords:Voter System,singlechip,simulation目录1 前言 (1)2 设计目的与任务 (2)2.1设计目的 (2)2.2设计任务要求 (2)3 方案 (3)3.1方案 (3)3.1.1 方案一 (3)3.1.2 方案二 (4)3.2方案论证 (5)4 设计具体 (6)4.1硬件设计 (6)4.2软件设计 (7)5 说明 (9)6 总结 (11)致谢 (12)参考文献 (13)1 前言此处加入本课题的意义等内容……在计算机出现以前,有不少能工巧匠做出了不少精巧的机械。
一、实验目的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的扫描的频率很大,所以两个数码管看上去是同时显示。
一.方案设计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欧的电阻,然后将单片机的最小系统加入此次的电路中。
广东工业大学课程设计任务书一、课程设计的内容1. 系统功能分析;2. 实现系统功能的方案设计;3. 编写各功能模块VHDL语言程序;4. 对各功能模块进行编译、综合、仿真和验证;5. 顶层文件设计;6. 整个系统进行编译、综合、仿真和验证;二、课程设计的要求与数据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’时,则表示此人反对。
数字电子技术课程设计课题名称:用VHDL文本输入法设计一个7人多数表决电路班级:08电本班学号:200892130149姓名:张家瑞指导老师:胡亚琦一.课题题目:多数表决电路的设计之二要求:用VHDL文本输入法设计一个7人多数表决电路难度:10分二.摘要所谓表决器就是对于一个行为,由多个人投票,如果同意的票数过半,就认为此行为可行;否则如果否决的票数过半,则认为此行为无效。
七人表决器顾名思义就是由七个人来投票,当同意的票数大于或者等于4人时,则认为同意;反之,当否决的票数大于或者等于4人时,则认为不同意。
实验中用7个拨挡开关来表示七个人,当对应的拨挡开关输入为‘1’时,表示此人同意;否则若拨挡开关输入为‘0’时,则表示此人反对。
表决的结果用一个LED表示,若表决的结果为同意,则LED被点亮;否则,如果表决的结果为反对,则LED不会被点亮。
流程图:根据电路状态转换表→设计数值输出→运用门电路设计电路图→仿真运行→实现七人多数表决器的设计三.关键词七人,多数,表决器,全加器,半加器。
四.设计要求(1)根据设计要求,绘制出电路状态转换图,实现七人四票制表决。
(2)根据电路状态转换图,用门电路设计出七人表决器。
(3)运用半加器,全加器,实现表决器的设计。
(4)逻辑设计要求:用七个开关作为表决器的七个输入变量,逻辑“1”时表示“赞同”,逻辑“0”时表示“不赞同”,用发光二极管作为输出指令,输出逻辑“1”表示“通过”;输出逻辑“0”时表示“不通过”。
当表决器的七个输入变量中的4个以上(包含4个)为“1”时,则表决器输出为“1”;否则为“0”。
五.设计步骤(1)电路状态转换图:根据电路状态转换图设计电路,用一个半加器实现设计一个全加器,运用4个全加器实现七人表决器的设计。
(2)半加器电路设计:(3)全加器电路设计:(4)七人表决器电路设计:六.设计源程序与电路图绘制(1)或门的设计源程序:--or2_1.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY or2_1 ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END ENTITY or2_1; ARCHITECTURE art1 OF or2_1 IS BEGINC<=A Or B;END ARCHITECTURE art1;(2)半加器的设计源程序:--h_adder.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY h_adder ISPORT(A,B:IN STD_LOGIC;SO,CO:OUT STD_LOGIC); END ENTITY h_adder; ARCHITECTURE art2 OF h_adder IS BEGINSO<=NOT(A XOR(NOT B));CO<=A AND B;END ARCHITECTURE art2;电路图:(3)全加器的设计源代码:--f_adder.vhdLIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL; ENTITY f_adder ISPORT(AIN,BIN,CIN:IN STD_LOGIC;SUM,COUT:OUT STD_LOGIC); END ENTITY f_adder;ARCHITECTURE art3 OF f_adder IS COMPONENT h_adder ISPORT(A,B:IN STD_LOGIC;SO,CO:OUT STD_LOGIC);END COMPONENT h_adder; COMPONENT or2_1 ISPORT(A,B:IN STD_LOGIC;C:OUT STD_LOGIC);END COMPONENT or2_1;SIGNAL S1,S2,S3:STD_LOGIC;BEGINU1:h_adder PORT MAP(A=>AIN,B=>BIN,CO=>S1,SO=>S2);U2:h_adder PORT MAP(A=>S2,B=>CIN,CO=>S3,SO=>SUM); U3:or2_1 PORT MAP(A=>S1,B=>S3,C=>COUT);END ARCHITECTURE art3;电路图:(4)七人表决器设计电路:七.电路仿真仿真波形图:引脚锁定:八.实验结果通过muxplus2对七人表决器进行设计,完成实验要求,得到实验结果,实现了七人表决的效果,4人或4人以上通过则亮绿灯,否则亮红灯。