Playing with Mentor Graphics
Here are the some ancient introductory tutorials and lab assignments from ECE 303 as a refresher for students
who aren't familiar with Mentor Graphics:
The files are in postscript format, so you can view them with
ghostview (gv).   Download the files to your account.
- How do PLA and Memory components work?
You must specify a file for the memory component to initialize memory with. The file is of the format "address / contents". An example would like the following:
00000000 / 080000FC;
00000004 / 00000000;
00000100 / 20010011;
00000104 / ac01003c;
00000108 / 20010027;
0000010c / ac01003d;
RAM components look like this:
 
For RAM, you must the number of input bits (N), the number of output
bits (M), and the input file.
Similarly, the PLA component needs an input file to use as a truth table. In addition to the reference file, the PLA component also specifies how many input wires and output wires there are. The file should be formated like this where "-" is a don't care bit:
#input / output
1 0 0 0 0 / 0 0 1 0 - 0 ;
0 1 1 0 0 / 0 1 1 0 1 0 ;
1 0 0 0 1 / 0 - 1 0 0 1 ;
1 0 0 1 0 / 1 1 1 0 1 0 ;
The PLA component looks like this:
You need to specify the truth file, and the number of inputs (N) and
outputs (M).
- How do I make custom symbols?
After making a piece of logic, you can create a custom symbol for further use rather than having to copy and paste each component over and over again. To create a new symbol, first select the "schematic" option under the "Check" menu. Then go to the "Miscellaneous" menu and select "Generate Symbol..."
- How do I create and use buses?
A bus are simply a bundle of wires. On the screen in Design
Architect, they are represented by what look like fat wires and are
named with the convention busname(31:0). There are a couple ways to
rip individual wires off of a bus. One is to use the "rip"
components in the library. The other way is to just attach a wire
to bus. Either way, you should be sure to specify which wire on the
bus you're trying to rip. If you use the latter method, a dialog
window will appear in which you can enter the index for the wire. Simulation is exactly the same as usual
except you can use hex or decimal values.
- Can I rip buses to/from buses?
Yes! There are probably a couple ways of doing it, but here's one.
rip the bus a with a regular wire, and enter an array for the index
instead of single digit. Though it looks like a wire, it really does
keep all the lines you ripped off the bus. At this point you may want
to play with the drawn properties of the wire to make it thicker to
look like a bus. The only tricky part to be aware of is that if
you're ripping a bus from one bus, and it actually changes nets, the
bus will have to go through some sort of gen_lib component like at the
very least, a ripper component. Here is an example.
- How do dofiles work?
Dofiles are quite simple. The key is to pay attention to the xterms
that are started when you open up quicksim. Comments are preceded by
"//", and commands typically start with $ signs. Just copy the
appropriate commands in to a text file. To run a dofile, bring
quicksim to to the forefront and type "dofile filename". You may need
to add a relative pathname to the filename.
- Is there a convenient means of naming
wires?
Yes, as a matter of fact, there is. It is a little tricky, and there
are multiple ways of going about it, including a rumored keystroke
combo. Say you've added 64 wires to bus before you named the net.
Once you've named the net, you've got 64 wires which you must then
name with the correct indices. If they all need to be named
sequentially, then you're in luck. Select all the labels (not
actual wire instances), right click and choose "Sequence Text." A
dialog will pop up asking for a Prefix, Suffix, start number, and an
increment amount. The prefix will contain the first part of the label
string, most likely something like "Bus(", and the suffix will most
likely be ")", and the starting number 0 and increment amount 1. As a
side note, the blue ripper components only need index numbers (no bus
name). Hopefully, the following pics will help some.
  
- Can I run Mentor remotely from another computer?
Yes, see this link for help setting up Mentor Graphics fonts for an Xserver
- What the heck is the middle button good for?
Lot's of things, actually in Mentor Graphics. A full list of mouse gestures can be found under Design Architect's Help->On Strokes... menu. Here's a brief table of helpful mouse gestures in Design Architect.
\ (top to bottom) | Zoom in to diagonal area |
\ (bottom to top) | Zoom to fit all |
/ (top to bottom) | Zoom in |
/ (bottom to top) | Zoom out |
- Mice suck, what are the Mentor Graphics Key commands?
The table along the bottom of the Design Architect window is a context-based list of commands. Each box is tied to a function key, and the position of the command indicates what modifier key to use (shift, control, or alt).
Back to ECE 361