Skip to content

Support for wmin/wmax/lmin/lmax mosfet models #175

@svenboulanger

Description

@svenboulanger

Hi,

I managed to implement BSIM1 and BSIM2 transistor models in the parser, but I am now facing some issues when trying to implement BSIM3. Starting with BSIM3, a model can be split into regions for certain transistor sizes. The SPICE syntax then typically looks as follows:

* Model definitions
.model mod.1 NMOS(LEVEL=49 lmin=0.18u lmax=1u ...)
.model mod.2 NMOS(LEVEL=49 lmin=1u lmax=2u ...)
.model mod.3 NMOS(LEVEL=49 lmin=2u ...)

* Component definition - notice that we use mod as the model name, and it will automatically resolve to mod.1
M1 d g 0 0 mod w=1.5u l=0.5u

In order to support this, I implemented an aggregate model. Multiple BSIM3Model instances can be added to this aggregate model, and the aggregate model will allow the components to "find" the right model for the given parameters.

I'm mainly looking at this part. This function should generate a model in my case that has a different name from the line that it reads. Also, it may return the same aggregate model multiple times (in my example, it will return the aggregate model mod 3 times: once for mod.1, once for mod.2 and once for mod.3) while adding the sub-models to the aggregate model.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions