aboutsummaryrefslogtreecommitdiffstats
path: root/testsuite/synth/synth39/record_test.vhdl
diff options
context:
space:
mode:
Diffstat (limited to 'testsuite/synth/synth39/record_test.vhdl')
-rw-r--r--testsuite/synth/synth39/record_test.vhdl43
1 files changed, 43 insertions, 0 deletions
diff --git a/testsuite/synth/synth39/record_test.vhdl b/testsuite/synth/synth39/record_test.vhdl
new file mode 100644
index 000000000..b199cfa36
--- /dev/null
+++ b/testsuite/synth/synth39/record_test.vhdl
@@ -0,0 +1,43 @@
+library ieee;
+ use ieee.std_logic_1164.all;
+ use ieee.numeric_std.all;
+
+entity record_test is
+ port (
+ clk : in std_logic;
+
+ sl_in : in std_logic;
+ slv_in : in std_logic_vector(7 downto 0);
+ int_in : in integer range 0 to 15;
+ usig_in : in unsigned(7 downto 0);
+
+ sl_out : out std_logic;
+ slv_out : out std_logic_vector(7 downto 0);
+ int_out : out integer range 0 to 15;
+ usig_out : out unsigned(7 downto 0)
+ );
+end record_test;
+
+architecture rtl of record_test is
+ type t_record is record
+ sl : std_logic;
+ slv : std_logic_vector(7 downto 0);
+ int : integer range 0 to 15;
+ usig : unsigned(7 downto 0);
+ end record t_record;
+ signal sample_record : t_record := ('0', (others => '0'), 0, (others => '0'));
+begin
+ process(clk)
+ begin
+ if rising_edge(clk) then
+ sample_record.sl <= sl_in;
+ sample_record.slv <= slv_in;
+ sample_record.int <= int_in;
+ sample_record.usig <= usig_in;
+ end if;
+ end process;
+ sl_out <= sample_record.sl;
+ slv_out <= sample_record.slv;
+ int_out <= sample_record.int;
+ usig_out <= sample_record.usig;
+end rtl;