企业集团

首页 > 光纤系统 > 光纤布线

FPGA的详细开发流程

FPGA的详细开发流程

来源:淘金网官网入口    发布时间:2023-10-30 07:11:35 1
进行开发的过程,所以 FPGA 芯片开发流程讲的并不是芯片的制造流程,区分于流程哟(流程多麻烦,要好几十亿的费用呢,而且国内也貌似没有哪家像样的 Foundry 厂,除了台湾的 TSMC 在世界有

  进行开发的过程,所以 FPGA 芯片开发流程讲的并不是芯片的制造流程,区分于流程哟(流程多麻烦,要好几十亿的费用呢,而且国内也貌似没有哪家像样的 Foundry 厂,除了台湾的 TSMC 在世界有立足之地,Fabless 的 IC 设计公司倒是挺强的如 Hisilicon,这也是它为何会被 USA 针对的原因)。

  例如,基于标准单元与基于 FPGA 的 APR 自动布局布线的不同之处在于:FPGA 内部的逻辑单元以及走线资源都是固定的,布局布线工具只是完成怎么样去使用这些资源以使得整个设计收敛;而基于标准单元的 APR 的标准单元位置和走线资源都是自己设计调整的,所以灵活性更大,更加容易使得整个设计收敛。

  如下所示,最重要的包含电路设计、设计输入、综合(优化)、布局布线(实现与优化)、编程配置五大步骤,其中,还有功能仿真、静态仿真、时序仿真三大仿真,以及综合约束、布局布线约束(包括位置约束和时序约束)两大约束等等。

  Before FPGA Design:在电路设计之前,首先要进行的是算法的设计与验证、方案论证、架构设计和 FPGA 芯片选型等等准备工作;算法工程师可以在PythonMatlab设计中完成,而至于算法是怎么来的,通常是依据市场需求来开发的,这个就不在本次讨论之中了。系统工程师根据任务要求,如系统的指标和复杂度、成本、功能性和稳定能力、性能、对工作速度(延时和工作频率)和芯片本身的各种资源、功耗等等方面做权衡(红色加粗部分也是数字电子系统的五大设计目标),选择合理的设计的具体方案(浮点定点、设计优化)和合适的 FPGA 器件类型(如 Cylone、Spartan、Artix、Virtex、Kintex、还是 Zynq 或者是 Zynq UltraScale + 等等)。

  FPGA Design:电路设计方法分为自底向上和自顶向下的设计方法;通常都采用自顶向下的设计方法:从系统模块设计开始,逐渐向子系统设计、模块设计、器件设计、版图设计等等更加物理的层次推进,直到可以直接用 EDA 元件库为止,能够先勾勒出来电路了,才开始 Coding(记住,Coding Style 也很重要哟)。

  设计输入指的是将设计者所涉及的电路以开发软件要求的某种形式表达出来,并输入到相应的软件中的过程。最常见的设计输入的表达方式为 IP 核、原理图(Schematic)和 HDL 文本输入。

  这里的 IP 按照来源的不同可大致分为三类,第一种是来自前一个设计创建的模块(Design by Yourself),第二种是 FPGA 厂家,第三种就是来自 IP厂商。而按照产品交付的形式,IP 核又分为软核(HDL 或 Netlist 形式的功能块,如 MicroBlaze 软核)、硬核(版图形式,提供设计的最终阶段产品,即掩膜,如 Zedboard 的ARMCortex-A9)、固核(Netlist 形式,完成了综合与布局布线的功能块,只能基于特定芯片的 IP 核)。

  FPGA 厂家和 IP 厂商可以在 FPGA 开发的不同时期提供给我们不同的 IP,我们暂且明白他们分别是未加密的 RTL 级 IP、加密的 RTL 级 IP、未经布局布线的网表级 IP、布局布线后的网表级 IP。

  无论是什么样的设计输入,最终都要通过综合,生成统一的网表形式,从而与 FPGA硬件资源互相匹配。例如,FPGA 是基于 LUT 结构的,那么就综合出一个基于 LUT 的门级网表文件(不同于 IC 的综合)。

  IC 综合指的是将高级抽象层次的设计描述自动转化为较低层次描述的过程,或者说,综合器就能将 Schematic 或者 HDL 文本语言描述的电路,编译成由与或阵列、RAM、触发器、寄存器等逻辑单元组成的电路结构的门级网表文件的工具,即 RTL - to - Netlist。

  综合包括编译、映射和优化,编译就是 HDL → 门级网表,映射就是门级网表 → LUT,优化就是优化设计。

  在Altera的开发流程中,编译和映射的过程叫做综合,而在 Xilinx 的开发流程中,由设计输入得到门级网表的过程叫做综合。

  布局布线指的是将综合生成的电路门级网表映射到具体的目标器件中实现,并产生最终的可下载文件的过程。

  产生延时网表结构,以便于进行精确的时序仿真,这时候的仿真结果能够比较精确地预测未来芯片的实际性能。如果仿真结果达不到设计的基本要求,就需要修改源代码或者选不一样速度的器件,直至满足设计的基本要求,例如普通加法器改为超前进位加法器,普通乘法器改为 Booth 乘法器等等,通过减少关键路径来满足时序要求;

  器件编程文件:如用于 FPGA 配置的 SOF,JAM,BIT 等格式的文件,用于 CPLD 编程的 JEDEC,POF 等格式的文件。由于布局布线与芯片的物理结构直接相关,所以一般选择芯片制造商提供的开发工具进行此项工作。

  约束分为综合约束(一级约束)和布局布线约束(二级约束),综合约束如资源共享约束(不同的约束将会导致生成不同性能的电路),布局布线约束又可大致分为位置约束、时序约束。

  约束,就是对这些操作环节定制规则,定制条件,比如引脚约束和时序约束;一般开发环境会对这些约束有个默认,这些默认的设置对大部分情况下还是适用的,但是通常布局布线约束中的 I/O 约束是我们每一个工程都必须给定的。

  仿真指的是对所设计电路功能的验证。仿真包括(功能)RTL 仿真、(门级)静态仿真和时序仿真。

  RTL 仿真:就是对你的 HDL 代码仿真,对你的 RTL 级描述的设计来测试;RTL 仿真,又叫功能仿真,也称为前仿真,是在编译之前对用户所设计的电路进行逻辑功能验证,此时的仿真没有一点延迟信息,是处于理想化状态的,例如对于一个寄存器(Register),它的输出端(Q Port)相对它的

  输入端(Clk Port)的延时为零延时(Delta Delay),是仅对初步的功能做验证的。

  静态仿真:指对综合之后的 LUT 门级网表进行仿真;静态仿真,又叫门级仿真,也称为综合后仿真,在仿真时,把综合生成的标准延时文件

  F 反标注到综合仿真模型中去,可估计门延时带来的影响,但不能估计线延时,此时的仿真也并不是十分准确,和布局布线后的真实的情况还是有一定差距的。

  时序仿真:在选择具体器件并完成布局布线后进行的包含延时的仿真;时序仿真,又叫布局布线后仿真,是指将布局布线的延时信息反标注到设计网表中来

  有无时序违规的现象(即是不是满足时序约束条件或器件固有的时序规则,如建立时间、保持时间等等;而此时,不同器件的内部延时都不太一样,不同的布局、布线方案所生成的延时也不太一样);时序仿真包含的延迟信息最全,也最精确,能较好地反映芯片的实际在做的工作情况。

  从验证完整性而言,前端仿真和后端仿真均需要在项目中实施,而它们侧重的目标也有不同。前端仿真是为经验测试出功能逻辑的缺陷,而后端仿真是为经验测试出实际门级电路中由于延时问题可能会引起采样失败进而产生的功能缺陷。

  工艺的非易失结构 CPLD 器件的下载称为编程;一般芯片编程是指产生使用的数据文件(如比特流文件(.bit)),然后将编程数据下载到 FPGA 芯片中。

  声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。举报投诉

  资料免费下载 /

  资料概述 /

  资料说明 /

  资料说明 /

  : 电路设计与设计输入 ;仿真验证:利用Xilinx集成的仿真工具足矣 ;逻辑综合:利用XST(Xilinx Synthesis Tool)工具 ;布局布线:利用Xilinx

  一般包括功能定义/器件选型、设计输入、功能仿真、逻辑综合、布局布线与实现、编程调试等主要步骤。

  总体按照图1进行,有些步骤可能由于其在当前项目中的条件的宽度的允许,可以免去。

  电子工程师如何跟家人解释 什么是示波器/示波器可以做什么? #21天学习打卡 #拒绝躺平 #示波器

  FM解调 电子工程师怎么样去使用频谱仪“正经摸鱼”#21天学习打卡 #拒绝躺平 #频谱分析仪

  瑞萨电子将投资900亿日元提高功率半导体产能;十余家CPU新企业成立,多家公司的关键人员来自阿里平头哥;

评论一舟