Line 9... |
Line 9... |
//// ////
|
//// ////
|
//// Downloaded from: http://www.opencores.org/cores/mem_ctrl/ ////
|
//// Downloaded from: http://www.opencores.org/cores/mem_ctrl/ ////
|
//// ////
|
//// ////
|
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
//// ////
|
//// ////
|
//// Copyright (C) 2000 Rudolf Usselmann ////
|
//// Copyright (C) 2000-2002 Rudolf Usselmann ////
|
|
//// www.asics.ws ////
|
//// rudi@asics.ws ////
|
//// rudi@asics.ws ////
|
//// ////
|
//// ////
|
//// This source file may be used and distributed without ////
|
//// This source file may be used and distributed without ////
|
//// restriction provided that this copyright statement is not ////
|
//// restriction provided that this copyright statement is not ////
|
//// removed from the file and that any derivative work contains ////
|
//// removed from the file and that any derivative work contains ////
|
Line 35... |
Line 36... |
//// ////
|
//// ////
|
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
|
|
// CVS Log
|
// CVS Log
|
//
|
//
|
// $Id: mc_top.v,v 1.6 2001-12-21 05:09:30 rudi Exp $
|
// $Id: mc_top.v,v 1.7 2002-01-21 13:08:52 rudi Exp $
|
//
|
//
|
// $Date: 2001-12-21 05:09:30 $
|
// $Date: 2002-01-21 13:08:52 $
|
// $Revision: 1.6 $
|
// $Revision: 1.7 $
|
// $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.6 2001/12/21 05:09:30 rudi
|
|
//
|
|
// - Fixed combinatorial loops in synthesis
|
|
// - Fixed byte select bug
|
|
//
|
// Revision 1.5 2001/11/29 02:16:28 rudi
|
// Revision 1.5 2001/11/29 02:16:28 rudi
|
//
|
//
|
//
|
//
|
// - More Synthesis cleanup, mostly for speed
|
// - More Synthesis cleanup, mostly for speed
|
// - Several bug fixes
|
// - Several bug fixes
|
Line 267... |
Line 273... |
assign lmr_sel = lmr_ack | init_ack;
|
assign lmr_sel = lmr_ack | init_ack;
|
|
|
assign tms_s = lmr_sel ? sp_tms : tms;
|
assign tms_s = lmr_sel ? sp_tms : tms;
|
assign csc_s = lmr_sel ? sp_csc : csc;
|
assign csc_s = lmr_sel ? sp_csc : csc;
|
|
|
|
|
|
wire not_mem_cyc;
|
|
|
|
assign not_mem_cyc = wb_cyc_i & wb_stb_i & !( `MC_MEM_SEL );
|
|
|
|
reg mem_ack_r;
|
|
|
|
always @(posedge clk_i)
|
|
mem_ack_r <= #1 mem_ack;
|
|
|
////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////
|
//
|
//
|
// Modules
|
// Modules
|
//
|
//
|
|
|
Line 310... |
Line 326... |
mc_adr_sel u1(
|
mc_adr_sel u1(
|
.clk( clk_i ),
|
.clk( clk_i ),
|
.csc( csc_s ),
|
.csc( csc_s ),
|
.tms( tms_s ),
|
.tms( tms_s ),
|
.wb_stb_i( wb_stb_i ),
|
.wb_stb_i( wb_stb_i ),
|
.wb_ack_o( wb_ack_o ),
|
//.wb_ack_o( wb_ack_o ),
|
|
.wb_ack_o( mem_ack_r ),
|
.wb_addr_i( wb_addr_i ),
|
.wb_addr_i( wb_addr_i ),
|
.wb_we_i( wb_we_i ),
|
.wb_we_i( wb_we_i ),
|
.wb_write_go( wb_write_go ),
|
.wb_write_go( wb_write_go ),
|
.wr_hold( wr_hold ),
|
.wr_hold( wr_hold ),
|
.cas_( cas_ ),
|
.cas_( cas_ ),
|
Line 351... |
Line 368... |
.rst( rst_i ),
|
.rst( rst_i ),
|
.csc( csc ),
|
.csc( csc ),
|
.wb_cyc_i( wb_cyc_i ),
|
.wb_cyc_i( wb_cyc_i ),
|
.wb_stb_i( wb_stb_i ),
|
.wb_stb_i( wb_stb_i ),
|
.mem_ack( mem_ack ),
|
.mem_ack( mem_ack ),
|
.wb_ack_o( wb_ack_o ),
|
//.wb_ack_o( wb_ack_o ),
|
|
.wb_ack_o( mem_ack_r ),
|
.wb_we_i( wb_we_i ),
|
.wb_we_i( wb_we_i ),
|
.wb_data_i( wb_data_i ),
|
.wb_data_i( wb_data_i ),
|
.wb_data_o( mem_dout ),
|
.wb_data_o( mem_dout ),
|
.wb_read_go( wb_read_go ),
|
.wb_read_go( wb_read_go ),
|
.mc_clk( mc_clk_i ),
|
.mc_clk( mc_clk_i ),
|
Line 399... |
Line 417... |
.suspended( suspended_o ),
|
.suspended( suspended_o ),
|
.susp_sel( susp_sel ),
|
.susp_sel( susp_sel ),
|
.mc_br( mc_br_r ),
|
.mc_br( mc_br_r ),
|
.mc_bg( mc_bg_d ),
|
.mc_bg( mc_bg_d ),
|
.mc_ack( mc_ack_r ),
|
.mc_ack( mc_ack_r ),
|
|
.not_mem_cyc( not_mem_cyc ),
|
.data_oe( data_oe ),
|
.data_oe( data_oe ),
|
.oe_( oe_ ),
|
.oe_( oe_ ),
|
.we_( we_ ),
|
.we_( we_ ),
|
.cas_( cas_ ),
|
.cas_( cas_ ),
|
.ras_( ras_ ),
|
.ras_( ras_ ),
|