URL
https://opencores.org/ocsvn/socgen/socgen/trunk
Only display areas with differences |
Details |
Blame |
View Log
Rev 133 |
Rev 134 |
|
|
|
|
module mt45w8mw12_def
|
|
#(
|
|
parameter ADDR_BITS = 23,
|
|
parameter DQ_BITS = 16,
|
|
parameter MEM_BITS = 16
|
|
)
|
|
|
|
(
|
|
input wire clk,
|
|
input wire adv_n,
|
|
input wire cre,
|
|
output wire o_wait,
|
|
input wire ce_n,
|
|
input wire oe_n,
|
|
input wire we_n,
|
|
input wire lb_n,
|
|
input wire ub_n,
|
|
input wire [ADDR_BITS-1 : 0] addr,
|
|
inout wire [DQ_BITS-1 : 0] dq
|
|
);
|
|
|
|
reg [7:0] memoryl [1<
|
reg [7:0] memoryl [1<
|
reg [7:0] memoryu [1<
|
reg [7:0] memoryu [1<
|
|
|
reg [DQ_BITS-1 : 0] dq_out;
|
reg [DQ_BITS-1 : 0] dq_out;
|
|
|
|
|
|
|
// Write Memory
|
// Write Memory
|
|
|
|
|
always@(*)
|
always@(*)
|
if(!ce_n && !we_n && !lb_n) memoryl[addr] = dq[7:0];
|
if(!ce_n && !we_n && !lb_n) memoryl[addr] = dq[7:0];
|
|
|
always@(*)
|
always@(*)
|
if(!ce_n && !we_n && !ub_n) memoryu[addr] = dq[15:8];
|
if(!ce_n && !we_n && !ub_n) memoryu[addr] = dq[15:8];
|
|
|
|
|
// Read Memory
|
// Read Memory
|
|
|
always@(*) dq_out[7:0] = memoryl[addr];
|
always@(*) dq_out[7:0] = memoryl[addr];
|
always@(*) dq_out[15:8] = memoryu[addr];
|
always@(*) dq_out[15:8] = memoryu[addr];
|
|
|
// Tristate output
|
// Tristate output
|
|
|
assign dq = (!ce_n && !oe_n) ? dq_out[DQ_BITS-1:0]: {DQ_BITS{1'bz}};
|
assign dq = (!ce_n && !oe_n) ? dq_out[DQ_BITS-1:0]: {DQ_BITS{1'bz}};
|
|
|
|
|
|
|
endmodule
|
|
|
|
|
|
|
|
© copyright 1999-2024
OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.