Transcript Number One
Number One
Tom Bozic
Ian Nuber
Greg Ramsey
Henry Romero
Matt Unangst
GITHU Processor
General Purpose 32-bit, pipelined computer
processor
MIPS-like architecture
–
24-bit address space
–
–
Reduced instruction set
22 bits, concatenate with ending 00
32 bit boundaries
16 Registers
Registers
16 Registers (ease in immediate operations)
3 Special Purpose
–
–
–
R0 – zero
R14 – stack pointer
R15 – return address
Instruction Set Architecture
First two bits indicate instruction category
–
16 bit immediate built into R-type reduces complexity
of design
Addressing Modes
–
–
Load, store, bra/jump, R-type
Direct
Indirect with Offset
ISA accounts for full address space
–
NO PC-relative addressing
Instruction Format
Load / Store
31 30 29
Op(2)
24 23
Addr(6)
20 19
Rt (4)
16 15
Rs (4)
0
Address Displacement (16)
R-Type
31
24 23
Opcode(8)
20 19
Rd(4)
16 15
Rs1 (4)
12 11
Rs2 (4)
0
Immediate (12)
Bra / Jmp
31 30 29
Op(2)
26 25
Type(4)
24 23
Addr (2)
20 19
Rs (4)
0
Address Continued (20)
Instructions
Arithmetic
–
–
–
–
Add
Addi – add immediate
Sub
Subi – subtract immediate
Data Transfer
–
–
Ld - load word
St – store word
Instructions
Logic
–
–
–
–
–
–
–
–
And
Andi – And immediate
Or
Ori – Or immediate
Nor
Nand
Sll – logic shift left
Slr – logic shift right
Instructions
Branches
–
–
Beq – branch equal to zero
Bne – branch not equal to zero
Jumps
–
–
Jmp – jump to specified address
Jsr – jump to subroutine
Interrupt handler
Save current PC in register
Nop – No Operation
Datapath Diagram
Functional Units
Register File
ALU
Control Logic
Memory System
Assembler
Hardware
Xilinx XCV300/400/600/800 FPGA
Keep FPGA on board
Make PCB for all off-chip peripherals
Connect two boards together via ribbon
cable
Processor I/O
Serial RS232 port
LCD, Monitor outputs
Keypad, Keyboard Inputs
Vital Goals
Implement processor on FPGA in Verilog
–
–
Pipelined
Thorough simulation
Complete Assembler
Keypad, LCD I/O
Make PCB with off-chip peripherals
Successfully run assembly program
Extended Goals
On-chip caches (Instruction and data)
C Compiler
Monitor, Keyboard I/O
Multiplier, Divider units
Floating Point Units
Individuals Roles
Tom Bozic
–
Ian Nuber
–
ALU, PCB design
Henry Romero
–
Assembler, control logic, test-program design
Greg Ramsey
–
Assembler, control logic, documentation
PCB design, Memory system
Matt Unangst
–
–
Pipeline implementation (forwarding, rollback)
Register File
Schedule
Risks
PCB issues (signal noise, speed, etc)
–
Wire wrapping
Pipeline complexity
–
Design allows for insertion of no-ops to essentially
turn machine into multi-cycle machine
Questions?