ELEC451 Integrated Circuit Engineering Using Virtuoso Schematic Editor Contents • • • • • • • • • 1. General 2. Adding Components 3. Connecting Components 4. Selecting/Deselecting Components or Wires on the Schematic 5. Adding Wire Names 6. Editing o 6.1 Moving Components or Wires o 6.2 Deleting Components or Wires o 6.3 Undoing/Re-doing an Action o 6.4 Editing Component Properties (Parameters) 7. Printing a Schematic 8. Saving a Design 9. Creating a Symbol Cellview for Your Design 1. General Virtuoso Schematic Editor is a schematic-entry tool. Is allows you to define your design in terms of a graphical picture of connected components (a "schematic''). All user designs, as well as components and cells prepackaged as part of the environment are stored in libraries, which are just Unix directories. Any components you need are picked from these libraries. To start Schematic Editor, select File->Open from the icfb window menu. Now change the Library Name to the one you want, then click on the cell you want (or type in its name), verify that the SCHEMATIC view of that cell is selected and click OK. You can also use the Browse button to browse through the contents of other libraries. What you really need to know about using Schematic Editor is covered in the CAD assignments themselves, but for a better understanding, or as a reference guide, please read the following sections. 2. Adding Components You can add one or more "instances'' of any component that you can find in a library. Use Add->Instance from the window menu. Like most actions, this one can be taken either by selecting the menu item, selecting an icon from the toolbar at the left, or using an equivalent keyboard key (in this case the i key). The Add Instance dialog appears to allow you to locate the component you would like to add, and you can then Browse different libraries to find it. Once you have clicked on a component, you can drag the mouse back into the Schematic Editor window, and a silhouette of the picked component follows, which you can then drop by clicking at the desired insertion point. Once you have added this first component, CDS is in the "add component'' mode, and is immediately ready for you to drop in another one right away. If you only wanted the one, you can click Cancel in the Add Instance dialog (or hit the ESC key on the keyboard if that dialog box is not longer visible). If you want to add multiple but different components, you do not need to close the Add Instance window, just click on another component in one of the libraries to prepare to add it. 3. Connecting Components You connect components with wires. Adding wires is part of the default mode for the Schematic Editor, so you can just click on the terminal of one component (one of the little red boxes) to select it, drag the mouse to the terminal of the component you want to connect to, and release to complete the wire. You can also select Add->Wire from the Schematic Editor main menu, then click at the desired endpoints. But if you type w as a shortcut, you have to have the mouse already positioned over the first terminal, or else you will end up with a wire hanging in space (hit Cancel or ESC to get out of that situation). 4. Selecting/Deselecting Components or Wires on the Schematic To select an existing wire or component on the schematic, left-click on it until you see it highlighted with a solid box (or highlighted line for a wire). Note that a dashed box (or a dashed line for wires) appears when you hover above a component (or wire), but you must then click to select it. If you fail to left-click at this point, the "currently selected component'' (or wire) remains at the last one you clicked on. Remember this to avoid inadvertently modifying or deleting the wrong component or wire. To deselect a wire or component, click in an empty region of the schematic - the highlighting of the wire or component will disappear to let you know it is no longer selected. To select a group of adjacent components, click and drag to define an outline box with the mouse. When you release the mouse, all components and wires inside the box are selected as a group. Personally, I recommend against selecting single objects by clicking on them, since you then have to click in the empty background to deselect them before moving on to a new object. Instead, I find it faster and more convenient to "hover" the mouse over the object of interest until its border is dashed-highlighted, then use a keyboard key to take my desired action ( m to move it, c to copy it, q to query/change it, and Del to delete it). You still need to hit ESC when done to get out of the mode for the last action you took. 5. Adding Wire Names Although CDS generates automatically numbered "net'' names for each wire (circuit node), you can override these with explicit names that are more informative. Hover over the wire till it is dash-highlighted, then type the l key (for "label"), then type in the desired name, then click OK, and click the mouse on the wire to be named. You can also first click to select the wire, then use the WireName toolbar tool, or the Add->Wire Name menu item. 6. Editing You can move, copy, delete, rotate, and take other actions on components from the Edit menu, but most of these have shortcut keys that are faster. The more important edit actions are described below. 6.1 Moving Components or Wires With a single component or wire, you can just click and hold down the left mouse button, and drag to the desired position - you don't need to select the component (or wire) first, and the action does not leave the component selected when completed. But to move a whole group of components to another spot, you first need to select that group by dragging a box around it, then move it to the new position. To move the selected group (solid-white-highlighted), type the m key, then move your mouse (the group will follow), then click to drop it. You can only make a vertical OR a horizontal move at any one time. Be sure to deselect the group when done. You can also use the m key with single objects that you have first dash-highlighted by hovering over them with the mouse. 6.2 Deleting Components or Wires To delete, hover over the component till it is dash-highlighted, then press the Del key (this also works if you first click to select the component then use the DEL key or the Edit->Delete menu item, or the eraser icon at the left of the display. Caution: Once you delete an item, CDS is in the "delete'' mode, and anything you next click will also be deleted - to escape from this mode, hit the ESC key as usual. 6.3 Undoing/Re-doing an Action You can undo any change by typing in a u, clicking the undo icon, or using the corresponding Edit menu item. You can actually undo a series of actions by repeatedly typing u . The depth of this undo capability is set under Options>User Preferences in the icfb main window. If you accidentally undo something you didn't want undone, just do a "redo'' (type key U (capital "U") or select it and use the Edit menu). 6.4 Editing Component Properties (Parameters) Hover over the component to dash-highlight it, then type the q key (for "query") . Alternatively, you can select the component first by left-clicking on it, and then use either the q key, or click the Property icon on the toolbar, or select Edit-> Properties. If you don't click to select the component first, you may end up inadvertently editing the properties of a different component - the component you had last selected. From the Edit Properties window, you can change the values of the component's parameters, for example, to change the voltage of a voltage supply, or to change the width of a transistor, etc. The units for each property are defined by a letter which you are not allowed to change (even though it appears you can change it). For example, transistor dimensions are in metres (capital "M''), voltage sources are in volts (capital "V'') etc. The usual SI modifiers are accepted by typing them following the numeric value you enter. For example, 3u means 3 x 10 -6 . Letters m,u,n,p,f stand for milli, micro, nano, pico, and femto, respectively. Some properties are specified in terms of expressions involving variables or other property names. This allows, for example, a transistor width to be specified as a fixed multiple of its length, or instead to be specified by a variable whose value will be filled in later by the user during a simulation run. With CDS, the units are an integral part of the Property, so that when filling in variable values (for example, later on in a simulation), the unit must not be typed in with the value of the variable. It is therefore incorrect to type in 3V for the value of a voltage variable - CDS would interpret this to mean "3V" volts, which is undefined , rather than the "3" volts you intended. 7. Printing a Schematic Select Design->Plot from the main Schematic Editor menu, and set up for printing as described under "Using the Cadence Design System". You will need to click on the Plot Options button in the dialog box that appears in order to choose the printer type, plus other options. 8. Saving a Design You can save a design from the Design menu, but the Cadence documentation recommends that you always use Check and Save rather than just Save. You can also save the design under a different name (for later editing to make a different version, say), but note that the current file name stays what it was. So if you want to save to a new name, and edit that newly-named design, you will first have to open it by using Design->Open. This behaviour is different from most editors and programs you may be used to, so be careful you are working on the properly named schematic. 9. Creating a Symbol Cellview for Your Design You can "package'' your designed cell into a convenient module that has a graphical symbol (a "symbol''), which allows you to then incorporate it as a whole into another design schematic. For example, you could package an inverter design schematic named, say inv_small, containing an NMOS and a PMOS transistor into a normal inverter symbol (i.e. a triangular package with one input, and one output, with a bubble at the output). Before you can make the symbol cellview, you need to add "pins'' (from the Add menu, or by using the pin tool on the toolbar) to define where the inputs and outputs are. Then when you select Design->Create Cellview->From Cellview, a cellview editor opens allowing you to define the shape of the symbol that will house your design, labels, etc. Now you could open a new design, and by picking inv_small from your library, drop in an instance that would appear as the triangular inverter symbol, having terminals to which you will connect. By using this feature, you can build up designs hierarchically, with simple logic cells having few transistors at the bottom of the hierarchy, and complex cells ( that contain simpler lower-level cells) at the top of the hierarchy. You should already be familiar with this approach if you have used the Altera Design software.