summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoruvok2025-12-30 09:33:21 +0100
committeruvok2025-12-30 09:33:21 +0100
commit9ea9ee4c219fd7e1687275870cb2aecbd731c7dd (patch)
treef2614481e0028f3be7a416e43d2a166175c3c243
parent0009b49abefa748b674eb9c8d675a75b5fbeafdf (diff)
my_mem: Use nededge for timing
-rw-r--r--my_mem.tb.v32
1 files changed, 10 insertions, 22 deletions
diff --git a/my_mem.tb.v b/my_mem.tb.v
index 63eaba4..c8c2e12 100644
--- a/my_mem.tb.v
+++ b/my_mem.tb.v
@@ -53,58 +53,46 @@ module my_mem_tb();
r_write_addr = '0;
data_i = '0;
- repeat (3) @(posedge clk);
+ repeat (3) @(negedge clk);
// -------------------------
// Write some values
// -------------------------
- @(posedge clk);
- #1
+ @(negedge clk);
write_en_i = 1;
r_write_addr = 10;
data_i = 8'hA5;
- @(posedge clk);
- #1
+ @(negedge clk);
r_write_addr = 11;
data_i = 8'h3C;
- @(posedge clk);
- #1
+ @(negedge clk);
write_en_i = 0;
// -------------------------
// Read back values
// -------------------------
- // asserts fail in iverilog if I use the posedge stuff,
- // (but works in verilator).
- // need an additional clock cycle delay.
-
- @(posedge clk);
- #1
+ @(negedge clk);
read_en_i = 1;
r_read_addr = 10;
- @(posedge clk);
- #1
+ @(negedge clk);
assert (data_o == 8'hA5)
else $error("ASSERTION FAILED: addr 10 expected 0xA5, got 0x%02h", data_o);
- @(posedge clk);
- #1
+ @(negedge clk);
r_read_addr = 11;
- @(posedge clk);
- #1
+ @(negedge clk);
assert (data_o == 8'h3C)
else $error("ASSERTION FAILED: addr 11 expected 0x3C, got 0x%02h", data_o);
- @(posedge clk);
- #1
+ @(negedge clk);
read_en_i = 0;
- repeat (3) @(posedge clk);
+ repeat (3) @(negedge clk);
$finish;
end