Design Compiler:自适应重定时(Adaptive Retiming)
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482简介重定时是DC Ultra引入的一种时序优化技术可以将时序单元触发器和锁存器穿越组合逻辑前后移动以优化设计的时序和面积为提升电路时序性能提供了一个重要手段。根据使用场景的不同重定时可分为两类自适应重定时(Adaptive Retiming)和流水线重定时(Pipelined-Logic Retiming)本文关注的重点是简单介绍自适应重定时更多关于重定时的实现细节将在流水线重定时一文中涉及因为流水线重定时在2000版本就已推出而自适应重定时直到2007版本才推出它们的底层原理是类似的。使用方法不管是线负载模式还是拓扑模式只需要在使用compile_ultra命令综合时添加-retime选项不能同时指定-top或-only_design_rule选项否则-retime选项被忽略即可自动在优化过程中执行自适应重定时如下所示。dc_shell compile_ultra -retime需要注意的是如果时序单元的dont_touch、size_only或dont_retime属性被设置了则该时序单元不会被重定时包括自适应重定时与流水线重定时其他时序单元也不能跨越它进行移动。在自适应重定时过程中被移动的时序单元将会被重新命名使用前缀R和编号后缀例如R_123因此这些时序单元无法再与原始名使用信号名前缀和reg后缀对应。这通常不会给等价性检查带来问题因为这些重命名都会被记录在SVF文件中有关SVF文件的更详细介绍参考下面的博客。Design Compilerset_svf命令以及SVF文件简介https://blog.csdn.net/weixin_45791458/article/details/144069207?ops_request_misc%257B%2522request%255Fid%2522%253A%2522836664eccdd944f4e1a9cd4d2f2c8123%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257Drequest_id836664eccdd944f4e1a9cd4d2f2c8123biz_id0utm_mediumdistribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-2-144069207-null-null.nonecaseutm_termsvfspm1018.2226.3001.4450自适应重定时与流水线重定时的区别自适应重定时一般用于整体通用设计而不是那些显式使用流水线的逻辑通过移动时序单元以优化时序组(Path Group)中的关键路径(Worst Negative Slack, WNS)的延迟对于那些显式使用流水线的数据通路仍建议使用流水线重定时。可以同时使用自适应重定时和流水线重定时它们并不冲突。自适应重定时示例在综合前手动确定最佳的时序单元位置并进行RTL编码通常是一项耗时且困难的工作。自适应重定时可以自动调整设计中时序单元的位置以尽可能平衡时序单元间的延迟。当设计中的某些时序路径超过时序目标而其他时序路径又未充分利用时序裕量时这项技术尤为有用。如果设计中所有时序路径都已满足时序目标自适应重定时也可用于减少时序单元数量如可能以优化面积或功耗。在自适应重定时过程中时序单元会穿越组合逻辑向前或向后移动如图1所示。图1 自适应重定时图1的上半部分展示了向后移动时序单元为了保证端到端功能正确增加了一个时序单元看起来就像是时序单元复制但需要注意的是这与为了分摊负载而进行的复制(Register Replication)是不一样的图1的下半部分展示了向前移动时序单元为了保证功能正确减少了一个时序单元看起来就像是时序单元合并但需要注意的是这与为了减少面积而进行的合并(Register Merging)是不一样的但具有类似的功能。复位/置位的重要性上一小节说明了为了保证功能正确性自适应重定时会增加或减少时序单元的数量但是如果时序单元拥有异步复位/置位端还需要更多操作才能保证功能正确性这被称为初始状态等效化(Reset State Justification)。图2 复位值限制以图2为例假设最初的时序单元是一个带异步复位的触发器在图中用红色的0标注再发生了向后重定时后由于需要保证最后一个门的相关输入在复位时为0除了需要增加一个触发器还需要将带异步复位的触发器变更为带异步置位的触发器在图中用红色的1标注。除了图2所示的简单情况自适应重定时还可以处理可能出现的复位/置位冲突情况如图3所示。图3 出现冲突的自适应重定时假设网表1是最初的设计其中有些触发器使用异步复位也有些触发器使用异步置位在图中用0或1标注它们的复位/置位信号是共用的。假设发生了向后重定时就和图2类似触发器R4依旧保持原来的异步复位而触发器R7则从异步复位变成异步置位。为了保证异或门C5的输出在复位/置位时为1触发器R5和R6则存在两种情况一种如网表2所示一种如网表3所示。区别在于网表3可以合并触发器R4和R5并允许进一步向后自适应重定时而网表2则无法合并自然也无法进一步向后重定时。时序例外下的限制如果存在时序例外Design Compiler仅在所有被移动的时序单元具有相同的时序例外设置时才允许它们一起进行重定时移动还需要将compile_retime_exception_registers变量设置为true默认值为false支持的例外类型包括set_max_delay set_min_delay set_multicycle_path set_false_path group_path例如以下命令中的两个触发器具有相同的时序例外。set_max_delay 10 -to [get_pins r0/D r1/D]写成两条命令也可以但需要保证值的设置一致。set_max_delay 10 -to [get_pins r0/D] set_max_delay 10 -to [get_pins r1/D]真实案例下面将以一个真实案例说明自适应重定时的使用方式。下面的RTL代码描述了一个输入端有反相器的带异步复位的D触发器。module inv_push (input a, clk,rst_n, output z); reg result; assign z result; always (posedge clk, negedge rst_n) begin if(!rst_n) result 0; else result !a; end endmodule如果直接使用compile命令进行综合结果如图4所示。图4 不使用自适应重定时的综合结果如果使用下面的SDC命令进行约束则in2reg路径会出现时序违例此时使用compile_ultra -retime命令进行综合的结果如图5所示。create_clock -period 5 [get_ports clk] set_input_delay 4.99999 [get_ports a] -clock [get_clocks clk]图5 使用自适应重定时的综合结果注意到发生了向后自适应重定时触发器被重命名为R_0且变成了异步置位。综合时会提示Information: Retiming is enabled. SVF file must be used for formal verification. (OPT-1210)SVF文件中存在guide_retiming命令用于指导等价性检查。实际上即使不使用-retime选项直接使用compile_ultra命令综合的结果也是类似的如图6所示。图6 不使用自适应重定时的综合结果这是另一种被称为相位反转(Phase Inversion)的优化方式Design Compiler可以将反相器移动并穿过寄存器边界触发器此时没有重命名但也变成了异步置位。综合时会提示Information: Sequential output inversion is enabled. SVF file must be used for formal verification. (OPT-1208)SVF文件中存在guide_inv_push命令用于指导等价性检查。可以使用compile_seqmap_enable_output_inversion变量对于compile命令或者-no_seq_output_inversion选项对于compile_ultra命令禁止相位反转。

