五人多数表决器.doc_第1页
五人多数表决器.doc_第2页
五人多数表决器.doc_第3页
五人多数表决器.doc_第4页
五人多数表决器.doc_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

湖南科技大学VHDL语言课程设计报告题 目: VHDL语言课程设计 专 业: 通信工程 班 级: 002 班 姓 名: 谭芳芳 学 号: 0954040220 题 目VHDL语言课程设计设 计 时 间2011.12.19-2011.12.30设 计 目 的:选题一:设计一个五人多数表决器系统地学习了EDA工程概论,VHDL描述语言和设计应用方面的基础知识选题二:数字式竞赛抢答器能够较熟练地使用MAX_PLUS软件进行设计开发,用原理图输入及VHDL语言等设计输入并编译仿真,同时我们对以往学过的理论知识有了更加透彻的理解。设 计 要 求:选题一:五人多数表决逻辑:多数通过;在主持人控制下,10秒内表决有效;用数码管显示表决10秒倒计时;表决结束后用发光二极管及数码管显示表决结果,数码管显示结果形式:通过,不通过;设主持人控制键,复位键:控制键:启动表决;选题二:设计一个可容纳四组参赛者同时抢答的数字抢答器,可判断第一抢答者并报警指示抢答成功,其他组抢答均无效。若提前抢答则对相应的抢答组发出警报。同时还具有计分功能,若抢答成功并回答正确增加1分,答错不扣分。总体方案实现:选题一方案:五人多数表决,只要在规定时间内,赞成人数大于或等于三,则表决通过。因此,只需将每位表决人的结果相加,判断结果值。设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的五个输入变量中有3个以上(含3个)为“1”时。则表决器输出为“1”;否则为“0”。选题二方案:将整个系统分为三个主要模块:抢鉴别模块QDJB;抢答计分模块JFQ;译码器YMQ,对于需显示的信息,需增加或外接译码器,进行显示译码。指导教师评语: VHDL课程设计报告一、 课程设计的目的选题一 五人多数表决器五人多数表决逻辑:多数通过;在主持人控制下,10秒内表决有效;用数码管显示表决10秒倒计时;表决结束后用发光二极管及数码管显示表决结果,数码管显示结果形式:通过,不通过;设主持人控制键,复位键:控制键:启动表决选题二 数字式竞赛抢答器设计1.可容纳四组参赛者进行抢答,每组设置一个抢答按钮供抢答者使用。2.电路具有第一抢答信号的鉴别和锁存功能。在主持人交系统复位并发出抢答指令后,若有一组先按下抢答开关,可判断第一抢答者并报警指示抢答成功,其他组抢答均无效。若提前抢答则对相应的抢答组发出警报。3.具有计分功能,抢答后由主持人计分,答对一次加1分,答错不加分。二、 设计方案的论证。选题一:提出至少两种设计方案,做出最优选择方案一:五人多数表决,只要在规定时间内,赞成人数大于或等于三,则表决通过。因此,只需将每位表决人的结果相加,判断结果值。设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。输出逻辑“1”时,表示表决“通过”;输出逻辑“0”时,表示表决“不通过”。当表决器的五个输入变量中有3个以上(含3个)为“1”时。则表决器输出为“1”;否则为“0”。方案二:主持人说开始后,按下倒计时键,设五个开关作为表决器的五个输入变量,输入变量为逻辑“1”时,表示表决者“赞成”;输入变量为“0”时,表示表决者“不赞成”。在规定时间内,如果赞成人数大于等于三,则表决通过,否则不通过。最优方案:方案一。选题二 数字式竞赛抢答器设计我们可将整个系统分为三个主要模块:抢鉴别模块;抢答计分模块;译码器.对于需显示的信息,需增加或外接译码器,进行显示译码。考虑到FPGA、CPLD的可用接口及一般EDA实验开发系统的输出显示资源的限制,这里我们将组别显示和计时显示的译码器内设,而将各组的计分显示的译码器外接。三、 设计仿真及结果分析方案一五人多数表决器:仿真波形复位时的模拟结果规定时间外的结果表决通过的波形 选题二 数字式竞赛抢答器设计1. 抢答鉴别2. 计分器3. 译码器4. 总体实现.系统的输入信号有:各组的抢答按钮A、B、C、D,系统清零信号CLR,系统时钟信号CLK,计分复位端RST,加分按钮端ADD,计时预置控制端LDN,计时使能端EN,计时预置数据调整按钮TA、TB;.系统的输出信号有:四个组抢答成功与否的指示灯控制信号输出口LED_A、LES_B、LED_C、LED_D,四个组抢答时的计时数码显示控制信号若干,抢答成功组别显示的控制信号若干,各组计分动态显示的控制信号若干。.本系统应具有的功能有:第一抢答信号的鉴别和锁存功能;抢答计时功能;各组得分的累加和动态显示功能。四、在设计及仿真中的体会我选择的课题为数字式四路竞赛抢答器,根据电路的特点,采用层次化结构化设计,将此项设计任务分成若干模块,规定每一模块的功能和各模块之间的接口,然后再将各模块合起来调试。在设计的过程中,遇到问题我们先独立思考,查找资料。到自己不能解决的时候就和其他同学研究讨论,向指导老师请教。这样既提高了独立发现问题、分析问题、解决问题的能力,又很好地培养了交流合作的精神。虽然在程序的编写方面还不是很完善,我们还是设计出了我们需要的模块。此次实习前我们对于数字电子技术这门课程的学习仅是纸上谈兵,在头脑中抽象地记忆理解那些课本上的理论知识,有些理论知识晦涩难懂,甚至要靠自己死记硬背。而这次的实习就提供机会让我们在实践中灵活运用知识。在设计过程中,由于对于VHDL语言的了解不多,在变量的定义,以及过程(process)的定义与应用等方面遇到了很大的阻力,也让我吃了不少的苦头,但是在大家齐心协力,以及在老师的耐心指导下,最终还是克服了重重难关。虽然在程序的编写方面还不是很完善,还是设计出了需要的模块。在这次设计中,应该说从功能的实现到流程图的绘制,从程序的编写到程序的检查,从程序的调试到实验报告的写作,其间每一个过程都凝聚着辛苦和汗水。五、对本次课程设计的体会和建议编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。经过两星期的EDA实习,成功地设计出了数字式四路竞赛抢答器。回首这两周,虽然因为初次涉及EDA技术及MAX_PLUS软件,对相关知识知之甚少,也遇到了很多困难,但是在这次实习的过程中都受益匪浅。 在这次课程设计的前期,先系统地学习了EDA工程概论,VHDL描述语言和设计应用方面的基础知识,使得后期能够较熟练地使用MAX_PLUS软件进行设计开发,用原理图输入及VHDL语言等设计输入并编译仿真,同时对以往学过的理论知识有了更加透彻的理解。六、参考文献1 候伯亨,刘凯,VHDL硬件描述语言与数字逻辑电路设计;西安:电子科技大学出版社2 曾繁泰,陈美金,VHDL程序设计,北京:清华大学出版社3 谭会生,张昌凡,EDA技术及应用, 西安:西安电子科技大学出版社4 李国丽,朱维勇.EDA与数字系统设计,北京:机械工业出版社附录一:选题一 五人多数表决器LIBRARY IEEE;use ieee.std_logic_1164.all;use ieee.std_logic_ARITH.all;use ieee.std_logic_UNSIGNED.all;ENTITY BIAOJUE isPORT(FF:IN STD_LOGIC_VECTOR(1 TO 5); QQ:OUT BIT; QALL:OUT STD_LOGIC_VECTOR(3 DOWNTO 1); SHIJIAN:BUFFER STD_LOGIC_VECTOR(3 DOWNTO 0); FUWEI,KAISHI,CLK:IN STD_LOGIC); END BIAOJUE;ARCHITECTURE FUNG of BIAOJUE is BEGIN PROCESS(FF,CLK,KAISHI,FUWEI) VARIABLE SUO:BOOLEAN; VARIABLE SUM:STD_LOGIC_VECTOR(1 TO 3);BEGINIF (FUWEI=0)THEN QQ=0; SUM:=000; QALL=000;ELSIF(CLKEVENT AND CLK = 1) THEN IF (KAISHI=1) THEN SUO:=FALSE; IF(NOT SUO)THEN SHIJIAN=1010; IF SHIJIAN=0000 THEN SUO:=TRUE; FOR N IN 1 TO 5 LOOP SUM:=FF(N)+SUM; END LOOP; ELSE SHIJIAN=SHIJIAN-1;END IF;END IF;QALL=3)THENQQ=1;ELSE QQ=0;END IF;END IF;END IF;END PROCESS;END FUNG;附录二选题二 数字式竞赛抢答器设计library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity four is port(CLK1,EN1,KAISHI:in std_logic; A,B,C,D:in std_logic; -QDJB A1,B1,C1,D1,RING:out std_logic;STATES:out std_logic_vector(3 DOWNTO 0);RST1: IN STD_LOGIC; ADD: IN STD_LOGIC; CHOS:IN STD_LOGIC_VECTOR(3 DOWNTO 0); -JFQ AA2,AA1,AA0,BB2,BB1,BB0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0); CC2,CC1,CC0,DD2,DD1,DD0: OUT STD_LOGIC_VECTOR(3 DOWNTO 0);AIN4:IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7:OUT STD_LOGIC_VECTOR(6 DOWNTO 0); -YMQend entity four;architecture one of four issignal sinor,ringf,tmp,two:std_logic; -QDJB.VHDsignal cnt:std_logic_vector(5 DOWNTO 0);-beginsinor=(A XOR B)XOR(C XOR D); -QDJB.VHDtwo=A and B;p1:process(A,B,C,D,KAISHI,tmp)begin if KAISHI=1 then tmp=1;STATES=0000; elsif tmp=1 then if (A=1AND B=0AND C=0AND D=0 ) then A1=1; B1=0; C1=0; D1=0; STATES=0001; tmp=0; ELSIF (A=0AND B=1AND C=0AND D=0) THEN A1=0; B1=1; C1=0; D1=0;STATES=0010;tmp=0; ELSIF (A=0AND B=0AND C=1AND D=0) THEN A1=0; B1=0; C1=1; D1=0; STATES=0011; tmp=0;ELSIF (A=0AND B=0AND C=0AND D=1) THENA1=0; B1=0; C1=0; D1=1; STATES=0100;tmp=0;else tmp=1;STATES=0000;end if ;end if;end process p1;p2:process(CLK1,EN1,KAISHI,cnt) begin if KAISHI=1 then cnt=000000;ringf=0; elsif CLK1event and CLK1=1 then if EN1=0 and sinor=1 thenif two=0 thenif cnt=111111 thenringf=not ringf;cnt=cnt+1;else ringf=0;end if;end if;end if;end if; end process p2;RING=ringf;- PROCESS(RST1,ADD,CHOS)IS -JFQ VARIABLE POINTS_A2,POINTS_A1,POINTS_A0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_B2,POINTS_B1,POINTS_B0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_C2,POINTS_C1,POINTS_C0: STD_LOGIC_VECTOR(3 DOWNTO 0); VARIABLE POINTS_D2,POINTS_D1,POINTS_D0: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN IF (ADDEVENT AND ADD=1) THEN IF RST1=1 THEN POINTS_A2:=0000; POINTS_A1:=0000; POINTS_A0:=0000; POINTS_B2:=0000; POINTS_B1:=0000; POINTS_B0:=0000; POINTS_C2:=0000; POINTS_C1:=0000; POINTS_C0:=0000; POINTS_D2:=0000; POINTS_D1:=0000; POINTS_D0:=0000;ELSIF CHOS=0001 THEN IF POINTS_A0=1001 THEN POINTS_A0:=0000; IF POINTS_A1=1001 THEN POINTS_A1:=0000; IF POINTS_A2=1001 THEN POINTS_A2:=0000; ELSE POINTS_A2:=POINTS_A2+1; END IF; ELSE POINTS_A1:=POINTS_A1+1; END IF; ELSE POINTS_A0:=POINTS_A0+1; END IF; ELSIF CHOS=0010 THEN IF POINTS_B0=1001 THEN POINTS_B0:=0000; IF POINTS_B1=1001 THEN POINTS_B1:=0000; IF POINTS_B2=1001 THEN POINTS_B2:=0000; ELSE POINTS_B2:=POINTS_B2+1; END IF; ELSE POINTS_B1:=POINTS_B1+1; END IF; ELSE POINTS_B0:=POINTS_B0+1; END IF; ELSIF CHOS=0011 THENIF POINTS_C0=1001 THEN POINTS_C0:=0000; IF POINTS_C1=1001 TH

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论