LogicWorks5 Reference
LogicWorks5 Reference
LogicWorks 5
INTERACTIVE CIRCUIT DESIGN SOFTWARE REFERENCE MANUAL
Contents
1
Introduction
Support on the Internet 1 LogicWorks 5 Description 1 General Features 1 Schematic Drawing Features 2 Simulation Features 3 New Features in Version 4 4 Limitations in This Version 4 Where to Start 4 Copyright and Trademarks 5
2
Schematic Editing
Design Structure 7 What is a Design? 7 What is a Circuit? 8 Types of Objects in a Circuit 8 Design Operations 9 Creating a New Circuit 10 Closing a Design 10 Disposing of a Design File 10 Navigating Around a Schematic 10 The Clipboard 11 Using Clipboard Data From Other Programs 12 Using Clipboard Data From LogicWorks 12 Selecting Circuit Objects 13 Selecting a Device 13 Selecting a Text Object 13 Selecting a Picture Object 13 Selecting a Signal 13 Selecting a Pin 14 Selecting Groups of Objects 14 iii
iv Changing Search Order 15 Deselecting a Selected Object 15 Classes of Devices 15 Device Libraries 16 How Device Symbols are Created and Stored 16 Placing and Editing Devices 17 Selecting a Device From a Library 17 Duplicating an Existing Device 17 Deleting a Device 18 Moving a Device 18 Entering Device Attributes 18 Drawing Signals 19 Interconnecting Signals 19 Signal Line Editing 20 Name and Pin Number Operations 22 Naming Signals and Busses 22 Device Names 24 Adding an Invisible Name 26 Making an Invisible Name Visible 26 Auto-Naming Features 26 Removing a Name 28 Editing a Name 28 Moving a Name 28 Setting and Editing Pin Numbers 28 Text Objects 30 Creating a Text Notation 31 Editing Free Text 31 Text Style and Display Options 31 Sheet Borders and Title Blocks 32 Creating a Sheet Border 32 Pasting Graphics onto the Diagram 33 Setting Graphic Item Properties 33
3
Advanced Schematic Editing
Bussing 35 Properties of Busses 35 Properties of Breakouts 36 Bus Operations 38 Bus Pins 41 Power and Ground Connections 42 Using Signal Connector Devices 42 Creating Signal Connectors in a Library 43 Connectors and Discretes 43 Handling Connectors 43
35
Handling Discrete Components 44 Using Attributes 45 Default Values 45 Attribute Limitations 45 Predefined Attribute Fields 46 Editing Attribute Data (General) 47 Editing Device Attribute Data 48 Displaying an Attribute on the Schematic 48 Rotating Attribute Text 48 Setting Attribute Text Style 49
v Using Subcircuits 49 A Simple Subcircuit Example 50 Subcircuit Primitive Type 52 Port Interface 52 Creating a SubcircuitTopDown 55 Creating a SubcircuitBottomUp 57
4
Simulation
General Information on Simulation 59 Type of Simulation 59 Simulation Memory Usage 60 Time Units 60 Signal Simulation Characteristics 61 Signal States 61 StuckAt Levels 64 Resolution of Multiple Device Outputs 65 Resistive vs. Forcing Drive 66 Signal Probe Tool 66 Busses 68 Bus Pins 68 Device Simulation Characteristics 69 Device and Pin Delay 69
59
Device Storage State 71 Input Signal Values 72 Device Pin Types 72 Device Pin Inversion 72 Simulation Clearing and Initialization 74 The Clear Simulation Operation 74 The Clear Unknowns Operation 74 Setting Initial Values 75 Schematic Simulation Issues 76 Working With Subcircuit Devices 76 Power and Ground Connectors 80 Special Signal Names 0 and 1 81 Simulation Models 81 Primitive Devices on the Schematic 82 Simulation PseudoDevices 82
5
The Timing and Simulator Tools
The Timing Window 83 Displaying Signals in the Timing Window 84 Adding a Signal Trace 84 Removing a Signal Trace 84 Repositioning Traces 85
83
vi Timing Display Groups 85 The Simulator Toolbar 87 Displaying and Hiding the Simulator Toolbar 87 Simulator Toolbar Time Display 87 Simulator Toolbar Controls 88 Timing Window Editing 90 Selecting Data for Copy/Paste Operations 90 Summary of Timing Edit Commands 93
6
Primitive Devices
Schematic and PseudoDevice Primitive Types 96 Simulation Primitive Types 97 Pin Inversion 100 Gates and Buffers 100 Gate Definition 101 Gate Pin Order 101 Pin Inversions 102 Transmission Gate 103 ThreeState Buffer 104 Resistor 105 Logic Devices 106 Multiplexer 106 Decoder 108 Adder/Incrementer 109 Subtractor/Decrementer 110 D FlipFlop 110 D Latch 111 D FlipFlop with Enable 111 JK FlipFlop 112 Register 112 Counter 113 Shift Register 116 Clock 116
95
One Shot 118 I/O Simulation PseudoDevices 118 Binary Switch 118 SPST Switch 119 SPDT Switch 119 SPDT Pushbutton 119 Binary Probe 119 Hex Keyboard 120 Hex Display 120
vii
7
RAMs and Programmable Devices
The RAM, PROM and PLA Primitive Types 121 RAM Device Characteristics 122 PROM Device Characteristics 123 PLA Device Characteristics 124 Complex Programmable Logic Devices 124 Using the PROM/RAM/PLA Wizard 125 Creating a RAM Device 125
121
Creating a PROM Device from a Data File 127 Creating a PROM Device with Manual Data Entry 128 Creating a PLA from a Data File 130 Creating a PLA Device with Manual Data Entry 132 Editing RAM, PROM, and PLA Devices 133
8
Device Symbol Editing
Starting the Symbol Editor 135 To Create a New Part 135 To Edit an Existing Part 135 Part Pin Tools 136 Pin Name List 137 Shift Key Usage 139 Editing Pin Information 139 Changing the Pin Name 139 Reordering Pins in the List 139 Setting the Pin Number 140 Setting the Pin Simulation Function 140 Deleting a Pin 140 Symbol Editor Procedures 140 Creating a New Part 140 Creating a Part with Subcircuit 143
135
Editing an Existing Part from a Library 147 Warnings About Editing 147 Saving the Part Again 149 Editing Part Attributes 149 Adding Pins 150 Automatically Creating Symbols 151 Assigning a Primitive Type 153 Creating a Gate 154 Creating a Breakout 154 Creating a Power (Signal) Connector 155 Creating a Port Connector 155
viii
9
Menu Reference
LogicWorks File Menu Commands 157 New 157 Open 158 Close 159 Save/Save As... 159 Revert 159 Print... 159 Print Setup 160 Exit 160 Edit Menu Commands 160 Undo 160 Redo 161 Using the Clipboard 161 Delete 164 Duplicate 164 Point 164 Text 165 Zap 166 Draw Signal 166 Draw Bus 167 Select All 167 View Menu Commands 167 Screen Scaling Commands 167 Normal Size 168 Reduce To Fit 168 Zoom In 168 Zoom Out 168 Magnify 168 Schematic Menu Commands 169 Go To Selection 169 Orientation... 169
157
Get Info... 170 Picture Info Box 176 New Breakout... 177 Push Into 179 Pop Up 179 Attach Subcircuit... 180 Detach Subcircuit 181 Discard Subcircuit 181 Design Preferences... 182 Center in Page 184 Simulation Menu Commands 184 Speed 184 Single Step 185 Simulation Params... 185 Add to Timing 189 Add Automatically 189 Add as Group 189 Import Timing (Text)... 190 Export Timing (Text)... 191 Print Timing... 191 Print Setup... 191 LogicWorks Help Menu 191 About LogicWorks... 191 LogicWorks Online 192 Device Pop-Up Menu 192 Device Info... 192 Attributes... 192 Name... 192 Rotate and Flip Commands 193 Cut 193 Copy 193 Duplicate 193
ix Delete 193 Signal Pop-Up Menu 194 Signal Info... 194 Attributes... 194 Name... 194 Cut 195 Copy 195 Duplicate 195 Delete 195 Pin Pop-Up Menu 196 Pin Info... 196 Attributes... 197 Bus Pin Info... 197 Circuit Pop-Up Menu 199 Normal Size / Reduce To Fit / Zoom In/ Zoom Out 199 Circuit Info... 200 Attribute Pop-Up Menu 200 Edit... 200 Justification... 200 Hide 201 Delete 201 Duplicate 201 Rotate Left / Rotate Right 201 Show Field Name 201 Library Manager Submenu 202 Edit Part 202 New Lib... 202 Open Lib... 202 Close Lib... 203 Lib Maintenance... 203 Device Editor Objects Menu Commands 205 Bring To Front / Send To Back 205 Group / Ungroup 205 Align 205 Move to Grid 205 Device Editor Options Menu Commands 206 Grids... 206 Add Pins 207 Autocreate Symbol 207 Subcircuit / Part Type 207 Part Attributes 207 Text Font... 208 Text Rotation 208 Timing Trace Pop-up Menu Commands 208 Undo 208 Copy 208 Paste 209 Select All 209 Find... 209 Display On 210 Display Off 210 Normal Size 210 Enlarge 210 Reduce 210 Timing Options... 210 Timing Label Popup Menu Commands 212 Get Info... 212 Go To Schematic 212 Remove 212 Group 212 Ungroup 212
213
219
223
Disabling Untitled Design at Startup 227 Solid Grid Lines 227 Zoom Factors 227 Pin Spacing 228 Breakout Parameters 228 Disabling Loose End Markers on Signal Lines 228 Undo Levels 229 Fine-Tuning Pin Number Text Display 229
xi [Libraries] Section 229 Library Folder 229 Single Library 230 All Libraries in a Folder 230 [Timing] Section 230 [DevEditor] Section 231 Default Font 231 Grid Settings 232
233
xii
1
Introduction
Welcome to the world of electronics design using LogicWorks! The purpose of this tutorial/manual is to get you acquainted as quickly as possible with all the powerful editing and simulation features of the program.
LogicWorks 5 Description
General Features n Compatible with all current IBM PC-compatible computers running
Windows 98 or newer.
Chapter 1Introduction
Schematic Drawing Features n The DevEditor module (included with LogicWorks) allows you to
create libraries of custom device symbols using familiar drawing tools.
n Circuit and timing diagrams can be printed on any laser, inkjet, or dotmatrix printer that is supported by a Windows device driver.
LogicWorks 5 Description
Simulation Features n Full digital simulation capability. Circuit output may be displayed in
the form of timing diagrams or on simulated output devices. Uses thirteen signal states, including forcing and resistive drive levels to correctly simulate circuits with design errors such as unconnected inputs or conflicting outputs.
n Test and control devices, such as switches and displays, are active right
on the schematic diagram, allowing circuit operation to be directly controlled and observed.
256 outputs with user-specified binary logic. When used with ABEL Student Edition Logic Compiler, PLA logic can be specified using Boolean equations and state-transition logic. Programmable ReadOnly Memories with up to 16 inputs and 128 outputs can also be simulated. run at various speeds.
n A simulation control palette allows the circuit to be single-stepped or n RAM devices of any configuration from 1 1 to 1Meg 64 can be
created and simulated (based on available memory). Device options include 0 or 1 OE inputs, 0 to 3 CE inputs, separate- or combined-data I/O pins, and three-state or normal outputs.
Chapter 1Introduction
New Features in Version 4 n Completely new user interface with extensive new on-screen tools and
dockable windows.
Limitations in This Version n The absolute maximum number of devices in a master circuit or
subcircuit is 32,767.
n n n n n
The maximum length of a pin number is 4 characters. The maximum length of a device, pin, or signal name is 16 characters. The maximum length of a device-type name is 32 characters. The maximum number of pins on a device is 800. The entire circuit must fit into available memory.
Where to Start
We suggest you ease yourself into the world of schematic editing and simulation with LogicWorks by taking the following steps: 1. Install the package using the procedures outlined in Chapter 2, Getting Started, and read any ReadMe files supplied on the disk with the package. If you are using LogicWorks for the first time, work first through Chapter 4, Tutorial. It provides step-by-step instructions for basic schematic editing. Refer to Chapter 5, Schematic Editing, for background on basic editing techniques.
2.
3.
Chapter 1Introduction
2
Schematic Editing
This chapter describes the elements of a LogicWorks circuit design and the procedures you can use to create one.
Design Structure
What is a Design?
In LogicWorks, the term design refers to a complete, independent set of circuitry, including all the information needed to display, edit, and simulate it. The following rules outline how a design is stored:
n When a design file is opened, the entire contents of the design are read
into memory. This means that design sizes are limited by the available
memory in your computer and increasing the memory allocated to the program will increase the size of the designs you can work with.
n Attribute and pin number text style settings n Display options, such as crosshairs and printed page breaks n Printer page setup. What is a Circuit?
In LogicWorks, the term circuit refers to a single circuit page, as displayed in a single window.
n Each master circuit or subcircuit consists of one page. n Each circuit is viewed in a separate circuit window, and any number of
circuits or subcircuits can be displayed on the screen simultaneously.
Design Operations
Design Operations
This section describes how to work with LogicWorks circuit designs.
10
Closing a Design
A design is closed when its master circuit window is closed. At the top left corner of the master circuits window, click on the X icon or select the Close command from the File menu. In either case, you will be prompted to save the design before closing if any changes have been made.
The Clipboard
11
Auto-Scrolling
Whenever the mouse button is depressed and moves close to the edge of a Schematic window, the window automatically scrolls to expose more area on that side.
Zoom (Magnifying Glass) Tool
The item in the Tool Palette is a powerful tool for moving around in a schematic diagram. Once you have activated this tool, it can be used to zoom in and out, and to control the exact area displayed on the screen.
n Clicking and releasing the mouse button on a point on the diagram will
zoom in to that point by one magnification step.
n Clicking and dragging the mouse down and to the right zooms in on the
selected area. The point at which you press the mouse button will become the top left corner of the new viewing area. The point at which you release the button will become approximately the lower right corner of the displayed area. The circuit position and scaling will be adjusted to display the indicated area.
n Clicking and dragging the mouse upward and to the left zooms out to
view more of the schematic in the window. The degree of change in the scale factor is determined by how far the mouse is moved. Moving a small distance zooms out by one step (equivalent to using the Reduce command). Moving most of the way across the window is equivalent to choosing the Reduce to Fit command.
The Clipboard
The standard Clipboard commands, Cut, Copy, and Paste, can be used to move or copy circuit fragments, graphical, and text information within a single circuit window, between windows, or between LogicWorks and other programs (e.g., word-processing or graphics packages).
12
u See more information in the Edit menu section of Chapter 12, Menu
Reference.
n The LogicWorks circuit info for the selected items. This data is in a
format that only LogicWorks can understand, and is discarded when you Quit. This means that you cannot transfer circuit information between LogicWorks sessions. The Cut and Copy commands work on the currently selected group of objects and will be disabled if nothing is selected. See the section below on Selecting Circuit Objects. When items are copied onto the Clipboard, their names are copied with them, which may result in duplicate names. If duplicate signal names are pasted back into the circuit from which they were copied, then logical connections will be made between the likenamed segments.
u See more information in the Edit menu section of Chapter 12, Menu
Reference.
13
Selecting a Device
A single device is selected by clicking the mouse button with the pointer positioned anywhere inside the device symbol, or in any displayed attribute value associated with the symbol. Simulated input devices, such as switches and keyboards, can only be key while clicking. This is necessary selected by holding the because a normal click is used to change the state of these devices.
Selecting a Signal
A single signal is selected by clicking anywhere along the signal line. This selects only the part of the signal directly attached to the clicked line. Double-clicking the signal selects all parts of the signal, including logical connections by name or bus.
14
Selecting a Pin
A pin is selected by clicking on the pin line close to the device.
NOTE:
Since an unconnected device pin is both a pin and a signal, you determine whether you get the pin or signal pop-up menu as follows:
Right-clicking on the pin in the last 1/4 of the pin length away from the device will display the signal menu.
n In either version, clicking on the pin close to the device symbol will
display the pin menu.
Classes of Devices
15
will follow the mouse movement. Any object that intersects this rectangle when the button is released will be selected.
n A group of interconnected devices and signals is selected by doublekey. clicking on any device in the group while holding down the If a circuit is completely interconnected, this will select the entire circuit.
n The Select All command in the Edit menu selects all items in the
current circuit design.
n The
key can be used in combination with any of the above key is held, the methods to select multiple items. When the previously selected items remain selected when a new item is clicked on. Thus you can add to the selected group until the desired collection of items is selected.
All currently selected objects are deselected by clicking in an empty area of the Schematic window. A single item can be deselected by holding the key while clicking on it.
Classes of Devices
For the purposes of this section, devices in LogicWorks can be divided into four groups:
16
function. For example, the analog components provided in the discrete.clf library fall into this category.
n Pseudo-devices: These are the symbols used for bus breakouts, power
and ground symbols, and so on. They do not represent an actual physical device in a circuit, but they have specific meanings on the schematic diagram.
n Simulation primitives: These are device symbols which have a builtin simulation function when used with the LogicWorks simulator.
Device Libraries
The symbols and related parameters for LogicWorks devices are stored in data files called device libraries. Libraries can be opened and closed by displaying the Parts Palettes pop-up menu and using the Open and Close commands, or by using entries in the initialization file. For each device symbol in a library, the following data is stored:
n A picture representing the symbol for this type. n An optional internal circuit definition. How Device Symbols are Created and Stored
Libraries are created and modified using the DevEditor tool, which is described elsewhere in this manual.
17
u If necessary, use the scroll bar to scroll the librarys parts list until the
desired part name is in view.
u Double-click on the part name in the list. u Move the cursor to the current Schematic window.
The cursor will be replaced by an image of the selected device. While moving this flickering image around, you can use the arrow keys on the keyboard, or the orientation tools on the Tool Palette, to rotate the symbol. Clicking anywhere in the circuit diagram will make a permanent copy of the flickering device at that point.
NOTE: Holding down the key while clicking will inhibit checking for pin connections. This allows you to select the device again and drag it to a new position without affecting any existing connections.
n Select a similar device anywhere on the current circuit and use the
Duplicate command (either in the Edit menu or in the device pop-up menu); or:
n Select a similar device in any other open circuit window and use the
Copy command. Return to the destination circuit window and select the Paste command.
18
After either of these operations, the cursor will be replaced by a flickering image of the selected device. This copy can be placed by clicking in the schematic, as discussed earlier.
Deleting a Device
key if it is a or key switch or other input device). Then press the on the keyboard, or select the Clear command from the Edit menu. Or: clicking on the Zap icon in the Tool Palette. Then click on the device in question.
M D B
n Enter Zap mode, by selecting the Zap command on the Edit menu or
Moving a Device
Devices can be moved by clicking and dragging them to the desired new position. If more than one device is selected, all the devices, and all signals connecting between them (whether or not selected), will be moved. Signal lines will be adjusted to maintain right angles at points where moving signal lines intersect with non-moving ones.
n Select the device by clicking on it normally. Then choose the Get Info
command from the Schematic menu, and click the Attributes button.
Drawing Signals
19
Drawing Signals
Signal lines are drawn in either Point ( mode. ) mode or Signal Drawing ( )
Interconnecting Signals
If you draw a signal line so that the end of the line makes contact with a second signal line, then those two signals will be interconnected. Also, if you place a new device so that one of its pins touches an existing signal line, that pin will be connected to the signal. If both of the signals being connected were named, then you will be prompted to choose the name of the resulting signal. Whenever three or more line segments belonging to the same signal meet at a given point, an intersection dot will be placed at that point automatically.
NOTE:
For efficiency, signals are only checked for connections at their endpoints and only signals actively being edited are checked. It is possible to create overlapping lines that do not connect by unusual combinations of editing operations. This situation is usually visually apparent at the time the editing is done, since the intersection dot will be missing and the entire signal will not highlight when clicked on.
u See the section below on Name and Pin Number Operations for details
on how signals are connected by name.
20
A line can be extended from the end of an existing line or device pin using the arrow ( ) cursor. Click and hold on the end of the pin and drag away from the pin. A pair of right-angle lines will follow the cursor away from the pin as long as the mouse button is pressed. Releasing the mouse button makes these lines permanent. If the end of the line (i.e., the point where the mouse button was released) touches another signal line, a connection will be made at that point.
and
No keys pressed
key pressed
The key inverts the order of line drawing, and the switches to three line segments with a center break. The strains the movement to a single vertical or horizontal line.
key pressed
c g
and
keys pressed
NOTE:
Holding the key while clicking will inhibit checking for pin connections. This allows you to select the signal again and drag it to a new position without affecting any existing connections.
Mg
The Draw Sig ( ) tool can be used to create an unattached signal line, or to extend an existing signal. Simply click anywhere in the schematic and drag in the desired direction. Unlike the Point mode drawing method,
Drawing Signals
21
above, the mouse button does not have to be held down while creating signals in this mode. Double-clicking terminates the signal line.
Editing a Signal Line
n Zap mode (entered by selecting the Zap command in the Edit menu or
the Zap item in the Tool Palette) allows you to remove any single line segment from a signal connection. Zapping on a signal line removes only the line segment to which you are pointingup to the nearest intersection, device pin, or segment join point.
Before Zap After Zap
n Selecting a signal line (by clicking anywhere along its length), then
key or selecting the Clear command from the Edit hitting the menu, removes an entire signal trace.
n Drawing backwards along the length of an existing line causes the line
to be shortened to end at the point where you let the button go.
n Clicking and dragging the middle of a signal line segment allows you
to reposition the line. Vertical lines can be moved horizontally and vice versa.
Checking Signal Interconnection
Double-clicking anywhere along a signal line will cause that signal segment and all logically connected segments to be selected.
22
n The signal name is used in Report Generator output, such as netlists. n Signals can be logically interconnected by name. n Signal names are used to identify traces in the Timing window.
Adding a Signal Name
To name a signal, enter Text mode, either by selecting the Text command in the Edit menu, or by clicking on the text icon in the toolbar: Text Tool
Note that once Text is selected, the cursor changes to a pencil icon. Press and hold the mouse button with the tip of the pencil positioned anywhere along a signal line except within five screen pixels of the device. As long as you hold down the mouse button, an I-beam cursor will track the mouse movements. The signal-name text will start at the position where or click the you release the button. Type the desired name, and press mouse button anywhere.
23
Click and hold the mouse button. The cursor changes to an I-beam.
Still holding down the mouse button, position the cursor where you want the name to start.
SYNC1|
SYNC1
Press the Enter key, or click the mouse button once, to make the name permanent.
A signal name can appear in up to 100 positions along the length of the same signal line. To add a new position, simply use the normal naming procedure given in the section on signal naming, such as:
u Select Text mode. u Click and drag anywhere along the signal line. u Release the mouse button.
A new copy of the signals name will appear at this point, followed by a flashing cursor. To accept the name, simply click the mouse button once or key. If you edit any occurrence of a name along a signal press the segment, all other occurrences will be updated to reflect the new name. Any occurrence of a signal name can be removed using the Zap tool. If you remove the last visible name from a signal segment, then the logical connectivity to other like-named signals is removed.
Connecting Signals by Name
Signal names can be used to make logical connections between lines that are not visually connected on the schematic. The following rules apply:
24
n Signals which are contained in busses are a special case. Every signal
contained in a bus has a name, even if it is not displayed on the diagram. However, the names of bussed signals will not be used to make logical connections unless an explicit name label has been added to the signal line. For example, if you have a bus containing a signal named CLK and a separate signal line also named CLK, there will be no logical connection between these two signals. The name appearing on the bus breakout is part of the breakout symbol and is not considered to be a name label. If an explicit label is added to the bussed CLK signal (using the text cursor) then the two CLKs will be logically connected.
n The same rules discussed above for signals also apply to busses.
Whenever two busses are logically connected, all like-named internal signals also become logically connected.
Device Names
In this book, we use the term device name to refer to the character string that identifies a unique device in the circuit. Typical device names might be U23, C4, IC12A, and so on. This is distinct from the type name or part name that is used to distinguish the type definition that is read from a device library. Typical part names are 74LS138, MC68000L8, SPDT Switch, and so on.
Adding a Device Name
Enter Text mode either by selecting the Text menu item in the Edit menu, or by clicking on the text icon in the Tool Palette:
25
Once Text mode is selected, the cursor changes to a pencil icon. Press and hold the mouse button with the tip of the pencil positioned inside a device symbol. As long as you hold down the mouse button an I-beam cursor will track the mouse movements. The device-name text will start at the position or where you release the button. Type the desired name, and press click the mouse button anywhere.
Click and hold the mouse button. The cursor changes to an Ibeam.
Still holding down the mouse button, position the cursor where you want the name to start.
Press the Enter key, or click the mouse button once, to make the name permanent.
Once a name is placed, it can be repositioned by dragging it using the arrow cursor, or removed using the Zap cursor. The device name will be removed automatically if the device is removed.
26
n Use the right mouse button to select the device or signal, then select the
Name command from the pop-up menu. Or:
n Select the desired device or signal, then select the Get Info command in
I), then click on the Attributes button in the Schematic menu ( this dialog, then select the Name field in the Attributes Dialog. In either case, if the name is already visible on the diagram, changing it here will change all its displayed occurrences.
IMPORTANT:
When a signal name is invisible, it is not used to establish connections by name to other signal lines. See the rules in the section above, Naming Signals and Busses.
n Click the Text pointer anywhere on the signal or device. When the
mouse button is released, the name will be positioned at that point, as described in the general naming instructions above. Or:
n Select the Name command in the device or signal pop-up menu, and
enable the Visible option. The name will be displayed in a convenient location close to the object.
Auto-Naming Features
cM g g
n Auto-alignmentIf the
Three features are available to simplify the naming of groups of related signals, devices, and pins. These features are activated by holding down the , , and/or keys, then selecting the signal to be named with the Text cursor. key is held down while the signal is selected, the text insertion point will be positioned horizontally aligned with the last signal name that was entered. The vertical position is
27
determined by the vertical position of the line that was clicked on. This feature works only with signal or device names, not with pin numbers.
key is held down while a signal, device, or pin is selected, a new name is generated automatically for this item. The new name will be the same as the last one entered, except that the numeric part of the name will have been incremented. If the previously-entered name did not have a numeric part, then a 1 key is pressed at the same digit will be appended to it. If the time, the number will be decremented instead of incremented.
c M
Sequential Naming
The above two features can be used in combination to perform easy naming of sequential signals. The normal symbol standard in LogicWorks is to position the highest numbers at the top, so you can either:
n Number the topmost line in the group (e.g., D7) using the normal
, , naming technique, described above. Then hold down the keys while clicking on successive lower-numbered lines. and Or:
n Number the bottom-most line in the group (e.g., D0) using the normal
and naming technique, described above. Then hold down the keys while clicking on successive higher-numbered lines.
M c
gc g
Note that when you select each successive line, the new name appears; ) to make the name however, it is necessary to click again (or press permanent.
28
Removing a Name
A device or signal name can be removed by using the Zap pointer, as described in the section on Deleting a Device, above. If the signal has been named in multiple locations, then Zap removes the name only at the location zapped.
Editing a Name
The name can be changed by simply clicking the Text pointer on the signal name and editing it using the keyboard. Alternatively, a name can be edited by choosing the Name command in the pop-up menu for the device or signal. Changing the name in the resulting dialogor at any single location on the diagramwill change all visible occurrences of it.
Moving a Name
A device or signal name can be moved by activating the arrow cursor, clicking and holding the mouse button on the name, and dragging it to the desired new position. Pin numbers cannot be repositioned.
Pin numbers are used only for labeling purposes and have no particular connectivity significance to LogicWorks. Pin numbers are not checked for duplicates or other invalid usage. Pin numbers placed on a diagram will be used in creating a netlist (see Chapter 13, Creating Text Reports), and will appear when the circuit is printed. If a pin is unnumbered, it will appear in a netlist with a ?unless the device has three or fewer pins (e.g., discrete components), in which case it will be sequentially numbered.
29
A device symbol may have default pin numbers which will appear when the device is first placed. These pin numbers are not permanent and can be edited or removed by techniques discussed in this section. These default pin numbers are assigned using the DevEditor tool.
In Text mode, if the mouse button is pressed with the tip of the pencil pointer positioned on a signal line within five pixels of a device, a blinking insertion bar will appear immediately where the signal joins the device. You cannot set the text position for pin numbers. Type the desired one- to or click the mouse button to make four-character number, then press the number permanent.
u Display the devices pop-up menu by right-clicking on the device. u From the pop-up menu, choose Device Info. u In the Device Info dialog, click on the Pin Info button. This will
display the pin information for the first pin.
u Edit the pin number as desired. u Click the Next Pin button to see the next pin in the list.
30
Auto-Numbering Features
An auto-numbering feature is provided to simplify numbering of sequential key is held down while a pin is clicked with the Text pins. If the pointer, a new number is generated automatically for this item. The new label will be the same as the last one entered, except that the numeric part of the character string will have been incremented. If the previouslyentered item did not have a numeric part, then a 1 digit will be appended key is pressed at the same time, the number will be decreto it. If the mented instead of incremented.
Setting Pin Number Text Style
c M
The text style for pin numbers is set globally for the entire design. It cannot be set individually for pins. To set pin number text style:
u Select the Design Preferences command in the Schematic menu. u Click on the Pin Text button. u Select the desired text font, style and size in the Font dialog. u Click OK on the Font dialog, then OK in the Design Preferences
dialog. Depending on the size of the design, there may be a short delay at this point while sizes and positions of text items are recalculated.
Text Objects
Free text objects are used only to enhance the graphical appearance of a schematic diagram. They have no logical significance in the design.
IMPORTANT:
Free text items are not associated with any particular device or signal on the screen, and should not be used to set a name or attributes for devices or signals. The text in these boxes is not accessible in net or component lists. Use the naming and attribute features to attach text to devices and signals.
Text Objects
31
If you click the text pointer on the diagram away from a device or signal line, a blinking cursor will appear at that point, and you will be able to type key or the can be used to enter any desired text on the diagram. The multiple lines in a single text block. Text entry is terminated by clicking outside of the text entry box.
c c
Text boxes can be zapped, duplicated, cut, copied, pasted, and dragged just like any other item on the screen. See the descriptions of these commands for more information.
32
Draw Frame
Font Specs
n To get more control over the appearance of the border, you can create a
graphic of the desired size in any Windows application that will export Windows Metafile Format (WMF) data on the clipboard. This image can then be pasted onto the sheet and set to be a background object, using the procedure outlined below. This border will then be a fixed size and will not resize automatically with printer setup and drawing size changes. Any changes will have to be made manually to the original graphic which will then have to be re-pasted into the drawing.
33
n Graphics can be copied and pasted from the device symbol editor built
into LogicWorks. This is a convenient way of creating images that do not require exact measures or sophisticated drawing tools. To do this, select the New command in the FIle menu, select the Device Symbol document type. Draw the desired graphics in the symbol editor, then Select All and Copy them onto the clipboard. Switch back to the schematic sheet and Paste the graphics onto the sheet. You can now close the device symbol editor without saving.
NOTE:
There is an important difference between graphics created in the Device Editor using the above procedure and device symbols created in the Device Editor and then saved in a library and placed on the sheet from the library. When you copy and paste directly onto the sheet, you are creating only a graphic object, which has no circuit properties and no simulation and will not appear in any component lists. If you create exactly the same graphic, save it as a component in a library and then place it on the diagram, this will have an identical visual appearance, but will be treated within the program as a device. This means it will appear in component lists as a device and it can be given attributes, simulation parameters, etc.
34
n Click on it once to select it (if the object has been previously set to be a
background item, you will have to hold the order to select it. and keys in
c M
n Select the Get Info command in the Options menu. n Select the Draw Frame item to draw a border around the graphic. n Select the Make Background item to prevent the item from being
selected by a normal mouse click. Note the key sequence given above that is required to select a background object.
3
Advanced Schematic Editing
This chapter provides information on the more advanced schematic editing features of LogicWorks.
Bussing
The bussing facility allows any combination of named signals to be represented by a single line and any subset of these to be brought out through a breakout at any point along the bus line.
Properties of Busses
A bus is treated by LogicWorks as a signal with special properties. Thus, bus lines can be drawn and modified on the screen using all the same editing features available for signals. Note the following properties of busses:
n Only bus pins on devices can be connected directly to a bus. All other
connections must be made by using a breakout to access the desired internal signals. A breakout is created using the New Breakout command in the Schematic menu.
35
36
n If you select a bus line, then pull down the Schematic menu and select
the Get Info command. The displayed info box will show a list of the signals currently contained in the bus.
n A given signal can be present only in one bus. If you attempt to connect
together two signals in different busses, a warning box will be displayed and the connection will be canceled.
n A bus can be created by drawing the bus lines first, then creating the
breakouts to attach, or by creating a breakout and extending the bus line starting at the bus pin. Bus lines are drawn or extended using exactly the same techniques as for signals, except that the Draw Bus command or cursor is used instead of Draw Signal.
Properties of Breakouts
Signals are attached to a bus via a special type of device symbol called a breakout. It is not legal to attach a signal line directly to a bus line. If a signal line touches a bus line, no connection will be made. In LogicWorks, a breakout is treated as a device with certain special properties. This means that it can be placed in any desired orientation, moved, duplicated, etc., using any of the device editing features available. A typical breakout appears as follows:
Any breakout can always be attached to any bus. When a breakout is attached that contains signals unknown in that bus, the signals are implicitly added to the bus. For example, suppose we want to add control signals to the above circuit. We could create a breakout containing only the new signals, as follows:
Bussing
37
Once such a breakout has been added to the bus, all signals in all attached breakouts are considered part of that bus. A list of internal signals can be seen by selecting the bus and using the Get Info command:
Any combination of the internal signals can now be brought out of the bus at any point, as in the following addition to the above circuit:
38
Bus Operations
Creating a Bus
) in the Tool Palette. Draw any desired contiguous set of lines on the diagram using the usual signal drawing techniques. This bus will have no internal signals initially. Signals will be added implicitly when it is connected to any breakout or bus pin. below). The bus pin (backbone) of the breakout can now be extended using the normal pointer ( ) or the Draw Bus cursor. The bus will contain all signals specified in the breakout.
n Extend a line out from an existing bus pin on a device (see below)
using the normal pointer or the Draw Bus cursor. The bus will contain all signals specified in the bus pin on the device. Connections between bus internal pins and bus internal signals can be changed using the Bus Pin Info command on the bus pins popup menu.
Adding Signals to a Bus
There is no explicit command to add signals to a bus. Signals are added to a bus each time a breakout or device bus pin is connected to the bus. Any signals in the breakout or bus pin are implicitly added to the bus if they dont exist already.
Creating a Breakout
To create a breakout, select the New Breakout command in the Schematic menu. If the new breakout is to be similar to an existing one, first select the
Bussing
39
similar breakout or the bus to which the new breakout is to be connected. Then select the New Breakout command. The following dialog box will appear:
If a bus or breakout was selected on the circuit diagram, the New Breakout Info dialog will display a list of the signals in that bus or breakout; otherwise, it will be empty. If this list already matches the signals you want in on the the new breakout, then just click the OK button or press keyboard. Otherwise, edit the signal list, noting the following options:
or D0..D7
is equivalent to
D0 D1 D2 D3 D4 D5 D6 D7 D15..0
is equivalent to
D15 D14 D13 D12 D11 D10 D9 D8 D0 D15..D00
is equivalent to
D15 D14 D13 D12 D11 D10 D09 D08 D07 D00
40
Note that the .. format implies that bussed signal names cannot contain periods.
n The signals specified will always appear in the order given in this list
from top to bottom in standard orientation. Specifying numbered signals from lowest numbered to highest is a good practice, as in the first example above, since this matches the standard library symbols.
Once the list has been entered, click on the OK button or press the key. A flickering image of the breakout will now follow your mouse movements and can be placed and connected just like any other type of device.
Editing Breakout Pins
The signal name notation that appears on a breakout pin is actually a pin attribute. It can therefore be edited by the usual attribute editing mechanismsthat is, either:
u Select the pin and choose the Get Info command in the Schematic
menu, then click the Attributes button; or:
u Click the text cursor directly in the text on the schematic, as illustrated:
b
Bussing
41
IMPORTANT:
The notation on the breakout pin is always the same as the name of the attached signal. Changing the breakout pin renames the attached signal and will detach it from any likenamed signals already in the bus.
When a bus is connected to a bus pin on a device or subcircuit block, the bus internal pins will by default connect to signals with the same name in the bus. To change these default connections, use the Bus Pin Info command in the pin popup menu.
u See Chapter 12, Menu Reference, for more information. Bus Pins
LogicWorks supports usercreated bus pins on devices. A bus pin can be defined to have any collection of named internal pins. Note the following properties of bus pins:
n The bus pin itself does not represent a physical device pin. It is only a
graphical placeholder on the schematic representing a group of internal pins. The bus pin itself never appears in a netlist.
n The internal pins represent physical device pins. Even though they do
not appear on the schematic, they can have all the same parameters as normal devices pins, including pin numbers and attributes. These parameters can be accessed using the Bus Pin Info command in the pin popup menu.
42
n A splicing box can be displayed using the Bus Pin Info command in
the pin popup menu. This box allows any internal pin to be connected to any signal in the attached bus.
u For more information on creating device symbols with bus pins, see
Chapter 10, Device Symbol Editing.
IMPORTANT:
Signal connectors do not cause a logical connection to be made between circuit levels in nested subcircuits.
43
IMPORTANT:
The signal attached to a signal connector device is actually named to match the pin name of the signal connector pin specified in device symbol editor, not the type name. In most of the power and ground symbols provided with LogicWorks, these two names are the same. However, it is possible to create a symbol called Ground (for example) in a library that actually names the attached signal GND. The Ground symbol in the spice.cct library is an example of thisit names the attached signal 0 to match the SPICE groundnaming convention.
u See Chapter 11, Device Symbol Editing, for more detailed information
on this procedure.
Handling Connectors
Connectors can be handled in one of two ways:
n A special symbol can be created for the connector with the appropriate
number of pins and pin numbering specified for each pin. This can be done using the device symbol editor to create a device symbol using your own picture.
44
case, each device must be given the name of the connector and the pin number associated with that pin. The report generator will normally merge all devices with the same name into a single component entry. Following is an example of these two methods:
Separate Devices Single Device
NOTE:
When the singlepin devices are used, every device must carry exactly the same name, although the names can be invisible if desired.
Pin numbers are not normally placed on discrete component pins on a diagram. If pin numbers are omitted from a device, LogicWorks will normally put a question mark in the netlist item for that device. Two methods are available to provide pin numbers for netlisting purposes:
Using Attributes
45
IMPORTANT:
This option assumes that the pin number order of the discrete components is not significant. If a specific order is important, do not use this method.
n Pin numbers can be assigned but left invisible. This is done using the
Get Info command for either the pin or the device.
Using Attributes
LogicWorks allows arbitrary blocks of text to be associated with any device, signal, or pin in a design, or with the design itself. The blocks of text are called attributes. Attributes have a wide variety of uses, including:
n Displaying device name, component value, etc. n Storing data for use by external systems such as simulators, PCB
layout, analysis tools, etc.
Default Values
A device symbol can incorporate predefined default values for any number of fields. Values can be specified for the device itself, and independently for each pin on the device. When the standard Attributes Dialog is displayed for a device, you will see a button labeled Use Default Value. If this button is grayed out, then there is no default value, or the value shown is already the default.
Attribute Limitations
Attribute fields have the following specific limitations:
n Length of field name: 16 characters n Length of field data item: 32,000 characters. n Number of displayed positions of a single attribute item: 100
Like all other circuit data, the amount of attribute data that can be associated with a design is limited by available memory.
46
Delay.Pin
Pin
Initial.Pin
Pin
Initial.Sig
Sig
Invert.Pin
Pin
Name
Device, signal
Spice
Value
Using Attributes
47
NOTE:
The same Attributes Dialog is used to enter data for all object types. This section discusses the general operation of this dialog. The following sections will discuss each object type.
Basic Procedure
To edit the contents of a field, simply select the field name in the list. The current contents of the field will be displayed in the editable text box. Edit this value using the normal text editing techniques. Select another field or press the Done button if you are finished editing. If the data you typed exceeded the maximum length for the field, or if it contained invalid characters for the field, then you will be asked to correct the data. You can view or edit as many fields as desired while in this dialog. No changes are made to the actual design data until you click the Done button. Clicking Cancel will abandon all changes made while in this dialog.
Default Value
Clicking the Use Default Value button sets the value for the selected field to the default value stored with the symbol. If this button is inactive (grayed out) then the value is already the default value, or no default value is present. Only devices and pins can have default values.
48
n Click on the device to select it, then select the Get Info command from
the Schematic menu, then click on the Attributes... button. Or:
u Display the popup menu for the device, signal, or pin to which you
want to attach the attribute. (rightclick on the device)
u From the popup menu, select the Attributes command to display the
Attributes Dialog.
u Select the desired field by clicking on its name in the field list. u Edit the attribute value as desired. u Turn on the Visible switch. u Click OK.
The attribute text will now be displayed in a default position near the device or signal. It can be dragged to any desired location using the Point tool.
u Display the attribute popup menu for the text item you want to rotate.
(rightclick on the text item.)
Using Subcircuits
49
u From the popup menu, select the Rotate Right or Rotate Left
command.
IMPORTANT:
Changing the attribute text style affects all visible attributes throughout the design. LogicWorks may alter text alignment and position to accommodate a new text size.
u Choose the Design Preferences command in the Schematic menu. u Click on the Attr Text... button. u Select the desired font, style and size, then click OK. u Click OK in the Design Preferences dialog.
Depending on the size of the design, there may be some delay at this point. The program must check all visible attribute items to see if their position and framing is affected by the text change.
Using Subcircuits
LogicWorks provides the ability to have a device symbol in a schematic actually represent an arbitrary circuit block. This subcircuit can be used to implement a simulation model for a device of arbitrary complexity. Subcircuits can be nested to any desired depth, so devices containing subcircuits can themselves be used as subcircuits for more complex devices. For clarity, a device symbol that represents an internal circuit will be called a subcircuit device in the following text.
50
Following is a short summary of the rules governing subcircuit devices. More information on each of these topics is included in the following sections.
n The netlist and bill of materials reports generated by the Report tool in
LogicWorks only list components in the toplevel circuit in the design. Devices in subcircuits are never listed.
n If a given type of subcircuit device has been used more than once in the
same design, you can only have one of them open at a time for viewing or editing the subcircuit.
Using Subcircuits
51
Note that it contains two symbols, both representing subcircuit devices. Both symbols are of the same type, RSFF, and therefore share the same internal circuit definition. The two devices are named FF1 and FF2. Opening either one of these devices reveals the following internal circuit:
This circuit consists of three device symbols, G1, G2, and G3, representing physical devices, and a number of port connector symbols. The port connectors define the interface between the internal circuit and the pins on the symbol representing it. Note the following characteristics of this simple design:
n The device RSFF has been used twice, so there are actually two G1s,
one inside FF1 and one inside FF2. We say that there are two instances of G1. Similarly for G2 and G3.
n The signals SET/, RESET, and Q in the internal circuit will actually get
absorbed into the attached signals in the parent circuit because they are attached to port connectors. They do not exist independently in the physical circuit.
52
Port Interface
Signal connections between circuit levels are made using port connector symbols. With the exception of power and ground nets, all connections between levels must pass through a port connector.
Port/Pin Naming
The relationship between the port connector in the subcircuit and the pin on the parent device symbol is established by matching the pin name on the parent device with the Name field of the port connector. For example, if we were to open the RSFF device used in the example above using the device symbol editor, we would see the following pins listed:
For a complete port interface, a port connector must exist in the internal circuit named to match each one of these pins. In this case, the following port connectors would be required (ignoring all other internal circuitry):
Using Subcircuits
53
The port interface is rechecked whenever any change is made. Thus, as soon as a port connector is added or removed, or its name is changed, the port interface will be updated to reflect the new logical connections. However, to avoid excessive warning messages, error checking is performed only when an internal circuit is opened or closed. A warning box will be displayed if any error is found. This checking cannot be disabled.
NOTE:
The name of the port connectors pin and the name of the signal attached to the port connector are not significant in making the port association. Only the contents of the port connectors Name field are used. Note the different rules for bus ports below.
In order for the simulation of a subcircuit device to operate correctly, the type of port connector symbol used in the subcircuit must match the type of pin on the parent device symbol, according to the following table:
Parent Pin Type Input Output Bidirectional Bus All others Port Connector (in the connect.clf library) Port In Port Out Port Bidir Must be custommade Port In*
* For Tied High, No Connect, and other pin types, use a Port In for consistency although no simulation data is transferred through these types of pins in any case.
54
IMPORTANT:
If you create a port connector symbol using the device symbol editor, the pin type (input, output or bidirectional) must be set carefully for each pin on the port connector. The pin on the Port Connector symbol must be of the opposite type to the corresponding pin on the parent device symbol. For example, a signal coming in to the subcircuit is actually an output from the port connector pin. Note, for example, that the pin on the Port In device in the connect.clf library is set to be an output and the Port Out device has an input pin. A bidirectional port has bidirectional pins on both sides of the interface.
Bus Ports
Connections can be made between busses across circuit levels using Bus Port Connectors. Bus pins on a parent device symbol must be matched with a Bus Port Connector having identical internal pins. For this reason, Bus Port Connectors must always be custommade using the device symbol editor.
Bus Pin Name Matching
n The internal pins in the parent bus pin must exactly match the internal
pins on the Bus Port Connectors bus pin.
n The pin name of the bus pin itself on the Bus Port Connector is not
significant.
n As with normal ports, the names of the signals attached to the Bus Port
Connectors pin are not significant.
Bus Pin Example
For example, the following simple device has a bus pin called CONTROL containing internal pins CLK, MEMW/, and MEMR/.
Using Subcircuits
55
The corresponding Bus Port Connector to be used inside this device would look as follows:
Pin List (in symbol editor) Port Connector Symbol
The comments above in the section, Port Pin Type, apply to each internal pin in a bus pin. Remember that the name of the bus pin in the port connector is not significant.
Power and Ground Connections
Power and Ground symbols (for example, signal connector devices) do not make a logical connection across subcircuit levels. For this reason, signal connectors should not be used to make active signal connections for interactive simulation purposes. They can be used to tie signals to high or low values, however, since it is not relevant whether all tiedhigh signals are actually interconnected.
Creating a SubcircuitTopDown
To create a subcircuit topdown (for example, creating the subcircuit itself after the parent symbol has already been used in a circuit), follow these steps:
56
u Create the parent symbol using the device symbol editor. Be sure to set
the pin type (in/out/bidirectional) appropriately for each pin on the symbol. (The Subcircuit / Part Type command does not normally need to be used because the default primitive type for a symbol is SUBCCT.) Save the symbol in a library.
u Use the symbol as desired in your schematic. u Use the New Design command to create a new and completely
independent design. Create the schematic for the subcircuit in this design. You may use any existing parts from libraries except the parent symbol that we created above. Subcircuits cannot be recursive!
u Add port connectors to the design and attach them to the appropriate
connection points. Each port connector must match its corresponding pin in type according to the following table:
:
Port Connector (in the connect.clf library) Port In Port Out Port Bidir Must be custommade Port In*
* For Tied High, No Connect, and other pin types, use a Port In for consistency, although no simulation data is transferred through these types of pins in any case.
u Name each port connector to match the associated parent pin. You may
want to have the parent symbol open in the device symbol editor at the same time so that the names are easily checked.
NOTE: There must be a onetoone match between the pins on the parent symbol and the port connectors in the subcircuit.
u Return to the design where the parent symbol was used. Select the
parent symbol by clicking on it. If it has been used more than once, select any of the copies.
Using Subcircuits
57
Creating a SubcircuitBottomUp
In a bottomup design process, we create the subcircuit first then use it to define the pins on the parent symbol. In LogicWorks, this is easier than the topdown procedure because we can take advantage of some of the automatic features of the device symbol editor for this purpose. The bottomup procedure is as follows:
u If you are creating the subcircuit from scratch, select the New Design
command from the LogicWorks menu bar to create a new circuit window, then use the schematic drawing tools to draw the circuit. You may use any existing parts in creating the subcircuit, including other subcircuit devices. Alternatively, if the subcircuit is to be based on an existing circuit file, open that file using the Open Design command.
u Leave this circuit open (that is, displayed in a circuit window). You
may save this circuit to a file if desired, but it is not necessary to perform this procedure.
u Open the device symbol editor. Select New in the File menu and then
choose the Device Symbol option. From the Options menu, select the Subcircuit / Part Type command and choose the Create a subcircuit symbol and store the subcircuit with it... option. Select the subcircuit that you just created from the list of open windows that is presented. Close the PartType configuration dialog. You will notice that symbol editor has extracted the names from the port connectors in the subcircuit and placed them in the Pin List at the left side of its own window.
58
u Create the graphics for the symbol using either drawing tools, the
Autocreate Symbol command in the Options menu. Every pin listed in the Pin List must have a corresponding graphical pin on the device symbol.
u Save the symbol to the library. It will be saved with a copy of the
selected internal circuit; that is, you can close or discard the internal circuit window, as the circuit is now saved in the library. The new subcircuit device may be selected from the library and placed in any schematic as desired.
4
Simulation
This chapter provides more detailed information on LogicWorks simulation capabilities.
Type of Simulation
LogicWorks performs a discrete simulation of the signal changes in a logic circuit, meaning that signal levels and time change only in steps, rather than continuously. The program does not attempt to analyze your circuit, but simply tracks signallevel changes through the devices. Thus, circuits with feedback loops or other delaydependent features will be simulated correctly as long as they dont rely on particular analog characteristics of devices.
59
60
Chapter 4Simulation
The simulation is eventdriven, where an event is a change in the level of a signal. Each time an event occurs, a list is made of all the devices whose inputs are affected by that event. Any other events occurring at the same time are similarly evaluated, and affected devices added to the list. A type specific routine is then called for each device on the change list in order to determine what output changes are going to occur. These changes are added to the event list, their time of occurrence depending upon the device delay. No computation is performed for times when no event occursso that device delay settings and clock values have no effect on how fast the simulation is performed. LogicWorks performs strictly a digital simulation. It does not take into account factors such as fanout (that is, the number of inputs connected to a given output), line length (capacitance), asymmetrical output drive, and so on, except inasmuch as these affect delay time.
Time Units
LogicWorks uses 32bit signed integer arithmetic to calculate all time values used in the simulation. It is usually convenient to think of these values as being in nanoseconds, but the actual interpretation is left up to the user. The simulation will stop if any time value approaches the 32bit integer limit.
61
High Impedance:
HIGHZ
Note that the Forcing/Resistive distinction is used only to resolve conflicts between multiple outputs connected to the same signal. The final value stored or displayed for a given signal line can only be one of five possibilities:
LOW HIGH DONT CONF HIGHZ
62
Chapter 4Simulation
Description of States
The High and Low states are the normal ones expected in a binary circuit, but are not sufficient to realistically simulate circuit operation, so the High Impedance, Dont Know and Conflict states are added. There will always be some cases where the simulation will not correctly mimic what would appear in a real circuit, and some of these cases are discussed in following sections. In particular, if a circuit takes advantage of some analog property of a specific devicesuch as inputs that float high, known state at power up, input hysteresis, and so onit is unlikely to simulate correctly.
High Impedance
This state (Z on a logic probe) is used for cases when no device output is driving a given signal line. This may occur for an unconnected input, or for a disabled threestate or opencollector type device. If a device input is in the High Impedance state, it is treated as unknown for the purposes of simulation, even though in a real circuit the device may assume a high or low state, depending on the circuit technology used.
Dont Know
The Dont Know state (X on a logic probe) results when the simulator cannot determine the output of a device. This may occur, for example, when an input is unconnected or when the output from a previous device is unknown. The Dont Know signal will be propagated though the circuit, showing the potential effects of that condition. The Dont Know state is used in LogicWorks in cases where the actual result in a real circuit would depend on the circuit technology used, on random chance, or on analog properties of the device not predictable using a strictly digital simulation. For example, if the following ring oscillator circuit is created in LogicWorks, all signals will be permanently unknown since each depends on the previous one, which is also unknown. In actual hardware, this circuit may oscillate, or may settle into an intermediate logic level, which would not be defined in a digital circuit.
63
For the purposes of simulation, all circuits must have some provision for initialization to a known state. In most cases, circuits can be initialized by using the Clear Unknowns command or by setting the initial value attribute, described in Setting Initial Values on page 75. Alternatively, circuitry can be added to allow a reset to be done, as in the following modification to the ring oscillator:
A problem arises in simulating circuits with multiple open collector devicessuch as a bus line, illustrated here:
In this circuit, the upper device has an unconnected input at IN1 and therefore outputs a Dont Know value. The lower device has a low input and therefore outputs a low value. In order to correctly resolve this situation the simulator needs to distinguish between a Dont Know output from a normal totempole type output and a Dont Know from an opencollector, opendrain, or other singledrive output. In this case, the upper device will
64
Chapter 4Simulation
produce a DONT0Z output, which resolves correctly to a LOW on the outputregardless of the state of IN1using the rules described previously.
Conflict
The Conflict state (C on a logic probe) results when two device outputs are connected and are of different or unknown statestaking into account the rules described previously.
State Display
The Timing window displays the various signal states in different colors. The following Timing window shows how the various signal states are displayed.
StuckAt Levels
The LogicWorks simulator implements stuckat levels to assist in setting initial simulation states, testing for faults, and so on. When a signal is in a stuckat state, it will not change state, regardless of changes in devices driving the line. When the stuckat status is set, the signal will retain the value it had at that timeuntil some user action forces a change. When the stuckat status is removed, the signal will return to the value determined by the devices driving the line.
Setting Stuck Levels
A signal can be placed in a StuckHigh or StuckLow state by any of the following means:
n Applying the name 0 or 1 to the signal; n Typing H or L while viewing the signal value with the signal
probe tool; or,
65
n Using the Stick High or Stick Low buttons in the Stick Signals
command. Each of these methods is described in more detail in the relevant section of this manual.
Clearing Stuck Levels
The stuck status can only be cleared by one of the following user actions:
n Typing the spacebar while viewing the signal using the signal probe
tool; or
n Clearing the stuck switch in the Stick Signals command. Resolution of Multiple Device Outputs
The DONT0Z and DONT1Z values are used primarily to handle cases of open collector or open emitter devices with unknown inputs (see following additional information ). Most other types of devices produce the DONT01 output when a value cannot be calculated. In cases where two or more device outputs are connected together and each one drives the line with a different value, the following rules are used to resolve the actual value on the line:
n n n n n n n
A resistive drive always overrides HIGHZ. DONT0Z.F and LOW.F produce LOW. DONT1Z.F and HIGH.F produce HIGH. Any other combination of conflicting forcing drives produces CONF. DONT0Z.R and LOW.R produce LOW. DONT1Z.R and HIGH.R produce HIGH. Any other combination of conflicting resistive drives produces CONF.
66
Chapter 4Simulation
Only the signal under the cursor at the time of the click is examined; moving the mouse while the button is pressed does not change the signal being viewed.
67
Probing a Pin
If the probe tip is clicked on a device pin close to the device body, the probe shows the driving level of that pin, rather than the state of the attached signal. This can be used to resolve drive conflicts in multiple drive situations, as in the following example using open collector buffers:
Pin Drive on Upper Device Pin Drive on Lower Device Combined Signal Value
NOTE:
The probe display does not distinguish between low and high drive levels.
While the mouse button is held, you can press keys on the keyboard to inject new values onto a signal, as follows:
0 1 X C Z L H space LOW.F HIGH.F DONT01.F CONF.F HIGHZ LOW.F stuck HIGH.F stuck unstick
If a stuck value is forced onto a signal, the signal will not change state until the stuck value is cleared by some user action, regardless of device outputs
68
Chapter 4Simulation
driving the line. If a nonstuck value is forced, the signal value will revert to its appropriate new level when any change occurs on a device output driving the line. The spacebar unstick command causes the signal to revert to its driven value.
u See also the Stick Signals command in Chapter 12, Menu Reference,
for more information on stuck values.
Busses
Bussesthat is, groups of signals represented by a single line on the schematichave no particular significance to the simulator. The value of a bus is completely determined by the values of the individual signals it contains. The simulator performs no operations on the bus itself.
NOTE:
You can display a bus in the Timing window using the Add To Timing command. This is equivalent to displaying all the internal signals individually and then grouping them.
Bus Pins
Bus pins, like busses, have no particular significance to the simulator. The value of a bus is completely determined by the values of the individual pins it contains. The simulator performs no operations on the bus pins themselves. Bus pins are not supported on primitive device types.
69
Primitive devices (e.g., those with a programdefined simulation model) have a single delay value which can be set to any integer value from 0 to 32,767. This delay is applied when any input change causes any output change. In addition, a pin delay in the range 0 to 32,767 can be set on any input or output pin. Pin delays can be used to set arbitrary path delays through the device. More information on pin delays follows. The initial delay value is set to 1 when the device is created, but this can be changed later using the Simulation Params command. This delay applies whenever any input change causes an output change. There is no provision in the builtin simulation models for different delay values on lowtohigh and hightolow transitions. The Clock and I/O devices have no delay characteristic. See the following notes on delay in subcircuit devices.
Subcircuit Device Delay
Subcircuit devices inherit their delay characteristics from their internal circuit and have no device delay characteristic of their own. The Simulation Params command cannot be directly used on a subcircuit device, although pin delays can be set separately on each instance of a subcircuit device to customize path delays.
Pin Delays
Any input or output pin on any device (including port connectors and subcircuit devices) can have a pin delay associated with it. Pin delays normally default to 0 time units, but can be in the range 0 to 32,767.
70
Chapter 4Simulation
A pin delay acts like a buffer device with the given delay inserted inline with the pin. On an input pin, the device simulation model will not see a change in signal value until after the pin delay has elapsed. On an output pin, the pin delay is added to the overall device delay for any changes scheduled on that pin.
Setting the Delay
To set the delay for a device, first select the device by clicking on it. Then choose Simulation Params from the Simulation menu. A dialog box will appear, allowing you to increase or decrease the delay value by clicking one of two buttons. The minimum delay value is 0 and the maximum is 32,767. When the delay setting for a subcircuit device is changed, the delays for all internal devices are changed by the same amount.
Effect of Zero Delay
A delay value of zero is permitted in a LogicWorks device, but this setting should be used only with an understanding of how the simulation is implementedas it can result in unexpected side effects. Note that on a given pass through the simulation routine, all the events on the list which occur at the current time are scanned and then the new outputs for all affected devices are calculated. If any of these devices has a zero delay setting, then this will result in more changes being placed on the event list at the current time. However, all these changes emerging from zerodelay devices will not be evaluated until the next pass through the simulator. This is done to allow for user interaction with the simulation. If you step interactively through a circuit with zerodelay elements, you will see all these value changes updated on the screen, even though simulation time does not advance. If a signal changes value and then reverts to its original state within the same time step, this will be displayed as a zero width spike in the Timing window. If a zerodelay feedback loop exists in a circuit, the signal changes will be simulated and any probes on the diagram will be updated at each pass through the simulator. However, the events at the head of the list will always have the same time value associated with them and the simulated
71
time will never advance. This will stop the Timing window from updating until some delay is inserted in the loop.
Where Delays are Stored
For devices, the delay attribute field is called Delay.Dev; for pins, it is Delay.Pin. An empty or invalid string will be interpreted as the default value, usually 1 for devices and 0 for pins. Some specialpurpose devices, such as the Clock and One Shot primitive devices, take two delay characteristics. In this case, two integers separated by a comma should appear in the Delay.Dev field.
n Device and pin delays will influence the calculation of a new device
state. For example, if the period of a clock applied to a counter is less than the total delay through it, an erroneous count sequence will result. If desired, this behavior can be modified by placing the primitive devices in a subcircuit device and setting appropriate pin types and delays on the parent device to buffer the outputs.
NOTE: These comments do not apply to RAM or bidirectional switch primitives, both of which store internal state information independent of the values of the attached signals.
72
Chapter 4Simulation
u For detailed information on the available pin types and how they affect
the simulation see Appendix B, Device Pin Types. For procedures for setting pin types when creating a symbol see Chapter 11, Device Symbol Editing.
73
primitive types as well as subcircuit devices. The following table summarizes the level mappings that occur.
External Signal Value LOW.H LOW.L HIGH.H HIGH.L All others Internal Signal Value
NOTE:
1) The logical inversion of the pin is completely independent of the graphical representation of the pin. For example, using the inverted pin graphic in the DevEditor does not invert the pin logic in the simulator. You must set the Invert.Pin field to have this effect. 2) Although pin inversion can be specified independently for each device on the schematic, we do not recommend modifying these settings after a device has been placed on the diagram. This can create the confusing situation of two devices with the same name and symbol but different logical characteristics.
See also:
u Chapter 11, Device Symbol Editing, for procedures for setting pin
attributes when creating a symbol.
74
Chapter 4Simulation
u Other tools (such as Timing) are notified and perform their own
processing.
u Any clocks in the design are re-initialized. u If any signal or pin initial values are specified, they are set up. See
below for information on setting initial values.
u All devices are queued for immediate re-evaluation. The Clear Unknowns Operation
The Clear Unknowns operation is a heuristic procedure which attempts to remove Dont Know signal values from a design. This can be used to find an initial state when a design is first simulated, or after any edit operations that result in unknown values. You can invoke this operation by clicking on the Clear Unknowns ( button in the Simulator toolbar. )
The Clear Unknowns operation performs the following steps, stopping as soon as all unknown states are removed from the design:
75
u The last three steps are then repeated until the number of unknowns
ceases to diminish. If this operation does not clear the design to an appropriate state, refer to the other techniques discussed in following sections.
NOTE:
Designs with hard unknowns, such as unconnected inputs or conflicting outputs, will not be successfully cleared by this procedure. All device inputs should be specified to a known value if not driven by other devices.
76
NOTE:
Chapter 4Simulation
1) It is left completely to the user to decide if the specified initial values make sense. No checking is done to determine if a given device output value is the reasonable result of the devices current input. 2) Devices do not have initial value settings, since their values are completely determined by the state of their output pins. See the section, Pin Initial Values, below.
NOTE:
An initial value for a signal can be placed in the Initial.Sig attribute field using the format described in the previous section. When a Clear Simulation operation is invoked, the initial value specified is placed on the signal without regard for the current output levels of devices driving the signal. The given value will stay on the signal until some device driving the signal changes state, or some other user action changes it.
NOTE: If a pin initial value is specified for any output pin driving the signal, the signal value will be overridden.
The initial value for a pin is stored in the Initial.Pin attribute field, using the format described earlier. Initial values can only be specified for output or bidirectional pins and will be ignored on input pins. When a Clear Simulation operation is invoked, the specified initial value is placed on the pin without regard for the current inputs affecting the device. The given value will stay on the pin until the device model schedules a state change or some other user action changes it.
77
A number of issues arise if you have used the same subcircuit device type multiple times in a design and you open one copy for editing (i.e., by using the Push Into command or by doubleclicking on the device). You should note the following points:
n The Schematic tool creates a separate, temporary type definition for the
open device when it is opened. Any simulation values that you view or change, or any circuit changes that you make, will apply only to that one device instance while it remains open.
n When you close an open internal circuit, the action taken depends on
edits that have taken place. If you have made any edits (such as any graphical or structural change to the circuit) then all instance data (such as signal values, and so on) from other devices of the same type will be lost. It will be completely replaced by the values from the edited block.
78
Chapter 4Simulation
The connection between a pin on a parent device symbol and the corresponding signal in the internal circuit is quite complex, from a simulation standpoint. In order for this connection to act like a hard wire between the two levels, the following conditions must be met:
n The pin type on the parent device symbol must be bidirectional. n The pin type of the corresponding port connector in the internal circuit
must be bidirectional.
n The pin delays on both the pin on the parent device and the pin on the
port connector must be zero.
NOTE:
When a symbol is created in the DevEditor tool, all pins default to type inputthat is, they will not drive any attached signal. If you are creating a subcircuit device symbol for simulation purposes, the pin types must be set to appropriate values.
The effects of these various settings are summarized in the following sections.
Parent Device Pin Type
Any signal value driven out of a parent pin by an internal circuit may be translated according to the pin type on the parent device. These effects are summarized in the following table.
79
Effect This will prevent that pin from ever driving the attached signal, regardless of drives in the internal circuit. This will pass the sum of the internal drives up to the parent pin without any translation. Signal value changes on the signal attached to the parent pin will not be passed to the internal circuit. Any drive level from the internal circuit will be translated according the capability of the pin type. See Appendix B, Device Pin Types, for more details. All changes on the internal signal are passed to the parent pin and vice versa. Other types, such as Tied High and Tied Low, are not recommended.
Output / Threestate
Bidirectional
Other types
NOTE:
Although it may be tempting to set all pins to bidirectional, this is not recommended. It significantly increases simulation overhead and increases the difficulty of isolating circuit drive problems.
The pin type on the port connector is also used to translate the value of any incoming signal changes, in a manner similar to the parent pin type. Normally, the pin type setting on a port connector should complement the setting of the parent pin, as follows:
Parent Pin Type Input Bidirectional All others Port Connector Name Port In Port Bidir Port Out Port Connector Pin Type Output Bidirectional Input
80
Chapter 4Simulation
The normal pin delay and inversion settings can be applied to the port interface. A nonnull value in the Invert.Pin attribute field will cause any signal values passing in either direction to be inverted. An integer value in the Delay.Pin attribute will cause the specified delay to be inserted inline with level changes passing in either direction.
NOTE:
1) We recommend that pin delay and inversion settings be applied only to the pin on the parent device, and not to the port connector in the internal circuit. Attribute settings on the port connector are more difficult to verify and edit, since the port connector is a pseudodevice and some schematic editing operations will be disabled. 2) Changes made in the Invert.Pin and Delay.Pin attributes, after a device has been placed on the schematic, will affect only that one device instance. Default values can be set in these attribute fields when the symbol is created in the DevEditor.
n Replacing any one or all of the ground or power symbols with symbols
containing the appropriate setting; or
n Forcing a Stuck High or Stuck Low level onto the signal, using the
signal probe tool or the Stick Signals command. Note that, because all likenamed ground or power segments are logically connected, this only needs to be done on a single segment.
Simulation Models
81
u See the Signal Probe command in Chapter 12, Menu Reference, for
more information.
Simulation Models
In order for LogicWorks to completely simulate a design, every symbol on the design must have an associated simulation model. In LogicWorks, simulation models can take one of the following forms:
82
Chapter 4Simulation
Simulation PseudoDevices
The simulation pseudodevices (for example, those in the primio.clf library) are handled specially by the Schematic tool. In general, you cannot modify the symbols, pin types, or other characteristics of these devices. In addition, they are treated differently from normal device symbols in the following ways:
n By default, these devices are flagged omit from report, meaning that
they will not appear in any netlist or bill of materials reports. This setting can be changed using the Schematic tools Get Info command.
5
The Timing and Simulator Tools
Trace Area
83
84
Trace Area
Label Area
85
Repositioning Traces
Any collection of selected labels and their corresponding timing traces can be repositioned within the list by clicking on the desired namesusing the key, if desired, to select more itemsand dragging the outlined box vertically to its new location. Releasing the mouse button will cause the list to be revised with the labels and traces in their new positions. Alternatively, the To Top, To Bottom, and Collect commands in the Timing popup menu can be used.
clicking in the label area, then select the Group command in the timing popup menu.
n Select a bus in the schematic diagram, then select either the Add to
Timing command or Add as Group command in the Simulation menu. Busses are added as a group by default. They can then be ungrouped, if desired, using the Ungroup command in the timing popup menu.
86
For the purposes of displaying a hexadecimal value for a group, the order of signals within the group is important. When a group is created, the following rules are used to establish the order:
n If the signal name has a numeric part (e.g., D12 or WRDAT4X), then
the numeric part is used to sort the signals. The lowestnumbered signal will be the least significant bit of the group value. Any unnumbered signals will be in the most significant bit positions.
When a group is first created, a group name is automatically generated from the names of the enclosed signals. This name can be edited using the Get Info command in the Timing popup menu.
NOTE:
87
Run
NOTE:
The Simulator toolbar can be displayed even if there is no Timing window displayed. This allows you to make use of the simulation controls even if you are not using the Timing window.
n If the simulator is reset, it will display 0. n Otherwise, it shows the current simulation time as the simulation
progresses.
88
Trigger...
Trigger Conditions
n Signal value condition, i.e., one or more signals are at specified levels.
89
The controls related to the signal condition are summarized in the following table:
Names In this text box, you can type the names of one or more signals whose values will be compared to the hexadecimal integer value typed in the Value box. One or more signals can be entered using the following formats: CLK D7..0 IN1 OUT3 Value The single signal CLK The signals D7 (most significant bit), D6, D5...D0 The signals IN1 and OUT3
In this box, you enter the signal comparison value as a hexadecimal integer. This value is converted to binary and compared bit for bit with the signals named in the Names box. The rightmost signal name is compared with the least significant bit of the value, etc.
The controls related to the time condition are summarized in the following table.
Time <, =, > In this text box, you enter the time value as a decimal integer. The meaning of this value is determined by the switches below it. These buttons indicate that the trigger will be activated when the simulation time is less than, equal to, or greater than the given value, respectively. This specifies that the time condition should be considered to be always true. The time value is ignored. This time option specifies that the trigger will be activated every time the simulator time equals a multiple of the specified value.
N/A Every
Trigger Actions
When the trigger is activated, any combination of the displayed actions can be invoked.
Beep Generates a single system beep.
90
Stops the simulator immediately. Draws a reference line at this time on the Timing waveform display.
NOTE:
Timing traces can only be editing in the futurei.e., at times greater than the current simulation time.
n The cursor must be in Point mode. If not already in Point mode, click
on the arrow symbol in the Simulator Palette, or select the Point command in the Edit menu. The cursor will now be an arrow. There are two methods of selecting areas for edit operations.
Separate Label and Interval Selection
With this method, you select the traces to be affected by clicking in the label area; then select the time interval by clicking and dragging in the time scale. This allows you to select non-contiguous traces in the display.
u Click on the desired label in the label area to select it. To select more
than one label, hold the key and click on the labels.
91
u To set the selection interval, click and hold down the mouse button in
the time scale at either end of the desired interval. Drag left or right until the desired interval is enclosed. When the mouse button is released, the select interval is set, and two selection interval lines will appear. If any of the signal labels were selected, the timing signal within the selected interval will be highlighted in the Timing window.
NOTE:
Clicking and releasing the mouse button at one spot will create a zerowidth interval. This can be used to insert Pasted data without deleting any existing data.
Drag Selection
This method allows you to select a group of labels and a time interval in a rectangular area of the Timing window. To do a drag selection, click and hold the mouse button at any corner of the rectangular area you wish to select. Drag diagonally across the desired area. When the mouse button is released, the enclosed time interval and traces will be selected.
92
NOTE:
The selection operations in the Timing window have no effect on selections in the Schematic window.
u Use the Select All command in the Edit menu to select the entire
diagram.
u Use the Select All command in the Edit menu to select the entire
diagram. will deselect all traces). Then
u Click at the top of the label area, above the highest label displayed (this
click to select the desired traces.
93
Deselecting
Clicking anywhere in the trace area that is not in a trace will deselect the labels and selection interval. Clicking in the label area above or below the label list deselects all traces but leaves the current interval selected.
Paste
NOTE:
1) If you wish to paste a timing picture into a word processing package, it may be necessary to first paste it into a drawing program to extract the picture data from the Clipboard, or to use a Paste Special command (if the destination program has one) to select the picture format. A word processing package will, by default, normally take the text data from the Clipboard.
94
6
Primitive Devices
Every device on a LogicWorks schematic has a characteristic known as its primitive type. The primitive type is set when the part entry in the library is created, and cannot be changed for individual devices on the schematic. Primitive types fall into three general groups:
n Pseudodevice types: These are the symbols used for bus breakouts,
power and ground symbols, etc.
IMPORTANT:
LogicWorks has very specific requirements for the order and type of pins on pseudodevices. Refer to Appendix A, Primitive Device Pin Summary, for information. These rules are not checked by the DevEditor.
The simulation primitive types should not be used for usercreated symbols without a clear understanding of their function.
95
96
IMPORTANT:
The pseudodevice types have specific pin order requirements that must be followed if you create one of these symbols using the DevEditor tool. Refer to Appendix A, Primitive Device Pin Summary, for more information.
Description Symbol having an optional internal circuit. This is the default for symbols created using the DevEditor tool. Symbol with no internal circuit. Splits signals out of or into a bus. These symbols are normally created using the New Breakout command in the Schematic menu, although they can be created using the DevEditor for special purposes. Used for power and ground connections. Makes a connection between the signal to which it is connected and a likenamed pin on the parent device.
97
NOTE:
1) In primitive devices, logic functions are associated with pins on a device symbol according to pin order. When creating primitive devices using the DevEditor tool, you must be aware of the pin order requirements for the device type you are using. Refer to the description of each type in this chapter and to Appendix A, Primitive Device Pin Summary. 2) Bus pins are not supported on primitive device types.
98
The following table lists the available primitives and their functions.
Primitive Type Description NOT AND NAND OR NOR XOR XNOR Transmission Gate Buffer Inverter Ninput AND gate Ninput NAND gate Ninput OR gate Ninput NOR gate Ninput XOR gate Ninput XNOR gate Transmission Gate Noninverting Nbit Buffer 3state buffer with optional common inverted enable Digital resistor M*N to M multiplexer 1 to N line decoder Nbit adder with carry in and out Nbit subtractor with borrow in and out Dtype flipflop Dtype flipflop with clock enable JK flipflop Nbit edgetriggered register Nbit synchronous counter Up/down Incrementer Decrementer optional S & R optional S & R T flipflop, optional S & R Any pin inversions Any pin inversions Any pin inversions Any pin inversions Any pin inversions Any pin inversions Related Type Max. # Inputs 1 799 799 799 799 799 799 1 400
Resistor Multiplexer Decoder Adder Subtractor D FlipFlop D FlipFlop with Enable JK FlipFlop Register Counter
99
Primitive Type Description Shift Register One Shot Clock Binary Switch SPST Switch SPDT Switch Logic Probe Hex Keyboard Hex Display Unknown Detector Nbit shift register Retriggerable one shot Clock oscillator Debounced toggle switch Open/closed single pole switch Double throw switch Signal level display Hexadecimal input device Hexadecimal digit display Unknown value detector
Related Type
The following table lists devices supported primarily for compatibility with older versions of LogicWorks. We do not recommend using these in new designs.
Device Pullup D FlipFlop ni JK FlipFlop ni Glitch SimStop Description Pullup resistor, single pin Dtype flipflop (noninv S & R) JKtype flipflop (noninv S & R) Glitch detector (use Trigger mechanism now) Simulation halt device (use Trigger mechanism now)
100
Pin Inversion
In addition to the pin function options described in this chapter, any pin on any device can be inverted by specifying a value in the Invert.Pin attribute field. Any nonempty value will cause the pin logic to be inverted.
101
Gate Definition
The gate types, except NOT, can be created with any number of inputs from 0 to 799. They are defined as shown in the following table.
Function AND NAND OR NOR XOR Output is... LOW if any input is low, HIGH otherwise HIGH if any input is LOW, LOW otherwise HIGH if any input is HIGH, LOW otherwise LOW if any input is HIGH, HIGH otherwise HIGH if an odd number of HIGH inputs and no DONTs HIGH if an even number (or zero) of HIGH inputs and no DONTs Output is DONT if... Some input is DONT and no input is LOW Some input is DONT and no input is LOW Some input is DONT and no input is HIGH Some input is DONT and no input is HIGH Any input is DONT
XNOR
NOTE:
Pin order is important in all primitive devices! When creating a gate type using the DevEditor tool, the output pin must be the last item on the pin list. See Appendix A, Primitive Device Pin Summary.
102
Pin Inversions
The logic of any pin on any device can be inverted by placing a nonempty value in the Invert.Pin attribute field of the pin. For example, to create the following AND gate with one inverted pin:
u In the Pin Name List at left, doubleclick on the last pin (the output
pin). This will display the Pin Information Palette for that pin.
u Set the pin type to Output. If desired, edit the pin name. u Press the
key to move to the next pin. You may use this technique to edit the other pin names (if desired) and to check that they are all set to Input.
u Close the Pin Information Palette. u In the New Pin list, click once to select the input pin that is to be
inverted. Then select the Pin Attributes command, which is located on the Options menu.
u Select the Invert.Pin field in the Attributes Dialog. u Enter the value 1 for this field, then click Done. (The actual value
doesnt matter, as long as it is nonempty.)
u Select the Subcircuit / Part Type command on the Options menu. u Click on the Set to Primitive Type button, then select the AND
primitive type in the dropdown list.
103
u Close the PartType Configuration dialog and save the part to a library
in the usual manner.
NOTE: 1) The logical inversion of the pin is completely independent of the graphical representation of the pin. That is, using the inverted pin graphic in the DevEditor does not invert the pin logic in the simulator. You must set the Invert.Pin field to invert the logic. 2) Inverted gate types NAND and NOR can be created by using the NAND and NOR primitive type settings. You can also use the AND and OR settings and either invert the output pin or invert the input pins (using DeMorgans Theorem). These methods will produce identical simulation results. There is a slight memory overhead, but no executionspeed overhead, to using an inverted pin.
Transmission Gate
The transmission gate (XGate) device behaves as an electrically controlled SPST switch. When the control input is high, any level change occurring on one signal pin will be passed through to the other. Since the device has no drive capability of its own, it will behave differently than a typical logic device when a high impedance or low drivelevel signal is applied to its signal inputs. Most other primitives, such as gates, interpret any applied input as either High, Low, or Dont Know. The transmission gate, on the other hand, will pass through exactly the drive level found on its opposite pin. Thus, a high impedance level on one pin will be transmitted as a high impedance level on the other pin. Note that the simulation of this device may produce unpredictable results in extreme cases, such as an unbroken ring of transmission gates.
NOTE:
No variations in number or order of pins are possible with the XGATE primitive type. It must have exactly one control pin and two bidirectional pins, with pin order as described in Appendix A, Primitive Device Pin Summary.
104
ThreeState Buffer
The threestate buffer has N data inputs, N data outputs, and an optional activelow enable input. If the enable input exists and is high, all outputs enter a High Impedance state. If the enable input doesnt exist or is low, each output will follow the corresponding input if it is low or high, or produce a Dont Know level otherwise.
NOTE: N is a placeholder. The limits on N differ depending on the device. See Appendix A for more detail.
105
The Buffer primitive type can also be used to make a noninverting bufferthat is, a buffer with its outputs always enabledsimply by omitting the enable input. This can be used for the following purposes:
n To represent a noninverting buffer or level translator in a design. n To insert a delay in a signal path without affecting the logic of the
signal.
NOTE:
It is more efficient to use the NOT primitive type to make a simple inverter.
Resistor
The resistor device simulates the effects of a resistor in a digital circuit. It is more general than the Pullup Resistor device and can be used as a pullup, pulldown, or series resistor. Whenever a signallevel change occurs on either pin of the resistor, the device converts that level into a resistive drive level (see Chapter 7, Simulation, for more information on drive levels). A high impedance drive on one end is transmitted as a high impedance output to the other end. Note that LogicWorks does not simulate analog properties of devices, so the resistor device does not have a resistance value in the analog sense and will not interact with capacitor symbols placed on the same line. The effect of resistance on line delay can be simulated by setting the delay of the resistor device.
106
Logic Devices
Multiplexer
This is a device that selects one of N data inputs and routes it to a corresponding output line. There can from 1 to 256 outputs, plus an optional enable input, as long as the total pin count does not exceed the 800pin limit. A typical 8to1 multiplexer obeys the following function table, in which X = Dont Care:
EN 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 S2 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 X S1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 X S0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 X D7 X X X X X X X X X X X X X X 0 1 X D6 X X X X X X X X X X X X 0 1 X X X D5 X X X X X X X X X X 0 1 X X X X X D4 X X X X X X X X 0 1 X X X X X X X D3 X X X X X X 0 1 X X X X X X X X X D2 X X X X 0 1 X X X X X X X X X X X D1 X X 0 1 X X X X X X X X X X X X X D0 0 1 X X X X X X X X X X X X X X X Q0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1
Logic Devices
107
A number of variations in multiplexer logic are possible with this primitive type, depending on which input and output pins are included. The following table summarizes the possible variations. Samples are shown with M=1 and N=2, but any combination of M and N can be used within the maximum pin limit of 800.
Number of Sections M Number of Inputs/Section 2N Number of Select Inputs N Number of Enable Inputs 0 Sample Symbol
2N
2N1+1 .. 2N
0*
* If there are fewer than 2N inputs per section, there can be no enable input.
u Specific pin order requirements for the multiplexer type are given in
Appendix A, Primitive Device Pin Summary.
108
Decoder
The Decoder (active low) primitive device activates one of N outputs depending on M select inputs, as follows (X = Dont Care):
EN 0 0 0 0 0 0 0 0 1 S2 0 0 0 0 1 1 1 1 X S1 0 0 1 1 0 0 1 1 X S0 0 1 0 1 0 1 0 1 X 7 1 1 1 1 1 1 1 0 1 6 1 1 1 1 1 1 0 1 1 5 1 1 1 1 1 0 1 1 1 4 1 1 1 1 0 1 1 1 1 3 1 1 1 0 1 1 1 1 1 2 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1
Logic Devices
109
Adder/Incrementer
The Nbit Adder accepts one or two Nbit input arguments and (optionally) a 1bit carry, and outputs their Nbit sum plus an optional 1bit carry out. Multiple Adders can be connected together by feeding the Carry Out from each stage to the Carry In of the next more significant stage. The Carry In to the least significant stage should be set to zero.
Adder Pin Variations
The adder primitive can be used in four variations, as summarized in the following table. Sample symbols are shown with 4bit inputs, although any number of bits from 1 to 256 is permissible.
Has B Inputs Has Carry In S = A + B + Cin No B Inputs S = A + Cin
No Carry In
S=A+B
S=A+1
In addition, the Carry Out pin can be independently included in, or omitted from, any of these configurations.
110
Subtractor/Decrementer
The Subtractor primitive type behaves identically to the Adder type except that a subtract or decrement operation is performed, depending upon pin configuration.
D FlipFlop
The Dtype flipflop is positive-edgetriggered and obeys the following function table:
S 0 0 1 1 1 Rises R 0 1 0 1 1 Rises D X X X 0 1 X Clock X X X Rises Rises X Q 1 1 0 0 1 X Q/ 1 0 1 1 0 X
In the above table, X on the input side means Dont Care and on the output side means Dont Know.
FlipFlop Setup and Hold Times
None of the LogicWorks primitive types explicitly implement variable setup and hold times. However, all edgetriggered primitives have an effective setup time of 1 unit, since they always use the input signal value existing before the current step. For example, if the data input changes at the same time as the clock, the old data value will be used to determine the new output value. You can modify this effective setup time by specifying input pin delays on either the data or clock pins. You can check for setup and hold violations by using the simulators Trigger capability to watch for value changes within a set amount of time.
Logic Devices
111
FlipFlop Initialization
Note that when a flipflop is first placed in the schematic, it is in an unknown state and must be correctly initialized before it will produce predictable outputs. This can be done in the following ways:
n Adding circuitry to force an explicit reset. n Using the Clear Unknowns button or menu command to force an initial
state before starting the simulation.
n Specifying an initial output value for both the Q and Q/ outputs in their
respective Initial.Pin attributes. This will be applied every time a Clear Simulation command is executed.
D FlipFlop Optional Pins
n The Q/ (NotQ) output can always be omitted. n The Set input alone, or both the Set(S) and Clear(C) inputs, can be
omitted.
D Latch
The D Latch primitive type is identical to the D FlipFlop in function and pin specifications, except that it is leveltriggered instead of edgetriggered. For example, the Q and Q/ outputs will follow the level of the D input as long as R is high.
112
JK FlipFlop
The JK flipflop is negative-edgetriggered and obeys the following function table:
S 0 0 1 1 1 1 1 1 1 rises R 0 1 0 1 1 1 1 1 1 rises J X X X 0 0 0 1 1 1 X K X X X 0 0 1 0 1 1 X Clock X X X falls falls falls falls falls falls X Old Q X X X 0 1 X X 0 1 X New Q 1 1 0 0 1 0 1 1 0 X New Q/ 1 0 1 1 0 1 0 0 1 X
In the above table, X on the input side means Dont Care and on the output side means Dont Know. If any inputs are in an unknown state, the simulator will determine the output state where possible, or else set it to Dont Know.
u See the notes under D FlipFlop, above, on setup and hold times and
initialization.
Register
This device implements an Nbit, positive-edgetriggered register, with common clock and optional activehigh clear inputs.
u See the comments on Setup and Hold times and initialization in the
D FlipFlop section, earlier in this chapter.
Logic Devices
113
The following table illustrates some pin variations available for the Register primitive type:
4bit register with activehigh clear
Counter
This device implements an Nbit, presettable, synchronous, positive-edge triggered, up/down counter with activelow enable. The load data inputs and most of the control inputs can be omitted for simplified versions. The following timing diagram shows a typical count cycle. Note that the CO (Carry Out) output goes low when the count reaches 2 N 1 (when counting up) or 0 (when counting down), and rises again on the next count. This can be used to cascade multiple counters together, as shown. The CLR input clears the counter asynchronously (that is, regardless of the state of the clock). The Count/Load input, when low, causes the data from the N data inputs (D0D3) to be passed to the outputs (Q0Q3) on the rising edge of the next clock. The Enable input disables counting when high, but has no effect on loading.
114
Counter primitives with the optional Enable and Carry Out pins can be cascaded to form larger synchronous counters as follows:
The following table summarizes the possible pin usage variations for the counter primitive type. The samples are shown with N=4, although the number of bits can be anywhere in the range 1 to 256.
Logic Devices
115
CLR, UP/DN
CLR
none
NOTE:
116
Shift Register
The shift register is an Nbit, positive-edgetriggered device with serial or optional parallel load. When the Shift/Load input is low, data from the N parallel data input lines is transferred to the outputs on the rising edge of the next clock. When Shift/Load is high, the next rising clock edge causes the value at the Shift In input (SI) to become the new value for output Q0, as Q0 shifts to Q1, Q1 to Q2, etc., and the old value at the most significant output is lost. The following table shows the shift register primitive with and without parallel inputs.
With Parallel Load Without Parallel Load
NOTE:
The Shift Register primitive cannot be created without data outputs (that is, as a parallelin, serialout register) because the flipflop values are stored on the output pins. Primitive devices have no internal state storage. See more comments on this in Chapter 7, Simulation.
Clock
The clock oscillator is used to generate a repeating signal to activate other devices. When it is first created, the clock output pin will be low; then after a delay time called the low time, it will change to the high state. After a further delay called the high time, the signal will revert to low and the cycle will repeat. The low and high times are initially set to 10, but can be modified: WindowsSelect the Parameters command from the Simulation menu. MacintoshSelect the Set Params command from the Simulate menu. Any number of Clocks may exist at once with independent delay times.
Logic Devices
117
When the Clear Simulation operation is selected (via the Reset button on the Simulator Palette), all clocks in the design are restarted. Clock outputs will be set to the low state and the timer for the low period will be restarted. Clock high and low times, combined with pin inversion and pin delay settings, can be used to precisely determine the relationship between two clock outputs. The following circuit example summarizes these options.
Low Time 10 5 10 10 10
High Time 10 5 10 10 10
Invert.Pin
Pin Delay 0 0
0 5
To set the high and low times for a clock, first select the device in question (by activating the arrow cursor and clicking inside the device symbol), then choosing the Simulation Params item on the Simulation menu. You will be presented with a dialog box with buttons for increasing or decreasing the high and low values. The minimum for either value is 1 and the maximum is 32,767.
118
One Shot
The One Shot is used to generate an output pulse of a fixed length when it is triggered by the rising edge of the trigger input. Two parameters can be set for a One Shot: the delay from the rising edge of the input to the start of the output pulse, and the duration of the pulse. The delay and duration times are initially set to 1 and 10, respectively, but can be modified using the Windows Simulation Params item on the Simulation menu. The One Shot device is retriggerable, meaning that the output pulse will not end until duration time units have passed since the last trigger input. Repeating the trigger input can cause the output pulse to be extended indefinitely.
Setting One Shot Values
To set the delay and duration times for a One Shot, first select the device in question, then choose the Simulation Params item in the Simulation menu.
119
SPST Switch
The SPST switch device simulates the actions of a simple open/closed switch in a digital circuit. When a switch is first created, it is open, and both connections present a high impedance logic level. Clicking on the switch (between the two dots) with the cursor in Point mode causes the switch arm to close and the switch to conduct. In terms of the digital simulation, this means that whatever logic level is present on each pin is transmitted to the other one. An SPST switch has a default delay of zero but this can be set to any value from 0 to 32,767 using the Simulation Params command.
SPDT Switch
The SPDT switch device operates in essentially the same manner as the SPST switch described above, except that it always conducts between the single pin on one side and one of the two pins on the other. As with the other two switch types, clicking on it with the arrow cursor changes the position of the contact.
SPDT Pushbutton
The Windows SPDT Pushbutton switch device operates in essentially the same manner as the SPDT switch described above, except that it only stays switched to one side while the mouse is pressed.
Binary Probe
The Binary Probe is a device for displaying the level present on any signal line. When the probe is first created, its input is unconnected and therefore in the High Impedance state, which will be displayed as a Z. When the input pin is connected to another signal, the displayed character will change to reflect the new signals current state. Any further changes in the signal state will be shown on the probe. Possible displayed values are 0 (low), 1 (high) X (Dont Know), Z (High Impedance), or C (Conflict).
120
Hex Keyboard
The hex keyboard outputs the binary equivalent of a hexadecimal digit on four binary lines. A key is pressed by positioning the tip of the arrow cursor in the desired key number and clicking the mouse button. The binary data on the output lines will change to reflect the new value and will remain set until the next key is pressed. The fifth output line will go high momentarily and then low again when a key is pressed.
Hex Display
The hex display shows the hexadecimal equivalent of its four binary inputs. If any of the inputs is unknown, high impedance, or conflict, an X will be displayed.
7
RAMs and Programmable Devices
This chapter provides details on creating and using RAM (Random Access Memory), PROM (Programmable Read-Only Memory) and PLA (Programmable Logic Array) devices with user-specified data. These devices are created using the PROM/RAM/PLA Wizard. Apart from this slight difference in terminology, procedures are essentially the same on both systems. These terms will be used interchangeably in the rest of this chapter.
121
122
Write Enable
SingleWord Simulation
Common I/O
If any combination of Dont Know values on the control inputs could cause a write, then the selected memory location will be invalidated (that is, the location will contain Dont Know values). If the address inputs also have Dont Know values, then the entire device will be invalidated.
123
The normal options for pin delay (using the Delay.Pin attribute field) and pin inversion (using the Invert.Pin attribute field) can be used with RAM devices.
RAM Device Limitations
n n n n
30 address-line inputs. 256 bits per word. Total memory space < 231 bytes. Sufficient program memory free to allocate a block twice the size of the simulated memory space.
NOTE:
The Single Word Simulation option allows you to simulate a device with a large number of address inputs without having to allocate memory for all possible memory locations.
124
n Total PROM memory space < 231 bytes. n Sufficient program memory free to allocate a block twice the size of
the simulated memory space.
n Number of Inputs: 1 to 128 n Number of Outputs: 1 to 128. n Number of product terms per output <= 65,535. Complex Programmable Logic Devices
The term Programmable Logic Device (as opposed to Programmable Logic Array) will be used here to refer to a real programmable device that consists of one or more AND-OR planes plus associated registers, buffers, feedback paths, and so on. There is no PLD primitive device in LogicWorks. Some very simple PLDs can be directly simulated with a single
125
PLA primitive typefor example, a PAL10L8-type device. However, most PLDs are simulated by creating a subcircuit containing one or more PLA primitive devices, plus the other required logic and wiring. In most cases, these subcircuits are created automatically by the PLD tool, which is described later in this chapter, or by manually creating a subcircuit model of the target device using a PLA primitive device for the core.
) in
u Select the RAM device type and click the Next button:
126
u Enter the desired number of inputs and outputs and select the
appropriate options. For more information on these options, see RAM Device Characteristics on page 122. Click the Next button when done.
u Enter the name that you wish the new part to be saved under and select
the destination library. If you need to create a new library, click the New Lib button.
NOTE:
We do not recommend saving your own parts to any of the standard LogicWorks release libraries. This greatly complicates upgrading to new versions of the package.
127
u Select the PROM device type and click the Next button:
128
u Enter the desired number of inputs and outputs and select the Intelformat hex or raw hex data-entry method, as appropriate. Click the Next button.
u Click the Select Intel Hex File or Select Raw Hex File button and
locate the desired input file. The Format Help button can be used to bring up a description of the selected format.
u Click the Next button. u Enter the name that you wish the new part to be saved under and select
the destination library. If you need to create a new library for the part, click the New Lib button.
NOTE:
We do not recommend saving your own parts to any of the standard LogicWorks release libraries. This greatly complicates upgrading to new versions of the package.
129
n If insufficient hex characters are given for the length of the word, the
rightmost character in the group represents the least significant bits and unspecified higher order bits are filled with zeros.
n If all the words in the device are not specified, unspecified words are
filled with Don't Know (X).
n Items not containing any hex characters will be completely ignored and
just taken as separators. Don't consider this to be a method of inserting comments unless you're sure you can spell everything without A to F!
n There is no comment mechanism. n No error messages are given no matter what you put in the text!
To create the PROM device:
) in
u Select the PROM device type and click the Next button:
u Enter the desired number of inputs and outputs and select the Enter
hex data manually data entry method. Click the Next button.
130
u Enter the hex data in the text box provided, using the format described
earlier. The Format Help button can be used to bring up a description of the format along with some examples.
u Click the Next button. u Enter the name that you wish the new part to be saved under and select
the destination library. If you need to create a new library, click the New Lib button.
NOTE:
We do not recommend saving your own parts to any of the standard LogicWorks release libraries. This greatly complicates upgrading to new versions of the package.
131
u Select the PLA device type and click the Next button:
u Enter the desired number of inputs and outputs and select the Read
data from a DWL-format PLA file data-entry method. Click the Next button.
u Click the Select DWL File button and locate the desired input file.
The Format Help button can be used to bring up a description of the DWL format.
u Click the Next button. u Enter the name that you wish the new part to be saved under and select
the destination library. If you need to create a new library, click the New Lib button.
NOTE:
We do not recommend saving your own parts to any of the standard LogicWorks release libraries. This greatly complicates upgrading to new versions of the package.
132
n Each PLA output is specified separately. The Wizard will step you
through the outputs one page at a time, starting with the least significant output bit.
n Each line of text entered represents one product term (AND function).
Any number of product terms can be entered, including zero. If any one of the product terms specified matches the input values, the output will become active.
n There is no comment mechanism. n No error messages are given no matter what you put in the text!
To create the PLA device:
) in
u Select the PLA device type and click the Next button:
133
u Enter the desired number of inputs and outputs and select the Enter
product term data manually data entry method. Click the Next button.
u For each output, enter the term data in the text box provided, using the
format described earlier. The Format Help button can be used to bring up a description of the format along with some examples.
u Click the Next button. u Enter the name that you wish the new part to be saved under and select
the destination library. If you need to create a new library, click the New Lib button.
NOTE:
We do not recommend saving your own parts to any of the standard LogicWorks release libraries. This greatly complicates upgrading to new versions of the package.
134
IMPORTANT:
The RAM, PROM, or PLA device definition contains structure information that cannot be edited after the device is created. Adding or deleting any pins using the device symbol editor will invalidate the device definition and render it useless.
The device symbol editor can be used to make the following changes to a RAM, PROM, or PLA device, if desired:
n Any graphical changes to the symbol. n Pin name, visible pin number, or pin attribute changes (including pin
delay and inversion).
n Limited pin type changes (e.g., changing to open collector). n Part-attribute changes.
8
Device Symbol Editing
The device symbol editor is a tool used to create device symbols for use on LogicWorks schematics. It provides a complete, object-oriented drawing environment with standard drawing tools, as well as specific functions tailored for symbol creation.
u Right-click on the part you want to edit. u From the pop-up menu that is displayed, select the Edit Part command.
135
136
Drawing Tools
Rectangles
The eight items in the left half of the Tool Palette represent standard drawing tools.
Normal Pins
Bus Pins
Inverted Pins
The left group of Part Pin tools are used to create normal (that is, not bus) pins on the part in any of the four orientations. The middle group of tools are used to place bus pins on the part in any of the four orientations. Bus pins allow busses to be connected to the part. A bus pins functionality is determined by the internal pin names it contains. See Adding Pins on page 150 for information on creating bus internal pins. Tools on the right are provided as a convenience to create pins with an inversion bubble. A pin created with the inverted pin tools has no special simulation characteristics; these tools are provided only as a graphical convenience.
137
Placing Pins
When placing pins, a graphical pin is associated with a name in the Pin Name List. The association is made by applying the following rules, using the first one that matches.
u Associate a selected pin name in the Pin Name List which is unplaced
and is of the same type. For example, normal and inverted pins cant be associated with bus pin names or internal bus pin names.
u Associate an unplaced pin name of the correct type which follows the
first selected pin name. Pin names are examined in a cyclic order, so if the bottom of the Pin Name List is reached, the search continues from the beginning.
n If the symbol was opened from an existing part, then the initial name
list will be the pin names associated with the part.
n If a pin tool is clicked in the drawing area, a new name may be added
with the form PINx, where x is a sequential number. This is only done if no unplaced pin name could be used.
n The Autocreate Symbol command can be used to specify all the pin
names and pin numbers for a device symbol. The pin name that appears in the Pin Name List does not need to be the same as the graphical annotation that appears next to a graphical pin in the parts symbol. Some operations performed by the Autocreate Symbol command assume a correspondence, but this is done only as a convenience. The
138
result is that changing a pin name in the Pin Name List will never cause the annotation next to a graphical pin to automatically change. The relationship between pin names and graphical pins is not symmetrical. Every graphical pin must have a pin name, but a pin name need not have an associated graphical pin. This can lead to some surprises. For example:
n Selecting all graphical pins in the drawing area may not select all pin
names. Unplaced and internal pin names will not be selected.
n Deselecting all graphical pins in the drawing area may not deselect all
pin names. Additional unplaced or internal names may have been initially selected.
Pin List Display
Any pin that has been placed (i.e., that has a corresponding graphical pin object that appears on the symbol) will have a black mark beside it. Bus pins are marked in the list with a black . Pins that have not been placed on the symbol are displayed in red. Bus internal pins (pins that define the contents of a bus pin) are shown with a dotted line. Here is a typical example:
Normal Pin Pin which has not been placed on symbol (shown in Red) Bus Pins Bus Internal Pins
If a placed pin name (that is, a name that has a black mark next to it and has an associated graphical pin) is selected, then both the pin name and the graphical name will be selected. The opposite is also true: If a graphical pin is selected, its pin name will also be selected. If a pin name is selected but has not been placed, then only the name will be selected. Bus internal
139
pin names never have graphical associations, so selecting an internal pin name never selects a graphical pin.
key while clicking on an object adds to the current selection (that is, selects the object without deselecting the other selected objects). key while using the graphical tools may augment the operation of the selected tool.
M M M
Mc
NOTE:
The association between a bus pin and its internal pins is determined solely by order. A bus internal pin is always associated with the
140
immediately preceding bus pin. Moving a bus internal pin to a position after a different bus pin will change this relationship.
Deleting a Pin
To delete one or more pins from the list, simply select the desired items and press the Delete key on the keyboard.
NOTE:
141
Draw the graphical shape that represents the part. Do this using the line, rectangle, rounded-rectangle, oval/circle, arc, and/or polygon tools.
NOTE:
Device pins must be added using the pin tools. Do not draw any of the parts pins with the graphic tools mentioned above.
Adding Pins
Each time you place a pin, a new default pin name is added to the Pin Name List. The pin name, number, and other information can be edited in this list. For more information on the pin list, see Pin Name List on page 137. For this example, we want to name the pins Source, Gate, and Drain. In addition, we want to give them the pin numbers S, G, and D. Windows
u Double-click on the first pin in the list (PIN1) and change its name to
Source.
142
u While it is selected, set the pin number to the letter S (note that pin
numbers are not restricted to decimal digits).
u Repeat the procedure for the seond pin, changing its name to Gate
and pin number to G.
u Repeat the procedure for the third pin, changing its name to Drain
and pin number to D. Macintosh
u For the first pin you placed, enter the name Source and the number
S. You can use the number field.
u Press the
key. Notice that the name was updated in the Pin Name List and that the pin number S has been displayed with the graphic pin. new name Gate and pin number G in the info palette.
W W
u Change the next pin by clicking in its name (PIN2) and entering the u Press the
D. key to move to the next pin.
u Select the remaining pin and and the name Drain and pin number u When you are finished with the Pin Information Palette, you may
simply close it or move it to the side.
143
The actual names given to the pins in this simple form of part are not critical. However, it is a good idea to use meaningful names for the following reasons:
n n n n
These names will be seen in the Schematic tools Pin Info dialog. They can be extracted in netlist output. They are used when binding pins to ports in subcircuits. In the case of bus internal pins, they are used when connecting bus pins on the part to busses.
u Create the subcircuit using the Schematic windows drawing tools. The
subcircuit must have Port Connectors corresponding to the pin connections on the symbol, as described below. Leave this circuit open (i.e., displayed in a circuit window).
u Start the Symbol Editor tool, select the Subcircuit / Part Type
command, and choose the Create a subcircuit symbol and store the subcircuit with it option. Select the subcircuit that you have just created from the list of open windows that is presented. Close the Subcircuit / Part Type window.
u Create the graphics for the symbol. You can do so using either the
drawing tools or the Autocreate Symbol command in the Options menu.
u Save the symbol to the library. It will be saved with a copy of the
selected internal circuiti.e., you can close or discard the internal circuit now, as it is saved in the library. The following sections provide more information on this procedure.
Creating the Subcircuit
A parts subcircuit is a schematic diagram which is associated with the part. A circuit which is to be used as a subcircuit must indicate which of its
144
signals are to correspond with the pins on the parent symbol. This is done by attaching and naming special pseudo-device symbols called port connectors. Port connectors make this association by name, i.e.: a port connector named A0 will only associate with a pin called A0 on the parent symbol. It is important that there be an exact one-to-one match between the pins on the parent symbol and the port connectors in the subcircuit.
The circuit to be attached to the new part must be open in a circuit window. This command will not work with a circuit file that resides on disk but is not open. WindowsTo choose the circuit to be used as the parts subcircuit, select the Subcircuit / Part Type command from the Options menu. This will display the following options box:
145
Import a port list from This selection allows you to create a symbol that has pins a circuit without that match a particular subcircuit, without saving the storing the circuit subcircuit in the library. When this option is selected, you will be prompted to choose one of the open circuits as a subcircuit. The list of port connectors in the chosen circuit will be added to the Symbol Editors pin list, but the chosen circuit will not be stored in the library. Set to Symbol Only Type Set to Primitive Type This option is like the first option, except that it doesnt allow the schematic capture part of LogicWorks to associate a subcircuit with the part in the future. See the section, Assigning a Primitive Type, below.
WindowsThere are two subcircuit options in the lower part of the Windows dialog:
Delete pin list before merging ports This option is only enabled when the selection made above results in a port interface being read. If this box is checked when the Done button is pressed, then all of the old pin names in the Pin Name List will be deleted. This allows a new port interface to be brought in without any conflicts with the existing Pin Name List. If this option wasnt checked, then port names will be merged with the names in the list. Duplicate pin names and their related properties will remain unchanged, except they are now associated with the new port. Unmatched pin names in the Pin Name List will remain exactly the same.
146
This option has the effect of saying, Yes, there is a subcircuit, but in general you dont want to go into it. This causes the schematic capture part of LogicWorks to prompt for permission before entering the subcircuit.
The graphic image of the part may be drawn in the same way as was described in the previous section on creating parts without subcircuits.
In the Pin Name List, you may place any items that are shown with a red pin icon, indicating that they are unplaced. Names that have a black pin next to them already have a graphical association. Bus internal bus pins do not have a graphical representation. You may assign graphical positions to pin names explicitly, by using the pin placement tools, or automatically, by using the Autocreate Symbol command. See Automatically Creating Symbols on page 151 for more information. Explicitly assigning a graphical pin position to a pin name requires that the pin name be selected in the list and that a graphical pin be placed using one of the pin tools. A graphical pin assignment will only be made with an unplaced pin of the correct type. If a placed pin name is selected in the Pin Name List, and an attempt is made to associate a graphical pin with it, the association will not be made because the pin name was already placed. Instead, the new graphical pin will be associated with the next free pin name of the correct type, or a new pin name will be created if there are no unplaced pin names of the correct type. Because of the way the pin association mechanism worksthat is, searching for the next placeable pin nameit is possible to place all pin names of the same type without having to make a new selection. Do this as follows:
147
u Select the first unplaced pin name and place it. Now, since the current
selection is placed, the next graphic pin placed will be matched with the next pin name of the correct type.
u Place another pin and note how the selection moves forward to the next
unplaced pin name of the same type.
Saving the Part
The newly created part is written out to any open library using the Save Part As command in the File menu. When the menu item is selected, the Save As dialog will appear. It requires that a library be selected from the list, and that a name for the part be entered in the lower box. In this example, the Connectors library has been selected and the parts name has been left as the default Part1. The name you enter will become the name of the part in the library, and the title of the Symbol Editor window will be updated to correspond to the new part name.
NOTE: Note: Only open libraries appear in the list.
Once opened, the new part is a copy of the part in the library. However, the Symbol Editor keeps track of the parts library of origin. If a part is selected from the library while the same part is being edited, the original part will be the one selected. In addition, editing a part and re-saving it to the library does not change all the copies of that part in all the circuits that use it.
148
Changing Graphics
Editing changes can be freely made to all of the parts graphical components, other than pins. It is important to remember that graphic pins are associated with pin names, and that even though graphic pins look the same, they may not be interchangeable because of their associated names. Consider the following example: A flip flop has pins named D, CLK, and Q. The pins D and CLK are both left-facing graphic pins and Q faces to the right. Simulation and netlisting problems will occur if the graphic pins D and CLK were to have their graphical locations swapped. Swapping the pins positions would confuse the user because the D label would be located next to the graphical pin associated with the pin name CLK. The same would be true for the CLK pin. To ensure that pins are placed correctly, it is important to select the pin in the Pin Name List and verify that the expected graphic pin is selected.
Changing Pin Information
If the part has a subcircuit, then it is important to remember that the pin types are derived from the ports in the subcircuit. Trying to change a pins type without also changing the underlying subcircuit is not allowed. For parts based on a primitive type, the functions of the pins must agree with the selected model. There is no check to ensure that the pins are correctly set for the selected model. With other types of partsSymbol Only and No Subcircuitthe types of the pins can be changed freely.
Changing Part Type
Changing a part's type can have dramatic effects. If you have changed a parts type, we recommend that you not save it into its original library with its original name. Changing the library and/or part name ensures that mistakes are easier to recover from. Some of the things to look out for are:
149
Attributes defined while in the symbol editor will be associated with the part in the library. These will become the default attributes for the part when it is placed in a circuit. Attribute values can always be changed on each copy of the device after it is placed on a schematic.
150
Adding Pins
The Add Pins command allows you to add one or more pins to the symbol editors pin list. The pin names are created and merged with the contents of key is pressed or when the Add button the Pin Name List when the is clicked. The Add Pins Palette does not create graphic pins, only pin names for the Pin Name List. The created pin names are merged with the names in the Pin Name List. If a like-named pin already exists in the list, then it may be reordered to appear in the same order as in the Add Pins Palette. If a pin number is specified, then it will replace the pin number in any existing pin with the same name.
Pin names may be up to 16 characters long. Three types of pin names may be described. They are:
151
defines the pin names A0 through A7. These pin names were also given pin numbers. The pin numbers 1 2 3 4 11 12 13 and 14 were assigned. It is also possible to skip a pin name when assigning pin numbers to a pin name sequence. Consider the previous example: If we didnt want to assign the number 11 but wanted all other pin names to get the same numbers in this series, we would do the following: A0..7(1..4,,12..14) instead of: A0..7(1..4 11..14). Two commas in a row will cause a pin to be skipped when assigning the pin numbers. Three commas will cause two pins to be skipped; four commas will skip three pins; etc.
n Bus Pin Names are denoted by a name followed by the symbol [...].
Bus pins need not have internal pin names defined and need not have pin numbers.
u Select the Auto Create Symbol command under the Options menu.
The current settings for line width, fill patterns, and color, and for text font, size, and style, are used in generating the symbol. The only exception to this is the part- and symbol-type name that is placed in the center of the symbol. This is rendered three points larger than the current default text setting and in bold. All text settings can be modified after the symbol is generated, if desired.
152
Selecting the Autocreate command displays the box shown above. The Pin Name boxes will contain the information entered the last time the symbol editor was invoked for this part. These can be modified as desired. The new settings will be merged with the Pin Name List when the Generate button is pressed.
Entering Pin Names
The four Pin Name boxes allow you to specify the names of pins to appear on the left, right, top, and bottom of the device symbol. The syntax described in the previous section, Syntax for Pin Names, is also used to define the pin names and numberswith the following extensions:
The Part Name box allows you to specify the text that will appear centered at the top of the symbol. This also becomes the new name for the part.
153
The Generate Symbol button causes the current contents of the active drawing window to be erased and replaced by the generated symbol. The Pin Name List will be merged with the new pins described in the dialog. This symbol consists of standard graphic objects, so it can be edited using any of the drawing tools provided. An example of a device produced by the Autocreate Symbol command:
The Extract Pin List button updates the Pin Name boxes with the names extracted from the Pin Name List. Pins which are inputs and busses are placed on the left, outputs are placed on the right.
The primitive type of a part determines which of 38 different internal simulation models will be used to simulate the part. To describe parts which are larger or more complex, a subcircuit should be used (see the section above, Creating a Part with Subcircuit).
154
To select the primitive part type, choose the Subcircuit / Part Type command in the Options menu. Then select the Primitive radio button. This will cause a pop-up menu to be displayed below it. The pop-up menu will show the primitive type currently selected. Clicking on the pop-up menu will display the other options available.
Creating a Gate
NOTE: This section applies only when creating a gate for use with the LogicWorks simulator. For general schematic use, use the default primitive type setting.
To make an inverter (NOT gate), place 2 pins. The order must be input, then output, ... . Then set the primitive type to NOT. This will create a part with N inverters for N inputs. To make an AND, OR, XOR, or XNOR gate, place N+1 pins. The first N pins must be inputs and the last pin an output. Then set the primitive type to the correct logical gate. This creates a single logical gate performing the logical function selected.
Creating a Breakout
NOTE: Breakouts are normally generated using the New Breakout command, described on page 38. It is possible to create custom breakouts using the symbol editor, but this is not recommended due to the possibilities for error.
A breakout is a special device that allows signals to be associated with a bus. It consists of one Bus pin, no internal pins, and N normal pins.
155
Because the device type is breakout, the normal pins will be connected to like-named signals in the bus.
156
For a Signal
A port connector for a signal must have a pin that is of the correct type to interface the signal to the parent parts pin. For example, it would be correct to connect an input pin on the port connector to an output pin on the parent part. The name of the port connector pin is not important. Only the name assigned to the port connector, once it is placed, is important; it must be the same as the parents pin name.
For a Bus
A port connector for a bus must have a bus pin that contains pins of the correct type. For example, it would be correct to connect a bus pin with three internal pins A (input), B (input), and C (output) to a parent parts bus pin that contains pins A (output), B (output), and C (input). The name of the port connector bus pin is not important, but the internal pins must have the same name. Once the port connector is placed in a circuit, its reference name is important: it must be the same as the parents pin name.
9
Menu Reference
This chapter provides a complete guide to individual menu commands in LogicWorks. In order to give you rapid access to commands, LogicWorks has two different sets of menus:
n Pull-Down Menusthese are the normal File, Edit, and other menus
that appear in the menu bar at the top of the application window.
NOTE:
The commands in the DevEditor menus are covered in Chapter 11, Device Symbol Editing.
157
158
Open
This command allows a design or text document to be opened from a disk file.
NOTE:
Device symbols are not stored in separate files and so cannot be opened using this command. For information on opening a device symbol for editing, see To Edit an Existing Part on page 135.
When you open a design file, the circuit data is read into memory in its entirety and no further access to the disk file is required. LogicWorks will let you open multiple copies of the same file and will make no attempt to restrict you from writing any of them back to the same file. If you do this, it is up to you to keep track of which windows have been updated and which file you want to save each one into.
Compatibility with Older Versions
LogicWorks4 will directly read files created by older versions. However, once they have been modified and saved using this version, they can no longer be used with the older version that created them.
159
Close
Close closes the current document (text, design, or symbol). If the document is a design, all the Schematic windows associated with the current design are closed. If any changes have been made to your design since the last Open or Save, then you will be asked if you wish to save those changes.
NOTE:
A design may be associated with multiple windows if you have been working with subcircuits. The design file is closed when the last circuit window associated with that design is closed.
Save/Save As...
Save and Save As both save the current circuit design in a circuit (.CCT) file. Save saves the circuit back into the file that it was read from. It will be disabled if no file has been opened. If you select Save As, a dialog box will be displayed requesting the name of the new file. The default name will be the current title of the circuit window (the name of the most recently opened or saved file).
Revert
This command rereads the current design from the disk file it was last saved to or read from. If any changes have been made since the last save, you will be prompted to confirm the choice before they are discarded.
Print...
Print allows you to print all or part of the current document. For design documents, if the diagram will not fit on a single page, it will be broken into as many parts as are needed, based upon the paper size specified in Print Setup. You can preview the page breaks by using the Show Printed Page Breaks option in the Design Preferences command (Schematic menu). For purposes of specifying a range to print, pages are numbered from top to bottom, then left to right. Page numbers do not appear in the printed output.
160
Print Setup
Presents the Print Setup dialog, which allows you to choose the size and orientation of printer paper you wish to use. Once chosen, this information will be stored with your design file and will affect the page outlines shown in the command and the Show Printed Page Breaks option in the Design Preferences command.
NOTE:
LogicWorks uses the printer drivers associated with Windows. Please note that some drivers may not support features used in LogicWorks, such as rotated text.
Exit
This command exits LogicWorks.
161
Redo
This command redoes the last Undone command. It will only be enabled immediately after an Undo operation. Any other editing operation will disable this item.
When you enter LogicWorks, the Clipboard may contain graphical or text information cut or copied from a document in another program. LogicWorks allows you to make use of this information in two ways:
When a Cut or Copy is done, three types of data are placed on the Clipboard:
n Text data (if text labels were selected). The text can be pasted into any
text editor or word processor.
n The LogicWorks circuit info for the selected items. This data is in a
format that only LogicWorks can understand, and is discarded when you exit the program.
162
IMPORTANT:
Circuit structural information on the Clipboard is discarded when you quit the program. Only picture and text data is retained. You cannot use the clipboard to Copy and Paste circuit data between LogicWorks sessionsyou must use disk files.
Cut and Copy work on the currently selected group of circuit objects and will be disabled if no objects are selected. When items are copied onto the Clipboard, their names are copied with them; this may result in duplicate names. If duplicate signal names are pasted back into the circuit from which they were copied, then logical connections will be made between the like-named segments.
Cut
Cut removes the currently selected objects from the circuit and transfers them to the Clipboard. It is equivalent to doing a Copy and then a Delete. Cut will be disabled if no objects are selected.
Copy
Copies the currently selected objects onto the Clipboard without removing them. This can be used to duplicate a circuit group, copy it from one file to another, or to copy a picture of the circuit group to a drawing program. See the notes on Clipboard data above. Copy will be disabled if no objects are currently selected.
Paste
The Paste command, when executed in a Schematic window, replaces the mouse pointer with a flickering image of the Clipboards contents. As noted above, this data may be a circuit group copied from within LogicWorks, or it may be text information created by another program or module. The image of the Clipboard data can be dragged around and positioned as desired. The item will be made a permanent part of your diagram when the left mouse button is pressed. LogicWorks checks for signal connections only at loose ends in the signal lines being pastedthat is, at ends of line segments that do not touch devices or other line segments. For example, if the following circuit scrap
163
was pasted, the points marked X would be checked for connection to the existing circuit.
NOTE:
Connection hit testing can be disabled by holding down the key while clicking the mouse button (this also applies to single device placing). In this case, the circuit scrap is placed, but no connections will be made to adjacent items. This allows the group to be selected again (by double-clicking on any device in the group) and moved without interactions with other objects in the circuit.
c c
Any group of objects being Pasted or Duplicated can be rotated using the same controls as you use when placing a device:
n The orientation tools in the toolbar. n The arrow keys on the keyboard.
Note that these controls are only effective while actually moving the flickering image of the object being pasted. Each Paste or Duplicate always starts in the same orientation as the source.
NOTE:
The Orientation command on the Schematic menus cannot be used during Paste or Duplicate operations, because selecting this menu command will abort the paste function.
164
Removes the currently selected objects from the circuit. Pressing the or key on the keyboard is equivalent to Delete. This command will be disabled if no devices or signals are selected.
BD
Delete Duplicate
Makes a copy of the selected circuit groupwhich can be dragged and positioned as desired. This is equivalent to selecting Copy and then Paste, except that the selected circuit scrap is not placed on the Clipboard for future use. See the notes under Paste, above, on how connections are made when a group is placed in the circuit. Note that the duplicated objects can be rotated using the orientation tools in the toolbar or the arrow keys on the keyboard.
Point
This selects the normal operating mode for LogicWorks, indicated by the arrow cursor. Selecting this command is equivalent to clicking on the icon in the toolbar. The following functions are accessible in Point mode:
n By clicking on an object, you can select the object for operations using
the Edit menu commands. To select an I/O device, or to select multiple key on the keyboard while you click. objects, hold the
n By clicking and dragging near the end of a device pin or signal line,
you can extend that line in any direction.
n By clicking and dragging a signal line anywhere except near the end,
you can change its perpendicular position.
n By clicking and dragging any other object, you can reposition the
object.
165
Shortcuts to Point
Since you will frequently want to return to Point mode, three shortcuts are provided for this purpose:
n Free text (i.e., text not associated with a specific device or signal) can
be placed by clicking anywhere on the diagram other than on a device or signal. This text can contain hard returns or any other characters.
166
Zap
The Zap command changes the current cursor to Zap mode, and is equivalent to clicking on the icon in the toolbar. When the tip of this cursor is clicked on any object in a circuit, that object is removed. Using the Zap cursor is more selective than using the Delete command on certain selected objects:
n Signal or bus linesThe Zap tool removes only the line segment under
the cursor.
n Pin numbersThe Zap tool removes the pin number. n Attribute itemsThe Zap tool removes the visible attribute text from
the diagram, but leaves the value associated with the object.
Draw Signal
The Draw Signal command is equivalent to clicking on the icon in the toolbar and places the program in signal drawing mode. In this mode you can draw or extend signal lines as follows:
cM g
167
drawing. To terminate signal drawing mode, double-click the left mouse button, then press the spacebar or click anywhere in the menu bar.
Draw Bus
The Draw Bus command is equivalent to clicking on the icon in the toolbar. Bus-drawing mode behaves exactly like signal-drawing mode except that a bus line is created instead of a signal line.
Select All
This command selects and highlights all elements in the current Schematic window. You can then apply Clipboard (and other) commands to the entire page.
168
Normal Size
When a circuit window is topmost, Normal Size sets the screen scale to 100%.
Reduce To Fit
Reduce to Fit sets the scale factor, and centers the display, so that the entire diagram fits in the window.
Zoom In
When a circuit window is topmost, Zoom In increases the scale factor, causing the diagram to appear larger on the screen.
Zoom Out
Zoom Out decreases the scale factor, causing the diagram to appear smaller on the screen.
Magnify
This command provides an alternative method of zooming into and out of a selected area of the diagram. When you select Magnify, the cursor changes shape. into the
Zooming In
Two methods of zooming in are provided: 1) Clicking and releasing the mouse button on a point on the diagram will zoom in to that point by one magnification step. 2) Clicking and dragging the mouse down and to the right zooms in on the selected area. The point at which you press the mouse button will become the top left corner of the new viewing area. The point at which you release the button will become approximately the lower right corner of the dis-
169
played area. The circuit position and scaling will be adjusted to display the indicated area.
Zooming Out
Clicking and dragging the mouse up and to the left zooms out to view more of the schematic in the window. The degree of change in the scale factor is determined by how far the mouse is moved. Moving a small distance zooms out by one step (equivalent to using the Reduce command). Moving most of the way across the window is equivalent to doing a Reduce To Fit.
Go To Selection
This command causes the circuit position and scaling to be adjusted so that the currently selected items are centered and just fit in the Schematic window. The scaling will be set to a maximum of 100%.
Orientation...
The Orientation... command sets the orientation (up, down, left, right, mirrored) that will be used next time a device is created. When this command is selected, the following dialog box is displayed:
170
n Clicking directly on the orientation tools in the toolbar, or n Using the arrow keys on the keyboard. u See more information about symbol rotation in Chapter 5, Schematic
Editing.
Get Info...
The Get Info command is a general method of viewing and setting parameters and options that are associated with the various types of objects in LogicWorks.
Showing Design and Circuit Info
If no objects are selected in the circuit (i.e., if you have clicked in an empty portion of the diagram) then Get Info will display the following general design information dialog:
171
The following items of information are shown. Counts apply only to the topmost circuit level in the design, regardless of any subcircuit windows that may be open.
Devices This is a count of devices in the selected scope. Pseudodevices, such as ground symbols and breakouts, are not included. The count includes devices that have subcircuits. This is a count of signal nets in the circuit, including unconnected pins. This is a count of device pins, not including pseudo-devices. This is a count of editing changes made since the design was created. This is intended to allow comparison of different versions of the same file. This is a count of the main memory occupied by the selected part in the design, in Kbytes. This button displays the standard Attributes dialog for the current design.
If a single object is selected, Get Info displays a dialog box specific to the object type. To leave any Get Info dialog, click on its OK button or press or key on the keyboard. the
We
172
When a normal device symbol is selected on the schematic (i.e., not a pseudo-device), then the following information box is displayed:
The following table lists the information and options available in this box.
Type This is the library type name of the device symbol, i.e., the name as it appears in the Parts Palette. This is not the same as the Part attribute field, which is normally used as the part name in netlists. This is the primitive type of the symbol. For standard types, the name is shown; otherwise, the name Reserved is shown. The ordinal number of the primitive type value is shown in parentheses. If the selected device has a subcircuit, its memory size is shown in Kilobytes. This switch allows you to disable the display of pin numbers for the entire device. This is intended for discrete components or others where pin numbers are not normally shown on the diagram. This switch allows you to prevent the subcircuit (if any) of this device from being opened for editing. This button displays the Pin Information dialog (described below) for the first pin on the device. Buttons on the Pin Information dialog allow you to sequence through the other device pins.
Primitive Type
173
Attributes ...
This button displays the standard Attributes dialog for the device.
NOTE:
Clicking Cancel in the Device Info dialog does not cancel any changes that you may have made in other windows that you displayed using this dialogs option buttons.
Pseudo-Devices
If a pseudo-device is selected in the schematic, the Get Info command will be ignored.
Signal Info Box
Selecting the Get Info command with a signal selected causes the following box to be displayed:
The following table describes the information and options presented in this box:
Omit from report Attributes... This checkbox controls whether the selected signal is included in any netlist output. This button displays the general Attributes dialog for the selected signal.
If a bus line is selected in the schematic, the Get Info command displays the following box:
174
The following table describes the information and options presented in this box:
Bus Signals This is a list of the signals contained in the bus. This list is determined by the breakouts and bus pins attached to the bus. You cannot directly change this list. See Chapter 6, Advanced Schematic Editing, for more information. This button displays the general Attributes dialog for the selected bus. NOTE: Bus attributes are not included in any netlist output.
Attributes
If the item selected is a device pin (non-bus and non-pseudo-device), then the following box is displayed:
175
If a pseudo-device pin is selected, the Get Info command displays the signal info box for the attached signal.
Text Info Box
If a text object is selected, the Get Info command displays the following box:
176
u See more information on text objects in Text Objects on page 30. Picture Info Box
If a pictue object is selected, the following information box is displayed:
177
Make Background
Selecting this option makes the picture into a background object. This means that it will not normally be selected by clicking on it. Background pictures can be selected by holding the and keys..
c M
New Breakout...
The New Breakout command is used to generate a standard bus breakout symbol for a group of signals. When this command is selected, the following box will be displayed:
The breakout is created by entering a list of signals and the desired pin spacing, and clicking the OK button. A flickering image of the breakout will now follow your mouse movements and can be placed and connected just like any other type of device.
Type the list of desired breakout pins into this box. Rules for creating signal lists are as follows:
178
or D0..D7
is equivalent to
D0 D1 D2 D3 D4 D5 D6 D7 D15..0
is equivalent to
D15 D14 D13 D12 D11 D10 D9 D8 E D0 D15..D00
is equivalent to
D15 D14 D13 D12 D11 D10 D09 D08 D07 Es D00
Note that the .. format implies that bussed signal names cannot contain periods.
n The signals specified will always appear in the order given in this list
from top to bottom in standard orientation. We recommend always specifying numbered signals from lowest-numbered to highest, as in the first example above, since this matches the standard library symbols.
n The same signal name can appear multiple times in the list, if desired.
In this case, these pins will be connected together through the bus.
179
Pin Spacing
The number in the Pin spacing box will be the spacing between signal pins on the breakout symbol, in grid units. The default value is 4 to match the standard LogicWorks libraries, but any number from 1 to 100 can be entered.
Push Into
This command opens the internal circuit of the given device in a separate window. This menu item will be disabled (gray) under any of the following conditions:
n The device has its restrict open switch set in the Device Info box.
Simply double-clicking on a device is a shortcut for the Push Into command.
NOTE:
If you have used the same device type in multiple places in the design, the Push Into command creates a temporary type which is distinct from all other usages. When the subcircuit is closed, the other devices of the same type will be updated.
NOTE:
Pop Up
This command closes the current subcircuit and displays the circuit containing the parent device. If any changes have been made to the internal circuit that would affect other devices of the same type, the other devices will be updated with the new information.
180
Attach Subcircuit...
This command allows you to select an open design to attach as a subcircuit to the selected device. When this command is selected, the following dialog will appear:
NOTE:
Clicking the Attach button here will cause the following actions to be taken: 1) If the current design (i.e., the one containing the parent device) contains other devices of the same type as the selected device, then a separate, temporary type will be created for the selected device, as is done with the Push Into command, above. 2) The logical linkage between the selected device and the new internal circuit will be completed. If any mismatch is detected between the port connectors defined in the internal circuit and the pins on the parent device, you will be warned. 3) The title of the internal circuit will be updated to reflect its position in the master design. 4) The newly-attached internal circuits window will be brought to the front. It is now considered an internal circuit that has been opened for edit-
181
ing and has been modified. When you close the internal circuit, you will be asked if you wish to update other devices of the same type.
Detach Subcircuit
This command turns the currently displayed subcircuit into a separate design and redefines the parent device as having no internal circuit.
IMPORTANT:
1) This operation permanently removes the subcircuit from the selected device and from all other devices of the same typein the selected design. 2) The Detach operation cannot be Undone!
In particular, Detach Subcircuit performs the following operations on the subcircuit displayed in the topmost window:
u The circuit is unlinked from its parent device, making it into a separate
design.
u The title of the subcircuit is set to a default Designxxx name. u The internal circuits of all other devices of the same type in the design
are removed.
Discard Subcircuit
This command removes the subcircuit from the selected device and redefines it (and all others of the same type) as having no internal circuit.
IMPORTANT:
1) This operation permanently removes the subcircuit from the selected device and from all other devices of the same typein the selected design. 2) The Discard operation cannot be Undone!
182
Design Preferences...
The Design Preferences command is used to set a number of options which have global effect throughout a design. Selecting this command displays the following dialog:
Show Crosshairs
When this option is enabled, moving crosshairs will follow all cursor movements to assist with alignment of circuit objects.
Show Printed Page Breaks
When this option is enabled, the outlines of the actual printed pages will be drawn in the circuit window. This will allow you to determine how the printer page setup will break up the circuit page for printing.
Show Device Frames
When this option is enabled, a gray outline box will be drawn around each device symbol on the schematic. This is intended to assist in locating where pins join the symbol, etc. These outlines are not shown in printed or graphics-file output.
Show Background Grid
When this option is enabled, the background grid lines will be drawn in the schematic window every 10 drawing grid units.
183
When this option is enabled, the background grid lines will be drawn in printed output.
Show Default Border
When this option is enabled, a border will be displayed around the boundary of the page and will adjust automatically based on printer setup.
Attribute Text Options
Clicking on the Attr Text... button will display the following font specification dialog box:
This box allows you to select the text font, size, and style used for all attributes displayed in the design, including:
n device and signal names n bus breakout and bus pin labels, and n all other attributes displayed on the diagram
...but not including:
184
The Pin Text... button displays the same text specification box shown above for Attribute Text. Any changes made to this text style will be applied to all pin numbers displayed throughout the design. The text changes are applied when the OK button in the Design Preferences box is clicked.
Rotate Pin Numbers
If this item is checked, pin numbers displayed on all north- and southfacing pins will be rotated 90 o to run along the length of the pin. If this item is unchecked, all pin numbers will be displayed horizontally adjacent to the pin.
Center in Page
This command on the Schematic menu moves all items on the current page so that the circuit objects (taken as a group) are centered in the page. This is intended to assist with situations where a diagram has become lopsided due to modifications.
This command stops the simulation immediately. No simulation processing is done when the simulator is in this state.
185
Run
The intermediate speed settings between Stop and Run insert various amounts of delay between executing successive simulation time steps. These can be used to slow the simulation progress for convenient observation.
Single Step
This command simulates one time step. To perform the single step, the simulator looks at the time value associated with the next signal change event in the queue, simulates the effect of that event and all following events scheduled at the same time, then returns to the stopped state. The actual time value of a single step depends on the nature of the circuit.
Simulation Params...
The Simulation Params command is a general method of setting device and pin delays and options. If no devices or pins are selected in the circuit, then this command will be disabled. The type of dialog that is displayed will depend upon the types of devices selected, as described in the following table:
Selection A single Clock device A single One Shot device Params Box Clock Params Box One Shot Params Box Notes Only one clock device can be set at a time. Only one One Shot device can be set at a time. Any selected Clock, One Shot, subcircuit, or other non-delay devices will be ignored for device delay calculations. Pin delays can be set on these devices.
Any other combination General Delay Box of one or more devices or pins
186
NOTE:
1) You cannot set the device delay of a subcircuit device since its general delay characteristics are determined by its internal circuit. If any subcircuit devices are selected, they will be ignored for device delay purposes. You can set the pin delay on subcircuit devices to modify the path delay through a particular pin. Delays on the devices or pins inside a subcircuit device are not affected by any settings on the parent device using this command. 2) The Parameters command relies on numeric information in a specific format being present in the Delay.Dev or Delay.Pin attribute fields. Any invalid information in these fields will be ignored and default values used instead.
For any collection of devices and pins with delay characteristics, the following box is displayed:
r
Pins
# of devices / pins
187
Shortest / longest delay This shows the shortest and longest delays found in any of the selected devices or pins. (Note that each device or pin has only a single integer delay value associated with it.) Delay text box If all selected devices or pins have the same delay value, it is shown in this box. If a variety of values exist among the selected items, this box will be empty. Typing a new value (between 0 and 32,767) in this box will set all items to the given value. Clicking this button will add 1 to the delays in all selected items, to a maximum value of 32,767. Clicking this button will subtract 1 from the delays in all selected items, to a minimum value of zero. Clicking this button will set the delay in all selected items to 1. Clicking this button will set the delay in all selected items to zero.
+ 1 0
When a single clock device is selected, the following parameters box is displayed:
188
High
This text box allows you to edit the high time setting of the selected clock device. Allowable settings are in the range 1 to 32,767.
When a single One Shot device is selected, the following parameters box is displayed:
Width
189
Add to Timing
This command adds all selected signals in the current circuit to the Timing display. If any selected items are unnamed or are already displayed, they will be ignored. New items are added at the bottom of the Timing display and will be selected after the add.
Add Automatically
When this item is checked, any signals added or edited on the schematic will automatically be added to the Timing window.
Add as Group
This command is similar to the Add to Timing command, except that the selected items are all added as a single group. Where possible, items will be sorted in alphanumeric order, with the lowest-numbered item in the least significant bit position.
Stick Signals
This command allows you to set the stuck status of the selected signals. It displays the following box:
190
Number of signals selected Number stuck high Number stuck low Stick Low Stick High Unstick
u See more information on stuck signal values in Chapter 7, Simulation. Import Timing (Text)...
This command clears the Timing window, then opens the selected Timing text data file and pastes the data onto the diagram. This is equivalent to selecting the Clear Simulation command, then using the Paste command to place the file data at time zero. See the rules for the Paste command, below.
191
NOTE:
This command does not display or remove any traces in the Timing window. It only reads signal event data and associates it with matching traces. If any traces are named in the file that are not currently displayed, you will be warned and that set of data will be skipped.
u See Appendix D, Timing Text Data Format, for a description of the file
format.
Print Timing...
This command prints the contents of the Timing window using the current print setup. The current display will be divided into as many pages as required.
Print Setup...
This command determines the page setup for the Print Timing command. This can be different than the setup for the schematic diagram.
192
LogicWorks Online
A number of resources are available on the World Wide Web for LogicWorks users, including technical notes, FAQs, free downloads, add-on products, and so forth. These items will direct your Web browser directly to the corresponding Web page. You must, of course, have a connection to the Internet active for these menu items to work.
Device Info...
This command displays the general Device Information box. This is equivalent to selecting the device and using the Get Info command. See more information under the Get Info command above.
Attributes...
This displays the standard Attributes dialog, allowing you to enter or edit attribute data for the selected device.
Name...
This command displays a simple edit box allowing you to enter or edit the device name. This provides a simpler method of editing only the name, as an alternative to using the Attributes command above.
193
Cut
This is equivalent to selecting the Cut command in the Edit menu while this device is selected. The device is copied to the Clipboard and removed from the circuit.
Copy
This is equivalent to selecting the Copy command in the Edit menu while this device is selected. The device is copied to the Clipboard.
Duplicate
This is equivalent to selecting the Duplicate command in the Edit menu while this device is selected. The given device is duplicated and the program enters Paste mode immediately. The Clipboard is not affected.
Delete
This is equivalent to selecting the Delete command in the Edit menu. The device is deleted from the circuit.
194
Signal Info...
This command displays the general signal information box. This is equivalent to selecting the signal and selecting the Get Info command in the Schematic menu. See more information on this command above.
Attributes...
This command displays the general Attributes dialog for the selected signal.
NOTE:
For name changes, it is best to use the Name command described below, since it provides more options for applying the name change.
Name...
This command displays a name edit box for the selected signal. The following box is displayed, offering you two options for how to apply the changed name:
195
This option allows you to choose whether the name change applies only to the selected signal segment (thereby breaking its connection with other like-named signals), or to all interconnected signal segments.
Visible
This option allows you to choose whether the entered name should be displayed on the schematic or not. If the name was already visible and you uncheck this box, it will be removed from the schematic. In this case, the name will still be associated with the signal as an invisible attribute. If the name was not previously visible and you check this box, it will be displayed somewhere adjacent to one of the signal line segments.
Cut
This is equivalent to selecting the Cut command in the Edit menu while this signal is selected. The signal is copied to the Clipboard and removed from the circuit.
Copy
This is equivalent to selecting the Copy command in the Edit menu while this signal is selected. The signal is copied to the Clipboard.
Duplicate
This is equivalent to selecting the Duplicate command in the Edit menu while this signal is selected. The given signal is duplicated and the program enters Paste mode immediately. The Clipboard is not affected.
Delete
This is equivalent to selecting the Delete command in the Edit menu. The signal is deleted from the circuit.
196
NOTE:
Since an unconnected device pin is both a pin and a signal, you determine whether you get the pin or signal pop-up menu as follows:
n Clicking on the pin in the last 1/4 of the pin length away from the
device will display the signal menu.
n Clicking on the pin close to the device symbol will display the pin
menu.
Selecting the Signal Selecting the Pin
Pin Info...
This command displays a standard Pin Info box showing the name, function, and internal circuit association of the pin, as well as allowing you to edit the pins attributes. The Prev Pin and Next Pin buttons in this dialog can be used to view and edit other pins on the same device without having to return to the schematic and select them individually. This command is equivalent to selecting the pin and choosing the Get Info command in the Schematic menu.
197
Attributes...
This command displays the standard Attributes dialog for fields associated with the selected pin. The Prev Pin and Next Pin buttons on this box can be used to view and edit other pins on the same device without having to return to the schematic and select them individually.
The left-hand list shows the names of the pins contained in the selected bus pin. The right-hand list shows all the signals in the attached bus. For each pin in the pin list, the signal on the same row in the signal list is the one attached to it. Signals in the signal list beyond the end of the pin list are not connected in this bus pin.
Changing Signal Connections
Two buttons are provided to change the association between pins and signals. The Join button causes the selected pin in the pin list to be joined to the selected signal in the signal list. If the selected signal is already attached to another pin in the list, then the signals will be swapped (i.e., a
198
signal can only connect to one pin and vice versa). The signal list will be updated to show the new relationship. The Join Sequential button provides a quick method of joining multiple numbered pins and signals. The selected pin is joined to the selected signal, as with Join, above. If the signal and pin names both have a numeric part, both numbers are incremented and the corresponding signal and pin are joined. This process is repeated until either the signal or pin name is not found in the list. For example, given the lists appearing in the above picture, if pin B2 and signal B10 are selected, then Join Sequential would join B2B10 and B3B11. Since there are no more numbered pins, the process would stop. Note that although the signal and pin names are the same in this example, this is not a requirement.
Add Bus Sigs
The Add Bus Sigs button allows you to add signals to the signal list so that they can then be joined to device pins. Clicking this button displays the following box:
A list of signals can be typed into this box using the same format as the New Breakout command. Following are examples of allowable formats:
D0..7 D0..15 AS* UDS* LDS* CLK FC0..3 MEMOP BRQ0..2
199
The order of entry will affect the order in which the signals appear in the list, but is otherwise not significant. For a complete description of the rules of this format, see the New Breakout command elsewhere in this chapter.
NOTE:
These signals are only added temporarily. When you close the Bus Pin Info box, all signals that are not connected to any pin are removed from the bus.
The Pin Info button brings up the standard Pin Info box for the pin selected in the pin list. See the Get Info command for more information.
Signal Info Button
The Signal Info button brings up the standard signal info box for the signal selected in the signal list. See the Get Info command for more information.
Show bus pin annotation
If this option is enabled, a list of the connections made in the bus pin will be displayed adjacent to the pin. The format of the signal list is the format used by the Add Bus Sigs option, above.
200
Circuit Info...
This command is equivalent to the Get Info command in the Schematic menu while no items are selected in the current circuit. It displays the circuit info box.
Edit...
This command opens a text box allowing you to edit the contents of the selected field. All locations where this field is displayed on the schematic will be updated when the OK button is clicked.
Justification...
This command allows you to change the vertical and horizontal justification used in the positioning the attribute text on the diagram. When this command is selected, the following box will be displayed:
201
The selected point on the text is considered to be the reference point for the given attribute block. This point will be kept fixed if any field value or text style changes cause the box to be resized.
Hide
This command causes the visible attribute text that was selected to be removed from the schematic without removing the value from the field. That is, if you click on the associated object and open the Attributes dialog, the same value will still be present. If the field was displayed in more than one place, only the selected one will be removed.
Delete
This command causes the value for this field to be set to null and all visible occurrences of it on the schematic to be removed.
Duplicate
This command creates another visible occurrence of the same attribute field. This text can then be dragged or rotated to any desired position on the schematic.
202
Edit Part
The Edit Part command opens the selected part in the device symbol editor.
NOTE:
If you edit any of the parts supplied with LogicWorks, you should save the modified version to your own library. Modifying the standard libraries provided with the package is not recommended since they may be overwritten when you install an updated version, resulting in a loss of your work!
New Lib...
The New Lib... command allows you to create a new, empty symbol library file on your disk. That file will automatically be opened and will appear in the Parts Palette.
Open Lib...
The Open Lib... command allows you to select an existing symbol library file to open. The name of the library will appear in the library selection drop-down list in the Parts Palette.
NOTE: Libraries can be opened automatically when the program starts, by placing them in the default library directory or by using the LIBRARY and LIBRARYFOLDER keywords in the initialization file.
203
Close Lib...
Close Lib... allows you to close an open library and remove it from the Parts Palette. Any information required for parts used in any open designs will be automatically retained in memory. When you select the Close... command, a box will appear listing the open libraries. Pick one by clicking on it and then press the Close button, or simply double-click on the name of the library.
Lib Maintenance...
This command invokes a variety of library maintenance functions. The following box will be displayed:
Dest Lib
The Dest Lib is used only as the destination of the Copy command. No items can be selected in this list.
204
This button causes the selected parts in the Source Lib list to be copied to the Dest Lib. This button causes the selected parts in the Source Lib to be deleted. This cannot be undone! This causes the selected parts in the Source Lib to be duplicatedi.e., a copy of the selected items is made in the Source Lib. The Dest Lib is not affected. The Promote and Demote buttons cause the selected items in the Source Lib to be moved up or down the list, respectively. This button displays a box allowing a new name to be entered for the selected part. These two buttons sort the entire list in either alphabetical or inverse alphabetical order, respectively. This button causes the Source Lib to be compacted to the destination lib (which must be empty)i.e., any free space due to deletions is removed. See more information below. The Done button closes the Library Maintenance dialog box.
Promote / Demote
Done
Library Compaction
When parts are deleted from a library, the free space in the file is not automatically recovered. In most cases, this is not a significant overhead. However, if a large percentage of the parts in a library have been deleted, then you may wish to compact the file. To do this:
u Create a new, empty library which will become the target for the
Compact operation.
u Select the Maint command. u Select the library to be compacted as the Source Lib. u Select the new, empty library as the Dest Lib. u Click on the Compact button.
IMPORTANT:
Verify that the new destination library is correct before discarding the old copy.
205
Group / Ungroup
The Group command causes DevEditor to treat multiple selected graphic objectsexcept pinsas a single object. The Ungroup command disaggregates a grouped object.
Align
The Align submenu allows you to pick how the selected objects will be aligned. For example, Align Left causes all of the selected objects to be moved such that their left edges are aligned with the leftmost selected objects left edge.
Move to Grid
This command allows you to snap graphic objects to the grid.
206
Snap On
Grid Pixels
Snap Pixels
Pin Grid
207
Add Pins
This command brings up the Add Pins palette allowing you to add multiple pins to the DevEditors pin list.
u See Chapter 11, Device Symbol Editing, for more information. Autocreate Symbol
This command brings up the automatic symbol creation dialog, allowing you to automatically generate a rectangular device symbol.
u See Chapter 11, Device Symbol Editing, for more information. Subcircuit / Part Type
The dialog displayed when this command is selected allows you to specify the type of LogicWorks part being created. The LogicWorks types are: No Subcircuit, Subcircuit, Symbol Only, and Primitive.
u See Chapter 11, Device Symbol Editing, for more information. Part Attributes
The Part Attributes... command displays the standard Attributes dialog for the part or for the selected pin, respectively. This allows you to set the default attribute values that will be used when the part is used in a schematic.
208
Text Font...
This menu command displays a dialog box allowing the font, style, and size for the selected text objects to be set. If no objects are selected, then the selected text property becomes the new default.
Text Rotation
These menu items set the rotation characteristics for the selected text objects. If no objects are selected, then the text property you set becomes the new default.
Undo
This command undoes the last editing operation in the Timing window. Unlike the Schematic tool, Timing supports only a single Undo and no Redo operation.
Copy
The Copy command copies the selected timing data to the Clipboard in picture and text format. See the notes under the Cut command, above. Note that Copy can be used on a selection to the left of (older than) the current simulation time since it does not modify the selected data.
209
Paste
The Paste command pastes the Timing text data from the Clipboard onto the selected area of the Timing window. The following rules are used for matching the data on the Clipboard with the selected interval in the Timing window:
n The Paste operation affects only signals named in the Clipboard data,
regardless of the selection in the Timing window.
n The Paste operation will not locate signals in the schematic that are not
currently displayed in the Timing window. No new traces will be added by this operation.
Select All
This command selects all traces and the entire time interval of the Timing display.
Find...
This command displays a dialog box allowing you to search for a particular signal in the Timing window.
210
Display On
This command enables updating of the Timing display.
Display Off
This command disables updating of the Timing display. Events are saved but are not drawn into the Timing window. This allows simulation to proceed at a substantially faster rate.
Normal Size
This command sets the horizontal display resolution to its initial defaults.
Enlarge
This command increases the horizontal display resolution in the Timing window.
Reduce
This command decreases the horizontal display resolution in the Timing window.
Timing Options...
This command displays the following dialog:
211
These options allow you to determine how much signal-event data is retained in memory when a simulation is run. Each time a signal level change occurs LogicWorks creates a record in memory containing a reference to the signal, time, new value, and source of the change. In a large simulation these records can consume enormous amounts of memory. This data can be retained for the following purposes:
n For use in timing window editing operations, such as taking the output
from one circuit and using it as stimulus for another. Data can be retained only for signals displayed in the Timing window. Signal-event data for all other signals is discarded immediately after it is no longer required for simulation. The option Retain displayed range only is the normal default and results in data being discarded immediately after the corresponding point on the Timing display scrolls off the left side. This results in minimal memory usage. The setting is equivalent to entering 0 in the Retain time box. The option Retain for x time units allows you to keep the signal-event data for the specified amount of time after it scrolls off the left side of the screen. If this results in a memory shortage occurring, then the simulation will stop and a message will be displayed.
212
Go To Schematic
This command selects the signal or groups in the Schematic module corresponding to the first highlighted signal or groups in the Timing window, then brings the required Schematic window forward.
Remove
This command removes the selected signals or groups from the timing window.
Group
This command combines all the selected traces into a single display group. If any of the selected traces were already grouped, they are in effect Ungrouped first and then recombined with other selected items into a single new group.
Ungroup
This command breaks all signals in selected groups into individual traces.
SYMBOL
No restrictions
213
214
The pin requirements listed in the following table must be followed when creating pseudo-device symbols. These rules are not checked by the DevEditor.
Pin Requirements Pin 1 is Bus Pin, followed by N Normal Pins, set to Input Exactly 1 normal pin, normally set to Input Signalsexactly 1 pin Bussesexactly 1 bus pin with any number of internal pins
Used for power and ground connections. Makes a connection between the signal to which it is connected and a likenamed pin on the parent device.
215
NOTE:
The following table lists the pin functions and orders for all simulation primitive device types. In some cases, a number of pins can be optionally omitted, so the table gives rules rather than enumerating all possible combinations.
IMPORTANT:
In order for a primitive device to simulate correctly: 1) The device pin order must follow that given in this table. So when creating the symbol using the DevEditor tool, the pins displayed in the pin list must be in the order described here. 2) The pin type (input/output/bidirectional) must be set appropriately for each pin.
Pin Names and Types INin OUTout IN0..INN-1in OUTout X1 X2bidir ENin IN0..INN-1in OUT0..OUTN-1 out ENin X1 X2bidir
AND, NAND, N inputs: OR, NOR, XOR, 1 XNOR X-Gate Buffer Exactly 2 ports and 1 enable N data inputs N data outputs 1
Resistor
Exactly 2 pins
216
Multiplexer
L select inputs M output bits 1 N inputs/ output 2L-1 < N L ( i.e., the number of inputs per output bit can be less than the number of select input combinations.)
2) IN0,0..IN0,M-1 * INn,m is the input IN ..IN 1,0 1,M-1 .. routed to output m IN ..IN 0,0 N-1,M-1 when select value is S0..SL-1 EN n. OUT0..OUTM-1
An enable input Option 2 only if can exist only if N == 2L, otherwise N == 2L the extra input is assumed to be a data input. S0..SL-1in 1) OUT0..OUTM-1 ENin S0..SL-1 OUT0..OUTM-1 out 2) OUT0..OUTM-1 S0..SL-1 EN
Decoder
L select inputs M output bits 1 AND 2L-1 < M L (i.e., the number of output bits can be less than the number of select input combinations.)
Adder, Subtractor
N output bits N A operand inputs required N B operand inputs optional 1 Must have at least D, EN, and CLK inputs and Q output
A0..AN-1in B0..BN-1in CINin SUM0..SUMN-1 out COUTout Sset in DD in Cclock in Rreset in Qout NQinverted out
1) A0..AN-1 B0..BN-1 SUM0..SUMN-1 CIN COUT * * B0..BN-1 CIN & COUT can be omitted in any combination 1) S D C E R Q NQ 2) S D C E R Q 3) D C E R Q NQ 4) D C E R Q 5) D C E Q NQ 6) D C E Q
D Flip-Flop, D Latch
217
D Flip-Flop with Must have at least Sset in Enable D and CLK inputs DD in and Q output Cclock in Eenable in Rreset in Qout NQinverted out JK Flip-Flop Must have at least Sset in CLK input and Q JJ in output KK in Cclock in Rreset in Qout NQinverted out
1) S D C R Q NQ 2) S D C R Q 3) D C R Q NQ 4) D C R Q 5) D C Q NQ 6) D C Q 1) S J C K R Q NQ 2) S T* C R Q NQ 3) T* C R Q NQ 4) C R Q NQ 5) C Q NQ
NQ can always be omitted * T = J & K tied together 1) IN0..INN-1 OUT0..OUTN-1 CLK CLR 2) IN0..INN-1 OUT0..OUTN-1 CLK 1) IN0..INN-1 OUT0..OUTN-1 CLK LD CLR UP EN COUT 2) IN0..INN-1 OUT0..OUTN-1 CLK LD CLR UP COUT 3) IN0..INN-1 OUT0..OUTN-1 CLK LD CLR COUT 4) IN0..INN-1 OUT0..OUTN-1 CLK LD COUT 5) IN0..INN-1 OUT0..OUTN-1 CLK COUT Note: IN0..INN-1 &
Register
IN0..INN-1in CLKin CLRin OUT0..OUTN-1 out IN0..INN-1in CLKin LDin CLRin UPin ENin OUT0..OUTN-1 out COUTout
Counter
218
Shift Register
IN0..INN-1in CLKin LDin CINin OUT0..OUTN-1 out CLKin CLRin Qout NQout
1) IN0..INN-1 OUT0..OUTN-1 CLK LD CIN 2) OUT0..OUTN-1 CLK CIN 1) CLK CLR Q NQ 2) CLK CLR Q
One Shot
Clock Osc Binary Switch SPST Switch SPDT Switch Probe Hex Keyboard
Exactly one output pin Exactly one pin Exactly 2 pins Exactly 3 pins Exactly 1 pin 4 or 5 pins
CLKbidir SWbidir X1 X2bidir X1 X2 COM bidir PR X0..X3bidir STROBEout X0..X3in Din Qout
Every device pin has a characteristic known as its pin type. The pin type is set when the part entry in the library is created and cannot be changed for individual device pins on the schematic.
n The pin type of each pin is used by the simulator to select what type of
output values are generated by a pin. For example, an open collector output will not generate a HIGH drive level.
n Pin type information is required in many netlist file formats for FPGA
layout and digital simulation.
n Other analysis tools may, in the future, use this information for timing
and loading analysis.
219
220
IN
Inputthis is the default for pins created HIGHZ using the DevEditor tool. This setting is used for all pins on discretes except those with some digital function. No output value can be placed on an input pin. Outputalways enabled. DONT01
OUT 3STATE
None. None.
Outputcan be disabled (i.e. high-Z). DONT01 Note: The three-state capability only exists for specific primitive types that have a three-state enable pin. For other types, this will behave like OUT. Bidirectional. DONT01
BIDIR OC BUS
Open collector outputpulls down but not DONT0Z up. Bus pinThis does not represent a physical signal but is a graphical representation of a group of internal pins, each having its own type. Bus pins cannot have values and are not supported on primitive device types. Outputalways driving low. None
LOW
LOW
HIGH
HIGH
221
Pin Type
Description
Initial Value
Output Value Mapping No output drive allowed. Same as OUT. No output drive allowed. Same as OUT. No output drive allowed. LOW maps to HIGHZ. No output drive allowed.
LTCHIN
Input to a transparent latchthis is used for HIGHZ calculating cumulative setup and hold times. DONT01
LTCHOUT Output from a transparent latchthis is used for calculating cumulative setup and hold times. CLKIN Input to an edge-triggered latchthis is used for calculating cumulative setup and hold times.
HIGHZ
CLKOUT
Output from an edge-triggered latchthis DONT01 is used for calculating cumulative setup and hold times. Clock inputthis is used for calculating cumulative setup and hold times. Open emitter outputi.e., can pull up but not down. A no-connect pin. HIGHZ
Clock
OE NC
DONT1Z HIGHZ
Bidirectional Pins
Using bidirectional pins should be avoided unless specifically required by circuit logic. On primitive types, any value change on a signal attached to a bidirectional pin will cause the device model to be called to reevaluate the
222
device. On subcircuit devices, the simulator must make several passes through all circuit levels that may affect the value of the signal or may be affected by it. Setting a pin on a subcircuit device to be an input or output greatly reduces this overhead.
Output Pins
If a device pin will be used exclusively to drive the attached signal, and the device cannot be affected by changes in value on the pin, then it should be an output type. Changes in the value of a signal attached to an output pin do not cause the device model to be called for reevaluation. This is particularly significant for subcircuit devices.
Input Pins
Pins with an input type setting can never place a drive value on the attached signal. On subcircuit devices, this provides an important hint to the simulator that internal value changes on the attached signal will not affect any other circuit level.
[System] Section
Modules Directory
ToolFolder = c:\dw\medatools
This statement defines where to look for the external code modules. If this value is not specified, then modules are loaded from the Tools subdirectory within the LogicWorks directory.
223
224
This statement specifies the default font which the LogicWorks system will use when no other font has been specified. Certain Tool modules may, by default, display text using this font. If no font is specified, an attempt is made to use a Courier typeface. If no font size is specified then 10 point is used. Font_name is the name of a TrueType font; only TrueType fonts are supported. Font_size is the point size to use. There are two optional style keywords which may be applied, BOLD and ITALIC. For example:
Font = Courier New 10 Bold
This allows the user to specify whether lines are to be scaled when printed. None is the default. It indicates that no scaling will occur. With this setting, a lines width is printed with the same number of pixels as it is displayed on the screen. When printing to a high-resolution printer (i.e., >= 300 dots per inch), this will cause thick screen lines (busses) to be reproduced as printed lines which do not appear to be much thicker than thin screen lines (signals). This setting is most useful when printing to dot-matrix printers where the printers resolution is similar to the screens resolution. All specifies that every line will be scaled so that its printed width appears the same as on the screen. OverOnePixel specifies that lines that have a screen width greater than 1 pixel will be scaled when printed. The result is that signal lines will be drawn very finely, but busses will appear as thick lines.
225
Font translations are used when the fonts embedded in a file are not available on the current platform. This section allows the user to define which fonts (available on the current platform) are to be used instead of the specified fonts. The replacement font must be a TrueType font. Each line in this section specifies a font mapping. For example:
Bookman = Courier New Times = Times New Roman
. . . specifies that whenever the font Bookman is displayed or requested, Courier New should be used as its replacement; and whenever Times is displayed or requested, Times New Roman should be substituted.
[Drawing] Section
Initial Directory Settings
Directory = dir_name
This statement specifies the initial working directory. If it is omitted from the .ini file, the working directory will default to the value set by the Windows Program Manager.
Font Settings
XXX_Font = font_name font_size [BOLD ITALIC]
This statement specifies the font for text items appearing in a Schematic document. Font_name is the name of a TrueType font; only TrueType fonts are supported. Font_size is the point size to use. There are two
226
optional style keywords which may be applied, BOLD and ITALIC. The possible items which may have their font specified are:
Default_Font Attribute_Font, Border_Font, MiscText_Font, Pin_Font, Symbol_Font
Color Settings
XXX_Col =RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW BLACK, DKGRAY, GRAY, LIGHT GRAY, WHITE
This statement specifies the color for an item(s) appearing in a schematic document. All items in a schematic, except the page background, default to black. The page background defaults to white. The possible keywords for XXX_Col are:
Default_Col DeviceAttrs_Col, SignalAttrs_Col, BusAttr_Col, PinNumber_Col, PinNumber_Selected_Col Device_Col, Signal_Col, Signal_Selected_Col, Pin_Col, Pin_Selected_Col, Bus_Col, Bus_Selected_Col, BusPin_Col, BusPin_Selected_Col Page_Col, Boundary_Col, GridMajor_Col, GridMinor_Col, RandomText_Col, RandomTextFrame_Col
Default Design
DESIGN = circuitName
This statement allows you to specify a circuit file to open when the program starts. This can be used to open a file that is being repeatedly edited, or to open a default template file with a standard title block or border.
NOTE:
If the circuit is in any directory other than the working directory, a pathname must be specified.
[Drawing] Section
227
Zoom Factors
SCALES = n1..n11 NormalScale = index
The SCALES statement is used to specify the magnification levels used by the Reduce and Enlarge commands. The keyword is followed by 11 decimal integers, separated by blanks and sorted in ascending order. The 1:1 scale level (at which externally created pictures appear in their original size) is 14. Enlargements are specified by smaller numbers (e.g., 7 gives 200%) and reductions by larger numbers. The default values are:
SCALES = 4 7 10 14 18 24 28 42 63 98 140 NormalScale = 3
The NormalScale statement is used to specify which of the scale steps specified in the SCALES line will be used as the Normal Size setting. The index must have a value in the range 1 to 11.
228
Pin Spacing
PINSPACE = n;
The PINSPACE keyword is used to specify the spacing between adjacent pins when breakout symbols are created. This can also serve as the default for symbols created by other tools. The value must be a single decimal integer, which the program will use as a multiple of the standard grid space of 5 pixels. The default value is 2, which yields a spacing of 10 pixels.
Breakout Parameters
BREAKOUT = dth dtv;
The BREAKOUT keyword lets you control the creation of bus breakout symbols generated by the program. This does not affect any breakouts in existing files, as these symbols are already created and stored with the file. The BREAKOUT keyword is followed by two numbers for the following parameters: dth dtv the horizontal offset (in pixels at 100% scaling) for placement of text names on a breakout. the vertical offset (in pixels at 100% scaling) for placement of text names on a breakout.
[Libraries] Section
229
Undo Levels
The UNDO keyword indicates the number of levels of Undo which should be maintained. A value of zero means that there is no Undo. The format of this command is:
UNDO = n
. . . where dth defines a horizontal offset for the pin-number text, and dtv defines a vertical offset. Both offsets are measured in pixels at Normal Size screen magnification. (See the section above, Breakout Parameters: the BREAKOUT keyword takes the same parameters.) All devices in the design will be equally affected.
IMPORTANT:
This adjustment should not be required in normal use and should always be used with caution. No checking is done on the range of these settings. Changing these numbers in the .ini file will not automatically recalculate the positions of pin numbers in existing designs. You can force a recalculate by using the Design Preferences command to change the pin text font or size, then change it back to the original setting.
[Libraries] Section
Library Folder
FOLDER = directory_path
This specifies the folder/directory that will contain the libraries specified in following LIBRARY statements. This statement can be omitted if the
230
libraries are located in the same directory as the LogicWorks executable, or if you prefer to specify a complete library path in each Library statement.
Single Library
LIBRARY = library_path
This specifies a single library to open. The library_path can be simply the name of the library if the library is in the current directory, or a relative path to the library, or a fully specified path from the root. For example:
LIBRARY = lib1.clf LIBRARY = lib\74LS00.clf LIBRARY = \mylibs\blocks\controls.clf
This names a folder/directory to be searched for libraries. All libraries in this folder will be opened. Folders nested inside this folder are not checked. The format of the folder name is the same as that for the FOLDER keyword above.
[Timing] Section
The following settings allow the user to control the appearance of all the text and timing waveforms in the Timing window:
Parent_Col = WHITE Scale_Col = BLACK LabelText_Col = BLACK LabelBackground_Col = WHITE
[DevEditor] Section
231
WaveText_Col = BLUE WaveBackground_Col = WHITE VerticalLine_Col = GREEN ReferenceLine_Col = CYAN HIGH_Col = RED LOW_Col = BLUE DONT_Col = LIGHT GRAY HIGHZ_Col = YELLOW CONFLICT_Col = MAGENTA Reference_Font = 12 TimeScale_Font = 12 Wave_Font = 12 Parent_Font = 12
[DevEditor] Section
The options below allow you to customize the look and feel of the DevEditor tool.
Default Font
Font = font_name font_size [BOLD ITALIC]
This statement specifies the default font for text items appearing in a DevEditor document. The font_name parameter is the name of a TrueType font; only TrueType fonts are supported. The font_size parameter is the point size to use. There are two optional style keywords which may be applied, BOLD and ITALIC.
232
Grid Settings
GridColor = RED, GREEN, BLUE, CYAN, MAGENTA, YELLOW BLACK, DKGRAY, GRAY, LIGHT GRAY, WHITE GridSize = grid SnapSize = snap PinSnapSize = pinsnap
The GridColor statement specifies what color to use when displaying the DevEditors Grid. GridSize, SnapSize, and PinSnapSize are all expressed as multiples of 5 pixels. GridSize specifies the number of 5-pixel intervals between displayed grid lines. SnapSize sets the grid snap for all graphical objects except pins, and PinSnapSize sets the snap used when positioning pins.
When you Copy or Cut a selected area in the Timing window, two types of data are placed on the system Clipboard:
n The data is pure ASCII text, with no special binary codes except for
standard tab and hard-return characters.
n The format of the data is based on the common spreadsheet text data
format, i.e.: Each text item is followed by a tab character, except for the last one on a line, which is followed by a hard return.
n Every line has the same number of text items on it. n The first line of the text (that is, up to the first hard return) is a header
which indicates the meaning of the items on the following lines, by position.
n The lines following the header are signal value lines. Each line
represents one time step. A complete data line is written out each time any value on the line changes. No line is written out for time steps in which none of the represented signals changed value.
233
234
Header Format
The header consists of a series of commands, each starting with a $, which describe the meaning of the corresponding data items on the following lines. The header always contains the command $T (denoting a time column), followed by a tab character, followed by $D (denoting a delay column). The remaining items depend on the traces that were selected in the Timing window.
NOTE:
The Timing tool always places the time and delay items in the order given here, although it will accept data with these items present in any order, or even completely missing. Since time and delay are redundant, either one is sufficient. If both are missing, a default delay value will be used.
Grouped Items
Grouped items are denoted by the characters $I followed by a blank, followed by the name of the group, followed immediately (without any spaces) by a list of the signals in the group, contained in square brackets. Any group or signal name which contains blanks or control characters will be enclosed in quotation marks.
235
n The time at which the events on this line take place. The Timing tool
places in this column the absolute time at which the events occurred (according to the time scale on the diagram). However, when the data is pasted, the times are considered to be relative to the time of the first data line. This is a decimal integer which may take on any 32-bit unsigned value.
n The delay from this step to the next step. This is redundant
information, since it can be derived from the times in the first column. It is provided for compatibility with TestPanel and for improved flexibility in exporting to outside software systems.
NOTE:
1) If the delay and time columns do not match, the longest time is used. 2) The delay on the last line has special significance because it indicates the delay from the last signal change to the end of the selected interval. When pasting, this value is used to determine how much time to insert.
The following items on a line will be signal or group values matching the items in the header.
n Grouped signals which are not all unknown or all high impedance will
be specified by a hexadecimal value. The least significant bit of the value corresponds to the rightmost signal in the group list. The special character X may be substituted for a hex digit if any one of the four signals represented by that digit is unknown, or Z if all the signals represented by that digit were high impedance.
236
237
A
Add as Group command, 85, 189 Add Auto command, 189 Add Bus Sigs button, 198 Add Pins command, 137, 207 Add to Timing command, 85, 189 adder device, 109, 216 Align commands, 205 AND device, 100, 215 Attach Subcircuit command, 180 attributes default value, 45 editing on schematic, 165 hiding, 201 Justification command, 200 pin inversion, 80, 100, 102 predefined fields, 46 RAM, 123 rotation, 48, 201 Show Field Name command, 201 text style, 183 value initialization, 63, 74 Attributes command devices, 48, 192 pins, 197 signals, 194 attributes, 45 Auto Create Symbol command, 137, 207 Boolean formulas, 123 Breakout device initialization file parameters, 228 breakout device, 24, 3536, 214, 228 Bring to Front command, 205 buffer device non-inverting, 105 PLDs, 121, 124 buffer device, 70, 104, 215 buffering subcircuit pins, 71, 78 Bus Pin Info command, 38, 41, 197 bus pins, 68 busses bus pins, 9, 35, 38, 41, 54, 68, 174, 183, 197, 220 creating, 38 open collector, 63 pin annotation, 199 busses, 35, 68 Timing text format, 233 clipboard, 1112, 31, 161 clock device delay attribute format, 71 setting parameters, 117, 185, 187 synchronizing, 117 clock device, 60, 69, 74, 116, 218 clocked devices, 71, 110, 112 Close Design command, 10, 159 Close Lib command, 203 Collect command, 85 Colour, 226 Compact library option, 204 conflict logic state, 61, 6465, 67, 72, 75, 100, 119 connectors power and ground, 42 signal connector, 42 connectors, 43 Copy command library parts, 204 Timing, 90, 93, 208 Copy command, 162, 193, 195 counter device, 71, 75, 113, 217 Ctrl key, 15, 20, 27, 31 Cut command schematic, 162, 193, 195 Timing, 90
C
C (Conflict) logic state 119 capacitance, 60, 66, 105 CctName attribute field, 46 Center in Page command, 184 circuit definition, 8 Circuit Info command, 200 Clear command attributes, 201 Timing, 90 Clear command, 18, 164, 193, 195 Clear Simulation command, 74, 111, 117, 190 Clear Unknowns command, 63, 111 clipboard Timing edit commands, 93, 208 Timing picture, 93
D
D flip-flop device, 71, 75, 110, 216 D latch device, 111, 216 decoder device, 108, 216 decrementer device, 110 delay devices, 186 effect of zero delay, 70 pins, 69, 186 primitive devices, 69 setting, 186 subcircuit devices, 69
B
backspace key, 164 bidirectional pins initial values, 76 on subcircuit devices, 7879 transmission gate, 103 bidirectional pins, 76, 7879, 220 binary probe device, 119 binary switch device, 118, 218 BMP clipboard data, 12, 161
238
time units, 60 $DELAY command, 234 delay, 69 Delay.Dev attribute field, 46, 186 Delay.Pin attribute field, 46, 80, 123, 186 delete key, 21, 164 Delete Time command, 90 Demote library part, 204 design closing, 10 structure, 7 DESIGN initialization file keyword, 226 Design Preferences command Show Page Breaks, 159 Show Printed Page Breaks, 160 text style, 49 text styles, 30 Design Preferences command, 182 Detach Subcircuit command, 181 DevEditor Setup Grid, 232 GridSize , 232 PinSnapSize , 232 SnapSize , 232 DevEditor setup font, 231 DevEditor tool attributes, 80 creating a new part, 135 INI file settings, 231 inverted pins, 73, 102103 pin order, 97, 101 pin type, 78, 220 port names, 52 DevEditor tool, 16, 29, 43, 135 Device Info command, 192 devices connectors, 43 definition, 8 delay setting, 185 delay, 69 discrete components, 43 effect of unknown inputs, 100 gates, 100 high impedance inputs, 72 initial value, 76 input values, 72 libraries, 16 moving, 18 naming, 25 pin delay, 69 pin inversion, 72 pin numbers, 165 pin type, 72, 219 primitive type, 95 primitive types, 69, 82, 97 rotation, 169 setup and hold times, 110, 221 simulation models, 81 simulation pseudo-devices, 82 subcircuit devices, 78 symbol creation, 135 Directory, 225 Discard Subcircuit command, 181 discrete commponents pin numbers, 172, 175 discrete components pin numbering, 44 pin type, 220 discrete components, 43 Don't Know logic state, 62, 72, 74, 100, 122 Dont Know logic state 119 Dont Know logic state, 61, 67, 75 Draw Bus command, 167 Draw Sig command, 166 Duplicate command attributes, 201 Duplicate command, 90, 164, 193, 195
E
Edit command, 200 Enlarge Command, 227 Enlarge command, 167168, 199 events clearing, 74 saving to file, 191 text format, 235 events, 60, 70, 185 External Code Modules, 223
F
fall time, 59 feedback, 59, 70, 121, 124 file formats timing text format, 233 file, 16 Find command Timing, 209 Flip Horizontal command, 193 Flip Vertical command, 193 flip-flops D-type, 110 Initializing, 111 JK-type, 112 setup and hold times, 110 Folder Keyword, 229 font default, 224 DevEditor, 208 pin numbers, 30 text blocks, 31 translations, 225, 230 Font menu, 208 font, 183, 225 forcing logic states, 61
239
G
gates, 100, 215 Get Info command breakout pins, 40 busses, 37, 173 circuits, 170 design, 170 devices, 18, 48, 172 page, 170 pins, 9, 29, 45, 174 pseudo-devices, 173 selection, 13 signals, 26, 173 text, 31, 175 Get Info command, 86, 170, 192 Go To Selection command, 169 grid DevEditor, 206 Grid, 227228 Grids command, 206 ground and power connections in subcircuits, 52, 55 ground and power connections, 42, 72, 80 groups adding to display, 189 bit order changing, 86 bit order, 86, 212 busses, 85 creating, 85, 212 group name, 86 ungrouping, 212 groups, 85 high impedance logic state 119 high impedance logic state, 61 62, 67, 72, 75, 80, 100 hold time, (See setup and hold times) logic states, 61
M
Magnify command, 168 Magnifying command, 11 MEDA, 223 memory device, See RAM or PROM memory usage PROM, 123 RAM, 122 Memory usage, 211 memory usage, 60, 97, 103 Move To Grid Command, 205 multiple drive, 65 multiplexer device, 106, 216
I
incrementer device, 109 Initial.Pin attribute field, 46, 74, 76, 111 Initial.Sig attribute field, 46, 63, 74, 76 Initialization file DESIGN item, 226 $INPUTS command, 234 Insert Time command, 90 Internet support, 1 inversion, 72, 100, 102 Invert.Pin attribute field, 46, 72, 80, 100, 123 Invert.Pin field, 102
N
Name attribute field busses, 22 device, 165 signal, 165 signals, 22 Name attribute field, 46 Name command devices, 192 signals, 194 Name command, 26 names busses, 22 editing, 28 invisible, 42 moving, 28 pin names, 137 removing, 28 signals, 22 special names 0 and 1, 72 NAND device, 100, 215 nanoseconds, 60 New Breakout command, 35, 38, 177, 198199 New Design command, 157 New Lib command, 202 NOR device, 100, 215
J
JK flip-flop device, 71, 75, 112, 217 Join bus pin option, 197 Join Sequential bus pin option, 197 Justification command, 200
K
Karnaugh maps, 124
L
Lib Maint command, 203 libraries compaction, 204 creating, 16, 202 maintenance, 203 Libraries sub-menu, 202 libraries, 16, 229 Library keyword, 230 LibraryFolder keyword, 230
H
header Timing text data, 233 hex display device, 120, 218 hex keyboard device, 120, 218 Hide command, 201 high impedance in switches, 105, 119 in Timing text data, 235
240
Normal Size command, 167, 199 NOT device, 100, 215 text style, 184 pin numbers, 28 Pin spacing Breakouts, 228 pin spacing breakouts, 179 pins attributes, 175 bus internal, 38, 197 bus pins, 9, 35, 38, 41, 54, 174, 183, 197, 220 definition, 9 delay on clock devices, 117 setting, 185 delay, 69, 71, 78, 80, 110 efficiency, 221 function table, 215 high impedance inputs, 72 initial values, 76 input, 220, 222 inversion, 72, 100, 102 order in primitive devices, 97 output value mapping, 220 output, 220, 222 pin number, 28 pin type, 53, 72, 219 selecting, 14 subcircuits, 80 PINSPACE initialization file keyword, 228 PLA device size limits, 124 PLA device, 121, 124 plotting, 8 Point command, 90, 164 Pop Up command, 179 pop-up menus attributes, 200 pop-up menus, 157 port connector pin type, 79 Port Connector device, 8, 52 port connector device, 69, 78, 80, 214 port interface name matching, 52 port pin type, 53 power and ground connections in subcircuits, 52, 55 power and ground connections, 42 predefined fields, 46 Primgate.clf library, 100 Primio.clf library, 82 primitive devices delay, 69 pin order, 97 primitive devices, 66, 8182 primitive type, 95, 172 Print Background grid option, 183 Print Design command, 159 Print Timing command, 191 Printer Scaling, 224 printing bus lines, 224 paper size, 8 printing, 159 probe cursor, 66 device, 218 Programmable Logic Devices, 121 PROM device size limits, 123 PROM device, 121, 123 Promote library part, 204 pseudo-devices, 8, 16, 175 pulldown resistor, 105 pullup resistor, 66, 72, 105 Push Into command, 179
O
One Shot device setting, 118, 188 One Shot device, 118, 185 one shot device, 218 open collector pins, 6263, 65, 79, 220 Open Design command, 158 open emitter pins, 65, 79, 221 Open Lib command, 16, 202 Open Timing Text command, 190 Option key, 30, 163 OR device, 100, 215 Orientation command Paste command, 163 Orientation command, 169 oscillator, 116
P
Page Setup command, 191 paper size, 8, 159 Parameters command clock device, 116117 one shot, 118 Parameters command, 70, 185 Part attribute field, 172 Part Attributes command, 207 Paste command auto-connection, 162 rotation, 163, 169 text, 9, 31 Timing, 90, 93, 190, 209 Paste command, 162 Pin Attributes command, 207 Pin Info command, 174, 196 pin numbers auto-incrementing, 27, 30 default pin numbers, 29 editing, 165 rotation, 184
Q
Quine-McClusky method, 124
241
R
RAM device editing, 133 RAM device, 71, 122 Redo command, 161 Reduce Command, 227 Reduce command, 11, 167, 169, 199 Reduce to Fit command, 167, 169, 199 register device, 71, 75, 112, 217 Report tool pin numbering, 44 signal names, 22 resistive logic states, 61, 66, 105 resistor device, 66, 72, 105, 215 resolution, 84 ring oscillator, 62 rise time, 59 Rotate Left command, 193, 201 Rotate Right command attributes, 201 Rotate Right command, 193 rotation devices, 169, 193 Paste command, 163 pin numbers, 184 Rotation menu, 208 Run command, 185 setup and hold times, 221 SetupHold device, 46 sheet, 8 Shift key, 27, 30, 82 shift key, 13, 18, 20, 85, 90, 164 shift register device, 71, 116, 218 Show Background grid option, 182 Show Bus Pin Annotation option, 199 Show Crosshairs, 182 Show Default Border option, 183 Show Device Frames option, 182 Show Field Name command, 201 Show Printed Page Breaks option, 182 signal connector device, 42, 214 Signal Info command, 194, 199 signal probe tool, 6466, 81 signals 0 and 1, 81 connecting by name, 24, 42 creating, 19 definition, 9 displaying in timing diag., 60, 189 Get Info command, 173 in trigger, 89 initial values, 76 logic states, 61 Name command, 194 naming, 2223 removing, 21 selecting, 13 sequential naming, 27 stuck value, 64, 189 simulation description, 59 speed, 184 simulation speed, 184 simulation time trigger, 89 simulation time, 70, 84, 87, 93 simulation, 59 Simulator Commands Zoom, 210 Single Step command, 185 Size menu, 208 SPDT switch device, 71, 119, 218 speed menu, 184 Speed menu, 184 Spice attribute field, 46 SPST switch device, 71, 119, 218 Stick Signals command, 65, 80, 189 Stop command, 90, 184 stuck signal values 0 and 1 signals, 81 clearing, 65, 190 description, 64 power and ground, 80 setting, 64, 190 signal probe, 67 Stick Signals command, 189 storage devices, 71 Style menu, 208 Subcircuit & Part Type command, 207 subcircuits delay, 69, 185186 editing an open circuit, 77 locking, 172 pin delays, 80 pin inversion, 73 pin type, 78, 222 PLDs, 121, 125 port connector pin type, 79 port interface, 78 simulation, 76, 81 stuck signals, 190
S
Save Design As command, 159 Save Design command, 159 Save Timing Text As command, 191 Schematic menu, 169 screen scaling, 167 Select All command Timing, 92, 209 Select All command, 167 selecting objects, 13, 167 Send to Back command, 205 setup and hold times flip-flops, 110
242
subcircuits, 49, 95, 172 subtracter device, 110, 216 switch device binary, 118, 218 SPDT, 71, 119, 218 SPST, 71, 119, 218 synchronizing clocks, 117 synchronous counter, See counter device Timing Options , 210 Ungroup, 212 Zoom, 210 timing diagram adding traces, 84 clipboard data format, 233 reference lines, 90 removing traces, 84 resolution, 84 time scale, 84 tool palette, 87 timing diagram, 83 timing text data format, 233 Timing tool, 83 title blocks, 9, 226 To Bottom command, 85 To Top command, 85 tool palette controls, 88 time display, 87 transmission gate device, 103, 215 Trigger Setup command, 88 triggers setting, 88 type name, 16, 43, 172 X (Dont Know) logic state, 61, 67, 75 X-Gate device, 103, 215 XNOR device, 100, 215 XOR device, 100, 215
Z
Z (High Impedance) logic state, 61, 67, 75 Zap command, 21, 25, 28, 166 zero delay, 70, 119, 187 zoom Magnify command, 168 magnifying glass tool, 11 Reduce/Enlarge commands, 167, 199 Zoom factors, 227
T
tab key, 20, 26 technical support, 1 text creating, 31 editing, 31, 165 pasting, 161 selecting, 13 style attributes, 8, 49, 183, 201 DevEditor, 208 pin numbers, 30, 184 text blocks, 31, 176 Text command, 22, 165 three-state buffer device, 104, 215 three-state outputs PLDs, 121 RAM, 122 three-state outputs, 62, 79, 220 time time scale, 84 time units, 60 tool palette display, 87 $TIME command, 234 Timing Commands Display Off, 210 Display On, 210 Get Info, 212 Go To Schematic, 212 Group, 212 Remove, 212
U
unconnected inputs, 6263, 75, 119 Undo command, 160, 208, 229 Ungroup command, 8586 Unknown Detector device, 218 Use Default Value button, 45
V
Value attribute field, 46
W
World Wide Web, 1
X
X (Dont Know) logic state 119