马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 mz916 于 2018-4-18 11:01 编辑
1.讨论set_max_capacitance指令 &&& 什么情况下report_constarnt报出max_capacitance violation:
1.1
对于输出port, max_capacitance的violation, 不由report_port [get_ports "output_port"] -verbose显示的 #### Pin Cap > Max Cap ##### 决定,而是由 #### 输出 port 由哪个cell驱动 (即它的Driver Cell Pins) 这个Driver cell Pins 对应的lib文件里显示的 max_capacitance 值 < 对输出port执行set_load指令设置的值 #### 决定。
1.2
set_max_capcacitance指令用于输出port时,无效
1.3
输出port的Driver Cell Pins 由DC自动综合结果决定)
1.4
对于输入port, max_capacitance的violation, 不由report_port [get_ports "input_port"] -verbose显示的 #### Pin Cap > Max Cap #### 决定, 而是由 #### 输入 port 由哪个cell驱动 (即它的Driver Cell Pins) 这个Driver Cell Pins 对应的lib文件里显示的 max_capacitance 值 < 对输入port所在的net 执行report_nets 里的toltal capacitance的值 ####决定。
1.5
(set_max_capacitance指令用于输入port时,有效)
1.6
输入port的Driver Cell Pins 由set_driving_cellr指令决定)
--------------------------------------------------------------------------------------------------------------------------------
=======================================================================
2.讨论set_max_fanout指令 &&& 什么情况下report_constranint报出max_fanout violation:
2.1
对于输出port,执行set_max_fanout value [get_ports output_port] 不可以直接指定输出port最大可驱动几个cell , 会报ERROR:"max_fnout" cannot be used on output port ;
2.2
对于输出port,可以执行set_fanout_load value [get_ports "output_pout"] , 可以直接指出输出port后实际驱动个几个cell单元。
2.3
对于输出port,可以通过set_max_fanout value [current_design] 指定的值 < set_fanout_load value [get_ports “output_port"]的值时,report_constraint 报出max_fanout_violation;
2.4
(可以指定输出port实际驱动几个cell(fanout_load的值)(但不能直接指定输出port最大可驱动几个cell) (通过指定current_design最大可驱动几个cell,间接约束输出port的最大可驱动几个cell)
2.5
对于输入port,执行set_max_fanout value [get_ports input_port] 可以直接指定输入port最大可驱动几个cell
2.6
对于输入port,可以执行set_fanout_load value [get_ports "input_pout"] , 不可以直接指定输入port后实际驱动几个cell单元 (应由DC决定);会ERROR"set_fanout_load”cannot be used on input port ;
2.7
对于输出port,可以通过set_max_fanout value [current_design] 指定的值 < report_nets [get_ports "input_port"] 显示的实际Fanout值时,report_constraint 报出max_fanout_violation;
2.8
对于输入port, 可以通过set_max_fanout value [get_ports input_port]指定的值 < report_nets [get_ports "input_port"] 显示的实际Fanout值时,report_constraint 报出max_fanout_violation;
2.9
(不可指定输入port实际驱动几个cell,它应由DC算法决定)(可通过report_net查看输入port实际驱动几个cell)(可直接指定输入port最大可驱动几个cell)
--------------------------------------------------------------------------------------------------------------------------------
=======================================================================
3.讨论set_max_transition指令 &&& 什么情况下report_constranint报出max_transition violation:
3.1
默认库文件里,有一个default_max_transition的值,约束每个cell的pin上的transition.
3.2
可以通过set_max_transition指定用户定义的max_transition. DC使用 库文件default / User定义 两者中最苛刻的作为最终max_transition约束值。
3.3
通过set_driving_cell指定不同的cell驱动input_port,其input port的输入transition,根据不同的driving cell,传递不同的transition值给input port。
3.4
也可以手动通过set_input_transition [get_ports "input_port"] ,指定用户define的特定transition值给input port 的。
3.5
用户只是给出输入port上的actual transition的值, transition值会从input port上开始,传递进去至也设计内部每个cell的pin上。
3.6
使用report_delay_calculation命令,可以显示出某一节点处tarnsition转换时间的具体求解过程。
3.7
设计里,任一节点处,任一cell的pin上的输入tansition值 (可通过report_delay_calculation查看) > [default_max_transition / set_max_transition 两者中的较小值] 时, report_constraint报出max_transiton的违例。 |