verilog的inout端口的使用与测试,实例化ram

这篇博客介绍了如何在Verilog中使用inout端口来设计一个128x16位的RAM,并提供了详细的模块程序和激励文件。在模块中,当写使能i_we为高时,数据存入内存;反之,当i_we为低时,从内存读取数据。测试激励文件模拟了数据的写入和读取过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

空间为128*16的ram,数据端口为inout端口

模块程序: 

`timescale 1ns / 1ps

module ram_tri(
    input i_we,i_clk,
    input [6:0] i_addr,
    inout [15:0] io_data
);

reg [15:0] mem [127:0];
always @ (posedge i_clk)
    if(i_we)
        mem[i_addr]<=io_data;
        
assign io_data=(!i_we)? mem[i_addr]:8'hzz;
endmodule
激励文件:

`timescale 1ns / 1ps

module test_ram();

reg i_we;
reg i_clk;
reg [6:0] i_addr;
reg [15:0] data;

wire [15:0] data_wire;
ram_tri test(
    .i_we(i_we),
    .i_clk(i_clk),
    .i_addr(i_addr),
    .io_data(data_wire)
);
integer i;
initial begin

i_clk=1'b0;
i_we=1'b1;//写
i_addr=7&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值