当前位置:首页 > EDA > 电子设计自动化
[导读]在数字IC综合流程中,面积(Area)与时序(Timing)是一对永恒的“跷跷板”。Synopsys Design Compiler(DC)作为业界标准的逻辑综合工具,其优化质量直接取决于约束策略。本文将避开繁琐的理论,直击DC约束文件中“面积与时序”的实战平衡技巧。



数字IC综合流程中,面积(Area)与时序(Timing)是一对永恒的“跷跷板”。Synopsys Design Compiler(DC)作为业界标准的逻辑综合工具,其优化质量直接取决于约束策略。本文将避开繁琐的理论,直击DC约束文件中“面积与时序”的实战平衡技巧。


一、约束优先级:时序第一,面积第二


在DC的优化算法中,时序收敛是面积优化的前提。如果建立时间(Setup Time)存在严重违例,工具会疯狂插入缓冲器(Buffer)和增大驱动(Upsize),导致面积爆炸。因此,约束策略必须遵循“先时序,后面积”的黄金法则。


1. 初始综合:不设面积限制


在项目初期,不要过早使用set_max_area,以免工具为了满足不切实际的面积极限而牺牲时序。

# 阶段1:仅约束时序,放开面积

create_clock -period 10 -name clk [get_ports clk]

set_max_area 0  # 0表示无面积限制

compile_ultra

set ref_area [get_attribute [current_design] area]


首次编译后,使用get_attribute获取当前设计的面积参考值ref_area。这个值将作为后续设置合理面积目标的基准。


2. 渐进式面积约束


不要一次性将面积目标设为ref_area的70%。建议采用渐进式收紧策略,每次迭代收紧5%-10%。

# 阶段2:渐进式面积优化(假设目标为初始面积的90%)

set target_area [expr $ref_area * 0.9]

set_max_area $target_area

compile_ultra -inc


如果此阶段时序违例(WNS为负),说明面积目标过于激进,需要回调。DC的set_max_area是一个“软约束”,工具会尽力逼近,但不会为了面积而让时序完全崩盘。


二、精细化路径管理:group_path与critical_range


默认情况下,DC会优先优化最差的那条关键路径(WNS最差)。但这可能导致其他“次关键路径”被忽略,或者非关键路径被过度优化而浪费面积。使用group_path和critical_range可以实现精细化平衡。


1. 路径分组(group_path)


将不同时钟域或功能模块的路径分组,可以避免工具为了优化一条全局路径而牺牲其他模块的性能。

# 将DDR接口路径单独分组,赋予更高权重

group_path -name DDR_PATHS -from [get_ports ddr_*] -weight 2.0


-weight参数告诉DC,该组路径的优化优先级是默认路径的2倍。这样,工具会优先保证DDR接口的时序,即使这意味着要稍微牺牲一点其他低速路径的面积。


2. 关键范围(critical_range)


critical_range定义了“需要被优化”的路径范围。它防止DC只盯着最差的一条路,而是优化所有接近违例的路径。

# 设置关键范围为0.5ns

set_critical_range 0.5 [current_design]


这意味着,所有时序裕量(Slack)小于0.5ns的路径都会被DC视为“关键路径”并进行优化。这能有效防止“头痛医头,脚痛医脚”的局部优化现象,避免在一条路径上过度插入Buffer而忽略全局面积。


三、编译策略:从Timing High Effort到Area High Effort


DC的compile_ultra命令提供了不同的优化脚本,这是平衡PPA(Performance, Power, Area)最直接的手段。


1. 时序优先模式


当时序违例较大时(WNS < -0.5ns),使用高努力时序优化脚本。

# 激进时序优化,暂不考虑面积

compile_ultra -timing_high_effort_script -no_autoungroup


此模式会启用逻辑复制(Logic Duplication)、寄存器重定时(Retiming)等技术,可能会增加面积,但能有效改善时序。


2. 面积回收模式


当时序基本收敛(WNS > -0.1ns)后,切换到面积优化模式。

# 在满足时序的前提下,回收面积

compile_ultra -area_high_effort_script -no_autoungroup


此模式会尝试使用更小的驱动单元、合并冗余逻辑、启用资源共享(Resource Sharing),在保持时序的前提下“挤水分”。


四、RTL级与物理级协同策略


1. RTL级:资源共享(Resource Sharing)


在RTL设计中,显式地编写资源共享代码(如使用if-else而不是多个assign),DC在综合时更容易识别并生成面积友好的结构。

// 面积友好型写法:资源共享

always @(*) begin

   if (sel)

       out = a + b;

   else

       out = c + d;

end

// 而不是两个独立的加法器


DC的set_resource_allocation area_only命令可以强制工具在架构探索阶段优先考虑面积。


2. 物理感知:线载模型(Wire Load Model)


