目录
1 前言............................................................................................................................1 2 抢答器的设计要求及分析........................................................................................2
2.1 抢答器的设计要求..........................................................................................2 2.2 抢答器的设计分析..........................................................................................2 3 抢答器的设计............................................................................................................4
3.1 抢答鉴别模块..................................................................................................4
3.1.1 抢答鉴别模块源程序............................................................................4 3.1.2 抢答鉴别模块程序仿真........................................................................4 3.2 抢答计时模块..................................................................................................4
3.2.1 抢答计时模块源程序............................................................................4 3.2.2 抢答计时模块程序仿真........................................................................4 3.3 抢答计分模块..................................................................................................5
3.3.1 抢答计分模块源程序............................................................................5 3.3.2 抢答计分模块程序仿真........................................................................5 3.4 综合模块..........................................................................................................6
3.4.1 例化源程序............................................................................................6 3.4.2 例化程序仿真........................................................................................6
4 抢答器的硬件测试....................................................................................................7
4.1 抢答器的引脚绑定..........................................................................................7 4.2 在CPLD\\FPGA实验系统上下载,进行硬件验证情况 ..............................8 5 Quartus Ⅱ软件及VHDL语言介绍 .........................................................................9 5.1 Quartus Ⅱ软件介绍 ........................................................................................9 5.2 VHDL语言简介.............................................................................................10 心得体会......................................................................................................................11 参考文献......................................................................................................................12
课程设计说明书
1 前言
EDA技术作为现代电子设计最新技术的结晶,其广阔的应用前景和深远的影响已毋庸置疑,它在信息工程类专业中的基础地位和核心作用也逐渐被人们所认识。许多高等学校开设了相应的课程,并为学生提供了课程设计、综合实践、电子设计竞赛、毕业设计、科学研究和产品开发等EDA技术的综合应用实践环节。相关的工程技术人员也特别重视学习EDA技术,并渴望提高其工程应用能力。
对于迅猛发展的EDA技术的综合应用,从EDA技术的综合应用系统的深度来分,可分为3个层次:
(1) 功能电路模块的设计; (2)算法实现电路模块的设计;
(3) 片上系统/嵌入式系统/现代DSP系统的设计。
从EDA技术的综合应用系统的最终主要硬件构成来分,已出现6种形式: (1) CPLD/FPGA系统;
(2) \"CPLD/FPGA+MCU\"系统;
(3) \"CPLD/FPGA+专用DSP处理器\"系统; (4) 基于FPGA实现的现代DSP系统; (5) 基于FPGA实现的SOC片上系统; (6) 基于FPGA实现的嵌入式系统。
从EDA技术的综合应用系统的完善层次来分,可分为3个层次: (1)\"EDA综合系统\"主体电路的设计、仿真及硬件验证;
(2)\"EDA综合系统\"主体电路的设计、仿真、硬件验证+系统外围电路PCB的设计与制作;
(3)\"EDA综合系统\"主体电路的设计、仿真、硬件验证+系统整体电路PCB的设计与制作及系统的组装、调试。
- 1
课程设计说明书
qiangdaqi:U1a0b0c0clkclrd0starta0b0c0clkclrd0startalm1ASG[3..0]ansclkclrenASG[3..0]jifen:U3fen1[3..0]fen2[3..0]fen3[3..0]fen4[3..0]fen1[3..0]fen2[3..0]fen3[3..0]fen4[3..0]ASG[3..0]alm1jishi:U2clkclralm2qa[3..0]qb[3..0]enldntatbenldntatbalm2qa[3..0]qb[3..0]ans 图2-1 抢答器电路原理
- 3
课程设计说明书
3.2.2 抢答计时模块程序仿真
通过en、ldn,调节ta、tb,使得初始值为37。
图3-2 抢答计时模块仿真
倒计时为00时,数码显示将不继续倒计时。
图3-3 抢答计时模块仿真
3.3 抢答计分模块
3.3.1 抢答计分模块分析
每组原始分数记为5分,根据抢答电路的抢答成功的组别以及回答问题ans,确定加分情况。其中ans=1,分数加1;ans=0,分数不变。
3.3.2 抢答计分模块程序仿真
- 5
课程设计说明书
图3-6 顶层文件仿真
B组抢答成功后,在计时时间内没有回答完问题,扬声器2发出声音。
4 抢答器的硬件测试
4.1 抢答器的引脚绑定
由于抢答器引脚较多,故分为两部分截图得引脚绑定图
- 7
课程设计说明书
5 Quartus Ⅱ软件及VHDL语言介绍
5.1 Quartus Ⅱ软件介绍
QuartusⅡ软件包是美国Altera公司的第四代EDA开发软件。其提供了一个一种与结构无关的设计环境,非常适应具体的设计需要。QuartusⅡ提供了方便的设计输入方式、快速的编译和直接易懂的器件编程。能够支持逻辑门数在百万门以上的逻辑器件的开发,并且为第三方工具提供了无缝接口。QuartusⅡ支持的器件有:StratixⅡ、Stratix GX、Stratix、Mercury、MAX3000A、MAX7000B、MAX7000S、MAX 7000AE、MAXⅡ、FLEX6000、FLEX10K、FLEX10KA、FLEX10KE、Cyclone、CycloneⅡ、APEXⅡ、APEX20KC、APEX20KE和ACEX1K系列。
QuartusⅡ软件包的编程器是系统的核心,提供功能强大的设计处理,设计者可以添加特定的约束条件来提高芯片的利用率。在设计流程的每一步,QuartusⅡ软件能够引导设计者将注意力放在设计上,而不是软件的使用上。同时,自动的错误定位、完备的错误和警告信息,使设计修改变得简单容易。另外,QuartusⅡ可与MATLAB的Simulink和DSP Builder结合,是开发DSP硬件系统的关键
- 9
课程设计说明书
心得体会
本次的EDA课程设计历时一个星期,时间虽短,但通过一个星期的实践,使我对EDA技术有了更进一步的了解。同时,大致懂得了一个课题制作的具体流程和实施方法。另外,课程设计对QuartusⅡ软件的使用要求较高,从而使我能较为熟练的运用此软件。在设计时,采用模块化的设计思路使得问题变的简单明了,大大缩短了时间,降低了发生错误的机侓,也便于修改和更新。
在写程序的过程中,遇到很多的困难,主要就是对程序的不理解,并且在进行仿真和调试中也遇到很多的困难,暴露出在知识上的掌握不足,主要是对仿真波形的理解不够透彻,也有很多的失败,但在调试中每修改一个小的错误,使其成功的表达这个程序的含义,心中的成就感就徒增。
在这次设计中,理论与实践相结合起来,在老师的指导下和查询资料学习中,有些关键的问题才得以解决,在困难面前,不要气馁,勇敢的面对,坚持一下,最终一定会取的成功,锻炼自己的能力,对以后走的路有了更清楚的认识,也有了更多的信心,同时也培养了团队合作精神和团队协作能力。在设计过程中遇到一些问题,使得我得查找相关资料,从而增长知识的同时增强解决问题和动手的能力,锻炼我做事细心、用心、耐心的态度。所以在以后的学习生活中,我会努
- 11
课程设计说明书
附录
----------抢答部分---------- library ieee;
use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity qiangdaqi is port(clk,a0,b0,c0,d0:in std_logic;
start,clr:in std_logic;
ASG:out std_logic_vector(3 downto 0);
alm1:out std_logic); end qiangdaqi; architecture behav of qiangdaqi is
signal d1,d2,d3,d4:std_logic;
begin
proce(clk,a0,b0,c0,d0,start,clr,d1,d2,d3,d4)
begin
if (clr=\'1\' )then d1
if (clk\'event and clk=\'1\' )then
if (a0=\'1\')and not(d2=\'1\' or d3=\'1\' or d4=\'1\') then
ASG
elsif(b0=\'1\')and not(D1=\'1\'or D3=\'1\'or D4=\'1\') then
ASG
elsif( c0=\'1\')and not(D1=\'1\' or D2=\'1\' or D4=\'1\') then
ASG
elsif( d0=\'1\')and not(D1=\'1\' or D2=\'1\' or D3=\'1\') then
ASG
end if;
- 13
课程设计说明书
if(clr=\'1\')then
db
elsif(tb\'event and tb=\'1\')then
if(ldn=\'1\')then
if (db=0)then
db
else
db
end if;
end if;
end if; end proce; proce(clk)
variable tmpa: integer range 0 to 9;
variable tmpb: integer range 0 to 9;
variable alm: std_logic;
begin
if(clr=\'1\')then
tmpa:=9;
tmpb:=5;
alm:=\'0\';
elsif (clk\'event and clk=\'1\')then
if (en=\'0\')then
tmpa:=da;
tmpb:=db;
elsif (tmpa=0)then
if (tmpb=0)then
tmpa:=0;
alm:=\'1\';
else
tmpa:=9;
end if;
if (tmpb=0)then
tmpb:=0;
else
- 15
课程设计说明书
elsif(ans =\'0\') then
if(fen1 =\"0000\") then
fen1
else fen1
end if;
end if;
when \"0010\" =>
if(ans =\'1\') then
if(fen2 =\"1111\") then
fen2
else fen2
end if;
elsif(ans =\'0\') then
if(fen2 =\"0000\") then
fen2
else fen2
end if;
end if;
when \"0011\" =>
if(ans =\'1\') then
if(fen3 =\"1111\") then
fen3
else fen3
end if;
elsif(ans =\'0\') then
if(fen3 =\"0000\") then
fen3
else fen3
end if;
end if;
when \"0100\" =>
if(ans =\'1\') then
if(fen4 =\"1111\") then
fen4
else fen4
- 17
课程设计说明书
component jishi is
port(clr,ldn,en,clk:in std_logic;
ta,tb:
in std_logic;
qa,qb:
out integer range 0 to 9;
alm2:
out std_logic); end component; --------- component jifen is port(clr,clk,en,ans:in std_logic;
ASG:in std_logic_vector(3 downto 0);
fen1,fen2,fen3,fen4:buffer integer range 0 to 15); end component; ------------ begin U1:qiangdaqi port map(clk,a0,b0,c0,d0,start,clr,ASG,alm1); U2:jishi port map(clr,ldn,en,clk,ta,tb,qa,qb,alm2); U3:jifen port map(clr,clk,en,ans,ASG,fen1,fen2,fen3,fen4); end behav;
- 19 -