EDA设计基于VHDL秒表设计Word格式文档下载.docx

上传人:b****5 文档编号:17255843 上传时间:2022-11-29 格式:DOCX 页数:15 大小:207.32KB
下载 相关 举报
EDA设计基于VHDL秒表设计Word格式文档下载.docx_第1页
第1页 / 共15页
EDA设计基于VHDL秒表设计Word格式文档下载.docx_第2页
第2页 / 共15页
EDA设计基于VHDL秒表设计Word格式文档下载.docx_第3页
第3页 / 共15页
EDA设计基于VHDL秒表设计Word格式文档下载.docx_第4页
第4页 / 共15页
EDA设计基于VHDL秒表设计Word格式文档下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

EDA设计基于VHDL秒表设计Word格式文档下载.docx

《EDA设计基于VHDL秒表设计Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《EDA设计基于VHDL秒表设计Word格式文档下载.docx(15页珍藏版)》请在冰豆网上搜索。

EDA设计基于VHDL秒表设计Word格式文档下载.docx

VHDL主要用于描述数字系统的结构、行为、功能和接口,非常适合用于可编程逻辑芯片的应用设计。

除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法十分类似于一般的计算机高级语言。

VHDL的程序特点是将一项工程设计,或称为设计实体(可以是个元件、电路模块或一个系统)分成外部(或称可示部分,即端口)和内部(或称为不可视部分,即结构体)两部分,外部负责对设计实体和端口引脚命名和说明,内部负责对模块功能和算法进行描述。

在对一个设计实体定义了外部界面后,一旦其内部结构、功能开发完成,即可生成共享功能模块,这就意味着,在顶层综合或其他设计中可以直接调用这个实体模块。

VHDL具有较强的行为描述能力,可避开具体的器件结构,从逻辑功能和行为上进行描述和设计。

2、QuartusⅡ6.0简介

QuartusII是Alera公司推出的一款功能强大,兼容性最好的EDA工具软件。

该软件界面友好、使用便捷、功能强大,是一个完全集成化的可编程逻辑设计环境,具有开放性、与结构无关、多平台完全集成化丰富的设计库、模块化工具、支持多种硬件描述语言与有多种高级编程语言接口等特点。

QuartusII是Altera公司推出的CPLD/FPGA开发工具,QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:

可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;

芯片平面布局连线编辑;

功能强大的逻辑综合工具;

完备的电路功能仿真与时序逻辑仿真工具;

定时/时序分析与关键路径延时分析;

可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;

支持软件源文件的添加和创建,并将它们链接起来生成编程文件;

使用组合编译方式可一次完成整体设计流程;

自动定位编译错误;

高效的期间编程与验证工具;

可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;

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

3、QuartusII软件设计流程

(1)打开QuartusII软件。

(2)选择路径。

注意:

工作目录名不能有中文。

(3)添加设计文件。

(4)选择FPGA器件。

Family选择Cyclone,240,8。

(5)建立原理图或用VHDL语言描述设计电路。

(6)对原理图或用VHDL语言进行编译,无误后进行添加信号。

(7)对上述电路进行仿真。

(8)进行管脚分配。

(9)全局编译。

(10)采用JTAG或AS模式进行下载测试。

QuartusII软件运行界面

4、可编程逻辑器件简介

FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。

它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。

FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。

FPGA的基本特点主要有:

