OpenCores
URL https://opencores.org/ocsvn/fpga-cf/fpga-cf/trunk

Subversion Repositories fpga-cf

[/] [fpga-cf/] [trunk/] [hdl/] [PATLPP/] [regfile/] [regfile.v] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 peteralieb
// Register File
2
// Author: Peter Lieber
3
//
4
 
5
module regfile
6
(
7
        input                           clk,
8
        input                           rst,
9
 
10
        input                           wren_low,
11
        input                           wren_high,
12
        input           [3:0]    address,
13
 
14
        input           [15:0]   data_in,
15
        output  [15:0]   data_out
16
);
17
 
18
reg     [15:0]   mem[15:0];
19
wire                            we;
20
wire    [15:0]   write_data;
21
 
22
assign data_out = mem[address];
23
assign we = wren_high | wren_low;
24
assign write_data = (wren_high & ~wren_low) ? {data_in[7:0], data_out[7:0]} :
25
                                                        (~wren_high & wren_low) ? {data_out[15:8], data_in[7:0]} :
26
                                                        data_in;
27
 
28
always @(posedge clk)
29
begin
30
        if (we)
31
                mem[address] <= write_data;
32
end
33
 
34
endmodule

powered by: WebSVN 2.1.0

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