I have changed my approach a bit. I added the delay parameter i neet to change to the cell using pPar("delay"). In that way the netlister adds the parameter directly to the instance call instead of only the subcircuit. In that way all i need to manipulate is the value of the parameter for every instance. Since it's the first time doing netlist manipulations and the lack of good examples i wrote a custom PrintParameter function that simply overwrites the delay parameter with a fixed value to see if it works:
(defun MYPrintParameters (formatterId cvId)
cellview_params = cvId->parameters
(foreach param cellview_params
(if param->name == "delay" then
param->value = "2u"
cellview_params = nil
);; if
);; foreach
amsPrintParameters(formatterId cvId)
);; defun
netId = amsGetNetlister()
vlog = netId->vlog
vlog->parametersProc = `MYPrintParameters
I have made the according changes in the CDF editor (under Simulation Information in the spectre settings under netlistProcedures i added MYPrintParameters) for the cell and saved theMYPrintParameters function in the libInit.il file in the library folder and tried to generate the netlist. Unfortunatly it returns the error:
*Error* MYPrintParameters: too few arguments (2 expected, 1 given) - (stdobj@0x15ecc170)
Do I have to add another parameter in the CDF editor or where did I go wrong?
Thanks for the help,
Samuel