• Welcome to our site! Electro Tech is an online community (with over 170,000 members) who enjoy talking about and building electronic circuits, projects and gadgets. To participate you need to register. Registration is free. Click here to register now.

FinFet Simulation with Python

Not open for further replies.

Andrew Lees

New Member
Hi all,

I'm interested in how circuit simulators work and I've started to put together a very simple circuit simulator. An (incomplete) description of what I'm trying to do can be found here:


As an exercise, I'm trying to do some simulations using the BSIM CMG finfet model. To do this, I started from the BSIM Verilog-a model and ported this to Python. I then use this model with my Python tools to simulate a finfet inverter.

This seems to work, but the simulation is slow and the results do not completely look correct to me. For example, the edge rates on the waveforms look far too slow (the inverter is only driving a 15fF capacitor). In addition, I think that the simulation is numerically unstable since it does not always work if I change some component values (i.e. change a resistor from 100R to 10R).

I'm looking for some help with this project:

1. How can I improve the speed at which the ODEs are solved (I use the odeint library).
2. Is the simulation accurate and how can I verify that?
3. Why is the simulation unstable? Is there anything that I can do to reduce rounding and truncation errors?
4. Are there any standard simulation convergence "hacks" that I can apply to help convergence (i.e. SPICE's GMIN parameter).

I'm attaching a tarball of the example Python scripts. If anyone is interested, please take a look. Any help that can be offered would be greatly appreciated!


Not open for further replies.

Latest threads

EE World Online Articles