南京观海微电子---如何减少时序报告中的逻辑延迟

简介: 本文介绍FPGA设计中影响性能的关键因素,包括时钟偏移、逻辑延迟和路径延迟,并结合Vivado时序报告分析违例原因。重点探讨降低逻辑延迟的优化方法:针对CLB器件路径,通过重定时、合并级联LUT、调整CARRY链;对含DSP、RAM等宏原语的路径,建议增加流水级、减少逻辑层级,并合理使用内置寄存器评估时序改善效果。

1. 引言

在FPGA逻辑电路设计中,FPGA设计能达到的最高性能往往由以下因素决定:

▪ 工作时钟偏移和时钟不确定性;

▪ 逻辑延迟:在一个时钟周期内信号经过的逻辑量;

▪ 网络或路径延迟:Vivado布局布线后引入的延迟量。

Vivado软件完成布局布线后,我们可以打开时序分析报告,来查看时序没有过的路径是由哪些因素导致的时序违规。Vivado会通过列表形式展示每条时序违规路径的信息,如下图所示。

双击上面表中的其中一条路径,会展开关于该路径更详细的时序报告,如下图:

上图这个时序违例的例子,可以看到,该路径逻辑延迟贡献了11.934%的延迟量、路径延迟贡献了88.066%延迟量。该路径逻辑级数为5,经过了2个CARRY4、1个LUT4和2个LUT6。

2. 降低逻辑延迟的方法

如果逻辑延迟大,我们需要查看该路径是不是只包含CLB器件,还是说该路径还经过了如DSP、RAMB、URAM、FIFO或GT等器件。

2.1 路径只包含CLB器件

常规布线路径是在寄存器(FD*)或移位寄存器(SRL*)之间的路径,它们经过一些 LUT、MUXF 和 CARRY 元件。通常会遇到以下几种情形导致逻辑延迟过大:

(1)较高逻辑层数(logic levels)的组合电路。用户在两个寄存器之间插入的组合逻辑过于复杂,级联了过多的LUT、CARRY等元件,导致逻辑延迟过高时序过不了。如下图中,两个寄存器之间有一个logic levels为5层的组合逻辑。

建议的解决方案:在设计的早期阶段,通过TCL命令“report_qor_assessment”,早些识别出逻辑层数较高组合逻辑,通过代码优化手段来降低逻辑层次。或者,在综合的时候,将“-retiming”全局变量勾选上。

(2)路径上有很多小的级联LUT(LUT1-LUT4)。这些多个小的级联查找表是可以被合并成数量更少的LUT的。阻止这些级联LUT合并的原因可能如下:

  • 有些小的LUT表存在一些扇出(扇出为10,或者更高);
  • 用户使用了一些properties语法,比如:KEEP、KEEP_HIERARCHY、DON’T_TOUCH或MARK_DEBUG。

建议的解决方案:移除掉这些properties语法,重新编译综合工程。

(3)路径上有单个CARRY(非级联)限制了LUT的优化,导致vivado布局也不是最优。

建议的解决方案:在综合的时候,使用“FewerCarryChains”综合指令。或者对该CELL在opt_design阶段设置CARRY_REMAP属性。(具体使用方法可以查看UG904)

2.2 路径包含其他复杂器件(DSP、RAM等)

如果时序路径上会经过宏原语元件(macro primitives)如DSP、RAM、URAM、FIFO或GT_CHANNEL等元件,布局布线的难度会加大,也会导致更高的布局布线延迟。降低这些路径的逻辑延迟方法如下:

(1)在进出宏原语元件电路周围,增加额外的流水结构。比如:

  • 原设计是用的一个大位宽RAM缓存数据,把这个大位宽RAM拆分成多个并行的小位宽RAM实现相同的功能。
  • 原设计乘法器为2级流水乘法器,把它改为2级以上的流水乘法器。
  • 数据进出宏原语元件时,都用寄存器打一拍等。

(2)在包含宏原语元件的路径上减少逻辑层数,这点对改善整个设计的性能提升很明显。

Tips: 在修改RTL之前,可以尝试把DSP、RAM、URAM的自带流水寄存器使能都打开,然后重新编译工程,看时序是否能有改善。比如将下面这条路径:

设置如下属性:

set_property -dict {DOA_REG 1 DOB REG 1} [get_cells xx/ramb18_inst]

注意,由于使能这些寄存器后,逻辑时序会有变动,此时的RTL功能和你原先设计是有出入的,所以不用生成bitstream,这样操作的目的只是为了看时序能如何改善。

