《2022年EDA课程设计-数字式竞赛抢答器.pdf》由会员分享,可在线阅读,更多相关《2022年EDA课程设计-数字式竞赛抢答器.pdf(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、EDA技术课程设计报告二 0 一一年06 月30 日精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 14 页 - - - - - - - - - - 目录1课程设计目的12课程设计题目描述和要求13课程设计报告内容24 总结145 参考资料14精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 14 页 - - - - - - - - - - 1.课程设计目的1、通过课程设计使学生能熟练掌握一种E
2、DA软件( MAX+plus2 )的使用方法,能熟练进行设计输入、编译、管脚分配、下载等过程,为以后进行工程实际问题的研究打下设计基础。2、通过课程设计使学生能利用EDA软件( MAX+plus2 )进行至少一个电子技术综合问题的设计,设计输入可采用图形输入法或VHDL 硬件描述语言输入法。3、通过课程设计使学生初步具有分析、寻找和排除电子电路中常见故障的能力。4、通过课程设计使学生能独立写出严谨的、有理论根据的、实事求是的、文理通顺的字迹端正的课程设计报告。2. 课程设计题目描述和要求抢答器接通电源后,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯。抢答开始时,主持人将
3、控制开关拨到“开始”位置,扬声器给出声响提示,抢答器处于工作状态,这时,抢答器完成以下工作:(1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号;(2)扬声器发出短暂声响,提醒主持人注意;(3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加/ 减计数器、数码管显示。本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第
4、 3 页,共 14 页 - - - - - - - - - - 设计框图加分 减分图 1 抢答器总体框图由主体电路和扩展电路两部分构成,主体电路完成基本的抢答功能,即开始抢答后,当选手按动抢答键时,能显示选手的编号,同时能封锁输入电路,禁止其他选手抢答。扩展电路完成各选手的得分显示功能。3、课程设计报告内容3.1 总体设计电路主电路抢答按钮优先编码电路锁存器译码电路显示电路主持人控制开关控制电路报警电路预制计分电路译码电路显示电路扩展功能电路精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 14
5、 页 - - - - - - - - - - 3.2 模块设计和相应模块程序(一)抢答鉴别模块1、VHDL 源程序library ieee;-抢答鉴别模块use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity qdjb is port(rst,clk2:in std_logic; s0,s1,s2,s3:in std_logic; states:buffer std_logic_vector(3 downto 0);tmp:out std_logic);end qdjb;architecture one of qdj
6、b issignal st:std_logic_vector(3 downto 0);beginp1:process(s0,rst,s1,s2,s3,clk2)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 14 页 - - - - - - - - - - begin if rst=0 then tmp=0;st=0000; elsif clk2event and clk2=1 then if (s0=1 or st(0)=1)and not( st(1)=1 or st(2)=1 or st
7、(3)=1 ) then st(0)=1; end if ; if (s1=1 or st(1)=1)and not( st(0)=1 or st(2)=1 or st(3)=1 ) then st(1)=1; end if ; if (s2=1 or st(2)=1)and not( st(0)=1 or st(1)=1 or st(3)=1 ) then st(2)=1; end if ; if (s3=1 or st(3)=1)and not( st(0)=1 or st(1)=1 or st(2)=1 ) then st(3)=1; end if ;tmp=s0 or s1 or s2
8、 or s3;end if ;end process p1;p2:process(states(0),states(1),states(2),states(3) begin if (st=0000) then states=0000; elsif (st=0001) then states=0001;elsif (st=0010) then states=0010; elsif (st=0100) then states=0011;elsif (st=1000) then states=0100; end if; end process p2;end one;精品资料 - - - 欢迎下载 -
9、 - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 14 页 - - - - - - - - - - 抢答鉴别模块图抢答鉴别模块用来准确直观地判断A、B、C、D、E、F 六组抢答者谁最先按下按钮, 并为显示端送出信号,通过数显和蜂鸣等途径使观众能够清楚地知道是哪一组抢答成功,是整个系统的核心部分。同时组别显示端为下一模块输入信号,以方便主持人为该组抢答成功者进行加减分的操作。(二)计时模块1、VHDL 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_un
10、signed.all;entity js is port(clk,rst,s,stop:in std_logic; warn:out std_logic; ta,tb:buffer std_logic_vector(3 downto 0);end js;architecture one of js issignal co:std_logic;begin精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 14 页 - - - - - - - - - - p1:process(clk,rst,s,st
11、op,ta) begin if rst=0 or stop=1 then ta=0000; elsif clkevent and clk=1 then co=0; if s=1 then if ta=0000 then ta=1001;co=1; else ta=ta-1; end if; end if; end if;end process p1;p2:process(co,rst,s,stop,tb) begin if rst=0 or stop=1 then tb=0010; elsif coevent and co=1 then if s=1 then if tb=0000 then
12、tb=0011; else tb=tb-1; end if; end if; end if;end process p2;end one;计时模块图精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 14 页 - - - - - - - - - - 在这个模块中主要实现抢答过程中的计时功能,在有抢答开始后进行30 秒的倒计时,并且在30 秒倒计时后无人抢答显示超时并报警。其中有抢答时钟信号clk2 ;系统复位信号 rst ;抢答使能信号 s;抢答状态显示信号states ;无人抢答警报信号warn
13、;计时中止信号 stop ;计时十位和个位信号tb ,ta 。(三)数据选择模块1、VHDL 源程序library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity sjxz is port (a,b,c: in std_logic_vector(3 downto 0);clk2,rst: in std_logic; s: out std_logic_vector(1 downto 0); y: out std_logic_vector(3 d
14、ownto 0) ); end sjxz;architecture body_chooser of sjxz is signal count: std_logic_vector (1 downto 0); begin s=count; process(clk2,rst) begin if(rst=0)then count=10)then count=00; else countyyynull; end case; end PROCESS; end body_chooser;数据选择模块图在这个模块中主要实现抢答过程中的数据输入功能,输入信号a3.0、b3.0、c3.0;计数输出信号 s;数据输
15、出信号 y;计数脉冲 clk2 ,实现 a、b、c 按脉冲轮流选通,在数码管上显示。(四)译码模块1、VHDL 源程序LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_LOGIC_UNSIGNED.ALL;ENTITY YMQ IS PORT(AIN4: IN STD_LOGIC_VECTOR(3 DOWNTO 0); DOUT7: OUT STD_LOGIC_VECTOR(6 DOWNTO 0);END YMQ;ARCHITECTURE ART OF YMQ ISBEGIN PROCESS(AIN4) BEGIN精品资料 - - -
16、欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 14 页 - - - - - - - - - - CASE AIN4 IS WHEN 0000=DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7DOUT7=0000000; END CASE; END PROCESS;END ARCHITECTURE ART;译码模块图在这个模块中主要实现抢答过程中将BCD 码转换成 7 段的功能。3、4 仿真及仿真结果分析抢答鉴别精品资料 - - - 欢迎下载 - - - - -
17、 - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 14 页 - - - - - - - - - - 计时模块译码3.5 实验调试结果抢答鉴别模块仿真分析:当鉴别模块的清零信号CLR为高电平时,无论A、B、C 、D四组参赛者谁按下抢答按钮,系统输出均为零,同时组别显示端G输出信号也显示为零;当清零信号CLR为低电平时, A、B、C 、D 四组参赛者谁先按下抢答按钮,组别显示端就显示该组别的号码。假如C 组按下抢答按钮时,组别输出为0010,同时 C组的显示灯被点亮。仿真图上显示的为A先抢答,因为在 0-1.28 微秒之间 A、C虽然都按抢答键,
18、但CLR为有效状态,所以在此时间段内的抢答无效。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 14 页 - - - - - - - - - - 计分模块仿真分析:首先应该清楚,在计分器电路的设计中,按十进制进行加减分操作的,当出现时钟信号上升沿 CLK就可以完成对参赛者加减分操作。 智能抢答器记分模块的仿真时以加分操作为例。由仿真图 3-10 可知以下情况:(1)系统设计过程中,当计分复位端RST=1时,并且组别输入信号CHOS=0000, 其中的组别输入信号是抢答鉴别模块的输出信号,计分
19、器复位,此时以上四组都不会产生加减分操作。(2)然而当计分复位端RST=0时,此时计分器可以计分。当CHOS=0001 时,组别显示为A 组,此时主持人利用计分器对A组进行加减分操作;当CHOS=0010 时,组别显示为B 组,此时主持人则利用计分器对B组进行加减分操作;当CHOS=0100 时,组别显示为 C组,此时系统对 C组进行加减分操作;当CHOS=1000 时,组别显示为 D组,此时对 D组进行加减分操作。由仿真图可知,当主持人按下系统复位键RST键时,使分数复位,每位设置的初始分数为 100 分。当 CHOS=1000 时,即 D抢答成功时,加分键ADD 输入四个脉冲, DD1加到
20、 4,说明加分成功,成绩变为140 分。其他抢答者抢答成功后的加分操作与此相同。减分的仿真与此类似,因为是以加法实现,本质与加分相同,当计分复位端RST=0时,可以计分。由仿真图可知,初始成绩均为100 分。当 CHOS=1000 时,即 D抢答成功时,减分键SUB输入四个脉冲,DD1加到 4,说明减分成功,成绩变为60 分。其他抢答者抢答成功后的减分操作与此相同。译码器模块仿真分析:当 AIN4= 0000 , DOUT7输出1111110, 此时数码管显示 0;当 AIN4= 0001 , DOUT7输出0110000, 此时数码管显示 1;当 AIN4= 0010 , DOUT7输出11
21、01101, 此时数码管显示 2;当 AIN4= 0011 , DOUT7输出1111001, 此时数码管显示 3;当 AIN4= 0100 , DOUT7输出0110011, 此时数码管显示 4;当 AIN4= 0101 , DOUT7输出1011011, 此时数码管显示 5;当 AIN4= 0110 , DOUT7输出1011111, 此时数码管显示 6;当 AIN4= 0111 , DOUT7输出1110000, 此时数码管显示 7;当 AIN4= 1000 , DOUT7输出1111111, 此时数码管显示 8;当 AIN4= 1001 , DOUT7输出1111011, 此时数码管显
22、示 9;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 14 页 - - - - - - - - - - 4、总结智能抢答器的设计关键在于几个模块的设计要成功,即输入控制电路的设计,显示电路的设计,发生电路的设计和计时电路的设计。根据实验的要求来正确的设计电路,首先必须弄清楚抢答器的功能原理,需要用什么样的电路或一些什么样的芯片来设计来实现,同时,如何来控制。把该实验分成一块一块分别实现,当有人抢答时,如何使其正确的计时。在实验的过程中,连接线路很重要。所以在实验时,线路的连接要仔细,只要一
23、不小心,连错了一根线或多连一根抑或少连一根线,对于设计的进展都是比较困难的。特别是在线路较多的时候,犯下这种错误,意味着要浪费很多的实验时间。通过本次课程设计,使我更加的了解如何来设计一个实验,可以设计多种方案,通过比较得出最佳方案,使自己的思路更加的缜密。当然,本次实验使我对数字电路、VHDL 语言有了进一步的认识。同时,也了解了更多的芯片及其功能和模块电路的设计方法。再者,经过此次实验的设计画原理图,使我对MAX10 软件有了进一步了解,操作也更加的熟练。加强了自己的思维能力和动手设计的能力。参考书目1 谭会生,EDA ,西安电子电子科技大学出版社,2004 年2 谢自美主编电子线路设计实验测试华中科技大学出版社3 赵世强、许杰等编电子电路EDA技术西安电子科技大学出版社精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 14 页 - - - - - - - - - -