SDF format and library model don't match, what can I do?

F

Fat Cat

Guest
I found that the SDF from the P&R engineer doesn't match with the
description
in the standard cell library, which caused some annotation failures.

How am I going to deal with such situation?

Thank you.




In the SDF annotation of ncverilog: 05.10-s016...
----------------------------------------

ncelab: *W,SDFNEP: Failed Attempt to annotate to non-existent path (IOPATH
(posedge A1) X) of instance sim.chip.add_132.U4 of module OR2X1000
</home/worst.sdf, line 48010>.
ncelab: *W,SDFNEP: Failed Attempt to annotate to non-existent path (IOPATH
(negedge A1) X) of instance sim.chip.add_132.U4 of module OR2X1000
</home/worst.sdf, line 48011>.
ncelab: *W,SDFNEP: Failed Attempt to annotate to non-existent path (IOPATH
(posedge A2) X) of instance sim.chip.add_132.U4 of module OR2X1000
</home/worst.sdf, line 48012>.
ncelab: *W,SDFNEP: Failed Attempt to annotate to non-existent path (IOPATH
(negedge A2) X) of instance sim.chip.add_132.U4 of module OR2X1000
</home/worst.sdf, line 48013>.





In the standard cell library, the segment regarding the timing:
----------------------------------------
// PATH DELAY
if(A1 == 1'b0) (A1 => X) = (50:50:50 , 50:50:50);
if(A1 == 1'b1) (A1 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b0) (A2 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b1) (A2 => X) = (50:50:50 , 50:50:50);
`ifdef no_ifnone
`else
ifnone (A1 => X) = (50:50:50 , 50:50:50);
ifnone (A2 => X) = (50:50:50 , 50:50:50);
`endif


In the SDF file, one segment:
----------------------------------------
(CELL
(CELLTYPE "OR2X1000")
(INSTANCE add_132/U4)
(DELAY (ABSOLUTE
(IOPATH (posedge A1) X (50:50:50) (50:50:50))
(IOPATH (negedge A1) X (50:50:50) (50:50:50))
(IOPATH (posedge A2) X (50:50:50) (50:50:50))
(IOPATH (negedge A2) X (50:50:50) (50:50:50))
))
)
 
On Mon, 20 Dec 2004 15:23:35 +0800, "Fat Cat"
<Fatcats1980@$$$$m$il.com> wrote:

In the standard cell library, the segment regarding the timing:
----------------------------------------
// PATH DELAY
if(A1 == 1'b0) (A1 => X) = (50:50:50 , 50:50:50);
if(A1 == 1'b1) (A1 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b0) (A2 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b1) (A2 => X) = (50:50:50 , 50:50:50);
`ifdef no_ifnone
`else
ifnone (A1 => X) = (50:50:50 , 50:50:50);
ifnone (A2 => X) = (50:50:50 , 50:50:50);
`endif


In the SDF file, one segment:
----------------------------------------
(CELL
(CELLTYPE "OR2X1000")
(INSTANCE add_132/U4)
(DELAY (ABSOLUTE
(IOPATH (posedge A1) X (50:50:50) (50:50:50))
(IOPATH (negedge A1) X (50:50:50) (50:50:50))
(IOPATH (posedge A2) X (50:50:50) (50:50:50))
(IOPATH (negedge A2) X (50:50:50) (50:50:50))
))
)
It's obvious, isn't it ? You need to edit the SDF file to read

(IOPATH A1 X (50:50:50) (50:50:50))
instead of

(IOPATH (posedge A1) X (50:50:50) (50:50:50))
A nice regular expression substitution solves the problem easily.
 
Thank you, mk.




"mk" <kal@delete.dspia.com> wrote in message
news:85kds01fmobe62pk4p6dd3riagtmf4jmav@4ax.com...
On Mon, 20 Dec 2004 15:23:35 +0800, "Fat Cat"
Fatcats1980@$$$$m$il.com> wrote:

In the standard cell library, the segment regarding the timing:
----------------------------------------
// PATH DELAY
if(A1 == 1'b0) (A1 => X) = (50:50:50 , 50:50:50);
if(A1 == 1'b1) (A1 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b0) (A2 => X) = (50:50:50 , 50:50:50);
if(A2 == 1'b1) (A2 => X) = (50:50:50 , 50:50:50);
`ifdef no_ifnone
`else
ifnone (A1 => X) = (50:50:50 , 50:50:50);
ifnone (A2 => X) = (50:50:50 , 50:50:50);
`endif


In the SDF file, one segment:
----------------------------------------
(CELL
(CELLTYPE "OR2X1000")
(INSTANCE add_132/U4)
(DELAY (ABSOLUTE
(IOPATH (posedge A1) X (50:50:50) (50:50:50))
(IOPATH (negedge A1) X (50:50:50) (50:50:50))
(IOPATH (posedge A2) X (50:50:50) (50:50:50))
(IOPATH (negedge A2) X (50:50:50) (50:50:50))
))
)

It's obvious, isn't it ? You need to edit the SDF file to read

(IOPATH A1 X (50:50:50) (50:50:50))

instead of

(IOPATH (posedge A1) X (50:50:50) (50:50:50))

A nice regular expression substitution solves the problem easily.
 

Welcome to EDABoard.com

Sponsor

Back
Top