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

设计对象是由Verilog HDL或VHDL等HDL描述的RTL(寄存器传输级)级别电路。大体的设计流程包括对RTL描述进行逻辑综合、技术映射、布局布线、生成配置,最后写入FPGA进行系统验证。
逻辑综合(logic synthesis)是指从RTL描述生成逻辑电路的过程。逻辑综合的结果是输出网表(netlist)文件,其中包括逻辑门、触发器等逻辑元素的集合以及它们的连接关系。
将网表所表示的逻辑映射到哦FPGA实际的逻辑元素的过程称为技术映射(technology mapping)。大部分FPGA采用LUT(查找表)作为可编程元素。

RTL仿真是指使用testbench对RTL电路描述进行仿真的过程,目的是确认所设计的电路是否得到了预期输出。
仿真工具一般由仿真用的编译器(对源代码解析生成中间代码提高仿真效率)、仿真引擎(基于中间代码仿真,按时序引发电路运行事件完成处理)和波形查看器等部分组成。
根据考虑参数的精度,分为以下模型:
布局布线(place and route)利用片上逻辑和布线等资源实现网表的过程。首先对逻辑元素进行布局,然后进行网络布线。

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

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

实机功能验证:向FPGA写入配置数据后,可以在实机上进行用户电路的功能验证
优化:一般实现某种功能或行为的电路设计不唯一,逻辑综合、逻辑映射、布局布线等任何阶段存在多个结果。朝着给定目标修改编译条件从而改善结果,叫作优化。
由行为描述生产的电路的技术被称为高层次综合(High Level Synthesis, HLS)或行为综合(behavioral synthesis)
大多数行为综合工具采用C语言,一般吧变量映射为寄存器实例,数组映射为内存实例,函数映射为电路模块实例。顺序执行、分支、循环、函数调用等流程控制用状态机实现。
行为综合:基于C语言的行为级描述生成RTL级描述的过程,称为高层次综合或行为综合。通过数据流图和控制流图决定运行顺序和运行时刻称为调度,将变量和运算映射到寄存器或运算器的过程称为绑定,寄存器或运算器的数据选择器相连,并按照调度进行切换实现的运算称为数据通路。

通过高效地重复利用成品模块可以减轻开发周期、成本问题。
这种可以通用和重复使用的设计资产被称为IP,也可以叫作IP模块、IP核、IP宏等等。
硬核处理器就是以硬核形式集成在FPGA里的处理器。软核处理器是在FPGA可编程逻辑上实现的处理器。
构建过程中处理器、总线结构、内存以及外围电路都需要进行配置。硬核处理器通常只能设置工作主频,而软核处理器可以对流水线、缓存、运算器、指令等进行详细定制。
然后构建内存并将其连接到总线。
处理器系统运作需要对其进行软件开发。
将基于处理器系统所开发的硬件核软件整合,就可以在FPGA上运行了。
