vam
New Member
Offline
Posts: 3
|
7. About using VerilogA in the neslist, a) I thought using VerilogA directly in the netlist is a good choise by comparing with writting a C model. Because the latter choise may need to get familar with CMI (set/get the parameters, bias-independent initialization, bias-dependent calculation and stamping), and it is an error-prone process. b) But so far as I know, all the build-in VerilogA compilers of each simualtor didn't support the complex module (like bsimcmg, psp) well: it can't handle it and/or the performance is poor. For example, a VerilogA bsim4 might be 3X slower than a build-in bsim4. So if your verilogA codes are complex, and the instances number (which using this VerilogA module) are in large scale, and the simulation speed is important, then the VerilogA solution might be not acceptable. c) Normally the parameters inside a VerilogA module are all instance parameters, so if you want to make part of them as model parameters and be shared between all the instances, you may: 1) using paramset (LRM 2.3.1 6.4 paramsets), 2) using attribute (* type="instance" *) on a parameter, or attribute (*instance_parameter_list={…} *) on a module. Here should be noticed that: they are not all supported by the build-in compilers (and even more, none are supported), so you might check with the simulator vendor first.
|