get_cells直接得到的东西是dc内部的collection集合,用起来比较麻烦,要用dc提供的一些关于collection相关的api,所以一个好的方法是用get_object_name把得到的collection变成数组 就像这样: 4.获取design中所有使用到的库中的cell get_lib_cells -of_objects [get_cells *] 如果只是做完analyze 和 elaborate(或者read_f...
DC约束笔记 关于get_pins get_cells get_ports等的定义 关于建立保持与max/min的关系 2、setup time和hold time 建立时间(setup time)是指在触发器的时钟信号上升沿到来以前,数据稳定不变的时间,如果建立时间不够,数据将不能在这个时钟上升沿打入触发器。 保持时间(hold time)是指在触发器的时钟信号上升沿到来以...
get_ports 、get_pins 、get_designs 、get_cells 、get_nets 、get_clocks 、get_nets -of_objects [get_pins FF1_reg/Q] 、get_libs 、get_lib_cells 、get_lib_pins -->设计对象(的集合): 设计对象的物集,总之就是多个设计对象(组成一个集合) all_inputs 、all_outputs 、all_clocks 、all_regis...
根据要求5,虽然PIPELINE进行了pipelined,也就是进行了寄存器retiming,但是输出寄存器不能动,也就是保持原来的寄存器,因此需要约束: set_dont_retime [get_cells I_MIDDLE/I_PIPELINE/z_reg*] true 然后检查一下是否正确: 在综合之前保存一下我们的设计: write -f ddc -hier -out unmapped/STOTO.ddc 进行综合: ...
get_cells -hier *r_REG*_S 通过返回值(即返回寄存器的名字)的路径,我们可以知道PIPELINE中的流水线寄存器被移动过了: (retiming中被移动过的流水线寄存器的名字以 clkname_r_REG*_S*结束,*是通配符),再结合我们我们的原理图,我们可以知道,是z1_reg被移动了(一位后缀名是z1跟s1): 我们还可以查看例化的名...
get_cells I_IN/*_reg* 有返回值,说明是存在有不被移动的寄存器的。 -->通过下面的命令: report_timing -from I_MIDDLE/I_PIPELINE/z_reg*/* 可以知道PIPELINE模块是寄存输出的(因为有返回报告值) 优化的实战部分都这里就结束了,最后,DC的优化命令有很多,不懂的可以通过man命令查看。最后感叹一下,总共码了...
set_dont_retime [get_cells I_MIDDLE/I_PIPELINE/z_reg*] true 然后检查一下是否正确: -->保存在综合之前保存一下我们的设计: write -f ddc -hier -out unmapped/STOTO.ddc ·进行综合: 根据要求8:设计是时序关键的,因此我们要在综合的时候加上-timing选项;根据要求10:要执行扫描插入,因此要加上-scan选...
在第1点中我们说只是通过名字中的1来说移动的是z1_reg,这显然是不够充分,可以通过下面来验证z_reg是否被移动过:get_cells -hier *z_reg*有返回值,说明这个寄存器存在,没有被移动过(移动过之后就被换了例化名字): 然后我们来查看一下z1_reg,可以看到找不到对象,说明被移动了: ...
set_dont_retime [get_cells I_MIDDLE/I_DONT_PIPELINE] true 1. 然后检查是不是约束成功,或者约束对了: get_attribute [get_cells I_MIDDLE/I_DONT_PIPELINE] dont_retime 1. 如下图所示,返回应为true: -->根据要求4,需要进行pipelined,于是我们可以启用register_timing,约束如下所示: ...
1. 用report_cell [get_cells -hier *]可以看所有的cells面积 2. 用list_design列出所有的design, 然后改变current_design到你所想要看的那一级的cell, 然后直接用report_cell. 4.4 如何看设计环境和线载模型? report_design 4.5 若设计规则和时序违反约束,如何查看? 使用report_constraint -all_violators 4.6 ...