基于FPGA的FSK编码的VHDL实现 下载本文

xxxx大学本科毕业设计(论文)

电路功能设计 选片,自顶向下设计方法,将系统分为若干单元,每个单元继续划分,直到可以使用EDA元件库。 有原理图输入法,VHDL语言输入法。 设计输入 功能仿真 也称前仿真,是在编译之前对用户设计的电路进行逻辑功能验证。 将较高级抽象层次的描述转化成较低层次的描述。 把综合生成的文件反标注到综合仿真模块中去。 将综合生成的逻辑网表配置到具体的FPGA芯片上。 是指将布局布线的延时信息反标注到设计网标中来检测有无时序违规现象。 主要应用于高速电路设计中,以第三方工具进验证。 产生使用的数据文件,然后将编程数据下载到FPGA中。 图1.2 FPGA典型设计流程 综合 综合后仿真 设计实现与布局布线 时序仿真 板级仿真与验证 器件编程与调试 2、常用开发工具

FPGA 的设计软件很多 , 具体说来可包含以下软件 : 1. 设计输入( Design Entry ):Summit 公司的 VisualHDL 、 Mentor 公司的 Renoir 、 Aldec 公司的 ActiveHDL 。均支持图文混合的层次化设计。三者都提供 PC 版本, VisualHDL 还有工作站版本。

2. 仿真( Simulation ):仿真包括功能仿真和时序仿真。其中,功能仿真在布局布线之前;时序仿真在布局布线之后。仿真工具有 Mentor 公司的 Modelsim 和 Aldec 公司的 ActiveHDL ,二者同时支持 VHDL 和 Verilog 的仿真。 Cadence 公司也提供仿真工具,对 Verilog 的支持更强。 Modelsim 同时提供 PC 和工作站版本, ActiveHDL 只有 PC 版本。

3. 综合( Synthesis ):综合工具实现从 HDL 语言到 FPGA 或 ASIC 网

- 8 -

xxxx大学本科毕业设计(论文)

表的生成。目前有 Synopsys 公司的 FPGA Compiler II 、 Mentor 公司的 Examplar 和 Synplify 公司的 Synplicity 。三者都有 PC 和工作站版本。

4. 布局布线( Place & Route ):布局布线采用 FPGA 厂商提供的工具。 Xilinx 有 Foundation Series 和 Alliance Series 两个系列。 Altera 的两个系列是 MaxPlusII 和 Quartus 。

本次设计中使用Quartus II,它是Altera公司推出的CPLD/FPGA开发工具,Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,使用Quartus II就可以完成本次设计的所有要求。

9B

第二节 VHDL硬件描述语言简介

硬件描述语言有HDL、AHDL、Verilog HDL和VHDL等。VHDL语言的全称是“超高速集成电路硬件描述语言”(very high speed integrated circuit hardware description language)属于硬件描述语言中的一种,对系统硬件的描述功能很强而语法规范又比较简单。

其中符合IEEE-1076标准的VHDL的应用成为EDA解决方案中的首选。VHDL这种行为描述性语言将被广泛应用到新一代EDA硬件设计方案中,因此对VHDL的应用成为EDA解决方案的核心,更是整个电子逻辑系统设计的核心。

一、 VHDL语言的应用

18B

VHDL语言作为高级硬件行为描述型语言,如今已经广泛被应用到FPGA/CPLD和ASIC中的设计。严格地讲,VHDL是一种用来描述数字逻辑系统的“编程语言”。它通过对硬件行为的直接描述来实现对硬件的物理实现,代表了当今硬件设计的发展方向。VHDL是为了满足逻辑设计过程中的各种需求而设计的。

第一,它是可以用来描述逻辑设计的结构,比如逻辑设计中有多少个子逻辑,而这些子逻辑又是如何连接的。除此之外,VHDL并不十分关心一个具体逻辑依靠何种方式实现,而是把开发者的精力集中到逻辑所实现的功能上。

第二,VHDL采用类似高级语言的语句格式完成对硬件行为的描述,具备更强的模块化能力,并拥有良好的可读性以及程序的移植性。另外,VHDL淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于高级语言的表达式取代。这些也是为什么把VHDL称为“编程语言”的原因。

