Sunteți pe pagina 1din 3

7/21/2016

SDFtoVerilogconstructmatching

SDFtoVerilogconstructmatching
TheannotatormatchesSDFconstructstocorrespondingVerilogconstructsinthecells.Usually,the
cellscontainpathdelaysandtimingcheckswithinspecifyblocks.ForeachSDFconstruct,the
annotatorlocatesthecellinstanceandupdateseachspecifypathdelayortimingcheckthatmatches.
AnSDFconstructcanhavemultiplematches,inwhichcaseeachmatchingspecifystatementis
updatedwiththeSDFtimingvalue.SDFconstructsarematchedtoVerilogconstructsasfollows:
IOPATHismatchedtospecifypathdelaysorprimitives:
SDF

Verilog

(IOPATH(posedgeclk)q(3)(4)) (posedgeclk=>q)=0
(IOPATHay(3)(4))

bufu1(y,a)

TheIOPATHconstructusuallyannotatespathdelays.Ifthemodulecontainsnopathdelays,thenall
primitivesthatdrivethespecifiedoutputportareannotated.
INTERCONNECTandPORTarematchedtoinputports:
SDF

Verilog

(INTERCONNECTu1.yu2.a(5)) inputa
(PORTu2.a(5))

inouta

Bothoftheseconstructsidentifyamoduleinputorinoutportandcreateaninternalnetthatisa
delayedversionoftheport.ThisiscalledaModuleInputPortDelay(MIPD).Allprimitives,
specifypathdelays,andspecifytimingchecksconnectedtotheoriginalportarereconnectedtothe
newMIPDnet.
PATHPULSEandGLOBALPATHPULSEarematchedtospecifypathdelays:
SDF
(PATHPULSEay(5)(10))

Verilog
(a=>y)=0

(GLOBALPATHPULSEay(30)(60)) (a=>y)=0

IftheinputandoutputportsareomittedintheSDF,thenallpathdelaysarematchedinthecell.
DEVICEismatchedtoprimitivesorspecifypathdelays:
http://www.pldworld.com/_hdl/2/_ref/se_html/manual_html/c_sdf11.html

1/3

7/21/2016

SDFtoVerilogconstructmatching

SDF

Verilog

(DEVICEy(5)) andu1(y,a,b)
(DEVICEy(5)) (a=>y)=0(b=>y)=0

IftheSDFcellinstanceisaprimitiveinstance,thenthatprimitive'sdelayisannotated.Ifitisa
moduleinstance,thenallspecifypathdelaysareannotatedthatdrivetheoutputportspecifiedinthe
DEVICEconstruct(allpathdelaysareannotatediftheoutputportisomitted).Ifthemodule
containsnopathdelays,thenallprimitivesthatdrivethespecifiedoutputportareannotated(orall
primitivesthatdriveanyoutputportiftheoutputportisomitted).
SETUPismatchedto$setupand$setuphold:
SDF

Verilog

(SETUPd(posedgeclk)(5)) $setup(d,posedgeclk,0)
(SETUPd(posedgeclk)(5)) $setuphold(posedgeclk,d,0,0)
HOLDismatchedto$holdand$setuphold:
SDF

Verilog

(HOLDd(posedgeclk)(5)) $hold(posedgeclk,d,0)
(HOLDd(posedgeclk)(5)) $setuphold(posedgeclk,d,0,0)
SETUPHOLDismatchedto$setup,$hold,and$setuphold:
SDF

Verilog

(SETUPHOLDd(posedgeclk)(5)(5)) $setup(d,posedgeclk,0)
(SETUPHOLDd(posedgeclk)(5)(5)) $hold(posedgeclk,d,0)
(SETUPHOLDd(posedgeclk)(5)(5)) $setuphold(posedgeclk,d,0,0)
RECOVERYismatchedto$recovery:
SDF

Verilog

(RECOVERY(negedgereset)(posedgeclk)(5)) $recovery(negedgereset,posedgeclk,0)
REMOVALismatchedto$removal:
SDF

Verilog

(REMOVAL(negedgereset)(posedgeclk)(5)) $removal(negedgereset,posedgeclk,0)
RECREMismatchedto$recovery,$removal,and$recrem:
SDF

Verilog

(RECREM(negedgereset)(posedgeclk)(5)(5)) $recovery(negedgereset,posedgeclk,0)
http://www.pldworld.com/_hdl/2/_ref/se_html/manual_html/c_sdf11.html

2/3

7/21/2016

SDFtoVerilogconstructmatching

(RECREM(negedgereset)(posedgeclk)(5)(5)) $removal(negedgereset,posedgeclk,0)
(RECREM(negedgereset)(posedgeclk)(5)(5)) $recrem(negedgereset,posedgeclk,0)
SKEWismatchedto$skew:
SDF

Verilog

(SKEW(posedgeclk1)(posedgeclk2)(5)) $skew(posedgeclk1,posedgeclk2,0)
WIDTHismatchedto$width:
SDF

Verilog

(WIDTH(posedgeclk)(5)) $width(posedgeclk,0)
PERIODismatchedto$period:
SDF

Verilog

(PERIOD(posedgeclk)(5)) $period(posedgeclk,0)
NOCHANGEismatchedto$nochange:
SDF

Verilog

(NOCHANGE(negedgewrite)addr(5)(5)) $nochange(negedgewrite,addr,0,0)

ModelTechnologyIncorporated
Voice:(503)6411340
Fax:(503)5265410
www.model.com
sales@model.com

http://www.pldworld.com/_hdl/2/_ref/se_html/manual_html/c_sdf11.html

3/3

S-ar putea să vă placă și