- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, I'm writing a test bench to write data into an sram module. I have to write the data and read back from it. data is inout port in that module. How do I read the data back from the module into my test bench? This is my code...
`timescale 1 ns/10 ps module ht6116_tb(); reg [7:0] data_set; wire [7:0] data; reg [10:0] address; reg write_enable_n, read_enable_n, chip_select_n, reset; IDT6116SA15 M1(.IO(data), .A(address), .WE_N(write_enable_n), .OE_N(read_enable_n), .CS_N(chip_select_n), .RESET(reset)); assign data = data_set; initial begin reset = 1'b0; address = 11'h0; write_enable_n = 1'h1; read_enable_n = 1'h1; chip_select_n = 1'h0; # 100; data_set = 8'h55; write_enable_n = 1'h0;# 100; write_enable_n = 1'h1; data_set = 8'hzz;# 100; read_enable_n = 1'h0; # 100; endLink Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
`timescale 1 ns/10 ps
module ht6116_tb();
reg data_set;
reg read_data; // Somewhere to store the data in your test bench
wire data;
reg address;
reg write_enable_n, read_enable_n, chip_select_n, reset;
IDT6116SA15 M1(.IO(data), .A(address), .WE_N(write_enable_n), .OE_N(read_enable_n), .CS_N(chip_select_n), .RESET(reset));
assign data = data_set;
initial
begin
reset = 1'b0;
address = 11'h0;
write_enable_n = 1'h1;
read_enable_n = 1'h1;
chip_select_n = 1'h0;
read_data = 8'h00; // You might want to provision your reg but you don't have to.
# 100;
data_set = 8'h55;
write_enable_n = 1'h0;
# 100;
write_enable_n = 1'h1;
data_set = 8'hzz;
# 100;
read_enable_n = 1'h0;
# 50;
read_data = data; // Read the data in (e.g. half way through your read enable pulse, but can be anywhere whilst read enable is active)
# 50;
read_enable_n = 1'h1;
# 100;
end
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Well you could create a bidir controller. Search this forum for bidir (short for bidirectional) and you will find some references. You can also directly write Z when you read and write the value when you write.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hey Thanks!!

- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page