Verilog 之 rom 存储器 1k容量 32位数据

ROM模块:

module ROM(addr, data, oe);
output[31:0] data;//32位数据信号
input[31:0] addr;//地址信号
input oe;//读使能低电平有效

reg[31:0]mem[0:1023];
assign  data= (oe==0)?mem[addr[11:2]]:8'hzz;
initial
  begin 
   mem[0]=32'hffff_ffff;
   mem[1]=32'h1111_1111;
   mem[2]=32'h8888_8888;
   mem[3]=32'h2222_2222;
   mem[4]=32'haaaa_aaaa;
  end
endmodule

  

测试模块:

module rom_tb;
  reg[31:0]addr;
  reg oe;
  wire[31:0]data;
  initial
    begin
      oe = 0; //低电平使能
      //读取 第1 2 3 4单元数据 
      #50 addr = 32'h0000_0004;
      #50 addr = 32'h0000_0008;
      #50 addr = 32'h0000_000c;
      #50 addr = 32'h0000_0010;
    end
   ROM r1(.addr(addr), .data(data), .oe(oe));
endmodule

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值