Design Compiler:边界优化(Boundary Optimization)

发布时间:2026/8/29 12:30:14

Design Compiler:边界优化(Boundary Optimization)
相关阅读Design Compilerhttps://blog.csdn.net/weixin_45791458/category_12738116.html?spm1001.2014.3001.5482前言默认情况下Design Compiler在综合时不会跨越层次结构进行优化这会导致一些关键路径的逻辑无法得到简化。边界优化(Boundary Optimization)技术允许在保留层次结构的同时跨设计层次进行优化本文就将对此进行讨论。边界优化的分类跨层次结构常量传播如上图所示当不使用边界优化时Design Compiler无法使用通过引脚传播的常量信息这里的常量指的是设计中存在的固定值如使用set_logic_one等命令创建的常量逻辑单元(TIE0)set_case_analysis命令直接影响静态时序分析而只能间接影响综合对子设计中的逻辑进行优化而使用边界优化时通过引脚传播的常量信息将被用于优化逻辑但常量引脚还是被保留了。跨层次结构等价与反向等价信息传播如上图所示当不使用边界优化时Design Compiler无法识别引脚之间的等价与反向等价关系从而对子设计中的逻辑进行优化而使用边界优化时引脚之间的等价与反向等价将被用于优化逻辑但引脚还是被保留了。跨层次结构未连接不可读信息传播如上图所示当不使用边界优化时Design Compiler无法识别未连接的输入/输出引脚从而对子设计中的冗余逻辑进行优化而使用边界优化时与未连接的输入/输出引脚连接的冗余逻辑将被消除但引脚还是被保留了。跨层次结构相位反转如上图所示当不使用边界优化时Design Compiler无法识别跨层次结构的反相器对从而对子设计中的逻辑进行优化而使用边界优化时反相器将可以被移动并穿越层次结构并进行优化。控制边界优化允许边界优化的情况1、使用compile_ultra命令边界优化是自动开启的。2、使用compile -boundary_optimization命令。3、使用compile命令前使用set_boundary_optimization命令将需要进行边界优化的单元或设计的boundary_optimization属性设置为true。4、使用compile_ultra -no_boundary_optimization命令但使用set_boundary_optimization命令将需要进行边界优化的单元或设计的boundary_optimization属性设置为true。注意set_boundary_optimization属性优先级高于compile_ultra命令的-no_boundary_optimization选项。禁止边界优化的情况1、使用compile_ultra -no_boundary_optimization命令使用该选项将禁止所有自动解组即设置-no_autoungroup选项。2、使用compile命令。3、使用compile -boundary_optimization命令前使用set_boundary_optimization命令将需要禁止边界优化的单元或设计的boundary_optimization属性设置为false这也会导致该设计被禁止自动解组。4、使用compile_ultra命令前使用set_boundary_optimization命令将需要禁止边界优化的单元或设计的boundary_optimization属性设置为false这也会导致该设计被禁止自动解组。5、使用compile/compile_ultra命令前使用set_compile_directives命令将需要禁止边界优化的引脚、单元或设计的相应属性设置为false。对于禁止“跨层次结构常量和等价与反向等价信息传播”的特殊处理使用compile命令时使用compile命令或使用compile -boundary_optimization命令前使用set_boundary_optimization命令将需要禁止边界优化的单元或设计的boundary_optimization属性设置为false这两种禁止边界优化的方法只能阻止常量/等价与反向等价信息从父设计传播到子设计而子设计的常量/等价与反向等价信息还是能传播到父设计如果想禁止所有情况下的传播需要将compile_preserve_subdesign_interfaces变量设置为true默认为false如下图所示。使用compile_ultra命令时使用compile_ultra -no_boundary_optimization命令使用-no_boundary_optimization选项将自动把compile_preserve_subdesign_interfaces变量设置为true或使用compile_ultra命令前使用set_boundary_optimization命令将需要禁止边界优化的单元或设计的boundary_optimization属性设置为false并将compile_preserve_subdesign_interfaces变量设置为true等这两种禁止边界优化的方法只能禁止等价与反向等价信息的传播而不足以禁止常量传播需要将compile_enable_constant_propagation_with_no_boundary_opt变量设置为false默认为true。在上面两种情况下Design Compiler在综合时会提示以下信息。Information: Starting from 2013.12 release, constant propagation is enabled even when boundary optimization is disabled. (OPT-1318)举例说明跨层次结构常量传播module top_module ( input wire a, input wire c, output wire out ); wire b 0; logic_circuit uut ( .a(a), .b(b), .c(c), .out(out) ); endmodule module logic_circuit ( input wire a, input wire b, input wire c, output wire out ); assign out ((a | b) c); endmodule图1为RTL代码的GTECH表示图2为不使用边界优化的结果图3为使用边界优化的结果。图1 未综合网表图2 不使用边界优化的结果图3 使用边界优化的结果跨层次结构等价与反向等价信息传播module top_module ( input wire a, input wire b, input wire c, output wire out ); wire d !a; logic_circuit uut ( .a(a), .b(b), .c(c), .d(d), .out(out) ); endmodule module logic_circuit ( input wire a, input wire b, input wire c, input wire d, output wire out ); assign out ((!a b) | (c d)); endmodule图4为RTL代码的GTECH表示图5为不使用边界优化的结果图6为使用边界优化的结果。图4 未综合网表图5 不使用边界优化的结果图6 使用边界优化的结果跨层次结构未连接不可读信息传播​module top_module ( input wire a, input wire b, input wire c, output wire out ); logic_circuit uut ( .a(a), .b(b), .c(c), .out1(), .out2(out) ); endmodule module logic_circuit ( input wire a, input wire b, input wire c, output wire out1, output wire out2 ); assign out1 (a c) | b; assign out2 (a | b) c; endmodule图7为RTL代码的GTECH表示图8为不使用边界优化的结果图9为使用边界优化的结果。图7 未综合网表图8 不使用边界优化的结果图9 使用边界优化的结果跨层次结构相位反转module top_module ( input wire clk, input wire rst, input wire In1, output wire out ); wire D, Q, QB; D_flip_flop dff ( .clk(clk), .rst(rst), .D(In1), .Q(Q), .QB(QB) ); logic_gate lg ( .Q(Q), .out(out) ); endmodule module D_flip_flop ( input wire clk, input wire rst, input wire D, output reg Q, output wire QB ); assign QB ~Q; always (posedge clk or posedge rst) begin if (rst) Q 0; else Q D; end endmodule module logic_gate ( input wire Q, output wire out ); assign out !Q; endmodule图10为RTL代码的GTECH表示图11为不使用边界优化的结果图12为使用边界优化的结果。图10 未综合网表图11 不使用边界优化的结果图12 使用边界优化的结果

