FPGA 的设计开发流程主要包括以下步骤
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FPGA的设计开发流程主要包括以下步骤:设计输入( Design Entry )、仿真验证( Verification )、综合( Synthesis )及布局布线( Place & Route)和比特流生成。
在简单的 FPGA 设计中,设计输入就是使用硬件描述语言编写 RTL 的过程,虽然还有一些基于状态图、真值表、流程图、方框图的设计输入方法,现在基本已经被淘汰。硬件描述语言最重要的是 Verilog / SystemVerilog,其次是VHDL 。目前基于 VHDL 的设计越来越少。 SystemVerilog 是 VHDL 和 Verilog 合并后产生的新语言,是它们的继承和发展。对于初学者,学习 SystemVerilog 就够了。设计输入编辑工具有很多, ModelSim 、Visual HDL 、 ActiveHDL 、ISE 、Quartus II 都有针对 HDL 的编辑工具,也有些人使用支持 Verilog 语法高亮的 UltraEdit 。 ActiveHDL 提供 HDL 语法高亮显示、自动产生文本结构、自动格式化文本等非常有益的文本编辑浏览特性,在国内很受欢迎。对于设计输入,核心的问题是有三个:(1)熟练使用 HDL 语言(2)准确的把握要完成的设计功能及其性能指标;(3)充分理解常见的设计思想,保证设计功能和性能指标的恰当表达。
基于HDL的设计输入的缺点是效率低下,不能满足复杂设计快速实现的要求,其优点是与电路结构紧密联系,能够清晰的表达跨时终域、延迟、逻辑工程和比特存储功能。近年来,基于 C / SystemC 语言的算法综合和系统级综合技术发展迅速。用户只需使用 C / SystemC 描述目标设计,工具就能够自动完成 C / SystemC 描述到 RTL 描述的综合。这种新技术在航空、航天、军工等领域广泛使用,主要用于运算加速。目前比较成功的 C / SystemC 描述到 RTL 描述的综合的软件有 CoDeveloper ( Impulse C )、 Catapult C 等。我们也在研发一种称作 ESLFlex 的国产综合软件。 ESLFlex 与 CoDeveloper ( Impulse C )、Catapult C 等的区别是: ESLFlex 是一种系统级综合工具,在系统级综合领域有一些独特的创新,从SystemC 非定时模型得到异构多核SoC ,而CoDeveloper ( Impulse C )、Catapult C 是算法综合工具,综合的结果是一个算法加速IP。
设计输入的另外一个重要技能是学会使用 FPGA 厂商提供的设计库,里面有大量可根据应用定制的专门单元,如 FIFO 、SRAM 、差分IO 、 DLL 等。
仿真验证是 FPGA 开发的第二个步骤,目的是验证所编写的 HDL 或者高层次综合得到的 HDL 的功能正确性,即是否与预定的功能相符。这时需要使用SystemVerilog 或者 SystemC 编写 Testbench,以产生 RTL 设计的激励,并对RTL 的输出进行分析。简单的设计使用 SystemVerilog 编写 Testbench 即可,对于复杂的设计以及软硬件结合的设计,使用 SystemC 更加方便。验证的最基本方法是仿真。仿真包括功能仿真和时序仿真。其中,功能仿真在布局布线之前,检查设计输入的正确性;时序仿真在布局布线之后,主要检查时序的收敛性,综合结果与功能仿真的不一致性。常见的仿真工具有 ModelSim 、 ActiveHDL 等。仿真工具都支持 SystemVerilog 、 SystemC 和 VHDL ,也支持这些语言混合在一起的设计。对于一些小的设计,主要是肉眼观察仿真结果是否与预期相符,对于一个复杂的大设计,要首先验证每一个子模块的功能正确性,对于整个大设计,
要使用工具对比参考设计比如基于C语言的参考设计在同样的激励下产生的输出与 RTL 的输出是否相同。
综合( Synthesis )及布局布线( Place & Route)和比特流生成都是设计工具自动完成的步骤。当然,也需要使用者进行一些设置,以使得工具自动完成的结果更加符合预期。综合工具实现从 HDL 语言到门级网表的生成。 FPGA 厂商的 FPGA 集成开发环境一般提供综合工具,比如 Xilinx 的 XST 和 Altera Quartus II 内置的综合工具,目前使用最广泛的第三方综合工具是 Synplicity 公司的Synplify 。布局布线采用FPGA 厂商提供的工具。Xilinx 有Foundation Series, Altera有Quartus II。布局布线更具体的包括门级网表到 FPGA 基本单元的转换( Xilinx 称作 Translate ,Altera 称作 Map )和实际的布局布线( Xilinx 称作 PAR,Altera 称作 Fit )。布局布线的结果进一步被用来可以下载到 FPGA 比特流。在进行布局布线之前,我们需要设置顶层设计的每一个输入输出与实际 FPGA 管脚的对应关系。这种对应关系是在在电路板设计的原理图设计阶段确定的。如果你的板子是买来的开发板,在开发板的资料中通常会包括原理图。在没有原理图的情况下,厂家会在其他资料中明确给出每一个 FPGA 的管脚是怎么与其他芯片连接的。
(责任编辑:admin)