essor 00000000 D20 DOO D10 00000000 00000000 XO COC10B00 0 00 0 B10 B20 F2 F1 0 F20 000 MUX 00000000
COMPLETE THE 8 BIT MICROPROCESSOR IN LOGISM, THE ATTEMPTED COMPONENTS FOR EACH SECTION HAS BEEN ATTACHED SO USE THOSE AS A GUIDE AND COMBINE THEM TO MAKE THE 8 BIT PROCESSOR SEND SCREENSHOT/ATTACHMENTS OF THE COMPLETED SECTIONS AND OVERALL 8 BIT MICROPROCESSOR PLEASE LOGISM ONLY PLEASE AND THANKS The Arithmetic Logic Unit
The most important and possible most difficult component to implement is the arithmetic logic unit. The
functions of the ALU are shown in Table 1. The ALU should have 5 inputs (A-input, B-input, F0-input, F1-input, Finput) and 1 output (C-output). You will need to determine how many bits each input and output should have.
Remember, you are designing an 8-bit microprocessor! To achieve the specified ALU functions, think about
which digital logic component(s) you can use to accomplish the task. For example, to add the value on the A-bus
8-bit ALU
D3
D2
D1
D0
A B
F0
F1
F2
C0=0, C1=0
C0=0, C1=1
C0=1, C1=0
C0=1, C1=1 B0=1, B1=1
B0=1, B1=0
B0=0, B1=1
C
2
to the value on the B-bus, you can simply use an 8-bit adder. Explore the components in Logisim! Additionally,
you can think about using a multiplexer to determine which ALU function will be performed. We did all of this
in the lectures, so please review. Each section of the ALU can be designed separately and then included as an
integrated circuit (IC). We covered this in Lab 1.
F2 F1 F0 Functionality
0 0 0 ADD the value on the A bus to the value on the B bus
0 0 1 AND the value on the A bus to the value on the B bus
0 1 0
LEFT SHIFT the value on the B bus by the number of bits specified on
the A bus
0 1 1
RIGHT SHIFT the value on the B bus by the number of bits specified on
the A bus
1 0 0 INCREMENT the value on the A bus by 1
1 0 1 IF D0 = 1 THEN B ELSE 0
1 1 0 SET output of the ALU to 0
1 1 1 SET the output of the ALU to the value on the B bus
Table 1: ALU functions
Section 2: The Data Register
There should be 4 data registers, D0, D1, D2, and D3 respectively. You can simply use several register
components in Logisim to accomplish this. Please note, this component is an integrated circuit, and you will not
see its internal components. In fact, you shouldn’t worry about that. All you should focus on are the inputs and
output. To find out what each input and/or output is doing so that you can make the correct wiring, simply hover
the mouse pointer over the input/output as seen in Figure 2. You will need to review how the clock pulse
generator works with registers. Remember, the register only reads its inputs when the clock signal is high. You
Figure 2: Data register in Logisim
Section 3: The Control Unit ]
For the Control Unit, you can simply use an 8-bit input switch or otherwise, which will act as the control word
input to the data-path (we will not focus on using a control store nor selector). The control word input should
be based on the format shown in table 2. These values should be sent to the data-path to accomplish a given
task. In addition to the control word, you will need to implement a way of ensuring the correct register(s) are
selected to either input (LOAD) or output (Open Enable) a value. Again, think about using a multiplexer or
otherwise. For X0, you will not be using the value, but include it in the design.
3
X0 C0 C1 B0 B1 F2 F1 F0
Table 2: Control Unit control word format
Section 4: Adding a Display Screen
Your next task is to display the value stored in each register in its decimal representation. Consider using the 7-
Segment Display component in Logisim. Note, your registers store 8 bits of information, so you should be able
to display up to the maximum value that 8 bits can represent (255). You will need to use more than one 7-
Segment Display for each register. figure out how to connect them together to function seamlessly!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps