DC的一些问题:
时间:10-02
整理:3721RD
点击:
DC中关于定义时钟树的写法,有几个问题:
1. set_clock_latency ,set_clock_uncertainty,set_clock_transition的值该如何设置,有什么经验值参考?
create_clock -name CLK -period 18 -waveform [list 0 9] [find port "CLK"]
set_clock_latency 1 [get_clocks CLK]
set_clock_uncertainty -setup 2.0 [get_clocks CLK]
set_clock_transition 0.1 [get_clocks CLK]
set_dont_touch_network[list CLK HRESET]
2.我有一个CLK_REG,是由CLK计数得到的,它会驱动很多DFF,我需要把它也做时钟数吗?
还要给它设置驱动吗?
create_generated_clock -name CLK_REG -source CLK -divide_by 17 [get_pins bus_top_pll1_ins/intf_spi_pll1_ins/SPIWERD]
3.摸块内部有2根线,(rst_n和CAL_RESETN)会分别给很多DFF异步置位,负载很大,我怎么样才能给它们也做个网络,就向HRESET?
我现在是把它们和HRESET一样对待,但综合结果有violationg,这些错误该如何修改?
Net: selfcal_top_ins/CAL_RESETN (dont_touch)
max_transition2.27
- Transition Time25.02
------------------------------
Slack-22.75(VIOLATED)
Net: selfcal_top_ins/CAL_RESETN (dont_touch)
max_capacitance0.03
- Capacitance0.33
------------------------------
Slack-0.30(VIOLATED)
get_ports bus_top_pll1_ins/intf_spi_pll1_ins/rst_n
get_ports selfcal_top_ins/cal_start_ins/CAL_RESETN
1. set_clock_latency ,set_clock_uncertainty,set_clock_transition的值该如何设置,有什么经验值参考?
create_clock -name CLK -period 18 -waveform [list 0 9] [find port "CLK"]
set_clock_latency 1 [get_clocks CLK]
set_clock_uncertainty -setup 2.0 [get_clocks CLK]
set_clock_transition 0.1 [get_clocks CLK]
set_dont_touch_network[list CLK HRESET]
2.我有一个CLK_REG,是由CLK计数得到的,它会驱动很多DFF,我需要把它也做时钟数吗?
还要给它设置驱动吗?
create_generated_clock -name CLK_REG -source CLK -divide_by 17 [get_pins bus_top_pll1_ins/intf_spi_pll1_ins/SPIWERD]
3.摸块内部有2根线,(rst_n和CAL_RESETN)会分别给很多DFF异步置位,负载很大,我怎么样才能给它们也做个网络,就向HRESET?
我现在是把它们和HRESET一样对待,但综合结果有violationg,这些错误该如何修改?
Net: selfcal_top_ins/CAL_RESETN (dont_touch)
max_transition2.27
- Transition Time25.02
------------------------------
Slack-22.75(VIOLATED)
Net: selfcal_top_ins/CAL_RESETN (dont_touch)
max_capacitance0.03
- Capacitance0.33
------------------------------
Slack-0.30(VIOLATED)
get_ports bus_top_pll1_ins/intf_spi_pll1_ins/rst_n
get_ports selfcal_top_ins/cal_start_ins/CAL_RESETN
1. clock_latency 可以不设,后端做了CTS就知道了
uncertainty就是margin, 看design的要求, 0.2~1ns都行,关键看怎么signoff,
比如2ns周期+0.2ns margin,
transition 在 clock period 的 1/10 左右,关键是保证clock的信号完整性,也可以设为
signal transition的一半,
2. 要设generated_clock,STA好分析些,同源clock要balance,
cts的时候如果不设through pin,就要这个generated clock做cts ,
3.后端会处理high fanout net的, 只要不set_ideal_network/set_dont_touch
place 之后就做完了
受益匪浅!~也是我长时间的疑问。
小弟还有一事想问:
set_clock_uncertainty的时候是 skew + jilter + margin,在综合的时候可以不必考虑skew和jitter是吗?也就是让他们都等于0?