相关新闻

AIGC创作风格迁移方法介绍

AIGC创作风格迁移方法介绍

2026/8/29 12:30:14

在内容创作过程中,风格是作者独特个性的体现,也是文章吸引读者的重要因素。风格可以涵盖语言的选择、句子的构造及情感色彩的渲染等多个方面。例如正式的风格可能更适用于严谨的学术论文,而轻松幽默的笔触则可能让博客文章更加引人入胜。 对于…

Google无需LLM冠军,生态与落地才是决胜关键

Google无需LLM冠军,生态与落地才是决胜关键

2026/8/29 12:30:14

Google 不需要拿 LLM 冠军,但绝不能缺席。这个判断可能和很多人看到的“排行榜焦虑”不太一样。LLM 领域每隔一段时间就会冒出一个“最强模型”,但排名变化太快,真正决定长期位置的,从来不是单一模型的 benchmark 分数&#xff0c…

一年半前端面试Shopee复盘:项目深挖与算法准备的实战心得

一年半前端面试Shopee复盘:项目深挖与算法准备的实战心得

2026/8/29 12:30:14

面试这事,真的很看缘分,但也真的很看准备。我在写这篇文章的时候,特意回看了自己当初一年半经验时投 Shopee 那段时间的记录和聊天截图,一边看一边冒冷汗。不是因为表现多差,而是因为我发现自己对"面经"这两…

字节跳动大数据笔试复盘:Hadoop、Spark与数仓核心考点解析

字节跳动大数据笔试复盘:Hadoop、Spark与数仓核心考点解析

2026/8/29 13:30:21

2018年秋招,字节跳动的大数据岗位笔试在牛客上讨论度一直很高。那会儿"今日头条"还没全面改名,但招人力度已经非常猛了,尤其是大数据方向,据说要支撑推荐、广告、内容审核等一堆业务线。我当年也参加了第四批笔试&#…

CC2530 ADC原理与实战:从光敏电阻到嵌入式感知系统设计

CC2530 ADC原理与实战:从光敏电阻到嵌入式感知系统设计

2026/8/29 13:30:21

1. 从光敏电阻到数字世界:为什么ADC是嵌入式感知的基石 最近在整理CC2530的授课资料,讲到ADC这一章时,我意识到很多初学者,甚至一些有经验的开发者,对ADC的理解可能还停留在“读取一个电压值”的层面。这就像只学会了开…

云从科技2020算法岗校招笔试复盘:考点分析与备考策略

云从科技2020算法岗校招笔试复盘:考点分析与备考策略

2026/8/29 13:30:21

