Table of Contents Previous page Next page Index

ModelSim Documentation Bookcase

Model Technology Inc.


SDF to Verilog construct matching

The annotator matches SDF constructs to corresponding Verilog constructs in the cells. Usually, the cells contain path delays and timing checks within specify blocks. For each SDF construct, the annotator locates the cell instance and updates each specify path delay or timing check that matches. An SDF construct can have multiple matches, in which case each matching specify statement is updated with the SDF timing value. SDF constructs are matched to Verilog constructs as follows:

IOPATH is matched to specify path delays or primitives:

SDF
Verilog
(IOPATH (posedge clk) q (3) (4))
(posedge clk => q) = 0;
(IOPATH a y (3) (4))
buf u1 (y, a);

The IOPATH construct usually annotates path delays. If the module contains no path delays, then all primitives that drive the specified output port are annotated.

INTERCONNECT and PORT are matched to input ports:

SDF
Verilog
(INTERCONNECT u1.y u2.a (5))
input a;
(PORT u2.a (5))
inout a;

Both of these constructs identify a module input or inout port and create an internal net that is a delayed version of the port. This is called a Module Input Port Delay (MIPD). All primitives, specify path delays, and specify timing checks connected to the original port are reconnected to the new MIPD net.

PATHPULSE and GLOBALPATHPULSE are matched to specify path delays:

SDF
Verilog
(PATHPULSE a y (5) (10))
(a => y) = 0;
(GLOBALPATHPULSE a y (30) (60))
(a => y) = 0;

If the input and output ports are omitted in the SDF, then all path delays are matched in the cell.

DEVICE is matched to primitives or specify path delays:

SDF
Verilog
(DEVICE y (5))
and u1(y, a, b);
(DEVICE y (5))
(a => y) = 0; (b => y) = 0;

If the SDF cell instance is a primitive instance, then that primitive's delay is annotated. If it is a module instance, then all specify path delays are annotated that drive the output port specified in the DEVICE construct (all path delays are annotated if the output port is omitted). If the module contains no path delays, then all primitives that drive the specified output port are annotated (or all primitives that drive any output port if the output port is omitted).

SETUP is matched to $setup and $setuphold:

SDF
Verilog
(SETUP d (posedge clk) (5))
$setup(d, posedge clk, 0);
(SETUP d (posedge clk) (5))
$setuphold(posedge clk, d, 0, 0);

HOLD is matched to $hold and $setuphold:

SDF
Verilog
(HOLD d (posedge clk) (5))
$hold(posedge clk, d, 0);
(HOLD d (posedge clk) (5))
$setuphold(posedge clk, d, 0, 0);

SETUPHOLD is matched to $setup, $hold, and $setuphold:

SDF
Verilog
(SETUPHOLD d (posedge clk) (5) (5))
$setup(d, posedge clk, 0);
(SETUPHOLD d (posedge clk) (5) (5))
$hold(posedge clk, d, 0);
(SETUPHOLD d (posedge clk) (5) (5))
$setuphold(posedge clk, d, 0, 0);

RECOVERY is matched to $recovery:

SDF
Verilog
(RECOVERY (negedge reset) (posedge clk) (5))
$recovery(negedge reset, posedge clk, 0);

REMOVAL is matched to $removal:

SDF
Verilog
(REMOVAL (negedge reset) (posedge clk) (5))
$removal(negedge reset, posedge clk, 0);

RECREM is matched to $recovery, $removal, and $recrem:

SDF
Verilog
(RECREM (negedge reset) (posedge clk) (5) (5))
$recovery(negedge reset, posedge clk, 0);
(RECREM (negedge reset) (posedge clk) (5) (5))
$removal(negedge reset, posedge clk, 0);
(RECREM (negedge reset) (posedge clk) (5) (5))
$recrem(negedge reset, posedge clk, 0);

SKEW is matched to $skew:

SDF
Verilog
(SKEW (posedge clk1) (posedge clk2) (5))
$skew(posedge clk1, posedge clk2, 0);

WIDTH is matched to $width:

SDF
Verilog
(WIDTH (posedge clk) (5))
$width(posedge clk, 0);

PERIOD is matched to $period:

SDF
Verilog
(PERIOD (posedge clk) (5))
$period(posedge clk, 0);

NOCHANGE is matched to $nochange:

SDF
Verilog
(NOCHANGE (negedge write) addr (5) (5))
$nochange(negedge write, addr, 0, 0);


Model Technology Inc.
Model Technology Incorporated
Voice: (503) 641-1340
Fax: (503)526-5410
www.model.com
sales@model.com
Table of Contents Previous page Next page Index

ModelSim Documentation Bookcase