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

Subversion Repositories mem_ctrl

[/] [mem_ctrl/] [trunk/] [rtl/] [verilog/] [mc_dp.v] - Diff between revs 4 and 8

Go to most recent revision | Show entire file | Details | Blame | View Log

Rev 4 Rev 8
Line 36... Line 36...
////                                                             ////
////                                                             ////
/////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////
 
 
//  CVS Log
//  CVS Log
//
//
//  $Id: mc_dp.v,v 1.1 2001-07-29 07:34:41 rudi Exp $
//  $Id: mc_dp.v,v 1.2 2001-08-10 08:16:21 rudi Exp $
//
//
//  $Date: 2001-07-29 07:34:41 $
//  $Date: 2001-08-10 08:16:21 $
//  $Revision: 1.1 $
//  $Revision: 1.2 $
//  $Author: rudi $
//  $Author: rudi $
//  $Locker:  $
//  $Locker:  $
//  $State: Exp $
//  $State: Exp $
//
//
// Change History:
// Change History:
//               $Log: not supported by cvs2svn $
//               $Log: not supported by cvs2svn $
 
//               Revision 1.1  2001/07/29 07:34:41  rudi
 
//
 
//
 
//               1) Changed Directory Structure
 
//               2) Fixed several minor bugs
 
//
//               Revision 1.2  2001/06/03 11:37:17  rudi
//               Revision 1.2  2001/06/03 11:37:17  rudi
//
//
//
//
//               1) Fixed Chip Select Mask Register
//               1) Fixed Chip Select Mask Register
//                      - Power On Value is now all ones
//                      - Power On Value is now all ones
Line 130... Line 136...
//
//
// WB READ Data Path
// WB READ Data Path
//
//
 
 
always @(posedge clk)
always @(posedge clk)
        if(mem_type == `MEM_TYPE_SDRAM) wb_data_o <= #1 rd_fifo_out[31:0];
        if(mem_type == `MC_MEM_TYPE_SDRAM)      wb_data_o <= #1 rd_fifo_out[31:0];
        else
        else
        if(mem_type == `MEM_TYPE_SRAM)  wb_data_o <= #1 rd_fifo_out[31:0];
        if(mem_type == `MC_MEM_TYPE_SRAM)       wb_data_o <= #1 rd_fifo_out[31:0];
        else                            wb_data_o <= #1 mc_data_d;
        else                            wb_data_o <= #1 mc_data_d;
 
 
always @(posedge clk)
always @(posedge clk)
        mc_data_del <= #1 {mc_dp_i, mc_data_i};
        mc_data_del <= #1 {mc_dp_i, mc_data_i};
 
 
Line 156... Line 162...
//
//
// WB WRITE Data Path
// WB WRITE Data Path
//
//
 
 
always @(posedge clk)
always @(posedge clk)
        if(mem_wb_ack_o | (mem_type != `MEM_TYPE_SDRAM) )
        if(mem_wb_ack_o | (mem_type != `MC_MEM_TYPE_SDRAM) )
                mc_data_o <= #1 wb_data_i;
                mc_data_o <= #1 wb_data_i;
 
 
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//
//
// Read Data Packing
// Read Data Packing
Line 168... Line 174...
 
 
always @(posedge clk)
always @(posedge clk)
        if(pack_le0)                            byte0 <= #1 mc_data_i[7:0];
        if(pack_le0)                            byte0 <= #1 mc_data_i[7:0];
 
 
always @(posedge clk)
always @(posedge clk)
        if(pack_le1 & (bus_width == `BW_8))     byte1 <= #1 mc_data_i[7:0];
        if(pack_le1 & (bus_width == `MC_BW_8))  byte1 <= #1 mc_data_i[7:0];
        else
        else
        if(pack_le0 & (bus_width == `BW_16))    byte1 <= #1 mc_data_i[15:8];
        if(pack_le0 & (bus_width == `MC_BW_16)) byte1 <= #1 mc_data_i[15:8];
 
 
always @(posedge clk)
always @(posedge clk)
        if(pack_le2)                            byte2 <= #1 mc_data_i[7:0];
        if(pack_le2)                            byte2 <= #1 mc_data_i[7:0];
 
 
always @(bus_width or mc_data_i or byte0 or byte1 or byte2)
always @(bus_width or mc_data_i or byte0 or byte1 or byte2)
        if(bus_width == `BW_8)  mc_data_d = {mc_data_i[7:0], byte2, byte1, byte0};
        if(bus_width == `MC_BW_8)       mc_data_d = {mc_data_i[7:0], byte2, byte1, byte0};
        else
        else
        if(bus_width == `BW_16) mc_data_d = {mc_data_i[15:0], byte1, byte0};
        if(bus_width == `MC_BW_16)      mc_data_d = {mc_data_i[15:0], byte1, byte0};
        else                    mc_data_d = mc_data_i;
        else                    mc_data_d = mc_data_i;
 
 
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//
//
// Parity Generation
// Parity Generation
//
//
 
 
always @(posedge clk)
always @(posedge clk)
        if(mem_wb_ack_o | (mem_type != `MEM_TYPE_SDRAM) )
        if(mem_wb_ack_o | (mem_type != `MC_MEM_TYPE_SDRAM) )
                mc_dp_o <= #1   { ^wb_data_i[31:24], ^wb_data_i[23:16],
                mc_dp_o <= #1   { ^wb_data_i[31:24], ^wb_data_i[23:16],
                                    ^wb_data_i[15:08], ^wb_data_i[07:00] };
                                    ^wb_data_i[15:08], ^wb_data_i[07:00] };
 
 
////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////
//
//

powered by: WebSVN 2.1.0

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