前言
目前FPGA设计任务主要是两方面的作用:系统的原型实现和ASIC的原型验证。使用FPGA设计规范的目的是:
1. 在于规范整个设计流程,实现开发的合理性、一致性、高效性。
2. 形成风格良好和完整的文档。
3. 实现在FPGA不同厂家之间以及从FPGA到ASIC的顺利移植。
4. 便于新员工快速掌握本部门FPGA的设计流程。
以Altera为例,工具组合为 modelsim + Leonardo Spectrum / FPGA CompilerII + QuartusII,下面主要介绍FPGA设计的设计流程。
1. 设计流程概述
1.1 设计流程图
说明:
1. 逻辑仿真器主要指modelsim,Verilog-XL等。
2. 逻辑综合器主要指LeonardoSpectrum、Synplify、FPGA Express/FPGA Compiler等。
3. FPGA厂家工具指的是如Altera的Max+PlusII、QuartusII,Xilinx的Foundation、Alliance、ISE4.1等。
1.2 关键步骤的实现
1.2.1 功能仿真步骤
说明:
“调用模块的行为仿真模型”指的是RTL代码中引用的由厂家提供的宏模块/IP,如Altera 提供的LPM库中的乘法器、存储器等部件的行为模型。
1.2.2 逻辑综合
说明:
“调用模块的黑盒子接口”的导入,是由于RTL代码调用了一些外部模块,而这些外部模块不能被综合或无需综合,但逻辑综合器需要其接口的定义来检查逻辑并保留这些模块的接口。
1.2.3 功能仿真
功能仿真流程图:
说明:
一般来说,对FPGA设计这一步可以跳过不做,但可用于debug综合有无问题。
1.2.4 布局布线
布局布线流程图:
说明:
一般来说,布局布线功能在厂家提供的FPGA验证工具中进行,即在RTL图对各功能模块进行布局布线。
1.2.5 时序仿真
时序仿真流程图:
2. Verilog HDL设计
作为目前最常用、最容易上手的HDL语言,Verilog HDL语言有了C语言的逻辑性和书写习惯,也逐渐代替VHDL成为最受欢迎的一门硬件描述语言。针对混合设计和混合仿真的趋势,所有开发人员都应掌握Verilo