DC workshop指导篇1- Setup and Synthesis Flow

本文详细介绍DC综合流程,包括配置启动文件、调用GUI界面、读取设计文件等基础步骤,并演示如何约束顶层、综合到厂商门级、生成时序报告及优化设计。


今年的其中一个小目标就是希望能把DC综合的部分能跑一个flow,完成DC的workshop,因此,特此开启了DC workshop这一系列。下面就跟着博主一边自己操作吧,另外由于很多原理我已经在别的系列里面探讨过了,这里只是为了走一走官方的flow,长一下见识,所以,如果遇到理论不懂的,特别是beginer,可以参考我DC系列的别的博文。另一方面,在参考别人的博客的同时,我建议各位多自己思考,阅读原汁原味的官方,因为每个人的理解可能不一样。
本节任务是
1、能自主更新DC的启动文件。
2、调用DC gui,并熟悉它
3、通过综合的基础步骤,跑一个综合
4、能够学会使用帮助文档
作者:ciscomonkey

Task1、Update the setup file配置DC启动文件

如下图所示,整个官方2007年提供的DC workshop如下图所示,本次lab用到的是实验2
在这里插入图片描述
如下图所示,切换到lab2后的目录如下,
在这里插入图片描述
如下图所示,在.synopsys_dc.setup当中,合并一下内容到这个文件中去。
在这里插入图片描述

在这里插入图片描述
根据官方的指示,现在我填写为了如下内容:
在这里插入图片描述

看看上图文件中的其他命令,看你是否能够理解其意思。另外你填写的变量会被echo到启动DC时候的终端上。最后保存启动文件,然后退出编辑器。

Task2、Invoke Design Vision调用DC GUI模式

如下图所示,由于在当前目录下有setup启动文件,正是我们刚才配置的启动文件,因此,我们可以看到在启动design_vision的时候,echo出来了以下的变量。
在这里插入图片描述
在这里插入图片描述
下面通过GUI界面的File—>setup来验证设置启动启动文件是否正确,然后回答以下问题。
在这里插入图片描述
这里,我就不再回答了,因为之前在本人别的博客里面已经回答过了。
在这里插入图片描述
如果你的填写得不对,其实在.soulution的文件夹里还给出了答案
如下图所示,你可以在DC shell里面验证你的变量设置,是否有正确的加入进去。

### 实现Flexible H-tree和Multi-Tap Clock Flow的方法 在Cadence Innovus工具中,实现Flexible H-tree和Multi-Tap Clock的设计流程涉及多个关键步骤。这些步骤旨在优化时钟网络的功耗、延迟以及抖动特性。 #### Flexible H-tree 的实现方法 Flexible H-tree 是一种常见的时钟树拓扑结构,用于平衡负载并减少时钟偏差。以下是其具体实现方式: 1. **定义时钟信号** 需要在 `.sdc` 文件中明确定义时钟信号及其属性,例如频率、占空比和其他相关参数[^1]。这一步骤对于后续生成合理的时钟树至关重要。 2. **启用H-tree选项** 使用Innovus命令 `set_clock_tree_options -hTree true` 来指定采用H-tree拓扑结构。此设置会指导工具按照H-tree模式构建时钟树。 3. **配置灵活性参数** 可以通过以下命令进一步增强H-tree的灵活性: ```tcl set_cts_network_options -max_fanout <value> \ -buffer_list {<list_of_buffers>} \ -drive_cell <cell_name> ``` 这些参数允许用户控制缓冲器的选择、最大扇出以及其他物理设计约束条件。 4. **执行CTS (Clock Tree Synthesis)** 调用 `create_clock_tree_spec` 命令来启动时钟树综合过程。该命令基于前面设定的所有规则自动生成最优的H-tree结构。 #### Multi-Tap Clock 的实现方法 Multi-Tap Clock 技术允许多个驱动单元共享同一根主干线路,从而降低整体电容负载并改善性能指标。 1. **识别适合多抽头策略的关键路径** 利用报告功能分析电路中的热点区域,找出那些具有较高插入延时或者较大负载变化的部分作为候选目标节点。 2. **应用multi-tap技术** 设置特定开关以激活multi-tap机制: ```tcl set_multi_tap_clock_options -enable true \ -tap_distance <distance_value> ``` 此处 `-tap_distance` 参数决定了相邻抽头之间的最小间距限制。 3. **重新运行CTS阶段** 修改上述参数之后再次调用 `create_clock_tree_spec` ,让软件考虑新的multi-tap约束条件下重建整个时钟分配体系。 4. **验证最终结果** 完成CTS操作后务必进行全面细致的静态时序分析(STA),确认所有路径均符合预期规格要求,并且没有任何违反既定标准的情况发生。 ```python # 示例TCL脚本片段展示如何集成以上提到的功能 proc setup_custom_cts {} { # Step 1: Define clock signals in SDC file # Step 2: Enable H-Tree mode with flexibility options set_clock_tree_options -hTree true set_cts_network_options -max_fanout 8 \ -buffer_list {"BUF_X1" "BUF_X2"} \ -drive_cell INV_X4 # Step 3: Activate multi-tap functionality if needed set_multi_tap_clock_options -enable true \ -tap_distance 50u # Step 4: Execute CTS process create_clock_tree_spec } ```
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值