朗目疏眉网

FPGA设计流程

FPGA设计流程

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

逻辑综合知识点总结

设计流程和工具

image-20220918113805097

基于HDL(硬件描述语言)

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

逻辑综合和技术映射

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

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

image-20220918113907439

RTL 仿真

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

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

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

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

布局布线

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

image-20220918114952475

配置FPGA

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

image-20220918115434232

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

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

image-20220918120631484

其他

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

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

HLS设计

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

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

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

image-20220918122455546

基于IP的设计方法

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

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

包含处理器的设计

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

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

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

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

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

image-20220918123751545

未经允许不得转载:朗目疏眉网 » FPGA设计流程