相关文章
|
10月前
|
算法 数据处理 异构计算
南京观海微电子----Verilog流水线设计——Pipeline
本文介绍FPGA设计中提升数据处理效率的流水线(Pipeline)技术。针对传统复制电路资源消耗大的问题,Pipeline通过将操作分解为时序均衡的多级处理段,实现数据并行处理,显著提高吞吐率与系统时钟频率,兼顾资源利用率与处理速度,适用于高速、大型FPGA系统设计。
南京观海微电子----Verilog流水线设计——Pipeline
|
10月前
|
传感器 并行计算 算法
基于卡尔曼滤波的锂离子电池剩余电量估算
基于卡尔曼滤波的锂离子电池剩余电量(SOC)估算的方案,结合等效电路模型与自适应优化策略
|
10月前
|
人工智能 自然语言处理 算法
2025年12月,中国数字人平台技术革新与数字引擎未来生态
虚拟数字人技术正加速落地,领军企业凭借全链路技术与场景融合能力,推动金融、政务、电商等领域智能化升级,引领行业从形象还原迈向自主决策新阶段。
|
10月前
|
人工智能 自然语言处理 达摩院
2025年12月,中国数字人平台介绍与全栈技术驱动及技术指南
2025年,数字人迈向“能力拟人”新阶段,从形象展示进化为具备感知与决策的智能体。选型需超越外观,聚焦交互效率、安全合规、行业适配与持续运营,打造真正可落地的数字化生产力。
|
10月前
|
安全
南京观海微电子---DC 电源输入防反接保护电路总结
电源接反易烧毁元件,常用防反接保护有二极管型、整流桥型和MOS管型。二极管法简单但功耗高;MOS管导通电阻小、效率高,是主流方案,继电器法则适用于大电流场景。
南京观海微电子---DC 电源输入防反接保护电路总结
|
8月前
|
弹性计算 人工智能 前端开发
2026年OpenClaw(原Clawdbot)全栈实战指南:阿里云部署+Web页面集成+企业级优化
2026年,AI智能体技术进入规模化落地阶段,OpenClaw(前身为Clawdbot、Moltbot)凭借轻量化容器化架构、灵活的插件扩展体系,成为企业快速搭建定制化AI应用的核心框架。这款开源工具在GitHub上星标数已突破19万,支持对接Anthropic Claude、OpenAI GPT、阿里云百炼等主流大模型,可实现邮件处理、文件管理、智能问答、自动化任务触发等全场景需求。
1577 14
|
11月前
|
存储 机器学习/深度学习 自然语言处理
Transformer参数规模深度解析:从模型聪明说到实际影响
Transformer参数规模显著影响模型能力,参数越多,知识容量与模式识别能力越强,但存在边际效应和过拟合风险。现代大模型通过混合专家、量化压缩等技术提升参数效率,未来趋势是优化参数使用而非盲目扩大规模,实现性能与效率的平衡。(238字)
|
10月前
|
存储 人工智能 自然语言处理
Gemini 2.5 Flash / Nano Banana 系统提示词泄露:全文解读+安全隐患分析
本文揭示了Nano Banana的内部系统指令,展示其如何通过“描绘不等于认可”原则,将图像生成请求无条件传递给下游模型,禁止自身进行内容审查。该机制凸显“先生成、后过滤”的安全架构,引发对生成边界与伦理的深层思考。
1251 6
Gemini 2.5 Flash / Nano Banana 系统提示词泄露:全文解读+安全隐患分析
|
10月前
|
Web App开发 JSON JavaScript
测试框架跃迁:从 Selenium 到 Playwright 的实战指南
本文详细介绍了从Selenium迁移到Playwright的实战指南。通过对比二者核心差异,提供环境搭建、API迁移对照及高级特性转换方案。迁移后测试速度可提升40%,代码维护成本降低30%,显著改善稳定性问题。文章包含常见问题解决和性能优化技巧,为团队平滑升级测试框架提供了系统化路径。
|
人工智能 自然语言处理 C语言
【556AI】AI编程:面向自然语言编程 一场技术范式的革命
在计算机编程的漫漫长河中,编程语言的发展与变革始终是推动技术进步的核心力量。从早期晦涩难懂的机器语言,到结构严谨、功能强大的C语言,再到如今凭借自然语言就能实现代码生成的AI编程时代,每一次跨越都深刻地改变了软件开发的模式与格局。如今,AI编程正以自然语言为新的编程媒介,扮演着代码编译器的角色,引领我们进入一个全新的编程纪元。
657 0

热门文章

最新文章