aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorWojciech Kosior <kwojtus@protonmail.com>2020-09-09 22:25:27 +0200
committerWojciech Kosior <kwojtus@protonmail.com>2020-09-09 22:25:27 +0200
commitbd26f7f0adba2963f6d4a4657fe2795c696126c8 (patch)
tree09d3fbbe91815d57d7cf3d89cb84c40ed49853b7 /tests
parent334f86ccc899b92e44f71f1ad85dcc3c31ef1a2c (diff)
downloadAGH-engineering-thesis-bd26f7f0adba2963f6d4a4657fe2795c696126c8.tar.gz
AGH-engineering-thesis-bd26f7f0adba2963f6d4a4657fe2795c696126c8.zip
enable byte-grained reads and writes through interface_wrapper
Diffstat (limited to 'tests')
-rw-r--r--tests/interface_wrapper/operations.memv39
-rw-r--r--tests/interface_wrapper/test.v6
-rw-r--r--tests/wrapped_stack_machine_cond_jump/test.v6
3 files changed, 45 insertions, 6 deletions
diff --git a/tests/interface_wrapper/operations.memv b/tests/interface_wrapper/operations.memv
index 2b581b5..97237f0 100644
--- a/tests/interface_wrapper/operations.memv
+++ b/tests/interface_wrapper/operations.memv
@@ -1,5 +1,7 @@
`include "macroasm.vh" // look into macroasm.vh for more info
+//// First half of operations has (SEL_O == 4'b111 && ADR_O[0] == 0)
+
// First - a sequence of reads and writes like in self_32bit_word test
`WRITE(000000, deadbeef)
`WAIT
@@ -49,3 +51,40 @@
`WRITE(012302, 0fca0000)
`WRITE(012306, 0000baca)
`READ (012304, baca0fca)
+
+
+//// Second half with non-aligned accesses and weird SEL_O patterns starts here
+
+`WRITE (200013, afe8b317)
+`READ (200013, afe8b317)
+
+`WRITES(140022, xxxxd0d3, 3) // Only select 2 bottom bytes
+`READS (140022, xxxxd0d3, 3)
+
+`WRITES(140022, xx48e2xx, 6) // Only select 2 middle bytes
+`READS (140022, xx48e2xx, 6)
+`READS (140022, xx48e2d3, f) // Select 3 bottom bytes
+
+`WRITES(140025, xxxxxx72, 1) // Single byte write at odd address
+`WRITES(140024, xxxx7248, 3)
+`READS (140023, xx7248e2, 7) // Non-aligned read
+
+`DESELECT
+
+// Some other complicated stuff
+`WRITES(2013e4, 1182bbxx, a)
+`WAIT
+`WRITES(2013e6, xx10xxa2, 5)
+`WAIT
+`WAIT
+`WAIT
+`READS (2013e5, 1011a2bb, f)
+`READS (2013e7, 23232323, 0)
+
+`DESELECT
+`WAIT
+`WRITES(987135, 8dxxxx1e, 9)
+`WRITES(987137, xxxxxx3f, 1)
+`WRITES(987135, fedcba98, 0) // Should not do anything
+`WRITES(987133, 44xxxxxx, 8)
+`READS (987135, 8d3f441e, f)
diff --git a/tests/interface_wrapper/test.v b/tests/interface_wrapper/test.v
index 4031f35..d69970a 100644
--- a/tests/interface_wrapper/test.v
+++ b/tests/interface_wrapper/test.v
@@ -145,7 +145,7 @@ interface_wrapper wrapper
CLK <= 0;
RST <= 1;
- for (i = 0; i < 600; i++) begin
+ for (i = 0; i < 2000; i++) begin
#1;
CLK <= ~CLK;
@@ -155,9 +155,9 @@ interface_wrapper wrapper
if (M_finished)
$finish;
- end
+ end // for (i = 0; i < 2000; i++)
- $display("error: master hasn't finished its operations in 300 ticks");
+ $display("error: master hasn't finished its operations in 1000 ticks");
$finish;
end
endmodule // interface_wrapper_test
diff --git a/tests/wrapped_stack_machine_cond_jump/test.v b/tests/wrapped_stack_machine_cond_jump/test.v
index 7845045..ae50d4d 100644
--- a/tests/wrapped_stack_machine_cond_jump/test.v
+++ b/tests/wrapped_stack_machine_cond_jump/test.v
@@ -161,7 +161,7 @@ module wrapped_stack_machine_test();
CLK <= 0;
RST <= 1;
- for (i = 0; i < 3500; i++) begin
+ for (i = 0; i < 5000; i++) begin
#1;
CLK <= ~CLK;
@@ -185,9 +185,9 @@ module wrapped_stack_machine_test();
$finish;
end // if (M_finished)
- end // for (i = 0; i < 3500; i++)
+ end // for (i = 0; i < 5000; i++)
- $display("error: cpu hasn't finished its operations in 1750 ticks");
+ $display("error: cpu hasn't finished its operations in 2500 ticks");
$finish;
end // initial begin
endmodule // wrapped_stack_machine_test