(1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。

(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。

(3)FPGA内部有丰富的触发器和I/O引脚。

(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一

(5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。

课程设计的内容:

利用VHDL语言设计基于计算机电路中时钟脉冲原理的数字秒表。

该数字秒表能对

0秒~59分59.99秒范围进行计时,显示最长时间是59分59秒。

设计了复位开关和启停开关。

复位开关可以在任何情况下使用,使用以后计时器清零,并做好下一次计时的准备。

当计时达到59分钟59秒后,蜂鸣器响6声。

EDA设计方法与其设计过程:

1、设计规划

本系统设计采用自顶向下的设计方案,系统的整体组装设计原理图如图所示,它主要由控制模块、时基分频模块,计时模块和显示模块四部分组成。

各模块分别完成计时过程的控制功能、计时功能与显示功能。

2、系统的总体设计

(1)、顶层电路设计

数字秒表的顶层电路图运用自顶向下的设计思想,将系统按功能逐层分割的层次化设计方法。

在顶层设计中,要对内部各功能块的连接关系和对外的接口关系进行描述。

顶层电路图

(2)、数字秒表系统原理框图

数字秒表系统原理框图

3、各模块源程序

(1)、时基分频模块

时基分频模块的作用把输入时钟信号变为分频输出信号。

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_unsigned.all;

entitydivideris

port(clk,clr:

instd_logic;

q:

outstd_logic);

end;

architectureoneofdivideris

begin

process(clk)

variablecount:

integerrange0to24999;

begin

ifclr='

1'

then

q<

='

0'

;

elsifclk'

eventandclk='

ifcount=24999then

count:

=0;

q<

else

=count+1;

endif;

endif;

endprocess;

(2)、计时模块

计时模块执行计时功能,计时方法和计算机一样是对标准时钟脉冲计数。

他是由四个十进制计数器和俩个六进制计数器构成,其中毫秒位、十毫秒位、秒位和分位采用十进制计数器,十秒位和十分位采用六进制计数器。

①、十进制计数器

entitycount10is

port(clk,clr,start:

instd_logic;

bufferstd_logic_vector(3downto0);

co:

outstd_logic);

endcount10;

architectureoneofcount10is

process(clk,clr,start)

then

=(others=>

'

);

co<

ifstart='

ifq="

1001"

="

0000"

=q+1;

②、六进制计数器

entitycount6is

endcount6;

architectureoneofcount6is

0101"

(3)、显示模块

计时显示电路的作用是将计时值在LED数码管上显示出来。

计时电路产生的值经过BCD七段译码后,驱动LED数码管。

计时显示电路的实现方案采用扫描显示。

①、数据选择器

useieee.std_logic_arith.all;

entityseltimeis

port(clk,clr:

q1:

instd_logic_vector(3downto0);

q2:

q3:

q4:

q5:

q6:

sel:

outstd_logic_vector(2downto0);

dout:

outstd_logic_vector(3downto0));

end;

architectureoneofseltimeis

signalcount:

std_logic_vector(2downto0);

sel<

=count;

process(clk,clr)

ifclr='

count<

="

000"

ifcount>

101"

else

=count+1;

casecountis

when"

=>

dout<

=q1;

001"

=q2;

010"

=q3;

011"

=q4;

100"

=q5;

=q6;

whenothers=>

endcase;

②、BCD七段译码器

entitydeledis

port(num:

led:

outstd_logic_vector(6downto0));

architectureoneofdeledis

process(num)

casenumis

when"

led<

1111110"

0001"

0110000"

0010"

1101101"

0011"

1111001"

0100"

0110011"

1011011"

0110"

1011111"

0111"

1110000"

1000"

1111111"

1111011"

0000000"

(4)、蜂鸣器模块

entityalarmis

port(clk:

dain:

speak:

outstd_logic);

end;

architectureoneofalarmis

std_logic_vector(1downto0);

process(clk)

speak<

=count

(1);

ifclk'

eventandclk='

ifdain='

ifcount>

10"

count<

00"

else

endif;

系统仿真:

(1)、时基分频模块的仿真

(2)、计时电路模块的仿真

①、十进制计数器的仿真

十进制计数器的仿真图

②、六进制计数器的仿真

(3)、显示电路模块的仿真

①、数据选择器的仿真

②、BCD七段译码器驱动器的仿真

(4)、蜂鸣器模块的仿真

蜂鸣器的仿真

(5)、数字秒表整个系统的仿真

数字秒表起始工作的仿真图状态仿真图

结论:

本文利用EDA技术中的QuartusⅡ6.0作为开发工具,设计了一款基于FPGA的数字式秒表,并下载到在系统可编程实验板的EP1C12Q240C8器件中测试实现。

整个秒表系统的时钟信号源由实验板上的5MHZ的时钟信号经分频而得的100HZ的时钟信号。

整个设计分为6个主要模块。

在设计电路时,要遵循从上到下的设计原则。

首先从系统设计入手,在顶层进行功能划分和结构设计,顶层模块中的每个次层模块均可完成一个较为独立的功能,次模块在调试成功后可生成一个默认符号,以供上一层模块调用。

为设计项目选定器件,锁定顶层设计中各端口所对应的引脚号,并编译通过。

然后对器件编程,使用ByteBlaste下载电缆把项目以在线配置的方式下载到实验板的EP1C12Q240C8器件中,按相应的键,观测数码管与蜂鸣器的状态,发现显示结果正确。

该数字式秒表具有清零功能,能够在计时过程中随时停止计时,恢复到初始状态。

且该秒表还有启/停功能。

该数字秒表还具有溢出报警功能,当计时长度超过设定的长度时,会产生溢出报警信号驱动蜂鸣器报警。

实验证明该秒表工作正常,基本上已达到了预期的设计要求。

体会与感想、收获:

开始做设计时总是会犯一些错误,在不停的改错不停的编译下得到了正确的程序。

在编程时,我充分使用了结构化的思想,这样程序检查起来也比较方便,调试时也给了我很大方便,只要一个模块的进行调就可以了,充分体现了结构化编程的优势。

在设计中要求我要有耐心和毅力,还要细心,稍有不慎,一个小小的错误就会导致结果的不正确,而对错误的检查要求我要有足够的耐心,通过这次设计和设计中遇到的问题,也积累了一定的经验,对以后从事集成电路设计工作会有一定的帮助。

路漫漫其修远兮,吾将上下而求索。

我愿在未来的学习过程中,以更加丰厚的成果来答谢曾经关心、帮助和支持过我的所有老师、同学。

感谢他们对我的关心和支持!

参考文献:

[1]张亦华,延明,肖冰.数字逻辑设计实验技术与EDA工具[M].北京:

北京邮电大学出版社,2003

[2]卢毅,赖杰.VHDL与数字电路设计[M].北京:

科学出版社,2001

[3]包明等.EDA技术与数字系统的设计.[M].北京:

北京航空航天大学出版社,2002

[4]朱明程.VHDL设计中电路简化问题的探讨[J].电子技术应用,2000

[5]王烈军.电子综合设计与设计.西安交通大学出版社,2010

[6]江国强.EDA技术与应用.[M].电子工业出版社,2011

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1