23.01.2015 Views

Download - Wolfram Research

Download - Wolfram Research

Download - Wolfram Research

SHOW MORE
SHOW LESS
  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.2 Subcircuit and Device Model Definition 203<br />

Subcircuit[<br />

Name −> "DifferentialPair", Selector −> "DeviceLevel",<br />

Ports −> {"H1", "H2", "IN1", "IN2", "L"},<br />

Parameters −> {Area, RED},<br />

Definition −> Circuit[<br />

Netlist[<br />

{"Q1", {"H1" −> "C", "IN1" −> "B", "ED1" −> "E"},<br />

Model −> "BJT", Selector −> Selector["BJT", "Q1"],<br />

Parameters −> "LocalNPN"},<br />

{"RED1", {"ED1", "L"}, RED},<br />

{"Q2", {"H2" −> "C", "IN2" −> "B", "ED2" −> "E"},<br />

Model −> "BJT", Selector −> Selector["BJT", "Q2"],<br />

Parameters −> "LocalNPN"},<br />

{"RED2", {"ED2", "L"}, RED}<br />

],<br />

ModelParameters[Name −> "LocalNPN", Type −> "NPN",<br />

IS −> 2.*^−15, BF −> 200., RC −> 50./Area, RE −> 2./Area]<br />

]<br />

]<br />

Analog Insydes allows you to implement arbitrary multi-dimensional voltage-current relations as<br />

analog behavioral models. ABMs are implemented using sets of Equations instead of Netlist or<br />

Circuit objects. Each model equation must be written in the form lhs == rhs, where lhs and rhs<br />

denote arbitrary Mathematica expressions.<br />

If you implement a behavioral model using the Equations keyword, you must declare the<br />

unknowns of the model equations in the Variables section.<br />

The following code implements a nonlinear DC model for a bipolar junction diode with series<br />

resistance Rs. The first equation serves to compute the effective diode voltage vdeff. It is written in<br />

implicit notation to demonstrate that Analog Insydes does not require model equations to be written<br />

in explicit form var == expr, where var denotes a single symbol or branch quantity identifier.<br />

Model[<br />

Name −> "Diode", Selector −> "DC",<br />

Ports −> {"A", "C"}, Parameters −> {Rs, Is, Global[Vt]},<br />

Variables −> {Voltage["A", "C"], Current["A", "C"], vdeff},<br />

Definition −> Equations[<br />

Voltage["A", "C"] − Rs*Current["A", "C"] − vdeff == 0,<br />

Current["A", "C"] == Is*(Exp[vdeff/Vt] − 1)<br />

]<br />

]<br />

In addition, the<br />

Model command lets you implement behavioral models involving ordinary differential equations

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!