牛客网Verilog刷题——VL53

牛客网Verilog刷题——VL53

题目

  设计一个单端口RAM,它有: 写接口,读接口,地址接口,时钟接口和复位;存储宽度是4位,深度128。注意rst为低电平复位。模块的接口示意图如下。

在这里插入图片描述
  输入输出描述如下。

信号类型输入/输出位宽描述
clkwireInput1系统时钟信号
rstwireInput1异步复位信号,低电平有效
enbwireInput1写使能信号
addrwireInput7读/写地址
w_datawireInput4写数据
r_datawireOutput4读数据

答案

  根据读地址的位宽(为7),我们可以知道该单端口RAM的深度为128,所以该RAM是一个宽度为4,深度为128的单端口RAM。需要注意的是:该RAM非写即读,即enb=1,则为写操作;enb=0,则为读操作。

`timescale 1ns/1ns

module RAM_1port(
    input clk,
    input rst,
    input enb,
    input [6:0]addr,
    input [3:0]w_data,
    output wire [3:0]r_data
);
//*************code***********//
integer i;
reg [3:0] memory [(2<<6)-1:0];

always @(posedge clk or negedge rst)
  if(!rst)
    for(i=0;i<(2<<6);i=i+1) begin
      memory[i] <= 'd0;
    end
  else if(enb)
    memory[addr] <= w_data;

assign r_data = (!enb) ? memory[addr] : 'd0;

//*************code***********//
endmodule
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值