Answered step by step
Verified Expert Solution
Question
1 Approved Answer
CSE 3 3 2 : Computer Organization and Architecture Instructor: Dr . Mohammad Abdul Qayum ( MAQm ) Office: SAC 1 0 4 4 A
CSE : Computer Organization and Architecture
Instructor: Dr Mohammad Abdul Qayum MAQm
Office: SAC A
Email : mohammad.qayum@northsouth.edu
Phone: Ext.
Design Your Own CPU & Assembler
One of the course objectives is to be able to design a complete CPU system. It starts with
learning about ISA, advanced ALU, data path and control, pipelining in theory. In order to make
this learning more effective a step by design of the complete CPU system is carried out through
pen and paper, simulation tools, hardware etc. Students work in a group and try to develop small
pieces and finally connect them together to get their cpu as explained in the following diagram.
Title : ISA Design Type: Document
Consider yourself as a computer architect and you are employed in a vendor company. The
company told you that they are going to design a new bit singlecycle CPU that has separate
Data and Instruction Memory. The ISA should be general purpose enough to be able to run
provided general programs
InputOutput Operations
It should also be able to connect with the display unit ex: seven segment display to display
results or any data and a keyboard or something similar to get input from the user. you should
make any necessary arrangements extra instruction or special register or any other to
accommodate this external communication into your ISA design. For example, you might
consider including dedicated instructions like IN & OUT to perform the inputoutput operations.
Design requirements
As an ISA designer your job is to propose a detailed design of the ISA. Few of the issues
probably you would have to address are given below:
How many operands?
Types of operand? Register based?? Memorybased? Mixed?
How many operations? Why
Types of operations? Arithmeticlogicalbranch type?? How many from each category? Draw
a table with list of instructions, instruction type, their opcode, functionality if any
How many formats would you choose? Draw the formats along with field name and number of
bits in each field
list of registers? Draw a register table. with register name and values
Benchmark Programs
You have to design your ISA focusing on the following three categories of programs
a Simple arithmetic & logic operations
b Programs that requires checking conditions
c Loop type of program s
Guideline
Your assignment will be evaluated according to the following criteria:
Ability to execute the provided benchmark programs test programs and other general
purpose programs?
How much is it different from existing ISAs such as MIPS?
If it is very similar to MIPS, provide your reasonings behind the outcome.
You must answer those with your reasoning. While you are deciding on the above issues, you
might consider some sample high level program that can be run on this CPU using your ISA.
Say, during the decisions about the types of operation to include, you can think about the type of
highlevel language program it will be able to execute. Design might vary from one group to
another and there might be multiple possible solutions. You will be scored based on your clear
reasoning.
Title : Assembler Type : Software
It is difficult and errorprone to manually write machine code. The problem can be addressed by
writing an assembler, which can automatically generate a machine code from an assembly file. In
this project, you will use an assembler for your ISA. The assembler reads a program written
using assembly language in a text file asm or s then translates it into binary code and
generates an output file txt or bin containing machine code. The generated output files will
later be useful to run a program when you will develop your actual CPU in verilog. Language:
You can use any highlevel language. Some demo codes are provided in the following link the
model output is binary that includes address, you may need to remove it along with any spaces
between binaries You are strongly advised to use the example to save your time. You might
need to modify the existing functionsclasses to fit your needs.
Also, you can take advantage of AI such as ChatGPT or Bard to develop your own assembler.
IO fromat:
The input code will be written in a text file eg extension bin in assembly format following
your ISA. There will be one instruction per line. The output will be generated
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started