图2.2 CPLD/FPGA系统设计流程
2.4 FPGA开发编程原理
硬件设计需要根据各种性能指标、成本、开发周期等因素,确定最佳的实现方案,画出系统框图,选择芯片,设计PCB并最终形成样机。
CPLD/FPGA软件设计可分为两大块:编程语言和编程工具。编程语言主要有VHDL和Verilog两种硬件描述语言;编程工具主要是两大厂家Altera和Xilinx的集成综合EDA软件QuartusII以及第三方工具。具体的设计输入方式有以下几种:
1.HDL语言方式。HDL既可以描述底层设计,也可以描述顶层的设计,但它不容易做到较高的工作速度和芯片利用率。用这种方式描述的项目最后所能达到的性能与设计人员的水平、经验以及综合软件有很大的关系。
2.图形方式。可以分为电路原理图描述,状态机描述和波形描述3种形式。电路原理图方式描述比较直观和高效,对综合软件的要求不高。一般大都使用成熟的IP核和中小规模集成电路所搭成的现成电路,整体放到一片可编程逻辑器件的内部去,其硬件工作速度和芯片利用率很高,但是当项目很大时,该方法就显得有些繁琐;状态机描述主要用来设计基于状态机思想的时序电路。在图形的方式下定义好各个工作状态,然后在各个状态上输入转换条件以及相应的输入输出,最后生成HDL语言描述,送去综合软件综合到可编程逻辑器件的内部。由于状态机到HDL语言有一种标准的对应描述方式,所以这种输入方式最后所能达到的工作速度和芯片利用率主要取决于综合软件;波形描述方式是基于真值表的一种图形输入方式,直接描述输入与输出的波形关系。
2.5 QuartusII设计平台
2.5.1 软件开发环境及基本流程
本设计所用软件主要是QuartusII,在此对它做一些介绍。
QuartusII是Altera提供的FPGA/CPLD开发集成环境,Altera是世界上最大的可编程逻辑器件供应商之一。QuartusII提供了一种与结构无关的设计环境,使设计者能方便地进行设计输入、快速处理和器件编程。
Altera公司的QuartusII 开发工具人机界面友好、易于使用、性能优良,并自带编译、仿真功能。QuartusII软件完全支持VHDL设计流程,其内部嵌有VHDL逻辑综合器。QuartusII 也可以利用第三方的综合工具,如FPGA Compiler II,并能直接调用这些工具。同样,QuartusII具备仿真功能,同时也支持第三方的仿真工具。此外,QuartusII与MATLAB和DSP Builder结合,可以进行基于FPGA
8
的DSP系统开发,是DSP硬件系统实现的关键EDA技术。
QuartusII包括模块化的编译器。编译器包括的功能模块有分析/综合器、适配器、装配器、时序分析器、设计辅助模块、EDA网表文件生成器、编辑数据接口等。可以通过选择Start Compilation来运行所有的编译器模块,也可以通过选择Start单独运行各个模块。在Compiler Tool窗口中,可以打开该模块的设置文件或报告文件,或者打开其它相关窗口。
图2.3上排所示的是QuartusII编译设计主控界面,它显示了QuartusII自动设计的各主要处理环节和设计流程,包括设计输入编辑、设计分析与综合、适配、编程文件汇编、时序参数提取以及编程下载几个步骤。图2.3下排的流程框图是与上面的QuartusII设计流程相对照的标准的EDA开发流程。
图形或HDL编辑Analysis & Synthesis(分析与综合)Filter(适配器)Assembler(编程文件汇编)编辑器Timing Analyzer(时序分析器)设计输入综合或编译适配器件下载仿真
图2.3 QuartusII设计流程
在设计输入之后,QuartusII的编译器将给出设计输入的错误报告。QuartusII拥有性能良好的设计错误定位器,用于确定文本或图形设计中的错误。在进行编译后,可对设计进行时序仿真。在仿真前,需要利用波形编辑器编辑一个波形激励文件。编译和仿真检测无误后,便可将下载信息通过QuartusII提供的编程器下载入目标器件中了。[6]
QuartusII图形用户界面的基本设计流程如下:
1.使用New Project Wizard(File菜单)建立新工程并指定目标器件或器件系列。
2.使用Text Editor(文本编辑器)建立 Verilog HDL、VHDL或Altera硬件描述语言(AHDL)设计。可以使用Block Editor(原理图编辑器)建立流程图
9
或原理图。流程图中可以包含代表其它设计文件的符号;还可以使用MegaWizard Plug-In Manager生成宏功能模块和IP内核的自定义变量,在设计中将它们实例化。
3.(可选)使用 Assignment Editor、Settings 对话框(Assignments 菜单)、Floorplan Editor或LogicLock功能指定初始设计的约束条件。
4.(可选)使用SOPC Builder或DSP Builder建立系统级设计。
5.(可选)使用Software Builder为Excalibur器件处理器或Nios嵌入式处理器建立软件和编程文件。
6.使用Analysis & Synthesis对设计进行综合。 7.(可选)使用仿真器对设计执行功能仿真。
8.使用Fitter对设计执行布局布线。在对源代码进行少量更改之后,还可以使用增量布局布线。
9.使用Timing Analyzer对设计进行时序分析。 10.使用仿真器对设计进行时序仿真。
11.(可选)使用物理综合、时序底层布局图、LogicLock功能、Settings对话框和 Assignment Editor进行设计优化,实现时序关闭。
12.使用Assembler为设计建立编程文件。
13.使用编程文件、Programmer 和Altera硬件编程器对器件进行编程;或将编程文件转换为其它文件格式以供嵌入式处理器等其它系统使用。
14.(可选)使用SignalTap II Logic Analyzer、SignalProbe功能或Chip Editor对设计进行调试。
15.(可选)使用Chip Editor、Resource Property Editor和Change Manager进行工程更改管理。
2.5.2 具体设计流程
1.建立工作库文件夹和编辑设计文件
首先建立工作库目录,以便存储工程项目设计文件。
任何一项设计都是一项工程(Project),都必须首先为此工程建立一个放置与此工程相关的所有设计文件的文件夹。此文件夹将被EDA软件默认为工作库。一般来说,不同的设计项目最好放在不同的文件夹中,而同一工程的所有文件都必须放在同一文件夹中。
2.创建工程
10
使用New Project Wizard可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称,还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA工具,以及目标器件系列和具体器件等。
3.编译前设置
在对工程进行编译处理前,必须做好必要的设置。步骤如下: a.选择FPGA目标芯片 b.选择配置器件的工作方式 c.选择配置器件和编程方式 d.选择输出设置
e.选择目标器件闲置引脚的状态 4.全程编译
QuartusII编译器是由一系列处理模块构成的,这些模块负责对设计项目的检错、逻辑综合、结构综合、输出结果的编辑配置,以及时序分析。在这一过程中,将设计项目适配到FPGA目标器中,同时产生多种用途的输出文件。编译器首先检查出工程设计文件中可能的错误信息,供设计者排除。然后产生一个结构化的以网表文件表达的电路原理图文件。
11
相关推荐: