From 43396fae2c03b876557a73d3f3c19f4cd5161251 Mon Sep 17 00:00:00 2001 From: Rodrigo Alejandro Melo Date: Sat, 1 Feb 2020 17:41:10 -0300 Subject: Added a test for the Memory Content File inclusion using $readmemb Signed-off-by: Rodrigo Alejandro Melo --- tests/memfile/.gitignore | 1 + tests/memfile/memory.v | 23 +++++++++++++++++++++++ tests/memfile/run-test.sh | 39 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) create mode 100644 tests/memfile/.gitignore create mode 100644 tests/memfile/memory.v create mode 100755 tests/memfile/run-test.sh (limited to 'tests') diff --git a/tests/memfile/.gitignore b/tests/memfile/.gitignore new file mode 100644 index 000000000..61b0d4264 --- /dev/null +++ b/tests/memfile/.gitignore @@ -0,0 +1 @@ +temp* diff --git a/tests/memfile/memory.v b/tests/memfile/memory.v new file mode 100644 index 000000000..57106eae8 --- /dev/null +++ b/tests/memfile/memory.v @@ -0,0 +1,23 @@ +// A memory initialized with an external file + +module memory ( + input clk_i, + input we_i, + input [5:0] addr_i, + input [31:0] data_i, + output reg [31:0] data_o +); + +parameter MEMFILE = ""; + +reg [31:0] mem [0:63]; + +initial $readmemb(MEMFILE,mem); + +always @(posedge clk_i) begin + if (we_i) + mem[addr_i] <= data_i; + data_o <= mem[addr_i]; +end + +endmodule diff --git a/tests/memfile/run-test.sh b/tests/memfile/run-test.sh new file mode 100755 index 000000000..3a88b81de --- /dev/null +++ b/tests/memfile/run-test.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +echo "* Creating Memory Content Files" + +for i in {1..64} +do + echo "00001111000000001111111100000000" >> tempfile1.dat +done + +mkdir -p temp +cp tempfile1.dat temp/tempfile2.dat + +cd .. + +echo "* Running from the parent directory" +echo " * Memory Content File: tempfile1.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" +echo " * Memory Content File: temp/tempfile2.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" + +cd memfile + +echo "* Running from the same directory" +echo " * Memory Content File: tempfile1.dat" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" +echo " * Memory Content File: temp/tempfile2.dat" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" + +cd temp + +echo "* Running from a child directory" +echo " * Memory Content File: tempfile1.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" +echo " * Memory Content File: temp/tempfile2.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" +echo " * Memory Content File: tempfile2.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" + +echo "* Done" -- cgit v1.2.3 From eaaba6e09132c07b85bdae418a2b7f46b57e019e Mon Sep 17 00:00:00 2001 From: Rodrigo Alejandro Melo Date: Sat, 1 Feb 2020 22:44:06 -0300 Subject: Added tests/memfile to 'make test' with an extra testcase Signed-off-by: Rodrigo Alejandro Melo --- tests/memfile/run-test.sh | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) (limited to 'tests') diff --git a/tests/memfile/run-test.sh b/tests/memfile/run-test.sh index 3a88b81de..2bbc162e7 100755 --- a/tests/memfile/run-test.sh +++ b/tests/memfile/run-test.sh @@ -1,9 +1,6 @@ #!/bin/bash -echo "* Creating Memory Content Files" - -for i in {1..64} -do +for i in {1..64}; do echo "00001111000000001111111100000000" >> tempfile1.dat done @@ -12,28 +9,25 @@ cp tempfile1.dat temp/tempfile2.dat cd .. -echo "* Running from the parent directory" -echo " * Memory Content File: tempfile1.dat" +echo "Running from the parent directory with tempfile1.dat" ../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo " * Memory Content File: temp/tempfile2.dat" +echo "Running from the parent directory with temp/tempfile2.dat" ../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" +echo "Running from the parent directory with memfile/temp/tempfile2.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/tempfile2.dat\" memory; synth -top memory" cd memfile -echo "* Running from the same directory" -echo " * Memory Content File: tempfile1.dat" +echo "Running from the same directory with tempfile1.dat" ../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo " * Memory Content File: temp/tempfile2.dat" +echo "Running from the same directory with temp/tempfile2.dat" ../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" cd temp -echo "* Running from a child directory" -echo " * Memory Content File: tempfile1.dat" +echo "Running from a child directory with tempfile1.dat" ../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo " * Memory Content File: temp/tempfile2.dat" +echo "Running from a child directory with temp/tempfile2.dat" ../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" -echo " * Memory Content File: tempfile2.dat" +echo "Running from a child directory with tempfile2.dat" ../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" - -echo "* Done" -- cgit v1.2.3 From 9b49f1bc469867500a1745fb3c427d813ce3aada Mon Sep 17 00:00:00 2001 From: Rodrigo Alejandro Melo Date: Sun, 2 Feb 2020 12:18:34 -0300 Subject: Added content1.dat into tests/memfile Modified run-test.sh to use it. Signed-off-by: Rodrigo Alejandro Melo --- tests/memfile/content1.dat | 64 ++++++++++++++++++++++++++++++++++++++++++++++ tests/memfile/run-test.sh | 38 ++++++++++++--------------- 2 files changed, 81 insertions(+), 21 deletions(-) create mode 100644 tests/memfile/content1.dat (limited to 'tests') diff --git a/tests/memfile/content1.dat b/tests/memfile/content1.dat new file mode 100644 index 000000000..4d1c67c26 --- /dev/null +++ b/tests/memfile/content1.dat @@ -0,0 +1,64 @@ +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 +00001111000000001111111100000000 diff --git a/tests/memfile/run-test.sh b/tests/memfile/run-test.sh index 2bbc162e7..1684b6314 100755 --- a/tests/memfile/run-test.sh +++ b/tests/memfile/run-test.sh @@ -1,33 +1,29 @@ #!/bin/bash -for i in {1..64}; do - echo "00001111000000001111111100000000" >> tempfile1.dat -done - mkdir -p temp -cp tempfile1.dat temp/tempfile2.dat +cp content1.dat temp/content2.dat cd .. -echo "Running from the parent directory with tempfile1.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo "Running from the parent directory with temp/tempfile2.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" -echo "Running from the parent directory with memfile/temp/tempfile2.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/tempfile2.dat\" memory; synth -top memory" +echo "Running from the parent directory with content1.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +echo "Running from the parent directory with temp/content2.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +echo "Running from the parent directory with memfile/temp/content2.dat" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/content2.dat\" memory; synth -top memory" cd memfile -echo "Running from the same directory with tempfile1.dat" -../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo "Running from the same directory with temp/tempfile2.dat" -../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" +echo "Running from the same directory with content1.dat" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +echo "Running from the same directory with temp/content2.dat" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" cd temp -echo "Running from a child directory with tempfile1.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"tempfile1.dat\" memory; synth -top memory" -echo "Running from a child directory with temp/tempfile2.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" -echo "Running from a child directory with tempfile2.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/tempfile2.dat\" memory; synth -top memory" +echo "Running from a child directory with content1.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +echo "Running from a child directory with temp/content2.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +echo "Running from a child directory with content2.dat" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" -- cgit v1.2.3 From 8217f579b7450f282f1baa8d6fe1fbefc002a534 Mon Sep 17 00:00:00 2001 From: Rodrigo Alejandro Melo Date: Sun, 2 Feb 2020 12:33:34 -0300 Subject: Removed 'synth' into tests/memfile/run-test.sh Signed-off-by: Rodrigo Alejandro Melo --- tests/memfile/run-test.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'tests') diff --git a/tests/memfile/run-test.sh b/tests/memfile/run-test.sh index 1684b6314..f25a8e0b1 100755 --- a/tests/memfile/run-test.sh +++ b/tests/memfile/run-test.sh @@ -6,24 +6,24 @@ cp content1.dat temp/content2.dat cd .. echo "Running from the parent directory with content1.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"content1.dat\" memory" echo "Running from the parent directory with temp/content2.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" echo "Running from the parent directory with memfile/temp/content2.dat" -../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/content2.dat\" memory; synth -top memory" +../yosys -qp "read_verilog -defer memfile/memory.v; chparam -set MEMFILE \"memfile/temp/content2.dat\" memory" cd memfile echo "Running from the same directory with content1.dat" -../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content1.dat\" memory" echo "Running from the same directory with temp/content2.dat" -../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" cd temp echo "Running from a child directory with content1.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"content1.dat\" memory; synth -top memory" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"content1.dat\" memory" echo "Running from a child directory with temp/content2.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" echo "Running from a child directory with content2.dat" -../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory; synth -top memory" +../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" -- cgit v1.2.3 From 9da5936c0555de28fc9d254242bd2a33b3399ad6 Mon Sep 17 00:00:00 2001 From: Rodrigo Alejandro Melo Date: Thu, 6 Feb 2020 10:45:40 -0300 Subject: Added 'set -e' into tests/memfile/run-test.sh Also added two checks for situations where the execution must fail. Signed-off-by: Rodrigo Alejandro Melo --- tests/memfile/run-test.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'tests') diff --git a/tests/memfile/run-test.sh b/tests/memfile/run-test.sh index f25a8e0b1..e43ddd093 100755 --- a/tests/memfile/run-test.sh +++ b/tests/memfile/run-test.sh @@ -1,5 +1,7 @@ #!/bin/bash +set -e + mkdir -p temp cp content1.dat temp/content2.dat @@ -27,3 +29,21 @@ echo "Running from a child directory with temp/content2.dat" ../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" echo "Running from a child directory with content2.dat" ../../../yosys -qp "read_verilog -defer ../memory.v; chparam -set MEMFILE \"temp/content2.dat\" memory" + +cd .. + +echo "Checking a failure when zero length filename is provided" +if ../../yosys -qp "read_verilog memory.v"; then + echo "The execution should fail but it didn't happen, which is WRONG." + exit 1 +else + echo "Execution failed, which is OK." +fi + +echo "Checking a failure when not existing filename is provided" +if ../../yosys -qp "read_verilog -defer memory.v; chparam -set MEMFILE \"content3.dat\" memory"; then + echo "The execution should fail but it didn't happen, which is WRONG." + exit 1 +else + echo "Execution failed, which is OK." +fi -- cgit v1.2.3