人人范文网 范文大全

EDA四人抢答器设计

发布时间:2020-03-02 15:17:44 来源:范文大全 收藏本文 下载本文 手机版

目 录

前言................................................................................................................................1 1软件及语言相关介绍.................................................................................................2 1.1quartus软件介绍及功能 ......................................................................................2 1.2VHDL语言介绍 ..................................................................................................3 2设计要求与说明.........................................................................................................5 2.1抢答器鉴别模块..................................................................................................5 2.2回答计时模块......................................................................................................5 2.3计分模块..............................................................................................................5 2.4顶层文件综合模块..............................................................................................5 3单元模块电路设计.....................................................................................................7 3.1抢答器鉴别模块..................................................................................................7

3.1.1设计原理图.................................................................................................7 3.1.2编译报告.....................................................................................................7 3.1.3仿真结果.....................................................................................................8 3.1.4设计说明.....................................................................................................8 3.2计时模块..............................................................................................................8

3.2.1设计原理图.................................................................................................8 3.2.2编译报告.....................................................................................................9 3.2.3仿真结果.....................................................................................................9 3.2.4设计说明.....................................................................................................9 3.3计分模块............................................................................................................10

3.3.1计分模块原理图.......................................................................................10 3.3.2编译报告...................................................................................................11 3.3.3仿真结果...................................................................................................11 3.3.4设计说明...................................................................................................11 3.4顶层文件模块....................................................................................................12

3.4.1顶层模块原理图.......................................................................................12 3.4.2编译报告...................................................................................................12 3.4.3仿真结果...................................................................................................13 3.4.4设计说明...................................................................................................13 心得体会......................................................................................................................14 参考文献......................................................................................................................15 附录 顶层文件源程序................................................................................................16

课程设计说明书

前言

现代电子产品几乎渗透了社会的各个领域EDA技术是电子设计的发展趋势,EDA工具从数字系统设计的单一领域,应用范围已涉及模拟、微波等多个领域,可实现各个领域电子系统设计的测试、设计仿真和布局布线等。设计者只要完成对电子系统的功能描述,就可利用计算机和EDA工具,进行设计处理,最终得到设计结果。

随着大规模集成电路技术和计算机技术的不断发展,即便是普通的电子产品的开发,EDA技术常常使一些原来的技术瓶颈得以轻松突破,从而使产品的开发周期大为缩短、性价比大幅度提高。不言而喻,EDA技术将迅速成为电子设计领域中的极其重要的组成部分。从目前的EDA技术来看,其发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。

在信息通信领域,要优先发展高速宽带信息网、深亚微米集成电路、新型元器件、计算机及软件技术、第三代移动通信技术、信息管理、信息安全技术,积极开拓以数字技术、网络技术为基础的新一代信息产品,发展新兴产业,培育新的经济增长点。

这次设计的题目为四人抢答器,主要从抢答、计分和计时模块加以设计,然后将之综合起来,抢答共分四路,当有一路抢答成功之后将封锁其他路的抢答请求消息,直至主持人按下复位键并开始新一轮的抢答。计时部分主持人可以通过外部按钮自动设置计时的初始值,最大计时为59s,并且计时结束时带有警报信号以起到警示的作用,若时间未到还可通过外部按键防止警报信号响起。计分部分对于锁定的选手每答对一题加一分,答错一题减一分,其他选手的分不变,对于选手的锁定通过前面抢答模块的台数显示状态的传递来实现。通过用VHDL语言对每个模块的功能加以实现,最后撰写顶层文件将每个分模块加以综合使之成为一个整体。用VHDL语言编写各模块的功能,实现现实的模拟,然后用波形图对每个模块进行仿真,以检验设计VHDL代码的正误并对程序不断改进,直至仿真波形达到理想的效果,最后将代码通过管脚锁定下载到硬件实验箱上,用硬件显示进一步检验设计的效果。这次我们使用的是Cyclone Ⅲ实验箱,型号是EP3C40Q240C8,共有240个引脚。

课程设计说明书

1软件及语言相关介绍

1.1quartus软件介绍及功能

Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。

Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,Quartus II 通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

Maxplus II 作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus II 的更新支持,Quartus II 与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus II 中包含了许多诸如SignalTap II、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus II 友好的图形界面及简便的使用方法。

Altera Quartus II 作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL

课程设计说明书

网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

1.2VHDL语言介绍

