OpenCores
URL https://opencores.org/ocsvn/fluid_core_2/fluid_core_2/trunk

Subversion Repositories fluid_core_2

[/] [fluid_core_2/] [trunk/] [rtl/] [Reg_File.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 azmathmoos
//////////////////////////////////////////////////////////////////////
2
////                                                              ////
3
//// Copyright (C) 2014-2015 Azmath Moosa                         ////
4
////                                                              ////
5
//// This source file may be used and distributed without         ////
6
//// restriction provided that this copyright statement is not    ////
7
//// removed from the file and that any derivative work contains  ////
8
//// the original copyright notice and the associated disclaimer. ////
9
////                                                              ////
10
//// This source file is free software; you can redistribute it   ////
11
//// and/or modify it under the terms of the GNU Lesser General   ////
12
//// Public License as published by the Free Software Foundation; ////
13
//// either version 3 of the License, or (at your option) any     ////
14
//// later version.                                               ////
15
////                                                              ////
16
//// This source is distributed in the hope that it will be       ////
17
//// useful, but WITHOUT ANY WARRANTY; without even the implied   ////
18
//// warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR      ////
19
//// PURPOSE.  See the GNU Lesser General Public License for more ////
20
//// details.                                                     ////
21
////                                                              ////
22
//// You should have received a copy of the GNU Lesser General    ////
23
//// Public License along with this source; if not, download it   ////
24
//// from http://www.opencores.org/lgpl.shtml                     ////
25
////                                                              ////
26
//////////////////////////////////////////////////////////////////////
27
`timescale 1ns / 1ps
28
`include "Configuration.v"
29
module Reg_File(
30
        input Clk,
31
        input RST,
32
        input [0:`reg_sel_w] reg_a,
33
        input [0:`reg_sel_w] reg_b,
34
        input [0:`reg_sel_w] wb_reg,
35
        input [0: `dpw] word,
36
        output [0:`dpw] op_a,
37
        output [0:`dpw] op_b,
38
        input write
39
    );
40
 
41
//------------Register Array---------------//
42
        reg [0:`dpw] registers[0:`reg_n];
43
 
44
        //Init for Testing
45
        initial begin
46
        registers[0] <= 0;
47
        registers[1] <= 0;
48
        registers[2] <= 0;
49
        registers[3] <= 0;
50
        registers[4] <= 0;
51
        registers[5] <= 0;
52
        registers[6] <= 0;
53
        registers[7] <= 0;
54
        end
55
 
56
 
57
        //Write Back Stage
58
 
59
 
60
        always@(posedge Clk) begin                                                      //---The reg_a and word lines are ready before the edge, the rising edge of next cycle completes the write back---//
61
                if (write) begin//write
62
                        registers[wb_reg] <= word;
63
                end
64
        end
65
 
66
        //ID stage - Read
67
        assign op_a = registers[reg_a];
68
        assign op_b = registers[reg_b];
69
 
70
endmodule

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.