About me
Home
Resumé
CV
Pictures

Course Work
CSE300-FA98

Teaching
Portfolio
CSE240-SP99
CSE207-FA03

Misc
eHarmony
Documents

Tools

Building Your Own Modules

BEFORE STARTING: Please make sure that you have LogicWorks version 4.1 or later. The update for those of you who have 4.04 please download the free upgrade.

Since we design circuits by decomposing them into smaller blocks that can be independently built and tested, it would be nice to be able to do this in simulation. Using these blocks, we can quickly assemble larger or more complex circuits. LogicWorks does support this feature. To use, first create and test your circuit as normal. If you are using the recommended circuit layout techniques, this will help you swap over from a test circuit to a component with a subcircuit.

Once you have verified your circuit's functionality, remove any binary switches and hex keypads that you were using to test the inputs. Look in the connect library for a part called Port In. Binary probes and hex displays may be left attached (in fact, I recommend you leave these on for testing purposes). However, for every output signal a Port Out pad must be connected. These ports will become the pins in the final package that you produce.

IMPORTANT: You must label each port in and each port out with a unique name. Do NOT uses spaces as this will cause you headaches.

Save your circuit.

At this point, you are ready to create the module. If you have not already created a library for the current project, do so now. To create a library, right-click in the parts list. Select New Lib.... The library you create will be empty. If you already have a library for the current project, make sure you open it before proceeding.

In the parts list of your library, right-click and select New Part. This will bring you into the component editor. The simplest way to use this is to have it generate everything automatically. While you can fix mistakes, I have found it much faster to delete everything and start over if you make a mistake from this point forward.

Inside the editor, pull down the options menu and select Subcircuit and Part Type.... This will prompt you for how you want to associate a circuit with this part. Choose the Create a subcircuit symbol and select an open circuit to attach to it.. Press Done to leave this screen. Next, select Auto Create Symbol... from the options menu. This will bring you to a pin configuration tool. Press Extract Pin List to pull in a list of all the pads (port in and port out) that will become the pins on the finished module. All of the inputs will appear on the left, and the outputs will be on the right. If you have a component where you want pins on the top, bottom, or in some other configuration than the default - this is your chance to move them. If you have used indexed names like, A3, A2, A1, A0, you can compactly represent this as A3..0. This representation guarantees that the pins appear in order on the package. If you want to put gaps between the pins on your component, use a double comma. If you want the pin denoted with an active low symbol, precede it with a tilda ~. Remember, this does NOT change the value of the signal moving through the package, it is simply a reminder to you when you look at the package that the value is active-low.

When you have the pins configured as you desire, name your part (the box in the middle of the screen) and press Generate Symbol If you don't like the part in front of you, just highlight everything and press delete. If you picked the wrong schematic, just close the editor and start over.

When finished, save your part - make sure you are saving it to YOUR library.

I hightly recommend that you create a new schematic at this point. I usually call this by the same name as the part I must made _test. This circuit should consist of switches and probes along with the part you just built. Test thoroughly as practical before using this part in a bigger circuit. Any bugs you find at this point should be fixed before moving forward. You can even start your report at this point by documenting the test cases, equations, circuit, and module block.

Last Modified: - Barry E. Mapen