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.

相关推荐
ZPC82104 天前
docker 镜像备份
人工智能·算法·fpga开发·机器人
ZPC82104 天前
docker 使用GUI ROS2
人工智能·算法·fpga开发·机器人
tiantianuser5 天前
RDMA设计53:构建RoCE v2 高速数据传输系统板级测试平台2
fpga开发·rdma·高速传输·cmac·roce v2
博览鸿蒙5 天前
FPGA 和 IC,哪个前景更好?怎么选?
fpga开发
FPGA_小田老师5 天前
xilinx原语:ISERDESE2原语详解(串并转换器)
fpga开发·iserdese2·原语·串并转换
tiantianuser5 天前
RDMA设计50: 如何验证网络嗅探功能?
网络·fpga开发·rdma·高速传输·cmac·roce v2
Lzy金壳bing5 天前
基于Vivado平台对Xilinx-7K325t FPGA芯片进行程序在线更新升级
fpga开发·vivado·xilinx
unicrom_深圳市由你创科技5 天前
医疗设备专用图像处理板卡定制
图像处理·人工智能·fpga开发
tiantianuser5 天前
RDMA设计52:构建RoCE v2 高速数据传输系统板级测试平台
fpga开发·rdma·高速传输·cmac·roce v2
luoganttcc5 天前
Taalas 将人工智能模型蚀刻到晶体管上,以提升推理能力
人工智能·fpga开发