Processor Design Part 2
Circuits due Mon Nov 11th by 11:59pm in your Lab06 GitHub Repo
Requirements
- For this lab, please use an incremental development approach and commit two top-level circuits:
lab06-part1.dig
andlab06-part2.dig
. - Each top-level circuit should contain its own decoder circuit to identify instructions and propagate the appropriate control signals.
- For this lab you will combine your work from lab05 with a new implementation of the control lines as described in the Processor Guide Part 2
- Use the spreadsheet approach to develop a decoder table that associated inputs (opcode, funct3, funct7, and funct6) with decoder outputs (
RFW
,ALUOp
, etc.). - You must have inputs for
CLK
,EN
,CLR
, andPROG
, and outputs forA0
,A1
,A2
andDONE
- Submit all your
.dig
files,.s
and.hex
files, and a PDF of your instruction decoder spreadsheet.
Part 1
Build decoders (for instructions, registers, and immediates) and top-level processor circuit which can execute this program (also given in the Guide)
first_s: li a0, 1 li a1, 2 add a2, a0, a1 unimp
Part 2
- Build the control and top-level processor circuit which can execute this program (also given in the Guide)
main: li a0, 1 li a1, 2 jal first_s unimp first_s: add a0, a0, a1 ret
Given
- You may use any of the circuits shown in the Processor Guide Part 2
- You may use any of Digital’s built-in components, or your own if you prefer.
Rubric
100 pts: 50 pts for each part, as shown by the autograder