FPGA设计流程

FPGA设计流程,第1张

FPGA20年最有影响力的25个研究成果 – CAD算法篇 - 知乎 (zhihu.com)

逻辑综合知识点总结

设计流程和工具

基于HDL(硬件描述语言)

设计对象是由Verilog HDL或VHDL等HDL描述的RTL(寄存器传输级)级别电路。大体的设计流程包括对RTL描述进行逻辑综合、技术映射、布局布线、生成配置,最后写入FPGA进行系统验证。

逻辑综合和技术映射
  • 逻辑综合(logic synthesis)是指从RTL描述生成逻辑电路的过程。逻辑综合的结果是输出网表(netlist)文件,其中包括逻辑门、触发器等逻辑元素的集合以及它们的连接关系。

  • 将网表所表示的逻辑映射到哦FPGA实际的逻辑元素的过程称为技术映射(technology mapping)。大部分FPGA采用LUT(查找表)作为可编程元素。

RTL 仿真

RTL仿真是指使用testbench对RTL电路描述进行仿真的过程,目的是确认所设计的电路是否得到了预期输出。

仿真工具一般由仿真用的编译器(对源代码解析生成中间代码提高仿真效率)、仿真引擎(基于中间代码仿真,按时序引发电路运行事件完成处理)和波形查看器等部分组成。

根据考虑参数的精度,分为以下模型:

  1. 对RTL所描述行为的直接仿真:可以对RTL描述的功能和行为的正确性进行验证
  2. 对综合后的网表进行仿真:需要在逻辑综合后执行,基于分配的逻辑元素、记忆元素的延迟,对信号变化的时许、动作的延迟等进行确认,也可以根据信号的变化计算功耗
  3. 考虑了布局布线结果的仿真:在布局布线完成后执行。可以估算布线事件,并在仿真时考虑这些因素。此阶段的仿真所得到的时序分析、耗电分析精度最高,但也最为耗时
布局布线

布局布线(place and route)利用片上逻辑和布线等资源实现网表的过程。首先对逻辑元素进行布局,然后进行网络布线。

配置FPGA

完成布局布线的电路,最终会以FPGA内逻辑元素和布线开关的编程数据的形式保存。这种数据文件的叫法有配置数据、比特流、编程文件等,文件扩展名为bit或sof。

将配置文件写入器件需要使用编程器,具体有下面几种方式:

  1. 通过JTAG写入: *** 作简单,断电重置后配置信息就会丢失。
  2. 通过编程用非易失性存储器写入(板载ROM)
  3. 通过存储卡或USB存储器写入。

其他

实机功能验证:向FPGA写入配置数据后,可以在实机上进行用户电路的功能验证

优化:一般实现某种功能或行为的电路设计不唯一,逻辑综合、逻辑映射、布局布线等任何阶段存在多个结果。朝着给定目标修改编译条件从而改善结果,叫作优化。

HLS设计

由行为描述生产的电路的技术被称为高层次综合(High Level Synthesis, HLS)或行为综合(behavioral synthesis)

大多数行为综合工具采用C语言,一般吧变量映射为寄存器实例,数组映射为内存实例,函数映射为电路模块实例。顺序执行、分支、循环、函数调用等流程控制用状态机实现。

行为综合:基于C语言的行为级描述生成RTL级描述的过程,称为高层次综合或行为综合。通过数据流图和控制流图决定运行顺序和运行时刻称为调度,将变量和运算映射到寄存器或运算器的过程称为绑定,寄存器或运算器的数据选择器相连,并按照调度进行切换实现的运算称为数据通路。

基于IP的设计方法

通过高效地重复利用成品模块可以减轻开发周期、成本问题。

这种可以通用和重复使用的设计资产被称为IP,也可以叫作IP模块、IP核、IP宏等等。

包含处理器的设计

硬核处理器就是以硬核形式集成在FPGA里的处理器。软核处理器是在FPGA可编程逻辑上实现的处理器。

构建过程中处理器、总线结构、内存以及外围电路都需要进行配置。硬核处理器通常只能设置工作主频,而软核处理器可以对流水线、缓存、运算器、指令等进行详细定制。

然后构建内存并将其连接到总线。

处理器系统运作需要对其进行软件开发。

将基于处理器系统所开发的硬件核软件整合,就可以在FPGA上运行了。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/2990843.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-09-23
下一篇 2022-09-23

发表评论

登录后才能评论

评论列表(0条)

保存