FPGA的设计流程

FPGA基本结构

FPGA 的基本结构包括可编程输入输出单元可配置逻辑块数字时钟管理模块嵌入式块RAM布线资源内嵌专用硬核底层内嵌功能单元

1. 典型FPGA开发流程与注意事项

FPGA的设计流程就是利用EDA开发软件和编程工具对FPGA芯片进行开发的过程,典型FPGA的设计流程如下:
需求定义→设计输入→功能仿真→设计综合→设计实现→配置下载→片上实时调试
对应各流程细分得到详细步骤:
功能定义/器件选型→设计输入(verilogHDL、VHDL)→功能仿真→综合优化→映射→布局→布线→时序分析→位流生成→板级仿真→芯片编程与调试

1.1 需求定义

  1. 这个设计是做什么用的?
  2. 需要实现什么功能?
  3. 有什么要注意的地方?

1.2 设计输入

设计输入是将所设计的系统或电路以开发软件要求的某种形式表示出来,并输入给EDA工具的过程。常用方法:
  1. 硬件描述语言(HDL):verilogHDL,VHDL
  2. 原理图输入方法(目前很少使用)

1.3 功能仿真

电路设计完成后,要用专用的仿真工具对设计进行功能仿真,验证电路功能是否符合设计要求。功能仿真有时也被称为前仿真

1.4 综合优化

综合优化(Synthesize)是将硬件语言或原理图等设计输入翻译成由与,或,非门、RAM、触发器等基本逻辑单元组成的逻辑连接(网表),并根据约束条件优化生成的逻辑连接,输出edf和edn等文件。

1.5 实现

实现可理解为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能连接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)。主要包括以下内容: a. 映射:将网表中逻辑门映射成物理元素,即把逻辑设计分割到构成可编程逻辑阵列内的可配置逻辑块与输入输出块及其它资源中的过程。 b. 布局布线:布局是指从映射取出定义的逻辑和输入输出块,并把它们分配到FPGA内部的物理位置,通常基于某种先进的算法,如最小分割、模拟退火和一般的受力方向张弛等来完成;布线是指利用自动布线软件使用布线资源选择路径试着完成所有的逻辑连接。因最新的设计实现工具是时序驱动的,即在器件的布局布线期间对整个信号通道执行时序分析,因此可以使用约束条件操作布线软件,完成设计规定的性能要求。在布局布线过程中,可同时提取时序信息形成报靠。

1.6 时序分析

在设计实现过程中,在映射后需要对一个设计的实际功能块的延时和估计的布线延时进行时序分析;而在布局布线后,也要对实际布局布线的功能块延时和实际布线延时进行静态时序分析。 静态时序分析器可以用来检查设计的逻辑和时序,以便计算各通中性能,识别可靠的踪迹,检测建立和保持时间的配合,时序分析器不要求用户产生输入激励或测试矢量。

1.6 编程调试

设计的最后一步就是编程调试。芯片编程是指产生使用的数据文件(位数据流文件,Bitstream Generaon),将编程数据加载到FPGA芯片中;之后便可进行上板测试。最后将FPGA文件(如.bit文件)从电脑下载到单板上的FPGA芯片中。
posted @ 2021-08-19 16:40  27岁的太阳  阅读(847)  评论(0编辑  收藏  举报