相关新闻

智能座舱电磁屏蔽:导电泡棉在车载大屏与域控制器中的应用

智能座舱电磁屏蔽:导电泡棉在车载大屏与域控制器中的应用

智能座舱集成了大屏显示、5G通信、语音交互等大量电子设备,在狭小空间内电磁兼容设计成为保障体验的关键。本文从座舱域控制器、中控大屏、T-Box、车载音响入手,解析导电泡棉在智能座舱中的关键应用。 当你坐进一辆现代智能汽车,映入眼帘的是…

2026/8/14 6:50:12 阅读更多 →
Kafka里实时消费Oracle变更数据,除了Debezium还有什么选择?

Kafka里实时消费Oracle变更数据,除了Debezium还有什么选择?

聊到把Oracle的变更数据实时推到Kafka,Debezium几乎已经成了一个默认选项。 数据库 → CDC → Kafka → 下游,这条链路清晰、组件开源、社区活跃,看上去确实很完美。 但如果你真的在生产环境用这套组合跑过Oracle的增量采集,尤其是…

2026/8/14 6:50:12 阅读更多 →
做一套能带来订单的地板网站建设方案,别花冤枉钱,这套干货帮你理清思路

做一套能带来订单的地板网站建设方案,别花冤枉钱,这套干货帮你理清思路

本文关键词:地板网站建设方案做地板生意的老板们,大家早上好还是中午好,或者晚上好?不管现在是几点,我相信你点开这篇文章,心里大概率正琢磨着一件事:我的官网到底该怎么做?是找个便宜的模板套一下,还是花大价钱找专业团队定制?或者更现实一点,我是直接搞个抖音号,…

2026/8/14 6:50:12 阅读更多 →

最新新闻

Python自动化截图与OCR识别:实现无API券商持仓数据抓取

Python自动化截图与OCR识别:实现无API券商持仓数据抓取

1. 项目缘起:为什么选择“截图识别”这条“野路子”? 在量化交易或者个人资产管理的圈子里,获取实时、准确的持仓数据是第一步,也是最关键的一步。很多朋友第一时间想到的是找券商开放API,这确实是“正规军”的做法。…

