## B. Menu Summary

Menu Option | Shortcut | Description
--- | --- | ---
File | New | Ctl-x k | Flushes the current circuit and begins a new one. A dialog box will prompt for a new circuit file and top-level block name.
Open... | Ctl-x Ctl-f | Flushes the current circuit and reads a new circuit from a file.
Open Library... | Ctl-x Ctl-l | Reads library modules from a file. The modules will be marked as library modules. Only modules that to not supersede a current non-library module will be loaded.
Save | Ctl-x Ctl-s | Saves the current circuit to the current file. If there is no current file, TkGate will prompt for a file name.
Save... | Ctl-x Ctl-w | Prompts for a file name and saves the circuit. The specified file name will become the new current file.
Print... | Ctl-x Ctl-p | Prints a schematic diagram. Schematics can be printed directly to the printer or to a file.
Options... | Ctl-x o | Brings up a dialog box allowing TkGate options to be set.
Quit | Ctl-x Ctl-c | Exits TkGate.
Edit | Cut | Ctl-w | Cuts the selected gates and inserts them into the cut buffer.
Copy | Ctl-x x | Copies the selected gates into the cut buffer.
Paste | Ctl-y | Pastes the contents of the cut buffer. If a mark is set, the gates will be pasted at the mark postion. If no mark is set, the original position of the gates in the cut buffer will be used.
Select All | Ctl-x a | Selects all gates.
Find... | Ctl-f | Searches for a gate or wire containing a substring.
Align Vert. | | | Positions the selected gates such that they are vertically aligned.
Align Horz. | - | Positions the selected gates such that they are horizontally aligned.
Tool | Move/Connect | F1 | Enables move/connect mode.
Delete Gate | F2 | Enables delete gate mode.
Cut Wire | F3 | Enables cut wire mode.
Invert | F4 | Enables invert port mode.
Bit Width | F5 | Enables set bit width mode.
Rot 0 | Ctl-F1 | Sets rotation for new gates to 0.
Rot 90 | Ctl-F2 | Sets rotation for new gates to 90.
Rot 180 | Ctl-F3 | Sets rotation for new gates to 180.
Rot 270 | Ctl-F4 | Sets rotation for new gates to 270.
Circuit | Circuit Properties... | Ctl-x E | Sets global properties of a circuit.
Criticl Path... | Ctl-x r | List the critical paths of a circuit.
Simulate | Begin Simulation | Ctl-s b | Starts a simulation.
Run | Ctl-s g | Puts the simulator into continuous simulation mode.
Pause | Ctl-s s | Puts the simulator into single-step mode.
Step Epoch(s) | space | Steps the simulator a fixed number of epochs. The step size can be set in the TkGate options box.
Step Cycle | tab | Steps the simulator a fixed number of clock cycles plus a fixed number of epochs. The number of cycles and the overstep can be set in the TkGate options box.
Breakpoint... | Ctl-s k | Creates a condition which will cause the simulator to transition from continuous simulation mode to single step mode.
Exec. Script... | Ctl-s x | Reads simulation commands from a script file.
Load Memory... | Ctl-s l | Loads a memory(ies) from a file.
Dump Memory... | Ctl-s d | Dumps a memory to a file.
Module | Open | > | Opens the currently selected module instance.
Close | < | Closes the current module and makes the next module up on the module stack the current module. Also exits from "module interface" mode.
Set Interface | Ctl-b s | Makes the interface of the currently selected module instance the default module interface.
Edit Interfaces... | Ctl-b e | Enters a mode allowing module interfaces for all module types to be edited.
New... | Ctl-b n | Creates a new module definition.
Delete... | Ctl-b d | Deletes a module definition.
Copy... | Ctl-b c | Copies a module definition to another module.
Rename... | Ctl-b r | Renames a module defintion.
Claim... | Ctl-b l | Convert a library module to a user module.
Gate | Add Input | [ | Adds an input to the currently selected gate. If the gate is a module instance, a special cursor will appear and you can select the position for the port.
Add Output | ] | Adds an output to the currently selected gate. If the gate is a module instance, a special cursor will appear and you can select the position for the port.
Add Bidir | - | Adds an inout to the currently selected gate. If the gate is a module instance, a special cursor will appear and you can select the position for the port.
Change Type | @ | Changes the type (input, output or inout) of a port on a module instance.
Anchor Selected | Ctl-x f | Sets the anchor bit of all selected gates. Anchored gates can not be moved with the mouse.
Unanchor Selected | Ctl-x u | Unsets the anchor bit of all selected gates.
Properties... | E | Edit properties of the selected gate.
Replicate | Ctl-v | Make multiple replicas of a gate.
Delete | del | Delete the selected gate(s).
Make | I/O | Switch | s | Make a switch.
Dip Switch | d | Make a dip switch.
Ground | g | Make a constant logic 0 element.
Vdd | v | Make a constant logic 1 element.
Wire Merge | w | Make a wire merge element.
LED | l | Single bit LED
LED Bar | l[n] | LED Bar Graph
7-Seg. LED (HEX) | Lh | 7-Segment LED with hexidecimal encoding
7-Seg. LED (DEC) | Ld | 7-Segment LED with decimal encoding.
7-Seg. LED (Direct) | Ls | 7-Segment LED with direct encoding.
Clock | c | Make a clock.
Tty | T | Make a tty.
Gate | AND | a | Make a AND gate.
NAND | A | Make a NAND gate.
OR | o | Make an OR gate.
NOR | O | Make a NOR gate.
XOR | x | Make an XOR gate.
XNOR | X | Make an XNOR gate.
Buffer | b | Make a buffer.
Inverter | i | Make an inverter.
Tri-Buffer | t | Make a tri-state buffer.
NMOS | Ctl-t n | Make a NMOS transistor.
PMOS | Ctl-t p | Make a PMOS transistor.
Reduction | AND | Ctl-r a | Make a reduction AND gate.
NAND | Ctl-r A | Make a reduction NAND gate.
OR | Ctl-r o | Make a reduction OR gate.
NOR | Ctl-r O | Make a reduction NOR gate.
XOR | Ctl-r x | Make a reduction XOR gate.
XNOR | Ctl-r X | Make a reduction XNOR gate.
MSI | 2-1 Multiplexor | m | Make a 2-1 multiplexor.
4-1 Multiplexor | M 4 | Make a 4-1 multiplexor.
8-1 Multiplexor | M 8 | Make an 8-1 multiplexor.
1-2 Decoder | D 2 | Make a 1-2 decoder.
1-4 Decoder | D 4 | Make a 1-4 decoder.
1-8 Decoder | D 8 | Make a 1-8 decoder.
ALU | Adder | + | Make an adder.
Multiplier | * | Make a multiplier.
Divider | / | Make a divider.
Left Shift | S L | Make a left shifter.
Right Shift | S R | Make a right shifter.
Arith. Right Shift | S A | Make an arithmetic right shifter.
Roll | S O | Make a roll shifter.
Memory | Register | r | Make a register.
RAM | R | Make a random access memory.
ROM | u | Make a read-only memory.
Module | Module Instance | B | Make a module instance.
Module Input | } | Make a module input port.
Module Output | { | Make a module output port.
Module InOut | = | Make a module inout port.
Comment | C | Make a comment.
Frame | F | Make a frame box.