diff options
author | Rodrigo Alejandro Melo <rodrigomelo9@gmail.com> | 2020-02-01 17:41:10 -0300 |
---|---|---|
committer | Rodrigo Alejandro Melo <rodrigomelo9@gmail.com> | 2020-02-01 17:41:10 -0300 |
commit | 43396fae2c03b876557a73d3f3c19f4cd5161251 (patch) | |
tree | 24d6df3dda4c277313d08bd3b2228d16e4a1cdd5 | |
parent | b4c30cfc8d49c9028b67f7ba5710ed959f6f8f57 (diff) | |
download | yosys-43396fae2c03b876557a73d3f3c19f4cd5161251.tar.gz yosys-43396fae2c03b876557a73d3f3c19f4cd5161251.tar.bz2 yosys-43396fae2c03b876557a73d3f3c19f4cd5161251.zip |
Added a test for the Memory Content File inclusion using $readmemb
Signed-off-by: Rodrigo Alejandro Melo <rodrigomelo9@gmail.com>
-rw-r--r-- | tests/memfile/.gitignore | 1 | ||||
-rw-r--r-- | tests/memfile/memory.v | 23 | ||||
-rwxr-xr-x | tests/memfile/run-test.sh | 39 |
3 files changed, 63 insertions, 0 deletions
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" |