2. Table of Contents
Preface – About MMLogic…………………………………
Welcome
Introduction
Legal Information
Support Information
Who to Contact
How to Use MMLogic
Getting Started with MMLogic
System Requirements
Installing MMLogic
Starting MMLogic
Understanding Digital Logic
Building and Simulating a Simple Circuit
To Create a Simple Circuit
Features
Using the Drawing Feature
Selector
Wire
LED
8 Segment LED
And Gate
Or Gate
Counter
Arithmetic Logic Unit
2
4. Preface - About MMLogic
Welcome
Congratulations! You have just downloaded MMLogic, a Multimedia logic design system for
learning. This guide will help you to understand the basic functions of MMLogic and will help
you to build your first digital circuit.
Introduction
This guide describes the recommended system requirements for using MMLogic, how to get
started using the application, the main features of MMLogic, and several basic tutorials for
learning. It also describes the basics of digital and Boolean logic. This guide was created for use
by computer scientists, engineers, and other students of digital logic, as well as, amateurs and
those new to digital logic. The sole purpose of this guide is to help you better understand the
basic functions of MMLogic and to help you become comfortable using the program so that you
can go on to create your own digital logic scenarios.
MMLogic is a free software application that enables you to easily create basic digital logic
scenarios and circuits. It is an easy to learn tool with a simple and straightforward graphical user
interface.
Legal Information
MMLogic is a freeware application developed by Softronics, Inc – an educational software
company. The MMLogic application is copywrite protected, without limitation, pursuant to U.S.
and foreign copyright and trademark laws. You may not copy, distribute, alter, republish, or
exploit the MMLogic application. No intellectual property is transferred to you. To the fullest
4
5. extent of the law, Softronics, Inc. and its employees, suppliers, and contractors shall in no event
be liable for any claims, demands, damages, losses, and expenses.
Support Information
In addition to this guide, there is online help and tool tips available while running the MMLogic
application. Both are available from the Help drop down menu in the application. For additional
support or to report bugs, please contact MMLogic directly.
Who to Contact
For support and bugs, email: mills@softronix.com
For Version 1.4 modifications, email: jasonkres@users.sourceforge.net
How to Use MMLogic
Getting Started with MMLogic
MMLogic is intuitive and easy to use. The GUI is similar to Microsoft applications and its
primary functions (draw and simulate) are simple to use, much like a DVD player. The GUI also
provides the user with the ease of drag and drop features. Let’s get started!
System Requirements
The MMLogic software is downloaded as an .exe (executable) file directly to your machine.
Before you download MMLogic, make sure you are able to open .exe files. An Internet
connection is required to download the software. MMLogic is free to download.
MMLogic operates on your desktop computer or laptop with the following operating systems:
• Windows 95, XP, Vista, or 7
• Linux Ubuntu
5
6. MMLogic is not compatible with Mac OS.
Recommended system requirements:
• Pentium processor 8meg
• 1GB of RAM
• Win32 (Win32s not supported)
• Internet connection
Installing MMLogic
To install MMLogic on your machine:
1. Open a web browser (e.g., Internet Explorer) and navigate to the Softronics website:
http://www.softronix.com/logic.html
2. Under the heading Multimedia Logic Kits click on Setup Kit.
A dialog box will appear with the text “Would you like to save this file?”
Click Save File.
3. The download manager will appear.
From the download manager, double-click the executable file mmlogic14.exe.
4. A dialog box will open with the text “Open executable file?”
Click Ok.
6
7. 5. A warning message asking if you are sure you want to run this software will appear.
Click Run.
6. The install shield wizard will appear.
To continue, click next.
7. Choose the destination location. Browse to change destination folder or accept default
location in C.
Click Next.
7
8. 8. Use 7-zip to open the MMLogic application.
Click Next.
9. Success! You have successfully installed MMLogic on your machine and you can now
begin using the MMLogic application.
Starting MMLogic
After you have installed and opened MMLogic on your machine you can begin drawing and
simulating circuits! When you first open MMLogic you will see the main MMLogic workspace,
including the canvas and tools palette.
The two basic functions of MMLogic are the drawing feature and the simulation feature. The
drawing feature allows you to create a circuit on a blank workspace with as much space as you
need. The simulation feature allows you to simulate how your circuit will run when certain
conditions are true.
To open the MMLogic application double-click the MMLogic icon located on your desktop.
Understanding Digital Logic
8
9. Logic design is an internationally known philosophy that is used to build electronic circuits for
computers and other electronic devices. A basic understanding of digital logic is recommended
before using MMLogic. However, no previous knowledge of digital logic is required to use the
program.
For more detailed information about Digital Logic, see Appendix A.
Building and Simulating a Simple Circuit
The following procedure provides instructions for building and simulating a simple circuit using
the MMLogic application. It does not tell you how to create a specific circuit or how to use
other more advanced options.
To create a simple circuit:
9
10. 1. Launch the MMLogic program from your desktop or startup menu. The MMLogic
workspace will appear.
10
11. 2. From the palette on the right-hand side select the And Gate.
*Items selected from the palette will stay selected unless another item is chosen. Always
go back and select the Selector to be able to manipulate items in the workspace.
Left-click anywhere in the workspace to place the And Gate.
11
13. 3. From the palette select the Switch.
Place two switches in the workspace, one on top of the other, to the left of the And Gate.
13
14. 4. From the palette select the LED.
Place the LED in the workspace to the right of the And Gate.
5. From the palette select the Wire.
Connect the dots on each of the components to each other so that the Switches are
connected directly to the two And Gate inputs and that the And Gate output is connected
directly to the LED.
14
15. To connect the wire place the cursor over the first dot, hold down the left mouse button,
move the cursor to the second dot and release the mouse button.
* The Wire is very sensitive. You must be very close to the connecting dot for the wire to
latch on and connect the components.
15
16. Once you have all the components connected the circuit should look like this:
16
17. 6. From the drop down menu at the top of the workspace select Simulate Run.
The circuit is now activated. Flip both switches to the 1 position (on) by clicking on
them in the workspace. Both switches must be in the 1 position for the LED to work.
17
18. You should see a red LED.
7. Success! You have completed building a simple circuit!
Features
Using the Drawing Feature
18
19. 1. Selector
The Selector changes the cursor from drag and drop (when other components are
selected) to select. This allows you to manipulate and move components in the
workspace.
- To use the Selector select Draw --> Select from the drop down menu at the top or from
the palette on the right.
2. Wire
The Wire connects components together. The wire allows signals to pass from the input
component to the output component. This creates a path that allows information to pass
from one to the other.
- To use the Wire select it from either the drop down menu at the top or from the palette
on the right. Left-click and drag from one end point to another end point and release.
3. LED
A Light Emitting Diode (LED) is an indicator light that provides visual confirmation
about the state of a signal. Use the wire to connect to the LED to see any signal you want
to observe during simulation. When the signal under observation is logic high (1) the
LED turns on. When the signal is logic low (0) the LED is off.
- To use the LED select it from the palette on the right. You can change the properties of
the LED by right-clicking on the LED component in the workspace and selecting
Properties from the dialog box that appears.
You can change the color of the LED. Your choices include:
• Red
19
20. • Green
• Yellow
You can also select the mode of the LED, either blinking or constant.
4. 8 Segment LED
An 8 Segment LED is a component that contains 8 individual LEDs in the form of a
figure 8. Seven are formed as the figure 8 and the 8th
is a decimal point. This component
is used to display numeric information and displays decimal values ranging from 0-9,
binary values 0 and 1, and hexadecimal values ranging from 0-F.
- To use the 8 Segment LED select it from the palette on the right. You can change the
properties of the 8 Segment LED by right-clicking on the 8 Segment LED component in
the workspace and selecting Properties from the dialog box that appears. You can select
from two types of input:
• 5 input configuration where 4 are used as a 4 bit binary input to drive the 7 LED
segments and the 5th
is used to drive the decimal point.
• 8 input configuration where 7 are used to drive the 7 segments individually and
the 8th
drives the decimal point.
5. And Gate
The And Gate is the Boolean component used to implement the And operation. For an
And Gate all inputs must be high (1) for the output to be high (1).
- To use the And Gate select it from the palette on the right. You can change the
properties of the And Gate by right-clicking on the And Gate component in the
20
21. workspace and selecting Properties from the dialog box that appears. You can select the
number of inputs to the And Gate. Inputs available are:
• 2
• 3
• 4
You can also select to invert the output of the And Gate, which converts the logic high
(1) to a logic low (0) or vice versa.
6. Or Gate
The Or Gate is the Boolean component used to implement the Or operation. For an Or
Gate at least one input must be high (1) for the logic output to be high (1).
- To use the Or Gate select it from the palette on the right. You can change the properties
of the Or Gate by right-clicking on the Or Gate component in the workspace and
selecting Properties from the dialog box that appears. You can select the number of
inputs to the Or Gate. Inputs available are:
• 2
• 3
• 4
You can also select to invert the output of the Or Gate, which converts the logic high (1)
to a logic low (0) or vice versa.
21
22. 7. Counter
The Counter is a logic component that counts in binary. The CT input to the Counter is
the count line. Each time the count line goes from logic high (1) to logic low (0) the
output bits increment by one binary. The Counter can be reset by a logic high (1)
followed by a logic low (0) on the R input line. The Counter can be cascaded with other
counters by connecting the C output of the first counter to the CT input of the second
counter. This allows you to increase the size of the binary output number to as many bits
as you want. For example, a 4 bit counter can be cascaded with another 4 bit counter to
create an 8 bit counter. The size of the output word is selectable with the selection being
either 4 bits or 8 bits.
8. Arithmetic Logic Unit
The Arithmetic Logic Unit (ALU) is the fundamental building block of microprocessors.
The ALU is a device that allows you to add together two binary numbers. ALUs come in
various input sizes. ALUs available in MMLogic takes as input two 8 bit numbers and
outputs one 8 bit number, which is the sum of the two input numbers. An 8 bit ALU is
used to drive 8 Segment LEDs. See the tutorials for more information.
9. Switch
The Switch is a logic device that operates in the same manner as a typical light switch.
When the switch is on or in the 1 position the output of the switch is logic high. When
22
23. the switch is off or in the 0 position the output of the switch is logic low. The Switch is
used to drive inputs to other devices such as LEDs, And/Or Gates, Counters, and ALUs.
- To use the Switch select it from the palette on the right. You can change the properties
of the Switch by right-clicking on the Switch component in the workspace and selecting
Properties from the dialog box that appears. You can select the initial state of the Switch
for simulation purposes. The Switch can be either on or off (logic high or low). You can
also select the type of switch, either toggle or momentary. For the toggle switch when
the switch is moved from low to high it remains high until you switch it back to low. For
the momentary switch the output is high only until the switch is released. This is similar
to a push button or springloaded button switch.
10. Hexadecimal Keypad
The Hexadecimal Keypad is an alphanumeric set of keys similar to alphanumeric
keyboards consisting of 16 keys. The value of each key ranges from 0-F hexadecimal.
When each key is depressed the 4 bit output of the keypad represents binary equivalent of
the key value. For example, if the 2 key is depressed the binary output from the keypad
is 0010. Refer to Appendix A for more information.
Running Simulations
Once you have completed your logic system MMLogic allows you to simulate your
design as if you were to build and activate the logic system using actual electronic
components. The simulation mode in MMLogic has controls that are similar to VCR or
23
24. DVD controls. You can access these controls from the Simulation drop down menu at
the top or in the tool bar.
1. Run
Select Run to start the simulation.
2. Stop
Select Stop to stop the simulation.
3. Pause
Select Pause to pause the simulation.
4. Reset
Select Reset to set all switches and other components back to their initial conditions.
5. Step
Select Step to step ahead to different sections of the simulation. This function is used
primarily to slow down the simulation and run it one step at a time.
Tutorials
Tutorial 1 - Binary Counter
In the first tutorial we will build a basic 4 bit binary counter that will count from 0-15
binary and then recycle to zero.
The following components are needed to build the binary counter:
24
25. • 4 binary bit counter chip
• 2 switches configured as push button switches
• 4 LEDs, which act at the visual representation of the output
To build the binary counter:
1. Connect push button 1 to the C input of the binary counter chip.
2. Connect push button 2 to the R input of the counter chip and connect one LED to
each of the chip outputs labeled 0, 1, 2, and 3. Once all these connections have
been made you will be ready to run the simulation.
To run the binary counter simulation:
1. Run the simulation by clicking the Run button from the toolbar at the top.
The initial conditions is all 4 LEDs are off representing a count of 0.
2. Depress the count push button switch once. This turns on the least significant bit
LED, representing a count of 1. Pressing the same button again will light the
second least significant bit representing a count of 2.
3. Continue to press the count button 13 more times to reach the binary count of 15.
This is indicated when all LEDs are on representing a count of 15 or 1111 binary.
Note: The second push button resets the counter back to 0 and can be used at any point in
the count.
Tutorial 2 - Hexadecimal Counter
25
26. In this tutorial we will build upon the previous tutorial by turning the binary 4 bit counter
into a 4 bit hexadecimal counter. In order to achieve this the following component needs
to be added to the counter circuit:
• 8 Segment LED.
To build the hexadecimal counter:
1. Open the binary counter circuit that you created in tutorial 1.
2. Go to the palette and drag and drop the 8 Segment LED component to the
workspace.
3. Using wires, connect the 4 inputs of the 7 segment LED, labeled 0-3, to the 4
output lines from the counter chip labeled 0-3.
Leave the decimal point input line unconnected.
Now you are ready to run the simulation.
To run the hexadecimal counter simulation:
The initial condition before the simulation is a count of 0 represented by a 0 output on the
8 segment LED. Run the simulation by clicking the Run button on the toolbar.
1. Push and release the count switch 9 times and observe the 7 segment LED
counting from 0-9.
2. Push the switch one more time to display A, or the hexadecimal equivalent of 10.
Push the switch again to display B, or the hexadecimal equivalent of 11. Pushing
the count switch 4 more times will display F, or the hexadecimal equivalent of 15.
26
27. Note: The reset button operates the same as in the previous tutorial and sets the count
back to 0 at any time in the counting sequence.
Tutorial 3 - Adder
The adder uses an arithmetic logic unit to build a circuit capable of summing two 4 bit
hexadecimal numbers.
The following components are needed to build the adder:
• Arithmetic Logic Unit (ALU)
• 4, 8 Segment LEDs
• 2 Hexadecimal keypads
To build the adder:
1. Connect the 4 outputs from hexadecimal keypad 1 to the 4 least significant bits of
input A of the ALU.
Connect the 4 outputs from hexadecimal keypad 2 to the 4 least significant bits of
input B of the ALU.
2. Using the ground component connect the 4 most significant bits of ALU inputs A
and B together. This disables 4 most significant input bits, which are not needed
for this tutorial.
3. Connect 1 8 segment LED to the 4 output lines of keypad 1.
Connect the second 8 segment LED to the 4 output lines of keypad 2.
*This allows you to monitor the output from the hexadecimal keypads.
27
28. 4. Connect the 4 least significant bit lines from the ALU to the 4 input lines of the
3rd
8 segment LED.
5. Connect the 4 most significant bit lines from the ALU to the 4 input lines of the
4th
8 segment LED.
6. Position the 3rd
and the 4th
8 segment LEDs next to each other with the 3rd
directly
to the right of the 4th
. You are now ready to run the simulation. Run the
simulation by clicking the run button on the toolbar.
To run the adder simulation:
The initial conditions before the simulation are 0.
1. Using the hexadecimal keypads enter a number on each. For example, enter a 5
on the first keypad and a 3 on the second keypad.
2. The output of the ALU has summed the numbers together and the output is 08.
*The hexadecimal adder is capable of adding together two hexadecimal numbers each
ranging from 0-F(15). The maximum adder output is, therefore, 1E hexadecimal or 30
decimal (F+F=1E, 15+15=30).
Appendix A – Boolean and Digital Logic
Boolean Logic Overview
George Boole, an English mathematician and philosopher, developed Boolean logic in
1854 as a variant of elementary algebra. While similar to elementary algebra, Boolean
28
29. logic has different values, operations, and laws. Boolean logic deals with truth values 0
and 1 instead of numbers. In Boolean logic true is represented by the binary digit 1 and
false by the binary digit 0. Since Boolean logic is one of the most important aspects of
modern computers, Boole is often considered the father of computer science.
Applications of Boolean logic include mathematical logic, digital logic, computer
programming, and statistics.
In the 1930’s Claude Shannon, an American mathematician and engineer, found that the
rules of Boolean logic could be applied to switch circuits and worked on this as part of
his thesis while pursuing his Master’s degree from MIT. Shannon was able to use
Boolean logic to simplify the arrangement of electromechanical relays in telephone
switches. This idea is the basic concept that underlies all modern electronic digital
computers.
Values
Elementary algebra deals with real numbers, which all of us are familiar with, for
example, 1, 2, etc. Boolean algebra only deals with 0 and 1, which are thought of as
truth values or as integers. True (1) and false (0) are called bits or binary digits.
Base 2 = Base 10
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
29
30. 101 = 5
110 = 6
111 = 7
Operations
The operations in Boolean logic are similar to the operations in elementary algebra of
multiplication, addition, and negation. The Boolean logic counterparts are AND, OR,
and NOT.
What is Digital Logic?
Basics of Digital Logic
Digital Logic Gates
Digital logic is the application of the truth values of Boolean logic (0 and 1) as applied to
electronic hardware. Digital logic consists of logic gates that are connected to and from a
circuit. Each logic gate uses a Boolean operation and is illustrated by a shape that
indicates the operation.
Input Output
0 0 0
0 1 0
1 0 0
1 1 1
30