第三,VHDL给出逻辑的模拟与调试为设计工作提供了最大的空间。VHDL调试的过程是相当灵活的:一方面可以使用传统的调试方法,比如适用传统的波形激励或编写测试向量;另一方面,可以使用一些VHDL原码调试器,这类调试器可以大大加快VHDL程序调试的速度,因为它可以像调试软件一样单步跟踪调试每一条语句,并且可以设置断点,观察内部变量等。这些功能是传统的调试仿真方法所不具备的。这种调试器比较著名的有Aldec的Active-HDL。拥有高效率的生成代码,能够节省大量的资源。甚至不必编写任何测试向量便可以进行源代码级的调试。而且,设计者可以非常方便地比较各种方案之间的可行性及其优劣而不需做任何实际的电路实验。

- 9 -

xxxx大学本科毕业设计(论文)

二、 VHDL语言的特点与设计流程

19B

a) VHDL语言的特点

VHDL语言目前主要是对数字电路设计的描述,对模拟电路的设计尚不能很好地表达。VHDL语言的设计格式更是面向具体的硬件对象的语言,因此任何独立于硬件实体的程序设计是没有意义的。现在EDA设计代替了传统的手工设计,都是以FPGA、CPLD、EPLD等可编程器件作为系统中硬件的载体,大部分是以VHDL作为设计语言,并针对所使用的芯片来选择不同公司的软件在计算机上进行设计、综合。这种用程序设计完成的硬件结构可装载到对应的可编程器件中,进行仿真、模拟、验证。VHDL的语言特点主要有:

(1)更加类似软件上的高级语言,具备更强的模块化能力并拥有良好的可读性以及程序的移植性;

(2)淡化状态机,与或表达式等早一代硬件描述语言中的元素,用更类似于高级语言的表达式取代;

(3)拥有高效率的生成代码,能够节省大量的资源。

b) VHDL的设计流程

应用VHDL语言进行电子设计,首先要了解基本的设计流程。在EDA解决方案中采用VHDL要经过的流程如图2.1所示。

从图2.1可以看出,在分析系统指标后,就进入了设计阶段,首先是设计输入,可以采用的输入方式有VHDL语言、VHDL语言与逻辑图混合输入或采用逻辑图输入,这一步通常都使用芯片生产商提供的开发工具,有关这方面的内容将在后面介绍。接下来是对所输入的源文件进行编译,即HDL Synthesis。通常称为合成或逻辑合成,这一步通常由三个过程组成,分别是HDL语言合成(language synthesis或HDL compilation)、逻辑优化(optimization)、目标映射(technology mapping)。前两个过程很好理解,最后一步是为了适应不同公司的编译器而生成EDIF(electronic design interchange format)的中间文件,也有的生成AHDL、DSL、QDIF、XNF等内部网单描述文件。有些公司的软件自带编译器,而也有些公司的软件不带编译器,这时需要使用第三方软件,比较著名的有Exemplar 公司的Leonardo Spectrum 和Synplicity 公司的Synplify等。一般这类工具都采用Behavior Extracting Synthesis Technology(B.E.S.T.)和Synthesis Constraints Optimization Environment(SCOPE),这两种技术可以提高VHDL逻辑合成的效率和可靠性。另外,这类工具在生成EDIF文件的同时还生成VHDL格式的网单,可以用于对逻辑功能调

- 10 -

xxxx大学本科毕业设计(论文)

试(functional simulator)。这里的逻辑功能调试也就是图中的功能仿真,这是在芯片装载程序前的功能仿真模拟,它仅仅验证逻辑的正确性。在一般的EDA解决方案中,这一步一般采用编写测试向量或加激励波形的方法,只能对逻辑的输出信号进行模拟,而对于一些重要的内部信号则无能为力了。在采用VHDL后可以借助HDL Synthesis生成的VHDL格式的内部网单使用一些特殊的调试器对VHDL源程序进行类似于高级语言调试的单步跟踪调试。这样不仅可以观察重要的内部信号,而且可以清楚地看到程序执行的流程。一般还要经过时序模拟(timing simulatior)也就是图1.3中的时序分析,在这里可以对电路的工作频率、工作延时做定性的模拟,虽然这也还会跟实际情况有一定的差距,但还是建议开发者要进行这一步模拟。

系统要求 设计输入 VHDL与电路图混合 编译 功能仿真 时序分析 下载到芯片 系统调试 最终产品 图1.3 VHDL的设计流程

对于这些步骤,一般均可借助由芯片生产商提供的开发软件完成。因此一定要在这里将各项功能都调试正确,接下来就是对芯片进行装载程序,在这里

- 11 -