Modularized project; mux, clock, and reg done; Progress on RegFile

This commit is contained in:
jose.rodriguezlabra
2019-02-15 12:24:26 -05:00
parent d147e12073
commit 7aa2cfff2a
5 changed files with 202 additions and 25 deletions

View File

@@ -0,0 +1,74 @@
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 02/15/2019 12:21:16 PM
// Design Name:
// Module Name: RegFile
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module RegFile(input wire clk, reset,
input wire [1:0] write_index, op0_idx, op1_idx,
input wire [8:0] write_data,
output wire [8:0] op0, op1);
wire [8:0] r0_out, r1_out, r2_out, r3_out;
// To select a register En input must be 2'b00
register r0(
.clk(clk),
.reset(reset),
.En({write_index[0], write_index[1]}),
.Din(write_data),
.Dout(r0_out));
register r1(
.clk(clk),
.reset(reset),
.En({write_index[0], ~write_index[1]}),
.Din(write_data),
.Dout(r1_out));
register r2(
.clk(clk),
.reset(reset),
.En({~write_index[0], write_index[1]}),
.Din(write_data),
.Dout(r2_out));
register r3(
.clk(clk),
.reset(reset),
.En({~write_index[0], ~write_index[1]}),
.Din(write_data),
.Dout(r3_out));
mux m0(
.A(r0_out),
.B(r1_out),
.C(r2_out),
.D(r3_out),
.switch(op0_idx));
mux m1(
.A(r0_out),
.B(r1_out),
.C(r2_out),
.D(r3_out),
.switch(op1_idx));
endmodule