VHDL的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,诞生于 1982 年。1987 年底,VHDL被 IEEE 和美国国防部确认为标准硬件描述语言。

VHDL主要用于描述数字系统的结构,行为,功能和接口。除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。

VHDL 语言能够成为标准化的硬件描述语言并获得广泛应用,它自身必然具有很多其他硬件描述语言所不具备的优点。归纳起来,VHDL 语言主要具有以下优点:

(1) VHDL 语言功能强大,设计方式多样

VHDL 语言具有强大的语言结构,只需采用简单明确的VHDL语言程序就可以描述十分复杂的硬件电路。同时,它还具有多层次的电路设计描述功能。此外,VHDL 语言能够同时支持同步电路、异步电路和随机电路的设计实现,这是其他硬件描述语言所不能比拟的。VHDL 语言设计方法灵活多样,既支持自顶向下的设计方式,也支持自底向上的设计方法; 既支持模块化设计方法,也支持层次化设计方法。

(2) VHDL 语言具有强大的硬件描述能力

VHDL 语言具有多层次的电路设计描述功能,既可描述系统级电路,也可以描述门级电路;描述方式既可以采用行为描述、寄存器传输描述或者结构描述,也可以采用三者的混合描述方式。同时,VHDL 语言也支持惯性延迟和传输延迟,这样可以准确地建立硬件电路的模型。VHDL 语言的强大描述能力还体现在它具有丰富的数据类型。VHDL 语言既支持标准定义的数据类型,也支持用户定义的数据类型,这样便会给硬件描述带来较大的自由度。 (3) VHDL 语言具有很强的移植能力

VHDL 语言很强的移植能力主要体现在: 对于同一个硬件电路的 VHDL 语言描述,它可以从一个模拟器移植到另一个模拟器上、从一个综合器移植到另一个综合器上或者从一个工作平台移植到另一个工作平台上去执行。 (4) VHDL 语言的设计描述与器件无关

课程设计说明书

采用 VHDL 语言描述硬件电路时,设计人员并不需要首先考虑选择进行设计的器件。这样做的好处是可以使设计人员集中精力进行电路设计的优化,而不需要考虑其他的问题。当硬件电路的设计描述完成以后,VHDL 语言允许采用多种不同的器件结构来实现。

(5) VHDL 语言程序易于共享和复用

VHDL 语言采用基于库 ( library) 的设计方法。在设计过程中,设计人员可以建立各种可再次利用的模块,一个大规模的硬件电路的设计不可能从门级电路开始一步步地进行设计,而是一些模块的累加。这些模块可以预先设计或者使用以前设计中的存档模块,将这些模块存放在库中,就可以在以后的设计中进行复用。

由于 VHDL 语言是一种描述、模拟、综合、优化和布线的标准硬件描述语言,因此它可以使设计成果在设计人员之间方便地进行交流和共享,从而减小硬件电路设计的工作量,缩短开发周期。

课程设计说明书

2设计要求与说明

本设计共分为三大模块:抢答器鉴别模块、回答计时模块、记分模块,最后是顶层文件综合模块。

2.1抢答器鉴别模块

在这个模块中主要实现抢答过程中的抢答功能,可以记录抢答者的台号,并且能实现当有一路抢答按键按下时,该路抢答信号将其余各路抢答信号封锁并发出警报的的功能,直至主持人按下复位键警报声停止,在主持人的允许下开始新一轮的抢答。

其中有四个抢答信号a、b、c、d;抢答使能信号en;抢答与警报时钟信号clk;系统复位信号rst;抢答台号状态显示信号state;警报信号ring。

2.2回答计时模块

在这个模块中主要实现回答开始后的计时功能,时间以倒计时显示,当显示00时警报响起以提醒时间选手到停止回答,当主持人按下复位键后警报解除且时间显示初始值,如果时间未到参赛选手回答完,此时主持人按下停止键以防止警报响起并且时间显示初始值,同时主持人还可以通过两个按键分别对个位和十位的初始值进行设置,可以根据实际情况确定回答时间的长短,以免造成时间的浪费。

其中有计时脉冲信号clk,使能信号en1,复位信号rst,回答完时间未到计时停止信号stop,计时时间预设置信号ta、tb,其中ta、tb分别对个位和十位进行控制,并且按一下相应位数字减1,以及时间预设置使能信号lad,只有高电平时有效,输出警报信号warn,两位时间显示输出digit

1、digit2。

2.3计分模块

