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.

相关推荐
电棍2339 小时前
verilog笔记
笔记·fpga开发
ZxsLoves20 小时前
【【Systemverilog学习参考 简单的加法器验证-含覆盖率】】
学习·fpga开发
Ronin-Lotus1 天前
嵌入式硬件篇---数字电子技术中的触发器
嵌入式硬件·fpga开发·触发器·数字电子技术·上位机知识
ehiway1 天前
FPGA+GPU+CPU国产化人工智能平台
人工智能·fpga开发·硬件工程·国产化
蓑衣客VS索尼克2 天前
什么是逻辑分析仪?
arm开发·人工智能·fpga开发
Terasic友晶科技3 天前
第29篇 基于ARM A9处理器用C语言实现中断<五>
c语言·fpga开发·定时器中断
9527华安3 天前
FPGA实现GTY光口视频转USB3.0传输,基于FT601+Aurora 8b/10b编解码架构,提供2套工程源码和技术支持
fpga开发·音视频·aurora·gty·usb3.0·ft601
博览鸿蒙3 天前
FPGA开发要学些什么?如何快速入门?
fpga开发
@晓凡3 天前
FPGA中利用fifo时钟域转换---慢时钟域转快时钟域
fpga开发
乘风~&3 天前
fpga助教面试题
fpga开发