基于FPGA的计时器的设计毕业设计

发布时间 : 星期六 文章基于FPGA的计时器的设计毕业设计更新完毕开始阅读

2.5 Quartus Ⅱ概述及其设计流程 2.5.1 Quartus Ⅱ概述

Quartus Ⅱ是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。Quartus Ⅱ可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。具有运行速度快,界面统一,功能集中,易学易用等特点。 Quartus Ⅱ支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。此外,Quartus Ⅱ通过和DSP Builder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。Maxplus Ⅱ作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。目前Altera已经停止了对Maxplus Ⅱ 的更新支持,Quartus Ⅱ与之相比不仅仅是支持器件类型的丰富和图形界面的改变。Altera在Quartus Ⅱ中包含了许多诸如SignalTap Ⅱ、Chip Editor和RTL Viewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了Maxplus Ⅱ 友好的图形界面及简便的使用方法。

Altera Quartus Ⅱ作为一种可编程逻辑的设计环境, 由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。Altera的Quartus Ⅱ可编程逻辑软件属于第四代PLD开发平台。该平台支持一个工作组环境下的设计要求,其中包括支持基于Internet的协作设计。Quartus平台与Cadence、ExemplarLogic、 MentorGraphics、Synopsys和Synplicity等EDA供应商的开发工具相兼容。改进了软件的LogicLock模块设计功能,增添 了FastFit编译选项,推进了网络编辑性能,而且提升了调试能力。支持MAX7000/MAX3000等乘积项器件。

2.5.2 Quartus Ⅱ设计流程 1、建立新工程:

首先将所设计工程项目划分为若干子模块,将每个子模块单独存放在一个文件夹中,并分别进行编译,验证通过后,将每个子模块的VHDL文本文件添加到总工程文件夹中,并建立图元(建立图元block,右键点击.V文件,选择 create symbol files for current files),将各个图元(亦即子模块)连接起来构成总体设计项目。 2、设计各子模块:

编写各子模块相应的代码,并分别进行编译,验证通过后将各子模块VHDL文件添加到顶层设计中,创建图元,进行连接以完成总体项目的设计。这部分就是将管脚连好。在原理图编辑中,英文的大小写代表相同的含义,只要器件连接线的节点名称相同就会默认为是连接的,总线(Bus)在图形编辑窗口显示的是一条粗线,总线必须在名称的后面加上“[a..b]”,表示一条总线内所含有的节点编号,原理图编辑的文件扩展名为“.bdf”,在Quartus Ⅱ中工程名称必须与顶层实体名称相同,且VHDL设计中实体名称亦为相同的名字,否则不能进行编译。 3、编译工程 4、仿真:

波形矢量文件的扩展名为“.vwf”,仿真分为功能仿真和时序仿真,也称为前仿真和后仿真,功能仿真是忽略延时后的仿真,是最理想的仿真,时序仿真则是加上了一些延时的仿真,是最接近于实际的仿真,在设计中通常先做功能仿真验证逻辑的正确性,后做时序仿真验证时序是否符合要求,需注意默认为时序仿真,在设置功能仿真后需要生成功能仿真网络表。

3 系统总体设计

本系统总体设计框图如图3.1所示。此设计主要由计费模块、预设模块、时钟分频模块、分拆模块、数码管显示模块、警告模块组成。控制部分是该课程设计的核心部分,用硬件描述语言Verilog来描述数字系统的结构、行为和功能,采用“自顶向下”的设计方法,将电路的硬件转变为软件设计。

整个系统的RTL视图见附录A。

图 3.1 系统设计结构框图

发出警告 数码管显示 预设类型 计费模块主控部分 通话状态 定时器计时 分频电路 3.1 计费模块介绍

本模块是用于设置本次所通话的类型和初始余额的。

根据电话局反馈回来的信号,代表话务种类(返回信号可自己输入),“00” 表示目前没打电话,“01”表示市内通话,“10”表示 长途通话,“11”表示特区童话;并用DE2板上的两个数码管来显示通话为何种类型;

利用DE2板上的两个数码管用来显示卡内余额(可自己设定初始余额),其单位为角,这里假定能显示的最大数额为99角 。余额根据打市话每分钟2角,打长话7角,打特话12角来计算;

余额过少时的告警信号。当打市话时,余额少于2角,打长话时,余额少于 6角,打特话时,少于12角,即会产生告警信号;

当告警时间过长(如超过1分钟)时自动切断通话信号。 计费模块的主体部分Verilog HDL语言描述见附录B。 3.2 预设模块介绍 本模块是用于设置本次所通话的类型和初始余额的。

当通话按键开关还没被按下时,用户可以随自己的意愿预设想要实现的通话类型和初始余额,一旦通话按键开关被按下,通话类型和初始余额这两个值就会被锁存,这时再去做任何调整,该系统也不会产生任何反应。 3.3 时钟分频模块介绍

本模块是用于将50MHZ的频率分成1HZ的频率。

分频的实现是通过一个计数器来实现的,由于系统自带的 外部晶振频率为50MHZ,所以我设置一个新的时钟,令它在原时钟的上升沿触发,而且每25000000次就取反一次,由此的得到的新时钟就是1HZ,即一个时钟周期为1S。

时钟分频模块的主体部分Verilog HDL语言描述见附录C。

图3.2为始终分频模块的仿真图,由于25000000倍仿真太大,无法看清这里只做了25倍的仿真。

时钟分频模块所对应的RTL视图见附录D。

图 3.2 分频模块的仿真图

联系合同范文客服:xxxxx#qq.com(#替换为@)