在这个模块中主要对各位选手的得分进行控制,答对一题加一分,答错一题减一分,否则没有变化。

其中主要有输入脉冲信号clk,复位信号rst2以对选手的分数进行初始化,加减分使能信号en,加减分控制信号add,参赛选手台号显示信号state,输出有a、b、c、d分数显示信号a_out、b_out、c_out、d_out。

2.4顶层文件综合模块

在这个模块中主要将前三个模块进行例化,把这三个模块综合起来,使之成为一个整体以完成整个抢答器的设计。

其中输入信号主要包括四个参赛选手控制端a、b、c、d,脉冲信号clk,控制抢答和计分部分的使能端en,控制计时部分的使能端en1,控制抢答和计时部

课程设计说明书

分的复位端rst,控制计分部分的复位端rst2,以及控制计时停止的端口stop,时间预设置信号lad、ta、tb,控制计分部分的端口add,输出主要包括两个警报信号端口ring、warn,参赛选手台号显示信号states,计时显示信号digit

1、digit2,以及分数显示部分四个端口a_out、b_out、c_out、d_out,最重要的是要将抢答部分的输出state端口作为计分模块的输入进行输入以对选手信息进行锁定。

课程设计说明书

3单元模块电路设计

3.1抢答器鉴别模块

3.1.1设计原理图

图3-1抢答器模块原理图

3.1.2编译报告

图3-2抢答模块编译报告

课程设计说明书

3.1.3仿真结果

图3-3抢答模块仿真图

3.1.4设计说明

当主持人按下复位键rst后,警报信号停止鸣叫,抢答台号状态显示0;当主持人按下抢答信号en后,抢答开始,四位参赛选手开始抢答,有一路抢答成功后将封锁其它路得抢答信号,此时警报声响起并显示抢答成功选手的台号。主持人按下复位键后显示状态复位又开始等待下一轮的抢答。

3.2计时模块

3.2.1设计原理图

图3-4计时模块原理图

课程设计说明书

3.2.2编译报告

图3-5计时模块编译报告

3.2.3仿真结果

图3-6计时模块仿真图

3.2.4设计说明

最大计时时间为59s,按下复位键rst以及计时停止信号stop后时间显示59s,同时将警报解除,然后将使能信号lad置高电平后就可以通过ta、tb对时间初始值进行手动设置,以根据实际情况选定计时时间。当使能信号en1为高电平时就将预设置的值赋给输出digit

1、digit2,开始以倒计时方式计数,当显示00时警报响起,并且回答完时间未到主持人按下stop键用于时间复位并防止警报响起。

课程设计说明书

3.3计分模块

3.3.1计分模块原理图

图3-7计分模块原理图

课程设计说明书

3.3.2编译报告

图3-8计分模块编译报告

3.3.3仿真结果

图3-9计分模块仿真图

3.3.4设计说明

当主持人按下复位信号rst2分别给四位选手赋初始值5分,在5分基础上进行加减。当使能端en为1的时候通过控制add端口对当前锁定的选手进行分数加减控制,对于抢答成功的选手,当选手回答正确主持人将add置高电平为选手加一分,回答错误主持人将add置低电平为选手减一分,其他选手的分数不变。当某位选手的分数减到0时不再减,加到最高分时进行清零处理。

课程设计说明书

3.4顶层文件模块

3.4.1顶层模块原理图

图3-10顶层模块的原理图

3.4.2编译报告

图3-11顶层模块编译报告

课程设计说明书

3.4.3仿真结果

图3-12顶层模块仿真图

3.4.4设计说明

本部分设计主要将前面三个模块当中的共同部分以及有关联的部分联系起来使之成为一个整体,以实现四路抢答器的功能,重要的是必须将抢答模块中的输出state作为计分模块的输入,以用来锁定选手的信息,对选手的分数进行控制,其余各模块的功能与前面描述的一致。

课程设计说明书

心得体会

