FPGA随记——FPGA时序优化小经验

为什么要做时序优化:

1.一般是低端芯片或者软件做的比价差,就会导致时序不好过,需要我们代码设计上或者软件约束上进行时序优化。

2.或者设计中频点的提升,时序收敛会比较难,需要优化。

3.时钟方案的复杂,比如跨时钟阈,或者大位宽的数据同步的处理等。

还有一些情况等等。

导致时序问题的原因:

1.时钟方案设计不合理,逻辑级数太高,跨时钟域处理的逻辑太多等;

2.模块设计不合理,导致信号扇出太大,太多等等;

3.工程初期的时序问题,主要不了解芯片的资源,特性等,导致芯片资源利用不合理;

时序优化方式:

1.复位处理:避免复位;异步复位同步释放;统一高电平有效复位

a.FPGA中所有的reg都会从已知值中启动,所以为了避免以初始化的目的添加复位寄存器,如果是那些需要复位的寄存器,还是要加上的复位的。

b.对于流水中位宽较大的寄存器,尽量不使用复位,以便于减少复位的扇出;

c.对于扇出较大的复位信号,则可以直接上BUFG,可以节省普通走线的资源,且对于之前延时比较大的延时,可以减少延时,但是不要使用太多。

d.对于内部产生的复位信号最好是以reg形式输出,对于扇出很大复位信号可以复制寄存器,减少扇出。(可以使用 max fanout 约束,如果大于这个扇出了,软件会自动给你复制一个reg)

2.跨时钟阈代码的处理

a.单bit信号或者位宽不大的信号,可以打排处理;

b.对于高频使用的且时钟阈很不固定的,可以转换成格雷码在进行数据同步,比如说fifo的地址(目前就知道这么一个)等,注意搭配 set_max_delay -datapath_only 约束使用---这个为什么 明天问问别人;

c.

相关推荐
南山维拉10 小时前
【AXI总线专题】AXI-FULL-Master
fpga开发·zynq·axi-full
矿渣渣11 小时前
ZYNQ处理器在发热后功耗增加的原因分析及解决方案
嵌入式硬件·fpga开发·zynq
起床学FPGA14 小时前
异步FIFO的学习
学习·fpga开发
1560820721919 小时前
锁相环HMC830的调试
fpga开发
吸纹鸽20 小时前
蓝桥杯FPGA赛道积分赛
fpga开发·蓝桥杯
&Cheems20 小时前
ZYNQ笔记(二十一): VDMA HDMI 彩条显示
笔记·嵌入式硬件·fpga开发
灵风_Brend2 天前
秋招准备——2.跨时钟相关
fpga开发
希言自然也2 天前
FPGA生成随机数的方法
fpga开发
156082072192 天前
QSFP+、QSFP28、QSFP-DD接口分别实现40G、100G、200G/400G以太网接口
fpga开发·信号处理
&Cheems2 天前
ZYNQ笔记(十九):VDMA VGA 输出分辨率可调
笔记·fpga开发