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

Subversion Repositories mips_16

[/] [mips_16/] [trunk/] [rtl/] [WB_stage.v] - Blame information for rev 4

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 4 Doyya
/***************************************************
2
 * Module: WB_stage
3
 * Project: mips_16
4
 * Author: fzy
5
 * Description:
6
 *     Write back stage
7
 *
8
 * Revise history:
9
 *
10
 ***************************************************/
11
`timescale 1ns/1ps
12
`include "mips_16_defs.v"
13
module WB_stage
14
(
15
        //input                                 clk,
16
 
17
        // from EX stage
18
        input           [36:0]           pipeline_reg_in,        //      [36:21],16bits: ex_alu_result[15:0]
19
                                                                                                //      [20:5],16bits:  mem_read_data[15:0]
20
                                                                                                //      [4:0],5bits:    write_back_en, write_back_dest[2:0], write_back_result_mux, 
21
 
22
        // to register file
23
        output                                  reg_write_en,
24
        output          [2:0]            reg_write_dest,
25
        output          [15:0]           reg_write_data,
26
 
27
        output          [2:0]            wb_op_dest
28
);
29
 
30
        wire [15:0]      ex_alu_result = pipeline_reg_in[36:21];
31
        wire [15:0]      mem_read_data = pipeline_reg_in[20:5];
32
        wire            write_back_en = pipeline_reg_in[4];
33
        wire [2:0]       write_back_dest = pipeline_reg_in[3:1];
34
        wire            write_back_result_mux = pipeline_reg_in[0];
35
 
36
        /********************** to register file *********************/
37
        assign reg_write_en = write_back_en;
38
        assign reg_write_dest = write_back_dest;
39
        assign reg_write_data = (write_back_result_mux)? mem_read_data : ex_alu_result;
40
 
41
        /********************** to hazard detection unit *********************/
42
        assign wb_op_dest = pipeline_reg_in[3:1];
43
 
44
 
45
endmodule

powered by: WebSVN 2.1.0

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