FPGA时序分析之关键路径(Critical Path)【华为静态时序分析资料】【数字IC笔试面试】【流水线】【重定时retiming】【STA静态时序分析】

目录

1. 组合逻辑中插入寄存器(插入流水线)

2. 寄存器平衡(重定时Retiming)

3. 操作符平衡(加法树、乘法树)

4. 消除代码优先级(case代替if…else)

5. 逻辑复制

6. 关键信号后移


参考:

(1)华为:静态时序分析与逻辑设计

(2)王敏志:FPGA设计实战演练(高级技巧篇)

 

文末】获取两个资料。

 

        关键路径通常是指同步逻辑电路中,组合逻辑时延最大的路径(这里我认为还需要加上布线的延迟)也就是说关键路径是对设计性能起决定性影响的时序路径

        对关键路径进行时序优化,可以直接提高设计性能。对同步逻辑来说,常用的时序优化方法包括PipelineRetiming、逻辑复制、加法/乘法树、关键信号后移、消除优先级等解决。

        静态时序分析能够找出逻辑电路的关键路径。通过查看静态时序分析报告,可以确定关键路径。在Vivado工具中,可以通过report_timing_summary 等来查看,如下图所示,WNSWorst Nagative Slack)对应最大延迟分析的所有时序路径的最差裕量(Setup,显示的Slack为时序裕量,Levels为该条路径上源逻辑驱动的级数,HignFanout为高扇出的值,源和目的,总的延时=逻辑延时+布线延时,这里,使用100MHz的时钟,对应周期10ns,逻辑延时最大0.535ns,布线延时1.950ns。

图片

 

 

1. 组合逻辑中插入寄存器(插入流水线)

        组合逻辑的延时过长,就会成为关键路径,这时可以考虑在该路径上插入额外的寄存器,这种方法也称为插入流水线,多用于高度流水的设计中。

        因为这种设计中额外插入寄存器增加的时钟周期延时并不会违反整个设计的规范要求,从而不会影响设计的总体功能性实现,也即额外插入的寄存器在保持吞吐量不变的情况下改善了设计的时序性能

        当然,其不可避免地会带来部分面积的增加,如图6-11所示。

图片

        在插入寄存器时,要在组合逻辑中选择合适的位置进行插入,使得插入寄存器后被分割出的几块小的组合逻辑延时基本一致。

        相当于下图所示的先加入寄存器,再对寄存器进行重定时Retiming

图片

 

 

2. 寄存器平衡(重定时Retiming)

      在不增加寄存器个数的前提下,通过改变寄存器的位置来优化关键路径,可以对比和流水线插入寄存器的不同

图片

 

图片

 

 

 

3. 操作符平衡(加法树、乘法树)

       平衡前,a和b均经过3个乘法器带来的延时,c经历2个,d经历1个,最长延时为3个乘法器延时。平衡后,树形结构,a、b、c、d均经历2个乘法器延时,最长延时为2个乘法器延时。

图片

 

 

4. 消除代码优先级(case代替if…else)

        本身确实不需要优先级的地方,可以使用case代替if…else,使得顺序执行的语句编程并行执行。如果确实有优先级,则不能这样做。

        这种消除代码中的优先级的策略也称为代码结构平坦化技术,主要针对那些带优先级的编码结构。

 

5. 逻辑复制

        当某个信号的扇出fanout比较大时,会造成该信号到各个目的逻辑节点的路径变得过长,从而成为设计中的关键路径,此时可以通过对该信号进行复制来降低扇出。

        高扇出的危害是大大增加了布局布线的难度,这样其扇出的节点也就无法被布局得彼此靠近,所以就导致了布线长度过大的问题

图片

 

6. 关键信号后移

        关键输入应该在逻辑最后一级提供,其中关键输入为芯片、Slice、或者LUT提供的时延最大的输入,比如在if…else if…链中,将关键信号放在第一级。

图片

 

 

往期精彩:

字节跳动实习面试及基础问题解答

FPGA笔试面试题之FIFO深度计算【字节跳动】【大疆】【简便计算公式】

CDC跨时钟域处理及相应的时序约束【set_clock_groups】【set_max_delay】

不得不读的 FPGA 设计白皮书——Xilinx FPGA 复位策略白皮书翻译(WP272)

FPGA仿真必备——Matlab生成.mif/.txt/.coe【Testbench】【Modelsim】【Matlab】

FPGA手撕代码——CRC校验码的多种Verilog实现方式

Xilinx的高质量时钟输出ODDR原语【随路时钟】【全局时钟网络】【ZC706输出时钟】【ZYNQ】

DDS实现AM调制、DSB调制【Matlab】【FPGA】【Vivado】【信号处理】【通信原理】【软件无线电】

如何使用Xilinx官方例程和手册学习IP核的使用——以高速接口SRIO为例【Xilinx】【快速使用IP】【FPGA探索者】

FPGA笔试题——序列检测(FSM状态机)

前文汇总帖

 

欢迎关注:【FPGA探索者】,回复【关键路径】获取相关资料。

【华为2021秋招】FPGA逻辑笔试解析-2【修改】

【华为2021秋招】FPGA逻辑笔试解析【独家】【数字IC】【FPGA逻辑】【2021届秋招】

图片

 

华为FPGA(现场可编程门阵列)设计资料华为提供的关于FPGA设计的技术文档、指南和参考资料。这些资料包含了华为FPGA系列产品的详细规格、架构、功能特性以及设计方法等方面的信息。 首先,华为FPGA设计资料包括了相关的用户手册和参考指南,这些手册和指南提供了对FPGA设计工具的详细使用说明,包括设计流程、编程语言、时序分析、电路设计方法等等。通过这些资料,设计人员可以了解如何正确地使用FPGA设计工具进行设计。 其次,华为FPGA设计资料还包括了FPGA器件的规格手册和技术说明,这些文件详细介绍了FPGA器件的特性参数、管脚定义、时钟与时序控制、存储器和DSP资源等方面的信息。设计人员可以根据这些资料来选择合适的FPGA器件,并正确地使用器件的各项功能。 此外,华为还提供了FPGA的设计实例、应用笔记和设计案例等相关资料。这些资料展示了如何应用FPGA进行各种不同类型的设计,如数字信号处理、图像处理、通信接口设计等。通过这些案例,设计人员可以学习和借鉴其他人的设计经验,以提高自己的FPGA设计水平。 总的来说,华为FPGA设计资料是一系列涵盖了FPGA设计开发的文档和资料,提供了全面的技术支持和指导。这些资料对于FPGA设计人员来说是非常宝贵的资源,可以帮助他们更加高效、准确地完成FPGA设计任务。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值