DESIGN ARCHITECT

You will be guided step-by-step through a the process of schematic capture using Design Architect. The design that you will enter is the following simple 2-1 multiplexor circuit:

gif.

Before you begin, make sure that you have created a directory called mgc in your private directory. Enter this circuit as follows:

  1. Start Design Architect by typing da at a command prompt.

  2. Whenever you first begin a Design Architect session, make sure you are working in the directory you intend to use as the root directory for your design. Select MGC -> Location Map -> Set Working Directory: from the top menu bar and either verify or change the entry in the dialog box which appears.

  3. Click on the OPEN SHEET icon or select File -> Open -> Sheet from the menu bar.

  4. A dialog box will appear. You should click in the Component Name box. Now, append /mux21 to the path in the Component Name box to create a component called ``mux21.'' When you're done, click on OK. Actually, you can just type ``mux21'' and don't need the path that's displayed unless you want to put your design in a different directory.

  5. You will see an empty sheet in the Design Architect window into which you can now place components. Click on the maximize button of the sheet window to give yourself the largest working area possible. To begin, you need to select a library of components to use. Do this by selecting CHOOSE SYMBOL from the schematic add/route palette or, by holding down the right mouse button to obtain the add menu and selecting Instance -> Choose Synbol. There is typically more than one way to accomplish something in Design Architect. This example illustrates two of them: clicking on a palette icon or holding down the right mouse button to get a context-sensitive menu. There is also a way to do this via the top menu bar, but it is more difficult to find. See if you can find it. This will activate a dialog box which contains a button having four arrows on it, among others. Click on this button, enter $SCN08HP_LIB into the form, then click on OK. Your screen should now look something like this.

  6. Note how the dialog box shows several directories, including one called ``parts''. When you double click on that directory, you will descend into it and find a list of all parts which are available in this library. Highlight the and02 part by clicking on it once then click on the ok button. This will make the and02 our current active part.

  7. Now, move the pointer into the schematic sheet. The gate will appear, and you can drag it to the position where you want to place it. To place the gate symbol, click on the point where you want it to be.

  8. Next, place the other and02: click on the gate's icon in the active symbol window at the upper right corner. Drag and place it on the schematic. Be sure to leave space between the components. Do not overlap the components or you will not be able to simulate the schematic later.

  9. If you need more drawing space for your schematic, first be sure the drawing window is maximized. You can get everything centered by selecting View -> View All from the menu bar. Or you can zoom out 2X by selecting View -> Zoom Out -> 2.0. Zooming out displays more area, and zooming in displays less.

  10. Get the OR and INVERTER gates the same way you initially got the AND gate. Use or02 and inv02 from the palette.

  11. Now place the port connections (A, B, SEL, OUT) by referring to the symbol history in the active symbol window menu. Move the mouse pointer to the active symbol window, and hold down the right mouse button. At this point, your screen should look something like this. Select symbol history to obtain the portin and portout symbols. The ``portin'' symbol is used for inputs and the ``portout'' is used for outputs. Place the appropriate symbols on the schematic sheet as shown in the mux figure at the top of the page.

  12. Next, you need to wire up the components. Note how the bottom of your screen has function key labels on it, and that F3 is labeled as Add Wire. One way to start wiring is by hitting the F3 key. Another is by clicking on the ADD WIRE icon in the schematic_add_route palette. To make it easier to access this icon, you may have to resize that palette and add scroll bars. You may use the palette menu accessed by holding down the right mouse button over the palette to do this if you wish.

  13. You wire between two points by clicking on the starting point and double clicking on the ending point. If you want to put a bend in the wire, just click once at the point where you want to bend the wire. Place the wires as shown in the mux figure at the top of the page.

  14. When you're done wiring, click on the Cancel button on the dialog box at the bottom of the screen. Your screen should now look something like this.

  15. Note how the schematic now has different values displayed in various places. Each logic gate has pin properties attached to all of its inputs and outputs. Pin properties are strings given the values "I0" and "I1" for inputs and "O" for the outputs with the gates you have used. Every wire you have drawn also has a string property called "NET" which is assigned the default initial value "NET". We will change this value where we need to explicitly label wires. Finally, you'll see how there is associated with every logic gate an expression property called "MODEL" which has the value "(technology)".

  16. We will now modify those property values which we expect to never change throughout the design process (such as "NET" property names). They will become a permanent part of the schematic. Properties which we expect to change at times throughout the design process (such as the "MODEL" property) will be changed using schematic viewpoints instead of maintaining different versions of the schematic. But first, before continuing, unselect everything by using function key F2.

  17. There are many ways of selecting objects in a schematic. For simpler tasks, perhaps the easiest way to do so is simply by moving the cursor over the item you wish to select and hitting the F1 key. Another way is to drag the left mouse button over an area of the schematic which will select all objects inside the box and which cross its boundaries. An elaborate selection filter exists for specifying the selection of just specific things inside the selection area (see the SET SELECT FILTER in the schematic_text palette). For now, our task is simple, so we will use the first method.

  18. Select all of the NET property values using the F1 key. Make sure that these are the only things you select. You can keep track in two ways. First, selected items turn white. Second, you can watch the selection counter in the top status bar of the screen. After completing your selection process here, this should read Sel: 4+ because you have selected exactly four things. If you accidently select wrong things, use UNSELECT ALL in the palette or the F2 key.

  19. Next, choose the TEXT icon in the schematic palette. This will cause the palette to change to the schematic text palette. From this new palette, select CHANGE VALUE.

  20. A dialog box will appear at the bottom of the screen. Notice how the value you are currently changing remains highlighted in the schematic so you know which one you are changing. Simply type the correct new value over the old and hit the return key. In the case of NET, you should change its value to the desired wire label as shown in the mux figure at the top of the page. When the last name is changed, the prompt bar disappears. It is very important that you change property value only. Do not change anything else in the dialog boxes which appear.

  21. You must now check the drawing before you can save it and take a break. If your sheet does not pass this check, you cannot simulate it (of course, you are not allowed to take the break until it passes!). To check your sheet, select Check -> Sheet -> With Defaults from the menu bar. There should be no errors. Sheet errors are often caused by drawing errors (such as having two outputs connected together) and many are quite self-explanatory. When errors and warnings are present, just click on the text in the report form, and the offending portion of the schematic will become highlighted (if it's visible). A simple example of an inconsequential warning is shown here. This one is fixed by eliminating the overlap between the property text and the port B symbol. Even though warnings may not keep your simulation from running, you should still try to eliminate them. Once that warning is eliminated, the sheet check results should look something like this.

    Even with a perfectly drawn schematic, you should still notice instance warnings at this stage of the design when using the scn08hp library. These warnings arise from the variable properties we have chosen to establish in a separate schematic viewpoint. Since we know that we plan to establish these values later, we can ignore the warnings for now.

  22. Close the report window by double clicking the upper left window control.

  23. Your schematic sheet should now look something like this. Save it by selecting File->Save Sheet from the menu bar.

  24. Any significant digital design requires that some hierarchical organization be established. To be able to use the 2:1 mux as part of some larger circuit, it is necessary to have a symbol for it which can be used in higher level schematics the same way it's schematic references the and02 and or02 for example. The final step of designing your 2:1 mux will involve the specification of a symbol which describes how it will interface into larger systems.

  25. From the top menu bar, select Miscellaneous -> Generate Symbol. A dialog box will appear that gives a variety of options for the automatic creation of a symbol which encapsulates your logic diagram. The only option you should need to change is the "Once generated..." column where you should click on "Save then Edit". If you wish to replace an existing symbol for this component, then you will also want to say "Yes" to "Replace existing?".

  26. Once symbol generation is complete, a symbol editor window is opened which displays the symbol that was generated. You may now edit the symbol as you see fit using symbol editor commands. One useful and simple thing to do is to give the part a name. Do this by selecting the body of the symbol (the box in this case) and clicking on the add text icon in the symbol_text palette. A small dialog box will appear where you can enter a name to be attached like "mux21". When you hit OK, the new text will appear wherever you wish to place it near or on the symbol. Once this change is made, check it using Check -> With Defaults from the top menu bar. Then save and register the symbol with the part database entry by selecting File -> Save Symbol -> Default Registration. You are done and may close the symbol editor window when there are no errors. The mux part can now be incorporated into other schematics the same way you have just used the scn08hp library parts.

  27. Now use that symbol to build an 8-bit 2-1 mux. That is, OPEN another sheet, add 8 of your muxes and wire them up. Pretty straight-forward but here's a trick:

    Instead of using 8 ports for each input and output, use buses and rip off wires as you need them. The easiest way to do this is:

    1. Click on the ADD BUS/BUNDLE button.

    2. Place the bus roughly where you think you'll need it, ie. if it's an input bus, somewhere to the left of your 8 muxes.

    3. Give the bus an input port.

    4. Name the port, indicating that it is a bus by enumerating the wires in parenthesis. For example, if this is port A and there are 8 wires, call it A(7:0).

    5. Now you can rip off a wire by choosing ADD WIRE, click somewhere on the bus and attach the other end to the desired port, ie. one of the mux inputs, by double clicking as usual.

    6. The auto-ripper will bring up a dialog box asking you which bit you just ripped. If it corresponds to the 7th bit, you would type 7 and hit return. Here is an example.

  28. When you're done w/ everything (make sure you've saved it all!) exit Design Architect by closing the window and responding to the dialog boxes that appear. You must use the close command from your windows manager since there is no "quit" function in the menu bar.

You have now completed the schematic capture of the MUX circuit. Now you are ready to simulate the circuit to see if it is functionally correct and if it meets some timing constraints using QuickSim II, the logic level simulator.