这次课程设计历时整整一个星期。通过这一个星期的课程设计,我发现了自己的很多不足,自己知识的很多漏洞,看到了自己的实践经验还是比较缺乏,理论联系实际的能力还急需提高。在本设计中遇到很多难题,这些难题之所以成为设计中的拦路虎,是因为平常学习不够扎实,基础知识不牢固,在课程设计过程中,光有理论知识是不够的,还必须懂一些实践中的知识。这次的课程设计要求自己完成,但也不乏会借鉴前人的经验,在前人的基础上进行改进和调整,以实现本次课程设计的要求。在课程设计中一个人只知道原理是远远不够的,必须有实践加以提高才会更了解所学知识的深刻内涵,而这次设计也正好锻炼我们这一点,这也是非常宝贵的。本次课程设计也巩固和加深了我对EDA基本知识的理解,提高了综合运用所学知识的能力,增强了根据课程需要选学参考资料,查阅手册、图表和文献资料的自学能力,然后深入研究,提出方案,对比后得出最终的可行方案。同时我也初步学习到了关于课程设计的基本方法、步骤和撰写设计论文的格式。通过这次课程设计,我想说:为完成这次课程设计我们确实很辛苦,但苦中仍有乐。对我而言,知识上的收获重要,精神上的丰收更加可喜。让我知道了学无止境的道理。我们每一个人永远不能满足于现有的成就,人生就像在爬山,一座山峰的后面还有更高的山峰在等着你。挫折是一份财富,经历是一份拥有。这次课程设计必将成为我人生旅途上一个非常美好的回忆!通过本次课程设计,巩固了我们学习过的专业知识,也使我们把理论与实践从真正意义上结合起来,考验我们借助互联网搜集查阅相关文献资料,和组织材料的综合能力,从中可以自我检验,认识到自己哪方面欠缺不足,以便于日后学习中的改进、提高,对EDA中功能实现电路有了更进一步的了解,并对硬件的调试掌握的熟练。

感谢老师给了我们这次机会以及对我们的指导,在以后的学习中我们会更加的努力学习专业知识,并与实践进行结合,更好的学好自己的专业。在整个过程中我们的指导老师起着举足轻重的作用,老师的严谨的工作态度是我们成功的前提,这次课程设计我得到了各位老师和同学们的精心指导和帮助,在此表示衷心的感谢。

课程设计说明书

参考文献

[1] 潘松,黄继业.《EDA技术与VHDL》(第三版)北京:清华大学出版社 [2] 杨晓慧,杨旭.《FPGA系统设计与实例》北京:人民邮电出版社 [3] 王振江.《FPGA开发与应用》北京:清华大学出版社 [4] 宋烈武,等.EDA计数实用教程.湖北科学计数出版社,2006 [5] 顾斌.数字电路EDA设计.西安电子科技大学出版社,2004 [6] 李国洪,等.可编程器件EDA设计与实践,机械工业出版社,2004

课程设计说明书

附录 顶层文件源程序

library ieee;

--qiangda use ieee.std_logic_1164.all; entity qiyi is

port (a,b,c,d,rst,clk,en: in std_logic;

state:buffer std_logic_vector(3 downto 0);

ring:out std_logic); end qiyi; architecture beh of qiyi is

signal st: std_logic_vector(3 downto 0); begin

proce(a,b,c,d,en,rst,clk) begin

