diff options
author | Tristan Gingold <tgingold@free.fr> | 2022-08-13 06:52:16 +0200 |
---|---|---|
committer | Tristan Gingold <tgingold@free.fr> | 2022-08-13 06:52:16 +0200 |
commit | 550c8e653ab6c5ff6581d0b08c0449bede55557f (patch) | |
tree | b4e92c65641fa7c9dbc0c3125ae7d7d6af89cdf2 /testsuite/synth/issue2077/ent2.vhdl | |
parent | b45157d46cc6b7f927e367d6e0e831ed7da0ea4e (diff) | |
download | ghdl-550c8e653ab6c5ff6581d0b08c0449bede55557f.tar.gz ghdl-550c8e653ab6c5ff6581d0b08c0449bede55557f.tar.bz2 ghdl-550c8e653ab6c5ff6581d0b08c0449bede55557f.zip |
testsuite/synth: add tests for #2077
Diffstat (limited to 'testsuite/synth/issue2077/ent2.vhdl')
-rw-r--r-- | testsuite/synth/issue2077/ent2.vhdl | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/testsuite/synth/issue2077/ent2.vhdl b/testsuite/synth/issue2077/ent2.vhdl new file mode 100644 index 000000000..f4f91f827 --- /dev/null +++ b/testsuite/synth/issue2077/ent2.vhdl @@ -0,0 +1,39 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity ent2 is + generic ( + DEPTH : positive := 256; + WAYS : positive := 4 + ); + port ( + clk: in std_logic; + + write_enable: in std_logic; + active_way: in natural range 0 to WAYS-1; + write_address: in natural range 0 to DEPTH-1; + input: in std_logic; + + read_address: in natural range 0 to DEPTH-1; + outputs: out std_logic + ); +end entity; + +architecture a of ent2 is +begin + process(clk) + type memory_t is array(0 to DEPTH-1) of std_logic; + type memories_t is array(0 to WAYS-1) of memory_t; + + variable memories : memories_t; + begin + if rising_edge(clk) then + outputs <= memories(active_way)(read_address); + + if write_enable then + memories(active_way)(write_address) := input; + end if; + end if; + end process; +end architecture; |