2020年云从科技校招算法岗的笔试,我前前后后准备了大概三周,最后拿到Offer之后回头复盘,发现这套题其实很有代表性。它不是单纯考你会不会写代码,而是把代码功底、机器学习深度、数学直觉、还有对CV业务场景的理解揉在一起考&…

文生图Scaling新变量:从模型规模到训练配方与工程实践

文生图Scaling新变量:从模型规模到训练配方与工程实践

2026/8/29 13:30:21

文生图领域的 Scaling 讨论,过去总是围绕参数量、数据量和算力三个维度展开。字节 Seed 团队相关的公开分享,将“新变量”这个词带入文生图社区后,讨论重心开始从模型规模转向训练配方:同样放大模型,为什么有的效果显著…

AI落地为何一团乱?从Demo到生产的工程化五大挑战与解法

AI落地为何一团乱?从Demo到生产的工程化五大挑战与解法

2026/8/29 13:30:21

1. 为什么说“AI 革命是一团糟”?——从一个真实管理视角说起 如果一位曾在 Lululemon 担任运营管理的人站出来说:“AI 革命就是一团乱麻”,你可能会以为这是传统行业对新技术的不适应。但细看这句话背后的实质,会发现它指的不是“…

LIS2MDL磁力计实战:从硬件布局到校准与低功耗设计

LIS2MDL磁力计实战:从硬件布局到校准与低功耗设计

2026/8/29 13:20:21

磁力计这玩意儿,在嵌入式系统里属于那种“平时不起眼,一旦要方位就躲不掉”的角色。LIS2MDL是ST(意法半导体)推出的一颗超低功耗、高性能3D磁力计,我之前在低功耗数据采集节点和手持罗盘模块里都用过它,整体…

[光学原理与应用-521]:对光的错误理解与纠偏

[光学原理与应用-521]:对光的错误理解与纠偏

2026/8/27 11:10:02

首先光是一种能量的载体和形态,宏观上观察到的光是由无数个微观的光量子组成的,每个光子在产生的瞬间,其在真空的空间中以确定不变的速度沿着一个初始的方向一直向前,在微观层面,每个光量子的运动轨迹是以波函数所展现…

SIP通话转接原理与REFER方法实战解析

SIP通话转接原理与REFER方法实战解析

2026/8/29 10:22:10

1. 通话转接不是“挂断再拨号”,而是SIP会话的动态重定向你有没有遇到过这样的场景:客服坐席A正在和客户通电话,突然需要把这通对话无缝转给专家坐席B,客户完全感知不到中间的断连——既没听到忙音,也没被要求重新拨号…

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

Kolla-ansible单节点OpenStack部署实战:从环境准备到排坑指南

2026/8/28 7:34:42

1. 为什么选择Kolla-ansible来部署单节点OpenStack?如果你正在寻找一种能把OpenStack从“概念”快速变成“可用的实验环境”的方法,那么Kolla-ansible几乎是当前最主流、最省心的选择。我见过太多人卡在手动编译依赖、配置服务、处理版本冲突的泥潭里&am…

四款热门降AI工具测评:研究生和本科生怎么选?

四款热门降AI工具测评:研究生和本科生怎么选?

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

论文降AI率免费攻略:自查、提示词与工具推荐

论文降AI率免费攻略:自查、提示词与工具推荐

2026/8/29 0:09:39

马上要交论文了,最近真的被论文ai率折磨的够呛。 明明查重都没问题了,但是ai率就是居高不下,崩溃了,明明都是我自己写的,天杀的,明明都是我亲生的啊 改来改去,终于给我搞出一套完美的降ai方案…

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

北京GEO优化服务商推荐:预算型企业如何选北京GEO优化服务商?

2026/8/29 0:09:39

前言:预算有限的企业更关心投入能否形成可持续的品牌资产。评估北京GEO优化服务商时,不能只比较单篇内容或单月报价,还要看是否能够把问题词、官网、信源和监测串成完整链路。本期重点放在预算配置、试点范围和交付边界,帮助企业先…

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

2026/8/28 7:35:26

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

导师推荐!2026最新AI论文工具测评与实用推荐

导师推荐!2026最新AI论文工具测评与实用推荐

2026/8/28 7:34:51

2026年真正好用的AI论文工具,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

告别游戏崩溃:XCOM 2模组管理器的智能革命

告别游戏崩溃:XCOM 2模组管理器的智能革命

2026/8/28 7:34:35

告别游戏崩溃:XCOM 2模组管理器的智能革命 【免费下载链接】xcom2-launcher The Alternative Mod Launcher (AML) is a replacement for the default game launchers from XCOM 2 and XCOM Chimera Squad. 项目地址: https://gitcode.com/gh_mirrors/xc/xcom2-lau…