if(rst=\'1\') then

ring

elsif(en =\'1\') then

if(clk\'event and clk = \'1\') then

if(a =\'1\' or st(0) =\'1\') and not (st(1)=\'1\' or st(2)=\'1\' or st(3)=\'1\')

then st(0)

end if;

if(b =\'1\' or st(1) =\'1\') and not (st(0)=\'1\' or st(2)=\'1\' or st(3)=\'1\')

then st(1)

end if;

if(c =\'1\' or st(2) =\'1\') and not (st(0)=\'1\' or st(1)=\'1\' or st(3)=\'1\')

then st(2)

end if;

if(d =\'1\' or st(3) =\'1\') and not (st(0)=\'1\' or st(1)=\'1\' or st(2)=\'1\')

then st(3)

end if;

end if;

end if;

end proce;

proce(st)

begin

if(st=\"0000\") then state

课程设计说明书

elsif(st=\"0001\") then state

elsif(st=\"0010\") then state

elsif(st=\"0100\") then state

elsif(st=\"1000\") then state

end if;

end proce;

end beh;

-----------------------------jishi

library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qiang is

port (rst,lad,clk,en1,stop:in std_logic;

ta,tb:in std_logic;

warn:out std_logic;

digit1:out integer range 0 to 9;

digit2:out integer range 0 to 9); end qiang; architecture beh of qiang is signal da: integer range 0 to 9; signal db: integer range 0 to 9; begin

proce(ta,rst)

begin

if(rst=\'1\') then

da

elsif(ta\'event and ta =\'1\') then

if(lad =\'1\') then

if(da =0) then

da

else

da

end if;

end if;

end if;

课程设计说明书

end proce;

proce(tb,rst)

begin

if(rst=\'1\') then

db

elsif(tb\'event and tb =\'1\') then

if(lad =\'1\') then

if(db =0) then

db

else

db

end if;

end if;

end if;

end proce;

proce(rst,clk,en1,stop)

variable temp1:integer range 0 to 9;

variable temp2:integer range 0 to 9;

variable co:std_logic;

begin

if (rst = \'1\' or stop = \'1\')

then

temp1 := 9;

temp2 := 5;

co := \'0\';

elsif (clk\'event and clk = \'1\') then

if(en1 =\'1\') then

temp1 :=da;

temp2 :=db;

elsif(temp1 = 0)then

if (temp2 = 0) then

temp1 :=0; co:=\'1\';

else temp1 :=9;

end if;

if(temp2 =0) then

temp2 :=0;

课程设计说明书

else

temp2 :=temp2-1;

end if;

else

temp1 :=temp1-1;

end if;

end if;

digit1

digit2

warn

end proce;

end beh;

-jifen---------------------------- library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity ji is

port (rst2,clk,en,add:in std_logic;

state: in std_logic_vector(3 downto 0);

a_out, b_out, c_out, d_out:buffer std_logic_vector(3 downto 0)); end ji; architecture beh of ji is begin

proce(rst2,clk,en,add,state,a_out,b_out,c_out,d_out) begin

if(rst2=\'1\') then

a_out

elsif(en =\'1\') then

if(clk\'event and clk =\'1\') then

case state is

when \"0001\" =>

if(add =\'1\') then

if(a_out =\"1111\") then

a_out

else a_out

课程设计说明书

end if;

elsif(add =\'0\') then

if(a_out =\"0000\") then

a_out

else a_out

end if;

end if;

when \"0010\" =>

if(add =\'1\') then

if(b_out =\"1111\") then

b_out

else b_out

end if;

elsif(add =\'0\') then

if(b_out =\"0000\") then

b_out

else b_out

end if;

end if;

when \"0011\" =>

if(add =\'1\') then

if(c_out =\"1111\") then

c_out

else c_out

end if;

elsif(add =\'0\') then

if(c_out =\"0000\") then

c_out

else c_out

end if;

end if;

when \"0100\" =>

if(add =\'1\') then

if(d_out =\"1111\") then

d_out

课程设计说明书

else d_out

end if;

elsif(add =\'0\') then

if(d_out =\"0000\") then

d_out

else d_out

end if;

end if;

when others =>

a_out

end case;

end if;

end if;

end proce;

end beh;

--------------------zonghe-----------------------------

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

entity zong is

port(rst,rst2,clk,en,en1,ta,tb,lad,a,b,c,d,stop,add:in std_logic;

ring,warn:out std_logic;

digit1,digit2:out std_logic_vector(3 downto 0);

a_out, b_out, c_out, d_out:buffer std_logic_vector(3 downto 0);

states:buffer std_logic_vector(3 downto 0));

end zong;

architecture zong of zong is

component qiyi is

port(rst,clk,en,a,b,c,d:in std_logic;

ring:out std_logic;

state:out std_logic_vector(3 downto 0));

end component;

component qiang is

port(rst,clk,en1,ta,tb,lad,stop:in std_logic;

warn:out std_logic;

21

课程设计说明书

digit1,digit2:out std_logic_vector(3 downto 0));

end component;

component ji is

port(rst2,clk,en,add:in std_logic;

state:in std_logic_vector(3 downto 0);

a_out, b_out, c_out, d_out:buffer std_logic_vector(3 downto 0));

end component; begin

U1: qiyi port map (rst,clk,en,a,b,c,d,ring,states);

U2: qiang port map(rst,clk,en1,ta,tb,lad,stop,warn,digit1,digit2);

u3: ji

port map (rst2,clk,en,add,states,a_out, b_out, c_out, d_out); end zong;

22

VHDL语言EDA四人抢答器

四人抢答器总结

四人智力抢答器(优秀)

电气实习心得四人抢答器

四人抢答器电子实习总结

四人智力竞赛抢答器课程设计报告

数电EDA课程设计智力竞赛抢答器

抢答器设计心得

简易抢答器设计

抢答器PLC设计

EDA四人抢答器设计
《EDA四人抢答器设计.doc》
将本文的Word文档下载到电脑,方便编辑。
推荐度:
点击下载文档
点击下载本文文档