FPGA的开发流程

来源:本站
导读:目前正在解读《FPGA的开发流程》的相关信息,《FPGA的开发流程》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《FPGA的开发流程》的详细说明。
简介: FPGA 的设计开发流程主要包括以下步骤:设计输入( Design Entry )、仿真验证( Verification )、综合( Synthesis )及布局布线( Place & Route)和比特流生成。

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 的管脚是怎么与其他芯片连接的。

提醒:《FPGA的开发流程》最后刷新时间 2024-03-14 01:12:05,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《FPGA的开发流程》该内容的真实性请自行鉴别。