辅导 program、讲解 c/c++,Python程序设计
Group Project: CPU design
The goal: this project is intended to make students understand datapath of processor in depth
by design and operating on it.
Task to do
1. Make a group (1 to 6).
2. Your goal: Build a single clock cycle processor (MIPS, 32bits).
3. You have freedom of designing your processor, but there are a few conditions to follow:
- You can choose the number of functions in ALU (but should have at least LAB08 ALU +
shift operations)
- In case of register file, 32 x 32 is recommended (32bits x 32 entries)
- Your processor should run at least load/store, add operations. (actually, addition is
required to make load/store works)
- If you have some difficulties to design or create a specific circuit, then you may use some
internet downloadable subcircuits.
In this case, you should provide:
a. Clear reference like URL where you downloaded the circuit.
b. The reason why you use online available circuit, (e.g., difficult to design, difficult to
understand, etc)
How to write report: Your report must include the following items.
1. Who is responsible for which circuit design (or which part).
2. For each circuit, there should be full (detailed) explanation of design and how it
works, how you checked the correct output according to your input.
3. Description of your final processor
- What is considered.
- Which instruction can be executed.
- A single clock cycled or pipelined?
-
4. For each circuit, save it as circ file with proper name and zip them with your report.
(file name of your circ file should be ALU, register_file, etc.) How will it be graded?
1. Since there are circuits available on the Internet, clear and detailed explanation of
your circuit (each part) will get more points.
2. Also, more functionalities will get more points, for example:
- a single clock cycle → pipelined processor
- aforementioned basic instructions runnable → branch, jump, or immediate
instruction, etc.
- pipelined + forwarding unit (or even hazard detection unit)
3. However, your additional parts are not clearly explained (how to design or how it
works, etc.) → you will not get any extra points.
4. In summary, “a single cycle processor” with good explanation of your circuit will get
higher points than “5 stage pipelined processor including forwarding unit” with poor
explanation.
Here is my suggestion for your report order.
Order of report
0. On the top of your report, write down that who, including ID, was responsible for which part.
1. Brief introduction of your design (around 5-6 sentences):
What is your design goal, to do so what kind of functionalities are considered (e.g., our
design focused on the pipelining, or we focused on basic processor design).
2. For that goal, how did the job divided and assigned.
3. For this section, each part should be clearly explained: how it was designed, how to handle
difficulties, how it works, and how it was tested to see if it works or not, etc.
4. Explanation of final completed processor: what can be done with this processor, how you
checked instructions runnable or get the correct output, etc.
5. Brief conclusion (5-6 sentences but up to you).
6. Any comments you want to make, or any suggestion for this project like how to improve or
something.
7. Reference: If you used online available circuits then you should mention it here, or if you
check some detailed information of a specific circuit (e.g., register file design, etc.), you should
cite a book, or website. (NOTE: If you are citing any sentences from some source like websites
or books, you MUST have a reference for your sentence.) For example, “A continuing trend in
the design of computer systems is the use of superscalar processors that can issue ever more instructions per cycle.[1]”. Here the words in “… ” are from one paper, then in your reference,
your should write where the words are from, like:
[1] Register File Design Considerations in Dynamically Scheduled Processors.pdf. or URL, or
book name with pages.