I am developing
my own macro model in verilogA
Then I use
a model card approach to manage the parameters and their variations:
_param1 dist=gauss std=5 percent=yes
_param2 dist=gauss std=13 percent=yes
model modelSymbolName test1
+ param1 = _param1
+ param2 = _param2
Then I got
the following error
by spectre during Monte Carlo analysis `mc1'.
ERROR (SFE-2458): dut Instance 'I5' should
be subckt instance not device instance (statement ignored).
With I5 is
the instance name of modelSymbolName
Is it means
that to run a monte carlo, the model cards must be written with a subckt
calling the model itself ?
The "dut" parameter for monte carlo essentially is a way of specifying which instances have monte carlo applied. In general only subckts can have mismatch applied, because the unique parameterization is done per subckt instance rather than primitive instance (for example, see Recommended Spectre Monte Carlo modeling methodology)