基于FPGA的定时器/计数器的设计与实现摘要本课题旨在用EDA工具与硬件描述语言设计一个基于Altera公司的FPGA 16位计数器\定时器,可对连续和非连续脉冲进行计数,并且计数器在具有计数定时功能基础上,实现简单脉宽调制功能和捕获比较功能。
本设计采用QuartusII编译开发工具使用VerilogHDL 设计语言进行设计,并采用了由上而下的设计方法对计数器进行设计,体现了VerilogHDL 在系统级设计上自上而下设计风格的优点。
本设计中采用了三总线的设计方案,使设计更加简洁与规范。
本设计所有模块与功能均在Quartus II 7.0_1.4G_Liwz版本下通过编译与仿真,实现了定时器/计数器的设计功能。
关键词:VerilogHDL硬件描述语言;QuartusII;FPGA;定时器/计数器FPGA-based timer / counter design and implementationThis topic aims to use EDA tools to design a 16 bit counter \ timer based on Altera's FPGA by hardware descripe language, which can count continuous and discontinuous pulset, and the counter with the function of capture and PWM. This design uses VerilogHDL language and top-down design method to design the counter on QuartusII compile tool, the design reflect the advantages of VerilogHDL top-down design in system-level design. The design uses a three-bus design, which make design much more specifications and concise. The design and function of all modules are compiled and simulationed on the Quartus II 7.0_1.4G_Liwz versions, and achieve the timer / counter’s features.Key words: VerilogHDL hardware description language; QuartusII; FPGA; timer / counter河北大学2011届本科生毕业论文(设计)目录引言 (1)1 计数器设计方式选择与论证 (4)1.1 计数器实现方案论证 (4)1.2 设计方式选择认证 (4)1.2.1 自下而上的设计方法 (4)1.2.2 自上而下的设计方法 (4)1.2.3 混合的设计方法 (5)2 计数器整体设计方案 (6)3 计数器/定时器各种工作方式的设计 (8)3.1 计数模块 (8)3.1.1 位加计数器模块 (8)3.1.2 位减计数器 (9)3.2 顶层模块设计 (11)4 总结 (19)谢辞........................................ 错误!未定义书签。
参考文献. (20)引言●课题研究意义[1]近年来,随着FPGA规模越来越大、速度越来越快,并且成本也不断降低,在许多应用中FPGA已经开始取代ASIC,使FPGA的应用领域不断扩大。
目前FPGA广泛应用于通信、信号处理、嵌入式处理器、图像处理和工业控制等领域。
可编程逻辑器件从20世纪70年代发展至今,其结构、工艺、集成度、功能、速度、性能等方面都在不断的改进和提高;另外,电子设计自动化EDA(Electronic Design Automation)技术的发展又为可编程逻辑器件的广泛应用提供了有力的工具。
因此掌握FPGA的开发和使用是一项很有实用性的技术。
而计数器/定时器又是学习FPGA和FPGA硬件编程语言VerilogHDL语言和一个比较简单的入门级程序,同时计数器定时器也是现在数字电路中一个非常常用的器件,所以对定时器/计数器的研究,即能更好的学习FPGA和VerilogHDL语言,增加对FPGAR的掌握,又可以对计数/定时器这一常用数字电路器件进行一个更加详细的研究。
●国内外发展与应用[1-2]自1985年问世以来,FPGA(现场可编程门阵列)从集成电路与系统家族一个不起眼的小角色逐渐成为电子设计领域的重要器件。
它极大地提高了设计灵活性并缩短了产品上市时间,在通信、工业控制、航空领域中广泛应用。
现代电气传动技术的发展得益于电力电子技术、自动控制技术和微电子技术的发展,现代全控开关型电力电子器件制造技术的进步和PWM技术的产生使处于调速系统中的电机电流谐波减小、转矩脉动降低、电机运行效率和调速性能提高;而现代控制理论的发展为进一步改善电机调速性能提供了有利条件,出现了标志现代交流调速理论的矢量控制和直接转矩控制,使感应电机的调速性能可以和直流电机媲美;然而,10多年的研究经验告诉我们,优越的调速性能是需要强有力的微电子技术(以往主要是高速CPU)发展来保障的,先进的控制算法加上高速的计算处理能力才能使交流调速系统性能得到满足。
近年来发展起来的超大规模可编程逻辑芯片(FPGA/CPLD),由于其灵活的可编程能力、快速的并行信号处理方式、足够多的内部资源、无复位问题和程序跑飞的困扰等,使其在电气传动领域中获得了广泛应用。
●本文主要工作及内容安排本设计主要采用Altera公司的FPGA芯片,通过QuartusII设计开发软件及Verilog HDL 语言设计完成一个计数器/定时器的设计,在前言首先对课题来源及目的、意义进行了分析与介绍。
第一章则对设计方案进行了比较与选择。
第二章是对本次设计中用到的工具作一些简要介绍;第三章分模块对此次设计进行详细介绍;第四章是对本次设计的总结,并在本设计的基础上提出改进的方法,完善系统的功能以便更方便地应用于实践当中。
●所用工具简介1)Quarters II 简介[3]QuartusII可编程逻辑软件属于第四代PLD开发平台。
它提供了PLD设计的综合开发环境,是PLD设计的基础。
QuartusII集成环境支持PLD设计的设计输入、编译、综合、布局、布线、时序分析、仿真下载等EDA设计过程。
QuartusII还提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,主要包括以下几点:·能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
·可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;·芯片(电路)平面布局连线编辑;·LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;·使用组合编译方式可一次完成整体设计流程;·功能强大的逻辑综合工具;·完备的电路功能仿真与时序逻辑仿真工具;·支持软件源文件的添加和创建,并将它们链接起来生成编程文件;·定时/时序分析与关键路径延时分析;·自动定位编译错误;·高效的期间编程与验证工具;·可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;·可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;2)实验平台简介[5]本实验采用 GX-SOC/SOPC-CIDE实验平台实验,(如右图2-1),GX-SOC/SOPC-CIDE实验平台集众多功能于一体,采用全新的"核心板+……+核心板+平台主板"自由叠层结构。
根据研发需求,可实现基于ALTERA、XILINX、ACTEL、Lattice、TI/ADI(DSP)、ARM等厂家的软核/硬核处理器相结合的嵌入式系统设计。
灵活的CIDE综合创新开发实验平台功能强大、硬件接口丰富,平台嵌入式软件除支持C、C++语言开发之外,还支持uC/OS II、uClinux嵌入式操作系图1 GX-SOC/SOPC-CIDE实验平台统。
独特的核心板扩展接口可完美实现核心板与核心板、核心板与平台主板之间无缝连接,实现复杂的系统功能。
用户可根据需求,选择SOPC 和DSP组合、SOPC和ARM组合、ARM和DSP组合、单片机和SOPC的组合……通过模式转换功能,不同的硬件模块间,可实现近20种独立的具有特色的综合模块组合。
CIDE平台优异的综合性设计大大提高了开发平台的利用率,是SOPC、EDA、ARM、DSP、SOC、单片机相互结合的实验教学、电子系统设计创新实验室、嵌入式系统实验室、科研开发最理想的平台。
3)Verilog HDL硬件描述语言简介[6-8]VerilogHDL是在应用最为广泛的C语言基础上发展起来的一种硬件描述语言,它是由GDA公司的Phil Moorby于1983年创建的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。
1985年Moorby推出了它的第三个商用仿真器Verilog-XL,获得了巨大成功,从而使Verilog HDL得到迅速的推一和应用。
1989年CADENCE公司收购了GDA公司,使Verilog HDL成为该公司的独家专利。
1990年CADENCE 公司公开发表了Verilog HDL,并成立OVI(0pen Verilog International)组织以促进Verilog HDL语言的发展。
1995年Verilog HDL成为IEEE标准,即IEEE Standard 1364—1995。
4)Verilog HDL的主要特点[9-11]Verilog HDL既是一种行为描述语言,也是一种结构描述语言。
如果按照一定的规则和风格编写代码,就可以将功能行为模块通过工具自动转化为门级互连的结构模块。
这意味着利用Verilog语言所提供的功能,就可以构造一个模块间的清晰结构来描述复杂的大型设计,并对所需的逻辑电路进行严格的设计。
下面列出的是Verilog语言的主要功能:1、用延迟表示式或事件表达式来明确地控制过程的启动时间;2、通过命名的事件来触发其他过程里的激活行为或停止行为;3、提供了条件和循环等程序结构;4、提供了可带参数且非零延续时间的任务程序结构;5、提供了可定义新的操作符的函数结构;6、提供了用于建立表达式的算术运算符、逻辑运算符和位运算符;7、提供了一套完整的表示组合逻辑基本元件的原语;8 、提供了双向通路和电阻器件的描述;9、可建立MOS器件的电荷分享和衰减模型;10、可以通过构造性语句精确地建立信号模型;11、可描述顺序执行或并行执行的程序结构;此外,Verilog HDL语言还有一个重要特征就是:和C语言风格有很多的相似之处,学习起来比较容易。