More compact wire definitions in CPU
This commit is contained in:
23
CPU.sv
23
CPU.sv
@ -11,8 +11,7 @@ module CPU(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Decoder
|
// Decoder
|
||||||
var logic fetch, decode, execute, writeback;
|
var logic fetch, decode, execute, writeback, clk;
|
||||||
var logic clk;
|
|
||||||
assign clk = enable && clock; // Only clock the CPU when enabled
|
assign clk = enable && clock; // Only clock the CPU when enabled
|
||||||
Decoder dec(
|
Decoder dec(
|
||||||
.clock(clk),
|
.clock(clk),
|
||||||
@ -25,8 +24,7 @@ Decoder dec(
|
|||||||
|
|
||||||
// Program Counter
|
// Program Counter
|
||||||
var logic pc_set;
|
var logic pc_set;
|
||||||
var logic[7:0] pc_in;
|
var logic[7:0] pc_in, pc_out;
|
||||||
var logic[7:0] pc_out;
|
|
||||||
Counter pc(
|
Counter pc(
|
||||||
.clock(fetch), // WARNING: Phase 1 - Fetch
|
.clock(fetch), // WARNING: Phase 1 - Fetch
|
||||||
.reset(reset),
|
.reset(reset),
|
||||||
@ -44,11 +42,10 @@ ROM rom(
|
|||||||
);
|
);
|
||||||
|
|
||||||
// Controller
|
// Controller
|
||||||
var logic[1:0] ctrl_opcode;
|
|
||||||
var logic[5:0] ctrl_arg;
|
|
||||||
var logic[2:0] ctrl_arg0, ctrl_arg1;
|
|
||||||
var logic ctrl_regsset, ctrl_pcset;
|
var logic ctrl_regsset, ctrl_pcset;
|
||||||
var logic[2:0] ctrl_regssavesel, ctrl_regsloadsel, ctrl_aluopc, ctrl_condopc;
|
var logic[1:0] ctrl_opcode;
|
||||||
|
var logic[2:0] ctrl_arg0, ctrl_arg1, ctrl_regssavesel, ctrl_regsloadsel, ctrl_aluopc, ctrl_condopc;
|
||||||
|
var logic[5:0] ctrl_arg;
|
||||||
Controller ctrl(
|
Controller ctrl(
|
||||||
.clock(decode), // WARNING: Phase 2 - Decode
|
.clock(decode), // WARNING: Phase 2 - Decode
|
||||||
.reset(reset),
|
.reset(reset),
|
||||||
@ -67,12 +64,7 @@ Controller ctrl(
|
|||||||
|
|
||||||
// Register Bank
|
// Register Bank
|
||||||
var logic regs_set;
|
var logic regs_set;
|
||||||
var logic[7:0] regs_savebus;
|
var logic[7:0] regs_savebus, regs_loadbus, regs_jumptarget, regs_aluopA, regs_aluopB, regs_aluresult;
|
||||||
var logic[7:0] regs_loadbus;
|
|
||||||
var logic[7:0] regs_jumptarget;
|
|
||||||
var logic[7:0] regs_aluopA;
|
|
||||||
var logic[7:0] regs_aluopB;
|
|
||||||
var logic[7:0] regs_aluresult;
|
|
||||||
RegisterFile regs(
|
RegisterFile regs(
|
||||||
.clock(writeback), // WARNING: Phase 4 - Writeback
|
.clock(writeback), // WARNING: Phase 4 - Writeback
|
||||||
.reset(reset),
|
.reset(reset),
|
||||||
@ -111,9 +103,6 @@ assign pc_set = cond_result && ctrl_pcset;
|
|||||||
assign pc_in = regs_jumptarget;
|
assign pc_in = regs_jumptarget;
|
||||||
assign regs_set = ctrl_regsset && (ctrl_arg0 != 3'b110);
|
assign regs_set = ctrl_regsset && (ctrl_arg0 != 3'b110);
|
||||||
|
|
||||||
// assign regs_savebus = ;
|
|
||||||
// assign cpuout = ;
|
|
||||||
|
|
||||||
// TODO: Should add this to the Controller probably?
|
// TODO: Should add this to the Controller probably?
|
||||||
// Or a new module, like "BusController"? Or just "Bus"?
|
// Or a new module, like "BusController"? Or just "Bus"?
|
||||||
always @(execute) case (ctrl_opcode)
|
always @(execute) case (ctrl_opcode)
|
||||||
|
|||||||
Reference in New Issue
Block a user