aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/mem02/dpram1.vhdl
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2019-09-08 08:55:07 +0200
committerTristan Gingold <tgingold@free.fr>2019-09-11 06:37:27 +0200
commit71ca5402d18cd1269613e2ff577269a54d13b037 (patch)
treef9cab4eb08c20a56b209c4b01610d45f5b66ba2c /testsuite/synth/mem02/dpram1.vhdl
parent42c6c8b8d96d781dbe9173a647d17b3f25da32c2 (diff)
downloadghdl-71ca5402d18cd1269613e2ff577269a54d13b037.tar.gz
ghdl-71ca5402d18cd1269613e2ff577269a54d13b037.tar.bz2
ghdl-71ca5402d18cd1269613e2ff577269a54d13b037.zip
testsuite/synth: add mem02
Diffstat (limited to 'testsuite/synth/mem02/dpram1.vhdl')
-rw-r--r--testsuite/synth/mem02/dpram1.vhdl28
1 files changed, 28 insertions, 0 deletions
diff --git a/testsuite/synth/mem02/dpram1.vhdl b/testsuite/synth/mem02/dpram1.vhdl
new file mode 100644
index 000000000..7801e6c0f
--- /dev/null
+++ b/testsuite/synth/mem02/dpram1.vhdl
@@ -0,0 +1,28 @@
+library ieee;
+use ieee.std_logic_1164.all;
+use ieee.numeric_std.all;
+
+entity dpram1 is
+ port (raddr : std_logic_vector (3 downto 0);
+ rdat : out std_logic_vector (7 downto 0);
+ waddr : std_logic_vector (3 downto 0);
+ wdat : std_logic_vector (7 downto 0);
+ clk : std_logic);
+end dpram1;
+
+architecture behav of dpram1 is
+ subtype memtype is std_logic_vector (16 * 8 - 1 downto 0);
+ signal mem : memtype;
+begin
+ process (clk)
+ variable ra : natural;
+ variable wa : natural;
+ begin
+ if rising_edge (clk) then
+ ra := to_integer(unsigned (raddr));
+ rdat <= mem (ra * 8 + 7 downto ra * 8);
+ wa := to_integer(unsigned (waddr));
+ mem (wa * 8 + 7 downto wa * 8) <= wdat;
+ end if;
+ end process;
+end behav;