sp_syn_ram.v
来自「Verilog写的内存控制器代码. 很好,很容易看懂」· Verilog 代码 · 共 57 行
V
57 行
// Copyright 2006 Mentor Graphics Corporation// All Rights Reserved.// THIS WORK CONTAINS TRADE SECRET AND PROPRIETARY INFORMATION WHICH IS THE PROPERTY OF // MENTOR GRAPHICS CORPORATION OR ITS LICENSORS AND IS SUBJECT TO LICENSE TERMS.`timescale 1ns/1nsmodule \sp_syn_ram-rtl #(parameter data_width = 8, parameter addr_width = 3) (input [addr_width-1:0] addr, input [data_width-1:0] data_in, input inclk, input outclk, input we, output reg [data_width-1:0] data_out); reg [data_width-1:0] mem [0:(2**addr_width)-1]; always @(posedge inclk) begin : write_proc if (we == 1) mem[addr] <= data_in; end always @(posedge outclk) begin : read_proc data_out = mem[addr]; endendmodule`timescale 1ns/1nsmodule \sp_syn_ram-3D #(parameter data_width = 8, parameter addr_width = 3) (input [addr_width-1:0] addr, input [data_width-1:0] data_in, input inclk, input outclk, input we, output reg [data_width-1:0] data_out); reg [data_width-1:0] mem [0:3] [0:(2**(addr_width-2))-1]; always @(posedge inclk) begin : write_proc if (we == 1) begin mem[addr[addr_width-1:addr_width-2]][addr[addr_width-3:0]] <= data_in; end end always @(posedge outclk) begin : read_proc data_out = mem[addr[addr_width-1:addr_width-2]][addr[addr_width-3:0]]; endendmodule
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?