2026/8/14 9:03:12 阅读更多 →
RVO2-Unity源代码详解:Simulator与KdTree的碰撞规避核心实现

RVO2-Unity源代码详解:Simulator与KdTree的碰撞规避核心实现

RVO2-Unity源代码详解:Simulator与KdTree的碰撞规避核心实现 【免费下载链接】RVO2-Unity use rvo2 (Optimal Reciprocal Collision Avoidance) in unity. 项目地址: https://gitcode.com/gh_mirrors/rv/RVO2-Unity RVO2-Unity是一个基于最优互惠碰撞避免&a…

2026/8/14 9:03:12 阅读更多 →
AMD 780M 核显算力优化实战:4 个关键动作让 gfx1103 从崩溃到满血跑大模型

AMD 780M 核显算力优化实战:4 个关键动作让 gfx1103 从崩溃到满血跑大模型

AMD 780M 核显算力优化实战:4 个关键动作让 gfx1103 从崩溃到满血跑大模型 【免费下载链接】ROCmLibs-for-gfx1103-AMD780M-APU ROCm Library Files for gfx1103 and update with others arches based on AMD GPUs for use in Windows. 项目地址: https://gitcod…

2026/8/14 9:03:12 阅读更多 →
AI数字分身技术解析:从音素驱动到面部重演的完整实现

AI数字分身技术解析:从音素驱动到面部重演的完整实现

1. 项目概述:从静态到动态的“数字分身”革命最近在AIGC圈子里,一个叫InfiniteTalk的工具火得不行。它的宣传语简单直接,却直击人心:一张照片,一段语音,就能生成一个栩栩如生的说话视频。这听起来像是科幻电…

2026/8/14 9:03:12 阅读更多 →
otel-cli容器化部署:Docker与Kubernetes环境中的追踪最佳实践

otel-cli容器化部署:Docker与Kubernetes环境中的追踪最佳实践

otel-cli容器化部署:Docker与Kubernetes环境中的追踪最佳实践 【免费下载链接】otel-cli OpenTelemetry command-line tool for sending events from shell scripts & similar environments 项目地址: https://gitcode.com/gh_mirrors/ot/otel-cli OpenT…

2026/8/14 9:03:12 阅读更多 →
CSS Toggle Switch常见问题解答:iOS兼容性与键盘访问优化技巧

CSS Toggle Switch常见问题解答:iOS兼容性与键盘访问优化技巧

CSS Toggle Switch常见问题解答:iOS兼容性与键盘访问优化技巧 【免费下载链接】css-toggle-switch Accessible, CSS-only, toggle switches 项目地址: https://gitcode.com/gh_mirrors/cs/css-toggle-switch CSS Toggle Switch是一个专注于可访问性的纯CSS切…

2026/8/14 9:02:11 阅读更多 →

日新闻

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

临沂网站建设铭镇:深耕本土数字生态,以匠心铸就企业品牌核心竞争力

在这个流量为王、视觉至上的互联网时代,对于临沂乃至整个山东乃至全国的传统中小企业来说,拥有一张精美的“数字名片”早已不再是可选项,而是生存的必答题。每当夜幕降临,沂河两岸灯火辉煌,物流之都的喧嚣逐渐沉淀为对未来的思考。我们常常听到老板们在茶余饭后探讨:为什…

2026/8/14 0:00:26 阅读更多 →
Flutter与OpenHarmony实现剧本杀组队表单开发实战

Flutter与OpenHarmony实现剧本杀组队表单开发实战

1. 项目概述在移动应用开发领域,跨平台框架Flutter因其高效的开发体验和出色的性能表现,已经成为众多开发者的首选。而OpenHarmony作为新兴的操作系统平台,其开放性和灵活性为开发者提供了全新的可能性。本文将聚焦于一个实际应用场景——剧本…

2026/8/14 0:00:26 阅读更多 →
大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

大连网站建设找简维科技:为您打造懂业务更懂用户的数字化转型引擎

在这个数字化浪潮席卷全球的今天,企业想要在激烈的市场竞争中站稳脚跟,拥有一张好看的“数字名片”已经远远不够了。很多老板在刚开始接触互联网业务时,都有一个共同的困惑:为什么我花了钱建的网站,就像是在真空中自嗨?访客进来转了两圈就跑了,线索石沉大海,甚至连客服…

2026/8/14 0:01:27 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/13 2:38:34 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/13 10:41:52 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/13 10:41:51 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/13 10:41:50 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/13 10:41:49 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/13 10:41:49 阅读更多 →