Line 35... |
Line 35... |
//// ////
|
//// ////
|
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
|
|
// CVS Log
|
// CVS Log
|
//
|
//
|
// $Id: mc_adr_sel.v,v 1.2 2001-08-10 08:16:21 rudi Exp $
|
// $Id: mc_adr_sel.v,v 1.3 2001-11-29 02:16:28 rudi Exp $
|
//
|
//
|
// $Date: 2001-08-10 08:16:21 $
|
// $Date: 2001-11-29 02:16:28 $
|
// $Revision: 1.2 $
|
// $Revision: 1.3 $
|
// $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.2 2001/08/10 08:16:21 rudi
|
|
//
|
|
// - Changed IO names to be more clear.
|
|
// - Uniquifyed define names to be core specific.
|
|
// - Removed "Refresh Early" configuration
|
|
//
|
// Revision 1.1 2001/07/29 07:34:41 rudi
|
// Revision 1.1 2001/07/29 07:34:41 rudi
|
//
|
//
|
//
|
//
|
// 1) Changed Directory Structure
|
// 1) Changed Directory Structure
|
// 2) Fixed several minor bugs
|
// 2) Fixed several minor bugs
|
Line 65... |
Line 71... |
//
|
//
|
//
|
//
|
|
|
`include "mc_defines.v"
|
`include "mc_defines.v"
|
|
|
module mc_adr_sel(clk, csc, tms, wb_ack_o, wb_stb_i, wb_addr_i,
|
module mc_adr_sel(clk, csc, tms, wb_ack_o, wb_stb_i, wb_addr_i, wb_we_i,
|
wb_write_go, wr_hold, cas_,
|
wb_write_go, wr_hold, cas_,
|
mc_addr, row_adr, bank_adr, rfr_ack,
|
mc_addr, row_adr, bank_adr, rfr_ack,
|
cs_le, cmd_a10, row_sel, lmr_sel, next_adr, wr_cycle,
|
cs_le, cmd_a10, row_sel, lmr_sel, next_adr, wr_cycle,
|
page_size);
|
page_size);
|
|
|
input clk;
|
input clk;
|
input [31:0] csc;
|
input [31:0] csc;
|
input [31:0] tms;
|
input [31:0] tms;
|
input wb_ack_o, wb_stb_i;
|
input wb_ack_o, wb_stb_i;
|
input [31:0] wb_addr_i;
|
input [31:0] wb_addr_i;
|
|
input wb_we_i;
|
input wb_write_go;
|
input wb_write_go;
|
input wr_hold;
|
input wr_hold;
|
input cas_;
|
input cas_;
|
output [23:0] mc_addr;
|
output [23:0] mc_addr;
|
output [12:0] row_adr;
|
output [12:0] row_adr;
|
Line 137... |
Line 144... |
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
//
|
//
|
// Async Devices Address Latch & Counter
|
// Async Devices Address Latch & Counter
|
//
|
//
|
|
|
//assign asc_addr_pl1 = asc_addr + 1;
|
|
mc_incn_r #(24) u0( .clk( clk ),
|
mc_incn_r #(24) u0( .clk( clk ),
|
.inc_in( acs_addr ),
|
.inc_in( acs_addr ),
|
.inc_out( acs_addr_pl1 ) );
|
.inc_out( acs_addr_pl1 ) );
|
|
|
always @(posedge clk)
|
always @(posedge clk)
|
if(wb_stb_i) sram_addr <= #1 wb_addr_i[25:2];
|
if(wb_stb_i) sram_addr <= #1 wb_addr_i[25:2];
|
|
|
always @(posedge clk)
|
always @(posedge clk)
|
// *** Use same address for write and read ***
|
if(cs_le | wb_we_i)
|
//if(wb_write_go) acs_addr <= #1 wb_addr_i[25:2];
|
|
//else
|
|
if(cs_le)
|
|
case(bus_width) // synopsys full_case parallel_case
|
case(bus_width) // synopsys full_case parallel_case
|
`MC_BW_8: acs_addr <= #1 wb_addr_i[23:0];
|
`MC_BW_8: acs_addr <= #1 wb_addr_i[23:0];
|
`MC_BW_16: acs_addr <= #1 wb_addr_i[24:1];
|
`MC_BW_16: acs_addr <= #1 wb_addr_i[24:1];
|
`MC_BW_32: acs_addr <= #1 wb_addr_i[25:2];
|
`MC_BW_32: acs_addr <= #1 wb_addr_i[25:2];
|
endcase
|
endcase
|