数电和Verilog-组合逻辑实例三:存储器

该博客介绍了如何使用Verilog设计组合逻辑存储器,包括存储器的基本概念、设计模块的阐述、测试模块的建立以及详细的仿真结果展示。通过运行脚本并分析仿真日志及波形,深入理解存储器的工作原理。
摘要由CSDN通过智能技术生成

A.13 组合逻辑实例三:存储器

什么是存储器?

用于存储数据的地方,那要存储的话,至少就需要地址和数据,也就是说它至少要包括一个二维的数组类型的变量。

设计模块

//文件路径:a.13/src/memory.v
module memory(enable,rw,addr,data);
  parameter ADDR_WIDTH = 8;
  parameter DATA_WIDTH = 16;
  parameter MEM_WIDTH = 256;

  input enable;
  input rw;//0 write,1 read
  input[ADDR_WIDTH-1:0] addr;
  inout[DATA_WIDTH-1:0] data;//可输入输出的双向读写端口

  reg[DATA_WIDTH-1:0] memory_data [0:MEM_WIDTH-1];

  always@(enable or rw or addr or data)begin
    if(enable & (~rw)) //write
      memory_data[addr] = data;
  end

  //read
  assign data = (enable & rw)? memory_data[addr] : {DATA_WIDTH{1'bz}}; 

endmodule

测试模块

//文件路径:a.13/sim/testbench/demo_tb.sv
module top;
  parameter ADDR_WIDTH = 8;
  paramet
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值