代码拉取完成,页面将自动刷新
`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company:
// Engineer:
//
// Create Date: 2022/03/16 20:20:04
// Design Name:
// Module Name: DataMem
// Project Name:
// Target Devices:
// Tool Versions:
// Description:
//
// Dependencies:
//
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
//
//////////////////////////////////////////////////////////////////////////////////
module DataMem(
input logic clk,
input logic [31:0] A, //地址
input logic [31:0] WD, //要写入的数据
input logic [3:0] WE, //写使能(一个字节一位)
output logic [31:0] RD //读出的数据
);
parameter N = 4096;
logic [31:0] DMEM [0:N-1]; //数据存储器
//初始化
initial begin
for(int i=0;i<N;i++)
DMEM[i]=i;
end
//读数据
assign RD=DMEM[A[31:2]]; //数据读出
//写数据,下降沿写入
always_ff@(negedge clk)
begin
case(WE) //根据写使能信号将数据写入DMEM
4'b0001:DMEM[A[31:2]][7:0]<=WD[7:0];
4'b0011:DMEM[A[31:2]][15:0]<=WD[15:0];
4'b1111:DMEM[A[31:2]]<=WD;
default:;
endcase
end
endmodule
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。