aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/gna/issue713/dma_controller_tb.vhd
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2018-12-04 20:35:23 +0100
committerTristan Gingold <tgingold@free.fr>2018-12-04 20:35:23 +0100
commit96540807412c7a127bde646ee5737b10e089cf0d (patch)
treea4ae0d88b28555ac6ed759a60c7ef525be8f7d98 /testsuite/gna/issue713/dma_controller_tb.vhd
parent483a8f7f88b86acd0d339e197d96e3a60f737b5e (diff)
downloadghdl-96540807412c7a127bde646ee5737b10e089cf0d.tar.gz
ghdl-96540807412c7a127bde646ee5737b10e089cf0d.tar.bz2
ghdl-96540807412c7a127bde646ee5737b10e089cf0d.zip
Add testcase from #713
Diffstat (limited to 'testsuite/gna/issue713/dma_controller_tb.vhd')
-rw-r--r--testsuite/gna/issue713/dma_controller_tb.vhd45
1 files changed, 45 insertions, 0 deletions
diff --git a/testsuite/gna/issue713/dma_controller_tb.vhd b/testsuite/gna/issue713/dma_controller_tb.vhd
new file mode 100644
index 000000000..d67c94061
--- /dev/null
+++ b/testsuite/gna/issue713/dma_controller_tb.vhd
@@ -0,0 +1,45 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+use work.sim_types_pkg.all;
+
+entity dma_controller_tb is
+generic (
+ runner_cfg : string := ""
+);
+end entity;
+
+architecture bench of dma_controller_tb is
+
+ constant num_desc : positive := 4;
+ subtype num_desc_range is natural range 0 to num_desc-1;
+
+ constant MEM_BYTES : positive := 512;
+ constant MEM_DWORDS : positive := MEM_BYTES/4;
+
+
+ function byte_range (desc : descriptor_t) return bit_vector is
+ -- Works if 0 to 1
+ -- variable v : bit_vector(0 to 1);
+ variable v : bit_vector(desc.address to desc.address + desc.length);
+ begin
+ return v;
+ end function;
+
+begin
+
+ mm2s_buffer_destroy: process
+ variable desc : descriptor_t := (8, 8);
+ begin
+ wait for 50 ns;
+ for i in byte_range(desc)'range loop
+ call_report(i);
+ assert i >= 8 and i <= 16 severity failure;
+ -- Works for below
+ --for i in 0 to 1 loop
+-- set_permissions(mm2s_memory, i, no_access);
+ end loop;
+ wait;
+ end process;
+end architecture;