基于FPGA的计数器的程序的设计方案

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

基于FPGA的计数器的程序设计方案

1.1 FPGA简介

FPGA(Field-Progrmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了

原有可编程器件门电路数有限的缺点。

自1985 年Xilinx 公司推出第一片中大规模现场可编程逻辑器件(FP2GA) 至

今,FPGA 已经历了十几年的历。在这十几年的过程中,可编程器件有了惊人的发展:

从最初的1200 个可利用门,到今天的25 万可利用门,规模增大了200 多倍; FPGA 供应商也从Xilinx 的一枝独秀,到今天近20 个厂商的分庭抗争;FPGA 从单一的基于SRAM结构到今天各种结构类型的出现,都充分体现了可编程器件这一巨大市场的吸引力。FPGA 不仅可以解决电子系统小型化、低功耗、高可靠性等问题,而且其开

发周期短、开发软件投入少、芯片价格

不断降低。由于目前电子产品生命周期相对缩短,相近功能产品的派生设计增多

等特点,促使FPGA 越来越多地取代了ASIC 的市场,特别是对国内众多的科研单位来说,小批量、多品种的产品需求,使得FPGA 成为首选。

1.2 硬件描述语言VHDL特点

功能强大、设计灵活。VHDL具有功能强大的语言结构,可以用简洁明确的源代码来描述复杂的逻辑控制。它具有多层次的设计描述功能,层层细化,最后可直接生成电路级描述。VHDL支持同步电路、异步电路和随机电路的设计,这是其他硬件描述语言所不能比拟的。VHDL还支持各种设计方法,既支持自底向上的设计,又支持自顶向下的设计;既支持模块化设计,又支持层次化设计。支持广泛、易于修改。由于VHDL已经成为IEEE标准所规范的硬件描述语言,目前大多数EDA工具几乎都支持VHDL,这为VHDL的进一步推广和广泛应用奠定了基础。在硬件电路设计过程中,主要的设计文件是用VHDL编写的源代码,因为VHDL易读和结构化,所以易于修改设计。强大的系统硬件描述能力。VHDL具有多层次的设计描述功能,既可以描

述系统级电路,又可以描述门级电路。而描述既可以采用行为描述、寄存器传输描述或结构描述,也可以采用三者混合的混合级描述。另外,VHDL支持惯性延迟和传输延迟,还可以准确地建立硬件电路模型。VHDL支持预定义的和自定义的数据类型,给硬件描述带来较大的自由度,使设计人员能够方便地创建高层次的系统模型。独立于器件的设计、与工艺无关。设计人员用VHDL进行设计时,不需要首先考虑选择完成设计的器件,就可以集中精力进行设计的优化。当设计描述完成后,可以用多种不同的器件结构来实现其功能。很强的移植能力。VHDL是一种标准化的硬件描述语言,同一个设计描述可以被不同的工具所支持,使得设计描述的移植成为可能。1.3 软件开发工具Quartus II 简介

Altera的Quartus II 设计软件提供了完整的多平台设计环境,它可以轻易满足

各种特定设计的需要,也是单芯片可编程系统 (SOPC) 设计的综合性环境和SOPC开

发的基本设计工具,并为Altera DSP开发包进行系统模型设计提供了集成综合环境。Quartus II设计工具完全支持VHDL、Verilog的设计流程,其内部嵌有VHDL、

Verilog逻辑综合器。

Quartus II 包括模块化的编译器。编译器包括的功能模块有分析/综合器(Analysis&Synthesis)、适配器(Fitter)、装配器(Assembler)、时序分析器(Timing Analyzer)、设计辅助模块(Design Assistant)等。可以通过选择 Start Compilation (Processing 菜单)来运行所有的编译器模块。若要单独运行各个模块,可以通过选择 Start(Processing 菜单),然后从 Start 子菜单中为模块选

择相应的指令。此外,还可以通过选择 Compiler Tool (Tools 菜单)并在Compiler Tool窗口中运行该模块来启动编译器模块。在 Compiler Tool 窗口中,

可以打开该模块的设置文件或报告文件,还可以打开其它相关窗口。

Quartus II支持层次化的设计,可以在一个新的编辑输入环境中对使用不同输

入设计方式完成的模块进行调试,从而解决原理图与HDL混合输入设计的问题。在设计输入之后,Quartus II的编译器将给出设计输入的错误报告。可以使用Quartus

II带有的RTL Viewer观察综合后的RTL图。Quartus II自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编译文件汇编(装配)、

时序参数提取以及编程下载几个步骤。

2 整体设计方案

设计基于FPGA的计数器,要求显示1个0-9999的四位计数器,可以由4个模

为10的十进制计数器级联而成,所以可以显示的频率范围是1-9999HZ。因此,频

率计的功能分割成四个模块:分频计,计数器,输出锁存器和译码显示电路。各个

模块均用VHDL语言描述并用quartus2进行仿真。本设计采用数控分频计,可以对

信号实现不同分频比,输出信号作为计数器输入。锁存器由一个外部脉冲控制可以

控制显示部分显示周期。当系统正常工作时,输入信号标提供频率,经过分频器分频,产生计数信号送入计数器模块,计数模块对输入的脉冲个数进行计数数结束后,将计数结果送入锁存器中,保证系统可以稳定显示数据,计数结果能够显示在七段

数码显示管上。

图1 设计方案

3 各个模块的设计和功能的具体分析

3.1 分频器设计

3.1.1 设计原理

分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电

子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方

法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分

频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号

均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。正弦

分频器除在输入信噪比低和频率极高的场合已很少使用。

数控分频器的功能是在输入端给定不同数据时,将对输入的时钟信号有不同

的分频比,对于一个N分频器,分频出的时钟周期是原时钟周期的N倍,频率变为

原来的1/N。对于一个8位计数器,如果输入数DD,然后启动计数器工作,则经过

D倍的时钟周期计数器溢出时,输出full变为高电平,再以full为敏感信号,对fout进行取反操作,如此N=2D。计数一次后,再重新计数,反复进行直至输入被赋予新值。对于数控分频数器,装载不同的计数初始值时,会有不同频率的溢出信号,从而得到不同的输出。数控分频器是利用计数值可并行预置的加法计数器设计完成的。

3.1.2 源程序及其仿真波形

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

USE IEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITY DVF IS

PORT ( CLK : IN STD_LOGIC;

DD : IN STD_LOGIC_VECTOR(7 DOWNTO 0);

FOUT : OUT STD_LOGIC );

相关文档
最新文档