Using MACH-TA for Simulating Digital Circuits
MACH-PA (MACH Timing/Power Analyzer) is a SPICE-like simulator used to
simulate and verify a digital circuit. It can be used to confirm the functionality
of a circuit and to measure; circuit delays, rise/fall times, voltage levels
and currents.
By combining measurements into mathematical functions you can measure
the power consumed by a circuit. For example, to calculate a circuit's
power consumption you would measure the RMS current from the power supply and
multiply that current by VDD. MACH-PA has many other features such as
setting break points on a number of input/output conditions and performing
constraint checking for setup and hold times. Input/output signals, along
with internal nodes, can be view with the wave viewer. DC steady stage
voltages can be display bedside transistor nodes.
A test vector file containing input signal values and desired output
signal values can also be created. MACH-PA will force the inputs to the
specified values and determine if the outputs are at their specified
values. The simulator will report errors found.
1. Setting the Working Directory
3. Extracting the spice netlist using Calibre PEX
5. Setting up a Mach – TA Simulation
1. Setting the Working Directory
From the UNIX terminal, navigate to the directory where you have
created your IC – Station layout. In
this case we have called the design “inv”
and it should be located in your home directory, i.e. just under your user
name.
disk2/acc/xxx
Where “xxx”
represents your user name.
If you are not already in this directory, navigate to this
directory. Set this as the working
directory using the “swd” command.
Invoke IC station with the following command:
adk_ic
3. Opening Cell
Open the inverter cell created in the previous tutorials using
File -> Open -> Cell
Make sure that “Edit” is checked

Select the command: Connectivity->Port->Add Text on Ports to transfer the TEXT names in your design to a layer that is readable by the extraction tools.
As shown in the figure below, all TEXT (signal names, VDD, and GND) are transferred on layers METAL2 and METAL1. The extraction tool recognizes TEXT
on layers METAL1, METAL2, METAL3, METAL1.PORT, METAL2.PORT, and METAL3.PORT. If you place TEXT (signal names) on other layers
they won't be extracted properly unless the Calibre xRC rules file is edited. The signal names should show up in the netlist generated by Calibre xRC.

3. Extracting the SPICE netlist using Calibre PEX
To invoke Calibre PEX go to

Click cancel
Note: The runset file is used to save calibre settings. Since this is the first time we have started calibre there are no settings to be saved
Clck on the “Rules” button
Find the “rules” file in $ADK/technology/ic/process/ami05.calibre.rules as shown in the figure below.

Ensure that the run directory is your current working directory.
Next click the “Inputs” button.
Select the layout tab.
Enter the name of the GDSII file you would like to create.
Enter the name of the cell layout.
Click the export from layout viewer option.

Note: This should create a GDSII file from the layout. The export from layout viewer option is selected so that the layout cell in this case “inv4” is taken directly from the IC station layout view and converted into a GDSII file called “layout.gdsii.” Parasitics and node names will be extracted from this file.
Next click the “Outputs” button.
Choose the “Netlist” tab.
Select the “DSPF” output format option.
Under “File” select a new name to call your output. Here I chose “out.sp” but the name could be anything.
Under “use names from” select “layout” this makes sure that the net names in the output file are taken from the GDSII input file created above.

Note: DSPF format is one SPICE format accepted by Mach TA.
Note: Only “layout” can be used here to extract node names because we have not provided a source input file.
Click the “Run PEX” button to generate the input file and output netlist.
The resulting spice file should look similar to the one shown below. Notice that the signal names appear in the netlist.

To save your settings to a Runset file go to
File -> Save Runset As
In the dialog box that appears enter a location and filename for your runset file.

The next time you need to run Calibre PEX you can use this Runset file.
Close Calibre and IC-Station and return to the UNIX prompt. You are now ready to invoke Mach TA.
For now login into the tesla workstation to use MACH-PA. The Linux stations seem to crash when starting MACH-PA.
Before invoking MACH TA make sure you are in the correct
working directory. I.E., the directory in
which you created the SPICE output file.
Enter the following into the command
prompt.
Where design name is the name of
your spice output file. In this case I
called my file out.sp.
Edit the file produced from the unh_mpa_prep
(out.sp.mta)
script to add a capacitor from the output node to GND:
Cload OUT GND 3.0p
Next enter the following statement
to invoke Mach TA.
In this case the design_name.mta should be out.sp.mta.
Mach TA should now appear and
display the number and types of devices.
The image below shows that 57
parasitic elements were found in our SPICE
netlist indicating that the data was
correct.
5. Setting up a Mach – TA Simulation
The following window will appear
showing all signals from your spice netlist.
From the signals viewer window
select
Plot -> Voltage Signals
In Window
plot v(signal_name1) v(signal_name2) v(signal_nbame3)
where signal_name1 through signal_name3 are the names of the signals in the design.
This should send all voltage signals
in the window to the wave viewer.
Close this window and click the “Wave Viewer” shortcut button.
This should open up the “EZWave” wave viewer. Once this is open select the voltage signals
you would like to view.
In This case Select IN OUT VDD and GND.

The waves will appear as empty signals.
Without closing “EZWave” Go back to the Mach TA screen and Force the value of the input with the following command.
pulse clk IN 0 pulse
(0 5 0n .1n .1n 10n 20n)
This will setup the input signal as a clk pulse with signal IN referenced to node 0 pulse (low_voltage high_voltage delay rise_time fall_time pulse_width period)
Now enter the following
run 100n
This will run the simulator for 100 ns.
Note: as an alternative to entering the MACH TA commands in the command window you can enter all the commands in a command file then
choose Tools-> Run Commands... and access the command file created.
You can go back to the “EZWave” viewer and view the results.
The output should be an inverted input signal, as shown below.

6. Using EZWave Features
“EZWave” has many useful features including a measurement tool.
Click on the signal you wish to measure.
Invoke the measurement tool by clicking
Tools ->
Measurement Tool
The following dialog box will appear.
Select the signal you wish to measure from the drop down box.
Check all measurement boxes so that all types are measured.

Click apply to begin measuring.
The image below shows the wave with min, max, average and peak to peak values.

Clear the signal of all measurements by deleting the measurement text boxes.
Go back to the measurement tool and select “rise time” from the pull down menu.
Select “apply” to measure the rise time. Repeat this process with “fall time” selected.

The rise and fall times are now displayed in text boxes as shown below.

To find the delay time between the two signals, double click the input signal on the left hand pane. This should bring the input signal back into the wave viewer.
Next go back to the measurement tool and select “Delay” from the pull down menu.
Select V(IN) for signal #1
Select V(OUT) for signal #2

Click the “Apply” button to generate the delay measurement.
The delay between the two signals should appear as below.

Close EZWave and Mach TA.