我已经在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.The设计编译器输出的时钟周期如下所示。
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.26PrimeTime输出以计数器的netlist文件、计数器的SDF文件(均由Design Compiler生成)和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发布于 2015-05-15 21:19:09
只有在布局后网表上执行分析时,才会得到不同的结果。使用预布局网表,您可以在Design Compiler或PrimeTime中向工具提供来自.lib文件的相同数据,以执行时序分析。布局后网表包括时钟树综合,这就是你开始使用PrimeTime的时候。此外,请注意,在预布局网表中,您只能分析设置要求,而不能分析保持要求。
发布于 2015-08-20 16:54:22
您可以为PrimeTime提供网表和SDF (标准延迟格式,定时延迟信息),SDF由Design Compiler生成。在您的例子中,PrimeTime不会自己计算单元/净延迟,因为您已经向PrimeTime提供了SDF。所以PrimeTime的时序和设计编译器是一样的。
在ASIC设计流程中,使用PrimeTime进行前置布局布线和后置布局布线。在前置布线阶段,利用PrimeTime对时序进行分析,确定布线时序目标是可实现的。在布局布线后阶段,我们使用PrimeTime来标记布局后的时序,输入的数据是网表和提取的RC。
无论如何,向PrimeTime提供SDF并不常见。PrimeTime有精确的延迟计算器,所以不需要输入SDF。相反,我们使用PrimeTime生成SDF,以供其他工具分析时序。
https://stackoverflow.com/questions/29178626
复制相似问题