Using MACH-TA for Simulating Digital Circuits

Changes made on 10/17/06

 

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. 6

2. Invoking IC - Station. 6

3. Extracting the spice netlist using Calibre PEX.. 8

4. Invoking Mach – TA.. 13

5. Setting up a Mach – TA Simulation. 15

6. Using EZWave Features. 21

 

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.

 

2. Invoking IC - Station

 

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

 

Calibre -> run PEX

 

 

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.

 

4. Invoking 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.

 

unh_mpa_prep design_name

 

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.

 

Start_mpa design_name.mta

 

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

 

Go to

 

Tools -> Signals Viewer

 

 

The following window will appear showing all signals from your spice netlist.

 

 

From the signals viewer window select

 

Plot -> Voltage Signals In Window  As an alternate use the MACH TA plot command:

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.