DC时序_面积_环境变量约束
Timing and Area:
DC optimizes logic between registers,it doesn't optimize the placement of registers;
DesignWare:Technology independent,soft macros such as adders,comparator,which are sythesized in to gates from your targer librart.
specifying an area goal:
dc_shell-t> current_design PRGRM_CNT_TOP
dc_shell-t>set_max_area 100
2-input-NAND-gate
transistors
square mils
specify a clock goal:
dc_shell-t>create_clock -period 10 [get_ports clk]
dc_shell-t>set_dont_touch_network [get_clocks clk]
输入延迟分为惰性延迟和传输延迟
dc_shell-t> set_input_delay -max 4 -clock clk [get_ports A]
我们指定外部逻辑输入延迟,DC计算内部逻辑剩余时间
dc_shell-t>set_output_delay -max 5.4 -clock clk[get_ports B ]
我们指定外部逻辑输入延迟,DC计算内部逻辑剩余时间,所以这5.4ns是外部系统的传输延迟和建立时间
report_port -verbose 返回所有输入输出端口的变量和约束
report_clock 返回当前设计的所有时钟对象的源、波形、周期
reset_design 删除当前设计的变量与约束
list_libs 返回内存中的变量库
Environmental Attributes:
set_load允许用户例化外部端口电容负载:
默认的,DC假设外部负载是0.
你能用些常量例化。
load_of命令把外部负载当做技术库中单元的引脚负载
用set_load例化一个输出端口的负载值
set_load 5[get_ports OUT1]
使用set_load load_of lib/cell/pin 放置一个技术库的门负载在端口上
set_load [load_of my_lib/and2a0/A] [get_ports OUT1]
set_load[expr[load_of my_lib/invla0/A]*3] OUT1
set_driving_cell允许使用者例化一个实际的外部单元驱动输入端口:
默认外部信号转换时间为0.
在输入端口放个驱动单元能计算输入信号实际转换时间,仿佛例化的单元在驱动他
dc_shell-t>set_driving_cell -lib_cell and2a0 [get_ports IN1]
操作条件:set_operating_conditions
使用report_lib libname 可以列出供应商提供的操作条件。
设置操作条件:dc_shell-t>set_operating_conditions -max "slow_125_1.62"
多技术库:
set_min_library core_slow.db -min_version core_fast.db
set_operating_conditions -max slow_125_1.62 -min fast_0_1.98
线载模型:
线载模型是基于网线的扇出来估计网线的RC寄生
set_wire_load_model -name 160KGATES
关闭自动线载模型选择:
set auto_wire_load_selection false