⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_defines.v

📁 verilog 写的 memory controller
💻 V
字号:
/////////////////////////////////////////////////////////////////////////                                                             ////////  WISHBONE Memory Controller Definitions                     ////////                                                             ////////                                                             ////////  Author: Rudolf Usselmann                                   ////////          rudi@asics.ws                                      ////////                                                             ////////                                                             ////////  Downloaded from: http://www.opencores.org/cores/mem_ctrl/  ////////                                                             /////////////////////////////////////////////////////////////////////////////                                                             //////// Copyright (C) 2000-2002 Rudolf Usselmann                    ////////                         www.asics.ws                        ////////                         rudi@asics.ws                       ////////                                                             //////// This source file may be used and distributed without        //////// restriction provided that this copyright statement is not   //////// removed from the file and that any derivative work contains //////// the original copyright notice and the associated disclaimer.////////                                                             ////////     THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY     //////// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED   //////// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS   //////// FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL THE AUTHOR      //////// OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,         //////// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES    //////// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE   //////// GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR        //////// BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF  //////// LIABILITY, WHETHER IN  CONTRACT, STRICT LIABILITY, OR TORT  //////// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT  //////// OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE         //////// POSSIBILITY OF SUCH DAMAGE.                                 ////////                                                             ///////////////////////////////////////////////////////////////////////////  CVS Log////  $Id: mc_defines.v,v 1.1 2002/03/06 15:10:34 rherveille Exp $////  $Date: 2002/03/06 15:10:34 $//  $Revision: 1.1 $//  $Author: rherveille $//  $Locker:  $//  $State: Exp $//// Change History://               $Log: mc_defines.v,v $//               Revision 1.1  2002/03/06 15:10:34  rherveille//               Initial release////               Revision 1.6  2001/12/12 06:35:15  rudi//               *** empty log message ***////               Revision 1.5  2001/12/11 02:47:19  rudi////               - Made some changes not to expect clock during reset ...////               Revision 1.4  2001/11/29 02:16:28  rudi//////               - More Synthesis cleanup, mostly for speed//               - Several bug fixes//               - Changed code to avoid auto-precharge and//                 burst-terminate combinations (apparently illegal ?)//                 Now we will do a manual precharge ...////               Revision 1.3  2001/09/10 13:44:17  rudi//               *** empty log message ***////               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//////               1) Changed Directory Structure//               2) Fixed several minor bugs////               Revision 1.3  2001/06/12 15:19:49  rudi//////              Minor changes after running lint, and a small bug//		fix reading csr and ba_mask registers.////               Revision 1.2  2001/06/03 11:37:17  rudi//////               1) Fixed Chip Select Mask Register//               	- Power On Value is now all ones//               	- Comparison Logic is now correct////               2) All resets are now asynchronous////               3) Converted Power On Delay to an configurable item////               4) Added reset to Chip Select Output Registers////               5) Forcing all outputs to Hi-Z state during reset////               Revision 1.1.1.1  2001/05/13 09:39:38  rudi//               Created Directory Structure////////`timescale 1ns / 10ps///////////////////////////////////////////////////////////////////////// This define selects how the WISHBONE interface determines if// the internal register file is selected.// This should be a simple address decoder. "wb_addr_i" is the// WISHBONE address bus (32 bits wide).`define	MC_REG_SEL		(wb_addr_i[31:29] == 3'b011)// This define selects how the WISHBONE interface determines if// the memory is selected.// This should be a simple address decoder. "wb_addr_i" is the// WISHBONE address bus (32 bits wide).`define	MC_MEM_SEL		(wb_addr_i[31:29] == 3'h0)///////////////////////////////////////////////////////////////////////// This are the default Power-On Reset values for Chip Select//// This will be defined by the run script for my test bench ...// Alternatively force here for synthesis ...`define RUDIS_TB 1// Defines which chip select is used for Power On booting// To run my default testbench default boot CS must be 3 !!!`ifdef RUDIS_TB`define MC_DEF_SEL		3'h3`else`define MC_DEF_SEL		3'h0`endif// Defines the default (reset) TMS value for the DEF_SEL chip select`define	MC_DEF_POR_TMS 	32'hffff_ffff///////////////////////////////////////////////////////////////////////// Define how many Chip Selects to Implement//`define MC_HAVE_CS1	1//`define MC_HAVE_CS2	1//`define MC_HAVE_CS3	1//`define MC_HAVE_CS4	1//`define MC_HAVE_CS5	1//`define MC_HAVE_CS6	1//`define MC_HAVE_CS7	1// To run my default testbench those need to there !!!`ifdef RUDIS_TB`define MC_HAVE_CS2	1`define MC_HAVE_CS3	1`define MC_HAVE_CS4	1`define MC_HAVE_CS5	1`endif///////////////////////////////////////////////////////////////////////// Init Refresh//// Number of Refresh Cycles to perform during SDRAM initialization.// This varies between SDRAM manufacturer. Typically this value is// between 2 and 8. This number must be smaller than 16.`define	MC_INIT_RFRC_CNT	2///////////////////////////////////////////////////////////////////////// Power On Delay//// Most if SDRAMs require some time to initialize before they can be used// after power on. If the Memory Controller shall stall after power on to// allow SDRAMs to finish the initialization process uncomment the below// define statement`define	MC_POR_DELAY	1// This value defines how many MEM_CLK cycles the Memory Controller should// stall. Default is 2.5uS. At a 10nS MEM_CLK cycle time, this would 250// cycles.`define	MC_POR_DELAY_VAL	8'd250// ===============================================================// ===============================================================// Various internal defines (DO NOT MODIFY !)// ===============================================================// ===============================================================// Register settings encodings`define MC_BW_8			2'h0`define MC_BW_16		2'h1`define MC_BW_32		2'h2`define MC_MEM_TYPE_SDRAM	3'h0`define MC_MEM_TYPE_SRAM	3'h1`define MC_MEM_TYPE_ACS		3'h2`define MC_MEM_TYPE_SCS		3'h3`define MC_MEM_SIZE_64		2'h0`define MC_MEM_SIZE_128		2'h1`define MC_MEM_SIZE_256		2'h2// Command Valid, Ras_, Cas_, We_`define MC_CMD_NOP		4'b0111`define MC_CMD_PC		4'b1010`define MC_CMD_ACT		4'b1011`define MC_CMD_WR		4'b1100`define MC_CMD_RD		4'b1101`define MC_CMD_BT		4'b1110`define MC_CMD_ARFR		4'b1001`define MC_CMD_LMR		4'b1000`define MC_CMD_XRD		4'b1111`define MC_CMD_XWR		4'b1110`define MC_SINGLE_BANK		1'b0`define MC_ALL_BANKS		1'b1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -