CSED311 – Lab3: Single Cycle CPU Solved

$ 24.99
Category:

Description

함형규
hhk971@postech.ac.kr
Contents
n CPU structure Modularization Magic memory TSC CPU Assignment
n Tips Q&A
CPU Structure

CPU is an instruction processing FSM CPU consists of several components
̶ Datapath
• ALU, Register file, etc.. ̶ Control Unit
Datapath

̶ Units in the path of data
• SYSTEM BUS(deliver the memory data) ALU Register ALU SYSTEM BUS ̶ ALU, Register file, and other data-wires
Control unit

̶ Decodes instruction
̶ Then, generates control signals that control the components in the Datapath
Modularization
You must modularize the main CPU components
̶ Datapath
• alu.v
• register_file.v
̶ Contorl Unit
• contorl_unit.v Etc.
̶ Modularize other components if you need
• MUX, sign-extender, adder, etc..
Magic Memory
n It gives you memory data with a slight delay
(less than a clock cycle)
̶ In testbench code (line 38~58)
n It is NOT realistic model of the main memory
̶ Memory is much slower than CPU
̶ However, we assume there is a magic memory which is faster than CPU
TSC CPU
RISC-V CPU vs TSC CPU

̶ Has shorter instructions, smaller registers, and fewer instruction types!
• A simple ISA
̶ More details in TSC_manual.pdf
Assignment
Implement a single-cycle TSC CPU
̶ Your submission must include
• cpu.v
• alu.v
• register_file.v (with 4 registers)
• contorl_unit.v
̶ Your implementation of the CPU should process instruction in each clock cycle
̶ Instructions
• Implement all instructions in opcodes.v
• You don’t need to implement instructions that not containing in opcodes.v (e.g : HLT, BNI, etc..)

Tips
CPU module ports
output readM “read” signal to memory
output writeM “write” signal to memory
output [`WORD_SIZE-1:0] address target memory address
inout [`WORD_SIZE-1:0] data data for reading or writing (can be used as both input and output)
input ackOutput signal from memory (“data is written”)
input inputReady signal from memory (“data is ready for reading”)
input reset_n reset your CPU (registers, PC, etc..)
input clk clock signal
Tips (cont’d)
n About inout port
̶ Can be used as both input and output port
̶ Set wire value ‘z’ (high impedance) if you are using it as input
• You could get the input value only if it’s ‘z’ value ̶ Google for more details
Tips (cont’d)
n Negedge clk
̶ You might need 2 events in one clock cycle
• For example, CPU fetches instruction and need one more memory data fetch for load store instruction
̶ You can use both @(posedge clk) and @(negedge clk) ̶ Do not use Delay

Report Tips
Clearly distinguish between design and implementation
̶ Design
Describe how did you divide submodules and the role of the modules
̶ Implementation
Explain how did you implement each submodule
Please do not just copy your Verilog code
Q&A

Reviews

There are no reviews yet.

Be the first to review “CSED311 – Lab3: Single Cycle CPU Solved”

Your email address will not be published. Required fields are marked *