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

📄 data_port.v

📁 一个嵌入式RISC CPU 的Verilog 设计源码
💻 V
字号:
/*********************************************************
 MODULE:		Sub Level SDRAM Controller Data Port Block

 FILE NAME:	data_port.v
 VERSION:	1.0
 DATE:		April 8nd, 2002
 AUTHOR:		Hossein Amidi
 COMPANY:	
 CODE TYPE:	Register Transfer Level

 DESCRIPTION:	This module is the sub level RTL code of SDRAM Controller ASIC verilog
 code. It is the Data Port block.

  It will instantiate the following blocks in the ASIC:

 1)   Data input register
 2)	SDRAM control signals
 3)	SDRAM Data port
 4)	SDRAM Data port Multiplexor

 Hossein Amidi
 (C) April 2002

*********************************************************/

// DEFINES
`timescale 1ns / 10ps

module data_port(// Input
						reset,
						clk0,
						clk0_2x,
						dm,
						oe,
						datain,
						wsadd,
						wba,
						wcs,
						wcke,
						wras,
						wcas,
						wwe,
						// Out
						dqm,
						dataout,
						add,
						ba,
						cs,
						cke,
						ras,
						cas,
						we,
						// Inout
						dq
						);


// Parameter
`include        "parameter.v"

// Input
input reset;
input clk0;
input clk0_2x;
input [dqm_size - 1 : 0]dm;
input oe;
input [data_size - 1 : 0]datain;
input [add_size - 1 : 0]wsadd;
input [ba_size - 1 : 0]wba;
input [cs_size - 1 : 0]wcs;
input wcke;
input wras;
input wcas;
input wwe;

// Output
output [dqm_size - 1 : 0]dqm;
output [data_size - 1 : 0]dataout;
output [add_size - 1 : 0]add;
output [ba_size - 1 : 0]ba;
output [cs_size - 1 : 0]cs;
output cke;
output ras;
output cas;
output we;

// Inout
inout [data_size - 1 : 0]dq;

// Internal wires and reg
wire reset;
wire clk0;
wire [dqm_size - 1 : 0]dm;
wire [data_size - 1 : 0]datain;
wire [dqm_size - 1 : 0]dqm;
wire [data_size - 1 : 0]datain2;

wire [add_size - 1 : 0]wsadd;
wire [ba_size - 1 : 0]wba;
wire [cs_size - 1 : 0]wcs;
wire wcke;
wire wras;
wire wcas;
wire wwe;
wire [data_size - 1 : 0]wsdram_in;

wire [add_size - 1 : 0]add;
wire [ba_size - 1 : 0]ba;
wire [cs_size - 1 : 0]cs;
wire cke;
wire ras;
wire cas;
wire we;
wire [data_size - 1 : 0]dataout;

wire clk0_2x;
wire oe;
wire [data_size - 1 : 0]dq;
wire [data_size - 1 : 0]sdram_in;
wire [data_size - 1 : 0]sdram_out;


// Assignment


/***************************** Sub Level Instantiation ********************************/


data_in_reg data_in_reg0(// Input
								.reset(reset),
								.clk0(clk0),
								.dm(dm),
								.datain(datain),
								// Output
								.dqm(dqm),
								.datain2(datain2)
								);

sdram_cntrl sdram_cntrl0(// Input
								.reset(reset),
								.clk0(clk0),
								.wsadd(wsadd),
								.wba(wba),
								.wcs(wcs),
								.wcke(wcke),
								.wras(wras),
								.wcas(wcas),
								.wwe(wwe),
								.sdram_in(sdram_in),
								// Output
								.add(add),
								.ba(ba),
								.cs(cs),
								.cke(cke),
								.ras(ras),
								.cas(cas),
								.we(we),
								.dataout(dataout)
								);


sdram_port sdram_port0(	// Input
								.reset(reset),
								.clk0_2x(clk0_2x),
								.oe(oe),
								.datain2(datain2),
								.dq(dq),
								// Output
								.sdram_in(sdram_in),
								.sdram_out(sdram_out)
								);

sdram_mux sdram_mux0(// Input
							.sdram_out(sdram_out),
							.oe(oe),
							// Output
							.dq(dq)
							);


endmodule

⌨️ 快捷键说明

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