0% found this document useful (0 votes)
92 views

Computer Science 306 - Assignment 1- Creating a Simple ALU-1

The assignment for Computer Science 306 involves designing a simple ALU using Logisim, which includes creating an instruction set, control unit, and writing assembly language programs. The project is divided into four phases, each focusing on different aspects of CPU design and implementation, culminating in a functional CPU. Students must submit their work along with justifications for their design choices and adhere to a grading rubric that evaluates various components of the project.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
92 views

Computer Science 306 - Assignment 1- Creating a Simple ALU-1

The assignment for Computer Science 306 involves designing a simple ALU using Logisim, which includes creating an instruction set, control unit, and writing assembly language programs. The project is divided into four phases, each focusing on different aspects of CPU design and implementation, culminating in a functional CPU. Students must submit their work along with justifications for their design choices and adhere to a grading rubric that evaluates various components of the project.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 8

Computer Science 306 - Assignment 1: Creating a Simple ALU

If you have a Study.com College Saver membership and are seeking college credit for this course,
you must submit an assignment and pass the proctored final exam. You must submit your
assignment before registering for the final. Below you will find prompts and instructions for
submitting your assignment.

Study AI
About this Assignment
In this course, you began by learning the abstract concepts of Boolean logic and binary number
system and ended by using these concepts in order to implement advanced computer
architectures such as CPUs, memory systems, and parallel computers.

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 Get tutoring

Ask something else


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: Send a message Send
http://www.cburch.com/logisim/download.html
This assistant is still learning. Find out more
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.  Lesson 1 in chapter 13 of the course:

Phase One
Start by building an 8-bit ALU using Logisim. This ALU can implement 16 instructions on 8-bit
operands. In previous lessons, you created a 4-bit ALU; this will be 8-bit, and you should adjust/add
components accordingly.

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. Following the example in Building an ALU Using Logisim,
you will need to adjust for 8 bits. Following is a completed 4-bit ALU as an example.
Step 10: Final ALU Testing

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). Write the following programs:

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 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.'
Related Chapters and Lessons
This assignment covers material presented in the chapters:

Digital Circuit Theory: Combinational Logic Circuits

Instruction Set Architecture.

The following lessons, in particular, should help with the assignment:

Building an ALU Using Logisim

Creating an Assembly Language Using an Instruction Set

Practical Application for Computer Architecture: Instruction Set Architecture

Sources
In addition to lessons in these chapters, you may refer to external sources as well. Any sources you
use for this project, whether external or on Study.com, should be cited on a reference page that
follows APA format. If you are unsure about how to use the APA format to cite your sources, please
see the following lessons:

What is APA Formatting

How to Format APA Citations

Grading Rubric
Your project will be graded based on the following rubric:

Needs Total
Category Unacceptable (0-1) Acceptable (4-5)
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 5
instructions with
ALU no choice the justification is
clear and correct
justification not clear or not
choice justification
correct

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

All or most of the The project


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

The instruction the instruction


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

Registers are
Registers are not
added and
Add the operand added and/or not
N/A correctly 5
registers connected to the
connected to the
circuit
circuit

The control unit is The control unit is The control unit is


Design and implement
not implemented in implemented in correctly
the control unit in 10
Logisim and/or has Logisim with minor implemented in
Logisim (x2)
major issues issues Logisim
Write a program that
shifts the content of a
register until the least The program is The program is The program is
significant bit is 0, with missing or contains written but contains correctly written 5
a way to stop shifting major errors minor errors with no errors
if the content of the
register is 11111111

Total Points 50

Before You Submit


When you complete your assignment, we suggest taking some time to check for any errors or to
add any finishing touches. We also suggest that you use online plagiarism checkers such as
PlagScan or DupliChecker to make sure that your assignment is not too similar to any existing
materials. Plagiarized submissions will NOT be graded.

How to Submit Your Assignment


When you are ready to submit your assignment, please fill out the submission form and attach
your assignment. Please make sure your submission includes all four phases and your Logisim
file, or screenshots of your Logisim build. After turning in your assignment, you may go ahead and
take the proctored final exam. You do not need to wait for your written response to be graded. You
should receive your assignment grade within one week.

If you are not satisfied with the score you receive on your assignment, you may revise or rewrite it,
and resubmit them for grading using the same submission form above. Keep in mind that the
grade you receive on your assignment is only a portion of your overall grade for the course, and
you are free to retake the proctored final exam as well if you choose. Please see the course syllabus
for a more detailed breakdown of the grading policy.
Explore our library of over 88,000 lessons

Search Search Courses & Lessons  Browse Browse by subject 

You might also like