• Skip to main content
  • Skip to search
  • Skip to footer
Cadence Home
  • This search text may be transcribed, used, stored, or accessed by our third-party service providers per our Cookie Policy and Privacy Policy.

  1. Community Forums
  2. Custom IC SKILL
  3. PasCdfDone errors from callbacks

Stats

  • Replies 12
  • Subscribers 146
  • Views 2705
  • Members are here 0

PasCdfDone errors from callbacks

BS202501273649
BS202501273649 1 month ago

I am using using SKILL to create a single instance and set some properties.  This code generally works fine on other PDKs but on this PDK I am sometimes seeing an error (though the error is wrapped in a warning (?!)):

WARNING* (CDF-262): Cannot call doneProc SKILL function '(apply GFcdfDone (db:0x3015251a))' because a SKILL error '*Error* PasCdfDone: failed to find valid initialization data!'.

I'll include the full transcript below but basically it creates a schematic, instantiates a single instance with `dbCreateParamInst` and then sets some parameters.  When the callbacks are invoked using `CCSinvokeCdfCallbacks` I am seeing this `PasCdfDone` error message even though I am using the flags on the `CCSinvokeCdfCallbacks` call which usually fixes that problem.

The device ends up correctly instantiated with the properties set correctly but the warning seems to imply that some part of the callback code has not executed correctly and so some parameters of the device might not be correct.

The really odd behaviour is that this is what happens the first time I run the code.  But if I do the creation and instantiation again then the error does not appear - as you can see below.

I am running this in Virtuoso IC23.1-64b.ISR15.37.   The version of CCSInvokeCdfCallbacks is CCSinvokeCdfCallbacks.il 04/25/22.17:40:23 1.19

procedure( createSchematic(pdkLibraryName libraryName cellName)

if(!ddGetObj(libraryName)
ddCreateLib( libraryName ".")
techBindTechFile( (ddGetObj libraryName) pdkLibraryName)
)
; Create Cellview
dbOpenCellViewByType(libraryName cellName "schematic" "schematic" "w")
)

procedure( createInst(cellview pdkLibraryName masterName instanceName)
let( (master instance)
master=dbOpenCellViewByType(pdkLibraryName masterName "symbol" "schematicSymbol" nil)
instance = dbCreateParamInst( cellview master instanceName 0:0 "R0" 1 )
schCheck(cellview)
dbSave(cellview)
instance
)
)

procedure( setProp(instance propName propValue)
let( (prop)
prop = dbSearchPropByName(instance propName)
if( prop then
dbReplaceProp(instance propName "string" propValue)
else
dbCreateProp(instance propName "string" propValue)
)
)
)

cellview = createSchematic("foundryLib" "testLib" "testCell")
instance = createInst(cellview "foundryLib" "foundryCell" "I0")

setProp(instance "dimensionMode" "FingerWidth")
setProp(instance "l" "50n")
setProp(instance "wf" "110n")
setProp(instance "n" "1")
CCSinvokeCdfCallbacks(cellview ?callInitProc t ?useInstCDF t ?order list( "dimensionMode" "wf" "l" "n"))
createSchematic
createInst
setProp
db:0x30152d9a
INFO (SCH-1170): Extracting "testCell schematic"
Warning: Pin "b" on instance "I0": floating input/output.
Warning: Pin "s" on instance "I0": floating input/output.
Warning: Pin "g" on instance "I0": floating input.
Warning: Pin "d" on instance "I0": floating input/output.
db:0x3015251a
db:0x30151b9f
db:0x30151ba0
db:0x30151ba1
db:0x30151ba2
t
*WARNING* **Info** when Finger Length is "0.050u", maximum allowable Finger Width is "35.000u"
*WARNING* **Info** when Finger Width is "0.110u", maximum allowable Finger Length is "10.000u"
*WARNING* (CDF-262): Cannot call doneProc SKILL function '(apply GFcdfDone (db:0x3015251a))' because a SKILL error '*Error* PasCdfDone: failed to find valid initialization data!'.
t


cellview = createSchematic("foundryLib" "testLib" "testCell")
instance = createInst(cellview "foundryLIb" "foundryCell" "I0")

setProp(instance "dimensionMode" "FingerWidth")
setProp(instance "l" "50n")
setProp(instance "wf" "110n")
setProp(instance "n" "1")
CCSinvokeCdfCallbacks(cellview ?callInitProc t ?useInstCDF t ?order list( "dimensionMode" "wf" "l" "n"))
db:0x30152d9a
INFO (SCH-1170): Extracting "testCell schematic"
Warning: Pin "b" on instance "I0": floating input/output.
Warning: Pin "s" on instance "I0": floating input/output.
Warning: Pin "g" on instance "I0": floating input.
Warning: Pin "d" on instance "I0": floating input/output.
db:0x30151d9a
db:0x3015181f
db:0x30151820
db:0x30151821
db:0x30151822
t
*WARNING* **Info** when Finger Length is "0.050u", maximum allowable Finger Width is "35.000u"
*WARNING* **Info** when Finger Width is "0.110u", maximum allowable Finger Length is "10.000u"
t


  • Cancel
  • Sign in to reply
  • BS202501273649
    BS202501273649 17 days ago in reply to Andrew Beckett

    No that's a different issue - with GF.  This TSMC one is (I think) completely dealt with by removing the useInstCDF parameter so maybe does not need a response.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
  • Andrew Beckett
    Andrew Beckett 16 days ago in reply to BS202501273649

    I think there's a bug in the code if you pass ?useInstCdf t as it also partially uses the cell CDF. It probably is better if you only use ?useInstCdf t together with ?useCellCdf nil - but overall it's better to just omit the ?useInstCdf t, which is what I'd do...

    I will aim to fix the bug with this combination (which is mostly there still for legacy reasons) at some point, but it's not something I'm likely to get to in the next week or so.

    I'd encourage you to just omit the ?useInstCdf t - it shouldn't be needed nowadays.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Cancel
<

Community Guidelines

The Cadence Design Communities support Cadence users and technologists interacting to exchange ideas, news, technical information, and best practices to solve problems and get the most from Cadence technology. The community is open to everyone, and to provide the most value, we require participants to follow our Community Guidelines that facilitate a quality exchange of ideas and information. By accessing, contributing, using or downloading any materials from the site, you agree to be bound by the full Community Guidelines.

© 2025 Cadence Design Systems, Inc. All Rights Reserved.

  • Terms of Use
  • Privacy
  • Cookie Policy
  • US Trademarks
  • Do Not Sell or Share My Personal Information