0% found this document useful (0 votes)
244 views5 pages

Logisim Project

This document outlines a four-phase project to design and build a simple CPU using Logisim. In phase one, students will design an 8-bit ALU with at least nine instructions and suggest five additional instructions. In phase two, students will create an opcode table and design the instruction set. Phase three involves implementing a control unit. Finally, in phase four, students will write assembly programs for the CPU, including branching instructions. The document provides detailed instructions for each phase and evaluation criteria for the completed project.

Uploaded by

apeelec10337
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
244 views5 pages

Logisim Project

This document outlines a four-phase project to design and build a simple CPU using Logisim. In phase one, students will design an 8-bit ALU with at least nine instructions and suggest five additional instructions. In phase two, students will create an opcode table and design the instruction set. Phase three involves implementing a control unit. Finally, in phase four, students will write assembly programs for the CPU, including branching instructions. The document provides detailed instructions for each phase and evaluation criteria for the completed project.

Uploaded by

apeelec10337
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

About this Assignment

Upon completion of this project, you will be able to:

 Design and develop a simple ALU as a part of a CPU


 Decide on the number of operands for the ALU and design its instruction set
 Design and construct the control unit of the CPU
 Write assembly language for the constructed CPU

Prompt
In this project, you will design and build a simple CPU on Logisim and write programs that can
run on it. If you haven't yet, you can download Logisim by following this link:
http://www.cburch.com/logisim/download.html

Your design will go through four phases. In the first phase, you will design and build the ALU
using Logisim. In the second phase, you will design the instruction set that implements the
instructions you designed in phase one. In the third phase, you will design and implement a
control unit for this ALU using Logisim. By connecting the CU to the ALU, you will get a
functional CPU. In phase four of the project, you will write assembly language programs for the
CPU you built.

Phase One
Start by building an 8-bit ALU using Logisim. This ALU can implement 16 instructions on 8-bit
operands. We would suggest the following minimum list of instructions:

 Arithmetic addition
 Increment
 Decrement
 Comparison (with 3 outputs: one for equals, one for less than and one for greater than)
 Logic bitwise Not
 Logic bitwise And
 Logic bitwise Or
 Register right logic shift
 Register left logic shift

In addition to these nine instructions, please suggest five more instructions that the ALU can
implement for a total of 14 instructions (we are reserving 2 instructions for branching). Justify
the importance of the five instructions you added in a Word doc to submit as part of this
assignment. Label these instructions as 'Phase One.'
After you've suggested and justified your five suggested instructions, please build at least the
nine above-mentioned operations as blocks in Logisim.

Phase Two
In phase two of the project, you are required to design the instruction set of the ALU/CPU as
follows:

 Create the opcode table for the ALU by giving a binary code and a name for each
instruction you built in Logisim in phase one.
 Decide how many operands you want your instructions to handle and justify your
choice. We suggest either one operand with accumulator or two operands with the
result stored in one of the input registers.
 In Logisim, add a multiplexer to the circuit you built in phase one that chooses one of
the available operations. The simplest way to create this part of the CPU is to connect
the outputs of the multiplexer to the inputs of AND arrays connected to the output of
the operation blocks.

Please record your answer to phase two in the same Word doc and label it 'Phase Two.'

Phase Three
In phase three, you are required to use Logisim to implement the control unit for at least the
following three operations:

 addition
 logic bitwise AND
 right logic shift

In order to finish this phase, you need to add operand registers according to the decision you
took for the number of operands in phase two and, if needed, a flag register.

Please record your answer to phase three in the same Word doc and label it 'Phase
Three.'

Phase Four
In order to be able to write assembly language for the CPU we need to add two instructions
(without implementation):
 branch to an address (name it JMP)
 conditional branch to an address (name it CJMP and suppose that the jump takes place
if the comparison operation result is 'equals')

Now, write the following programs using the assembly language you designed in the previous
phases of the project as well as these two branching additional instructions:

 Write a program that adds two operands.


 Write a program that adds operands until the new value to be added is 0. You do not
need to implement the input operations to modify the contents of the registers. Just
assume that by the end of each iteration, the register content is modified.
 Write a program that increments by 2 the content of a register 10 times.
 Write a program that shifts the content of a register until the least significant bit is 0.
Think of a way to stop shifting if the content of the register is 11111111 and add it to
your program.

Please record your programs in the same Word doc and label them under the section
'Phase Four.'

Sources
Any external sources you use for this project should be cited on a reference page that follows
APA format.

To fiverr seller:
Your work will be evaluated using the following table. Acceptable (5 points) is what is required
for all.

Total
Unacceptable (0- Needs
Category Acceptable (4-5) Possible
1) Improvement (2-3)
Points

Less than 5 The project


No additional additional contains 5
Addition of 5 instructions are instructions are additional
instructions to the suggested and/or suggested and/or instructions with 5
ALU (x1) no choice the justification is clear and correct
justification not clear or not choice
correct justification

Not all 9
Build the 9 original All 9 instructions All 9 instructions
instructions are
instructions in are implemented in are implemented 5
implemented in
Logisim (x1) Logisim with some in Logisim and
Logisim and/or
there are major minor functional functioning
functional issues issues correctly

All or most of the The project


Create the opcode Some instructions
instructions are contains a
table for the ALU are missing from 5
missing from the complete opcode
(x1) the opcode table
opcode table table

The instruction The instruction the instruction


Build the instruction selection unit is selection unit is selection unit is
selection unit using missing or not built in Logisim correctly built in 5
a multiplexer (x1) functioning with minor Logisim with no
correctly functional issues functional issues

Registers are
Add the operand Registers are not
added and
registers and if added and/or not
N/A correctly 5
needed the flag connected to the
connected to the
register (x1) circuit
circuit

Design and The control unit is The control unit is The control unit is
implement the not implemented implemented in correctly
5
control unit in in Logisim and/or Logisim with minor implemented in
Logisim (x1) has major issues issues Logisim

The program is
Write a program The program is The program is
written but
that adds two missing or contains correctly written 5
contains minor
operands (x1) major errors with no errors
errors

Write a program The program is


The program is The program is
that adds operands written but
missing or contains correctly written 5
until the new value contains minor
major errors with no errors
to be added is 0 (x1) errors

Write a program
The program is
that increments by 2 The program is The program is
written but
the content of a missing or contains correctly written 5
contains minor
register 10 times major errors with no errors
errors
(x1)

Write a program
that shifts the
The program is
content of a register The program is The program is
written but
until the least missing or contains correctly written 5
contains minor
significant bit is 0, major errors with no errors
errors
with a way to stop
shifting if the
content of the
register is 11111111
(x1)

Total Points 50

You might also like