QSYS does not allow to change the VHDL version of processed files. All respective files have to have a comment directive forcing the VHDL version.
56 lines
2.1 KiB
VHDL
56 lines
2.1 KiB
VHDL
-- altera vhdl_input_version vhdl_2008
|
|
-- XXX: QSYS Fix (https://www.intel.com/content/www/us/en/support/programmable/articles/000079458.html)
|
|
|
|
library ieee;
|
|
use ieee.std_logic_1164.all;
|
|
use ieee.numeric_std.all;
|
|
|
|
package test_package is
|
|
--generic( generic_var : natural := 1 );
|
|
|
|
-- Number of Domains
|
|
constant NUM_DOMAIN : integer := 1;
|
|
-----------------------------------------------------------------------------------------------------
|
|
-- *DO NOT MODIFY BEGIN*
|
|
type USER_DOMAIN_ID_TYPE is array (NUM_DOMAIN-1 downto 0) of integer;
|
|
-- *DO NOT MODIFY END*
|
|
-----------------------------------------------------------------------------------------------------
|
|
-- Array of Domain IDs
|
|
constant USER_DOMAIN_ID : USER_DOMAIN_ID_TYPE := (0 => 1);
|
|
|
|
constant DOMAIN_ID_WIDTH : integer := 32;
|
|
|
|
type TEST_ARRAY_TYPE is array (1 downto 0) of string(1 to 10);
|
|
constant TEST1 : string(1 to 10) := "Blah" & (1 to 6 => NUL);
|
|
constant TEST2 : TEST_ARRAY_TYPE := (0 => "Blah" & (1 to 6 => NUL),
|
|
1 => "Baba" & (1 to 6 => NUL));
|
|
|
|
type DOMAIN_ID_TYPE is array (NUM_DOMAIN-1 downto 0) of std_logic_vector(DOMAIN_ID_WIDTH-1 downto 0);
|
|
|
|
type TEST_ARRAY is array (natural range <>) of string(1 to 256);
|
|
|
|
function gen_domain_ids (user_id : USER_DOMAIN_ID_TYPE) return DOMAIN_ID_TYPE;
|
|
|
|
|
|
|
|
end package;
|
|
|
|
package body test_package is
|
|
|
|
function gen_domain_ids (user_id : USER_DOMAIN_ID_TYPE) return DOMAIN_ID_TYPE is
|
|
variable ret : DOMAIN_ID_TYPE;
|
|
begin
|
|
ret := (others => (others => '0'));
|
|
for i in 0 to user_id'length-1 loop
|
|
-- Check if User provided Domain ID fits
|
|
-- NOTE: Cannot assert due to vhdl integer overflow.
|
|
--assert (user_id(i) < (2**DOMAIN_ID_WIDTH-1 - PORT_CONFIG_PB) / PORT_CONFIG_DG) report "Domain ID range exceeded" severity failure;
|
|
ret(i) := std_logic_vector(to_unsigned(user_id(i), ret(i)'length));
|
|
end loop;
|
|
return ret;
|
|
end function;
|
|
|
|
constant DOMAIN_ID : DOMAIN_ID_TYPE := gen_domain_ids(USER_DOMAIN_ID);
|
|
|
|
end package body;
|