在非物理综合(Non-Physical)流程中,线载模型的选择直接影响面积预估。过于悲观的模型会导致DC过度插入Buffer。

# 根据设计规模选择匹配的线载模型

set_wire_load_model -name "tsmc18_wl10"  # 适用于中小规模设计


如果设计后期在布局布线(P&R)阶段发现面积膨胀,很可能是综合时的线载模型与实际布线后的RC参数偏差过大。此时应考虑切换到拓扑模式(Topographical Mode)进行物理感知综合。


五、实战TCL脚本:迭代优化流程


以下是一个完整的迭代优化脚本框架,用于在时序与面积之间寻找平衡点。

# 步骤1:初始编译(无面积约束)

reset_design

read_verilog top.v

create_clock -period 10 clk

compile_ultra

set ref_area [get_attribute [current_design] area]


# 步骤2:时序收敛检查

set wns [get_attribute [get_timing_paths] slack]

if {$wns < 0} {

   # 时序违例,优先修时序

   compile_ultra -timing_high_effort_script

}


# 步骤3:面积优化(目标为初始的85%)

set_max_area [expr $ref_area * 0.85]

compile_ultra -area_high_effort_script -inc


# 步骤4:最终检查

report_timing -max_paths 10 > timing.rpt

report_area -hierarchy > area.rpt


该流程确保了“先保时序,再抠面积”的稳健策略。


六、结语


在Design Compiler中,面积是“省”出来的,而不是“压”出来的。强行设置过小的set_max_area只会导致时序无法收敛。最有效的策略是:利用group_path和critical_range引导优化方向,通过-timing_high_effort_script实现时序收敛,最后使用-area_high_effort_script进行面积回收。记住,约束文件的本质是告诉DC“哪里重要,哪里可以妥协”,一个好的约束策略是PPA平衡的艺术。


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

在高速数字电路设计中,电源完整性(Power Integrity, PI)直接影响信号完整性(SI)和系统稳定性。随着IC工作频率突破GHz级,电源噪声容限缩小至毫伏级,传统经验设计已无法满足需求。本文聚焦Synopsy...

关键字: Synopsys PDN阻抗建模

在数字集成电路设计领域,形式验证已成为确保设计功能正确性的关键技术。尤其在CPU流水线设计中,复杂的时序逻辑与数据冒险处理对验证精度提出了严苛要求。Synopsys VC Formal凭借其基于形式化方法的自动化验证能力...

关键字: Synopsys CPU

在5G通信、人工智能等高性能计算领域,功耗优化已成为芯片设计的核心挑战。Synopsys Design Compiler通过多电压域(Multi-Voltage Domain, MVD)配置与动态电压频率调节(DVFS)...

关键字: Synopsys 多电压域配置 动态电压

2025年7月25日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST) (纽约证券交易所代码:STM) 公布了按照美国通用会计准则 (U.S. GAA...

关键字: 微控制器 数字IC 传感器

电动化和数字化正在给汽车行业带来深刻巨变。尽管最近一些汽车厂商缩减了汽车电动化计划,但是我们仍然认为,经济实惠的混合动力和电动汽车未来将主导汽车市场,未来汽车将是软件定义的汽车,采用以太网作为主要的车载总线协议。无线下载...

关键字: 微控制器 数字IC

2024年11月1日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体 (STMicroelectronics,简称ST;纽约证券交易所代码:STM) 公布了按照美国通用会计准则 (U.S. GAAP)...

关键字: 数字IC 射频 微控制器

在数字IC设计与验证领域,编辑器的选择至关重要。它不仅影响着工程师的工作效率,还直接关联到代码的质量与可维护性。在众多编辑器中,Vim凭借其强大的功能、高效的操作模式以及高度的可定制性,成为了这一领域最受欢迎的编辑器,没...

关键字: 数字IC Vim

据外媒报道,针对美国电子设计自动化软件供应商Synopsys(新思科技)此前宣布以350亿美元收购工程模拟和3D设计软件公司Ansys的交易,英国竞争与市场管理局(CMA)日前已展开调查。

关键字: Synopsys Ansys

2024年7月26日,中国 – 服务多重电子应用领域、全球排名前列的半导体公司意法半导体(STMicroelectronics,简称ST;纽约证券交易所代码:STM)公布了按照美国通用会计准则(U.S. GAAP)编制的...

关键字: 分立器件 微控制器 数字IC

业内消息,近日芯片设计软件制造商Synopsys表示,将通过价值350亿美元的现金加股票交易收购EDA厂商Ansys 。该交易完成的话将是自芯片制造商博通以来科技领域最大的收购案,博通去年以690亿美元的交易收购了软件制...

关键字: 新思科技 Synopsys 收购 EDA Ansys
关闭