-
ASIC和FPGA设计流程
ASIC设计流程
确定项目需求
- 确定芯片的具体指标:
物理实现
制作工艺(代工厂及工艺尺寸)
裸片面积(DIE 大小,DIE 由功耗、成本、数字/模拟面积共同影响)
封装(封装越大,散热越好,成本越高)
性能指标:
速度(时钟频率)
功耗
功能指标:
功能描述
接口定义 - 系统级设计:
用系统建模语言(高级语言 如 matlab,c 等)对各个模块描述,为了对方案的可行性进行验证
前端流程
- RTL 寄存器传输级设计
利用硬件描述语言,如 verilog 对电路以寄存器之间的传输为基础进行描述 - 功能验证(动态验证)
对设计的功能进行仿真验证,需要激励驱动,是动态仿真。仿真验证工具 Mentor 公司的Modelsim, Synopsys 的VCS,还有 Cadence 的 NC-Verilog 均可以对 RTL 级的代码进行设计验证,该部分称为前仿真,接下来逻辑部分综合之后再一次进行的仿真可称为后仿真。 - 逻辑综合(Design Compile)
需要指定特定的综合库,添加约束文件;逻辑综合得到门级网表(Netlist)。 - 形式验证(静态验证)
功能上进行验证,综合后的网表进行验证。常用的就是等价性检查方法,以功能验证后的HDL 设计为参考,对比综合后的网表功能,他们是否在功能上存在等价性。这样做是为了保证在逻辑综合过程中没有改变原先 HDL 描述的电路功能。做等价性检查用到 Synopsys 的Formality 工具。 - STA 静态时序分析
在时序上进行分析,用到 Synopsys 的 PT(Prime Time)工具,一般用在后端设计中,由版图生成网表进行 STA 更准确一些;STA 满足时序约束,得到最终的 Netlist。 - DFT(design for test)可测性设计
为了在芯片生产之后,测试芯片的良率,看制作有无缺陷,一般是在电路中插入扫描连(scan chain),DFT 是在得到 Netlist 之后,布局布线(Place and Route)之前进行设计。
后端流程
- 布局布线(Place and Route)
包括时钟树插入(布局时钟线),布局布线用到 Synopsys 的 IC Compiler(ICC)工具。 在布线(普通信号线)之前先布局时钟线,即时钟树综合 CTS(Clock Tree Synthesis),用到Synopsys 的 Physical Compiler 工具。 - 寄生参数提取(Extrat RC)
提取延迟信息 - 静态时序分析(STA)
加入了布局布线延迟,更真实的时序分析 - 版图物理验证
DRC(设计规则检查)、LVS(版图一致性检查)
工具:
Mentor:Calibre
Synopsys:Hercules
Cadence:Diva/dracula - 生成 GDSII 文件,Tap_off 流片
- 设计输入
设计输入方式有三种形式:IP 核、原理图、HDL。 - 功能仿真
功能仿真也称为前仿真,在编译之前对用户所设计的电路进行逻辑功能验证(此时没有延迟信息,仅对初步的功能进行检测)。仿真前,要先利用波形编辑器和 HDL 等建立波形文件和测试向量(即将所关心的输入信号组合成序列),仿真结果将会生成报告文件和输出信号波形,从中便可以观察各个节点信号的变化。如果发现错误,则返回设计修改逻辑设计。 - 综合优化
综合即是将较高级抽象层次的描述转化成较低层次的描述。综合优化根据目标与要求优化所生成的逻辑连接,使层次设计平面化,供 FPGA 布局布线软件进行实现。目前的层次来看,综合优化指将设计输入编译成由与门、或门、非门、RAM、触发器等基本逻辑单元组成的逻辑连接网表,而并非真实的门级电路。
注:真实的门级电路需要利用 FPGA 的布局布线功能,根据综合后生成的标准门级结构网表来生成。 - 综合后仿真
综合后仿真检查综合结果是否和原设计一致。在仿真时,把综合生成的标准延时文件反标注到综合仿真模型中去,可估计门延时带来的影响。 - 实现与布局布线
布局布线指为利用实现工具把逻辑映射到目标器件结构的资源中,决定逻辑的最佳布局,选择逻辑与输入输出功能链接的布线通道进行连线,并产生相应文件(如配置文件与相关报告)实现指将综合生成的逻辑网表配置到具体的 FPGA 芯片上,布局布线是其中最重要的过程。
注:布局将逻辑网表中的硬件原语和底层单元合理地配置到芯片内部的固有硬件结构上,并且往往需要在速度最优和面积最优之间作出选择。布线根据布局的拓扑结构,利用芯片内部的各种连线资源,合理正确地连接各个元件。 - 时序仿真
时序仿真也称为后仿真,指将布局布线的延时信息反标注到设计网表中来检测有无时序违规现象(即不满足时序约束条件或者器件固有的时序规则,如建立时间、保持时间等)。时序仿真中包含的延时信息最全、最精确,能较好反映芯片的实际工作情况。
注:不同芯片的内部延时不同,不同的布局布线方案也给延时带来不同的影响。 - 板级仿真与验证
板级仿真主要应用于高速电路设计中,对高速系统的信号完整性、电磁干扰等特征进行分析。 - 芯片编程与调试
设计的最后一步是芯片编程与调试。
芯片编程指产生使用数据文件(位数据流文件,Bitstream Generation),然后将编程数据下载到 FPGA 中。其中,芯片编程需要满足一定的条件,如编程电压、编程时序和编程算法等方面。
调试:主要的调试工具是逻辑分析仪(Logic Analyzer,LA),需要引出大量的测试管脚,且LA 价格昂贵。
-
相关阅读:
MySQL——事务
【mmDetection框架解读】入门篇三、VOC数据集转COCO数据集,在MMDetection中成功运行
前端工程化工具系列
Unity SRP 管线【第一讲:自定义渲染管线】
MySQL到TiDB:Hive Metastore横向扩展之路
Spring Boot 篇
全排列与组合
DM8重做日志文件和归档管理
【JavaEE进阶序列 | 从小白到工程师】String类常用的成员方法,一文直接上手使用
Redis
-
原文地址:https://blog.csdn.net/qq_40268672/article/details/126162269