Professional Documents
Culture Documents
Objectives
Objectives
RFMUX
REGFILE RIN DIN
ASEL
BSEL 0
ASEL NOTE:
DSEL
BSEL Microcode control
1 DSEL fields are
IR[8:0]
highlighted in BOLD
RST RST
CLK CLK
Processor
ABUS BBUS
Status
LDMAR MAR Flags
ABUS BBUS
Z UPZ
ALU ABU BBU
FSEL FSEL S S S
Z,S,C,V UPS
C CIN
FOUT C UPC
FOUT V UPV
DATA_O
Procedure – Verilog
● Your Verilog version of the processor should include the
following files in the project:
● test_cpu.v
● ram.v
● regfile.v
● alu.v
● cpu.v
● microcode_rom_example.v
Procedure – VHDL
● Your VHDL version of the processor should include the following
files in the project:
● test_cpu.vhd
● ram.vhd
● regfile.vhd
● alu.vhd
● cpu.vhd
● microcode_rom_example.vhd
Procedure – Module Hierarchy
TEST_CPU
RAM CPU
CTL
Control Control MUX1
MUX1
Address Memory MUX2
Reg. 2048 x 44 DATA
EXT_ADDR MISC
(CAR) (ROM)
UPDF
MUX2_OUT
MUX2
ASEL
DATA_I BSEL
0 1 C C Z Z S S V V DSEL
FSEL
Data
Status Bits Path
DATA_O
Procedure
● Use the simple test bench from the course shell that instantiates
your CPU.
● The supplied test bench does nothing except to supply a clock and a
reset pulse to the module.
● It stops after a few dozen clock pulses. You can add more if you need
to.
● With the microcode ROM in place, the microcode engine will
start executing microcode.
● Your test vectors should be microcode programs that execute.
Evaluation – Control Logic
● Basic Outcomes (55% to 70%)
● You have instantiated all the sub modules and built the blocks.
● Minimum marks for code that has a simple test bench, and CPU code
that compiles.
● Maximum marks for code that successfully executes the microcode
that is present in the example ROM file.
Evaluation – Control Logic
● Intermediate Outcomes (70% to 80%)
● Basic outcomes fully met.
● Minimum marks for simple modifications to the microcode that try one
of the other MUX2 inputs.
● Maximum marks for modifications to the microcode that test all
conditionals on MUX2
Evaluation – Control Logic
● Advanced Outcomes (80% - 100%)
● Basic and Intermediate outcomes fully met.
● Marks earned for:
– Implementing testing for the EXT_ADDR input
– Full testing of all condition codes (Note: the UPDF field should cause the
processor status flags to update when the respective bit is '1'. That is if the 'C'
bit is set, synchronously update 'C' with 'COUT'.)
– Creating a non-trivial piece of code that implements some kind of processing
with the microcode.