10.06.2016 Views

eldo_user

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Eldo Control Language<br />

Overview of the Eldo Control Language<br />

Overview of the Eldo Control Language<br />

The Eldo Control Language extends the raw capabilities of Eldo by adding support for<br />

sequential operations, results-based decision taking, and the arbitrary formatting of simulation<br />

results.<br />

In its classical mode of operation, Eldo reads in a netlist that contains both the circuit element<br />

description and a number of commands. The commands usually start with a “.”; for example<br />

.TRAN, .STEP, .EXTRACT, and so on. The relative position of the commands is unimportant;<br />

Eldo uses its own hard-coded internal logic to decide the sequence in which to execute the<br />

commands, between which there is virtually no communication. Eldo also decides how to<br />

format the results of the various commands it executes.<br />

In many cases, the Eldo default logic is sufficient for a designer to achieve the required<br />

simulation results. For situations where more custom control is required, the Eldo Control<br />

Language enables a designer to bypass the hard-coded execution logic and formatting, and<br />

implement whatever sequence of simulation commands is required, from very simple ones to<br />

full algorithms. In addition, the formatting of the results can be freely defined.<br />

The Eldo Control Language is based on two fundamental structures: testbenches and tasks.<br />

• A testbench is a reusable parameterized block of simulator commands that can be<br />

instantiated in the netlist to simulate. It is comparable to the notion of a macro from a<br />

classical programming language, such as C, or comparable to #define in Eldo, when<br />

using the -E/-EE command-line argument, see “Directives Interpreted using the C Pre-<br />

Processor (-E/-EE Arguments)” on page 126.<br />

• A task is a sequence of instructions that specifies which netlists are to be simulated and<br />

what to do with their results. The netlists simulated by the tasks are typically created by<br />

instantiating testbenches with different parameter values. Inside a task, conditions can<br />

be tested, multiple simulations can be launched through for and while loops, their results<br />

(typically the .EXTRACT/.MEAS and the waveforms) easily retrieved and tested for,<br />

and output files printed in arbitrary formats. Any simulation plan exceeding the hardcoded<br />

capabilities of Eldo can be implemented.<br />

The power of the Eldo Control Language is that it is implemented directly within Eldo. This<br />

means that the Eldo Control Language “knows” the syntax and semantics of analog simulation;<br />

it knows what a simulation netlist is, and what .EXTRACT/.MEAS or waveforms are, and thus<br />

can interface directly with these objects.<br />

See also:<br />

• “Testbenches” on page 809<br />

• “Tasks” on page 814<br />

Eldo Control Language Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 803<br />

Eldo Control Language Limitations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 806<br />

802<br />

Eldo® User's Manual, 15.3

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

Saved successfully!

Ooh no, something went wrong!