我在Synopsys Design Compiler和PrimeTime中完成了计数器的时序分析,但得到了相同的输出!任何问题 ?
那么PrimeTime时序分析将如何变得比DC更准确?
使用的设计文件是counter.v
,如下所示。
module counter ( out, clk, reset ) ;
input clk, reset;
output [3:0] out;
reg [3:0] out;
wire [3:0] next;
// This statement implements reset and increment
assign next = reset ? 4'b0 : (out + 4'b1);
// This implements the flip-flops
always @ ( posedge clk ) begin
out <= #1 next;
end
endmodule // counter
设计编译器输出是通过输入counter.v
和时钟周期2
生成的。设计编译器输出如下所示。
write_sdf ${name}.sdf
Information: Annotated 'cell' delays are assumed to include load delay. (UID-282)
Information: Writing timing information to file '/home/student/labs/jithin_prjct/jith/count.sdf'. (WT-3)
Information: Updating design information... (UID-85)
1
create_clock clk -period 2
1
report_timing
Information: Updating graph... (UID-83)
Information: Updating design information... (UID-85)
****************************************
Report : timing
-path full
-delay max
-max_paths 1
Design : count
Version: E-2010.12-SP2
Date : Fri Mar 20 22:08:55 2015
****************************************
Operating Conditions: TYPICAL Library: saed90nm_typ
Wire Load Model Mode: enclosed
Startpoint: out_reg[0] (rising edge-triggered flip-flop clocked by clk)
Endpoint: out_reg[3] (rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Des/Clust/Port Wire Load Model Library
------------------------------------------------
count ForQA saed90nm_typ
Point Incr Path
-----------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
out_reg[0]/CLK (DFFX1) 0.00 0.00 r
out_reg[0]/Q (DFFX1) 0.18 0.18 f
U25/QN (NOR2X0) 0.11 0.29 r
U21/Q (AO21X1) 0.12 0.41 r
U15/Q (AO21X1) 0.10 0.51 r
U14/Q (MUX21X1) 0.12 0.63 r
out_reg[3]/D (DFFX1) 0.04 0.67 r
data arrival time 0.67
clock clk (rise edge) 2.00 2.00
clock network delay (ideal) 0.00 2.00
out_reg[3]/CLK (DFFX1) 0.00 2.00 r
library setup time -0.07 1.93
data required time 1.93
-----------------------------------------------------------
data required time 1.93
data arrival time -0.67
-----------------------------------------------------------
slack (MET) 1.26
PrimeTime输出是通过将输入作为计数器的netlist
文件,计数器的SDF
文件(均由设计编译器生成)和时钟周期2
来生成的。 PrimeTime输出如下所示。
report_timing
****************************************
Report : timing
-path_type full
-delay_type max
-max_paths 1
Design : count
Version: E-2010.12-SP1
Date : Fri Mar 20 22:08:14 2015
****************************************
Startpoint: out_reg[0] (rising edge-triggered flip-flop clocked by clk)
Endpoint: out_reg[3] (rising edge-triggered flip-flop clocked by clk)
Path Group: clk
Path Type: max
Point Incr Path
---------------------------------------------------------------
clock clk (rise edge) 0.00 0.00
clock network delay (ideal) 0.00 0.00
out_reg[0]/CLK (DFFX1) 0.00 0.00 r
out_reg[0]/Q (DFFX1) 0.18 * 0.18 f
U25/QN (NOR2X0) 0.11 * 0.29 r
U21/Q (AO21X1) 0.12 * 0.41 r
U15/Q (AO21X1) 0.10 * 0.51 r
U14/Q (MUX21X1) 0.12 * 0.63 r
out_reg[3]/D (DFFX1) 0.04 * 0.67 r
data arrival time 0.67
clock clk (rise edge) 2.00 2.00
clock network delay (ideal) 0.00 2.00
out_reg[3]/CLK (DFFX1) 2.00 r
library setup time -0.07 * 1.93
data required time 1.93
---------------------------------------------------------------
data required time 1.93
data arrival time -0.67
---------------------------------------------------------------
slack (MET) 1.26
答案 0 :(得分:1)
只有在布局后网表上执行分析时,才会得到不同的结果。使用预布局Netlist,您可以使用.lib文件中的相同数据为工具提供数据,以便在Design Compiler或PrimeTime中执行时序分析。布局后网表包括时钟树综合,当你开始使用PrimeTime时。 此外,请注意,您只能分析设置要求,并且在预布局网表中无需保留要求。
答案 1 :(得分:1)
您为PrimeTime提供网表和SDF(标准延迟格式,时序延迟信息),SDF由Design Compiler生成。在您的情况下,PrimeTime不会自行计算单元/净延迟,因为您已经为PrimeTime提供了SDF。因此,PrimeTime时序与Design Compiler相同。
在ASIC设计流程中,PrimeTime用于预先安置和路径后放置和路由。在前置和路径阶段,我们使用PrimeTime来分析时间,以确认时间目标是否可以在适当的位置和路线上实现。在后置和路径阶段,我们使用PrimeTime来签署布局后时序,输入数据是网表和提取RC。
无论如何,为PrimeTime提供SDF并不常见。 PrimeTime具有精确的延迟计算器,因此无需输入SDF。相反,我们使用PrimeTime为其他工具生成SDF来分析时间。