diff --git a/modules/common/gc_sync.vhd b/modules/common/gc_sync.vhd index df946220ce6c36ee8558f8d64cd263c79f15b4fa..0b8c6e7a16e5a5353218c5f0af2d84e36da85be5 100644 --- a/modules/common/gc_sync.vhd +++ b/modules/common/gc_sync.vhd @@ -30,8 +30,7 @@ entity gc_sync is clk_i : in std_logic; rst_n_a_i : in std_logic; d_i : in std_logic; - q_o : out std_logic - ); + q_o : out std_logic); end gc_sync; -- make Altera Quartus quiet regarding unknown attributes: @@ -56,6 +55,9 @@ architecture rtl of gc_sync is attribute keep of sync0 : signal is "true"; attribute keep of sync1 : signal is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of rtl : architecture is "true"; + attribute async_reg : string; attribute async_reg of gc_sync_ffs_in : signal is "true"; attribute async_reg of sync0 : signal is "true"; diff --git a/modules/common/gc_sync_ffs.vhd b/modules/common/gc_sync_ffs.vhd index 3b6fafbfd8fb57ce8b36d37ad83994bf29c4c6f1..1a1d08c42e022227163866ed47dfa6d4ad79add3 100644 --- a/modules/common/gc_sync_ffs.vhd +++ b/modules/common/gc_sync_ffs.vhd @@ -62,6 +62,9 @@ architecture arch of gc_sync_ffs is attribute keep of gc_sync_ffs_in : signal is "true"; + attribute keep_hierarchy : string; + attribute keep_hierarchy of arch : architecture is "true"; + -- synchronizer attribute for Vivado attribute ASYNC_REG : string; attribute ASYNC_REG of sync0 : signal is "true"; diff --git a/modules/common/gc_sync_register.vhd b/modules/common/gc_sync_register.vhd index 1f21662a010e9d53a887c4f286804c9423b26e84..85624d24f53671fbeef5dd5961ce74d086997de4 100644 --- a/modules/common/gc_sync_register.vhd +++ b/modules/common/gc_sync_register.vhd @@ -53,7 +53,10 @@ architecture rtl of gc_sync_register is attribute keep of gc_sync_register_in : signal is "true"; attribute keep of sync0 : signal is "true"; attribute keep of sync1 : signal is "true"; - + + attribute keep_hierarchy : string; + attribute keep_hierarchy of rtl : architecture is "true"; + attribute async_reg : string; attribute async_reg of gc_sync_register_in : signal is "true"; attribute async_reg of sync0 : signal is "true"; diff --git a/modules/genrams/common/inferred_async_fifo.vhd b/modules/genrams/common/inferred_async_fifo.vhd index e88480301263545d559fd0f3286ab5c01c9be601..f2cf45d89b5d7bf32d227c114808b16e4393c73b 100644 --- a/modules/genrams/common/inferred_async_fifo.vhd +++ b/modules/genrams/common/inferred_async_fifo.vhd @@ -83,6 +83,10 @@ entity inferred_async_fifo is rd_count_o : out std_logic_vector(f_log2_size(g_size)-1 downto 0) ); + attribute keep_hierarchy : string; + attribute keep_hierarchy of + inferred_async_fifo : entity is "true"; + end inferred_async_fifo; diff --git a/modules/genrams/common/inferred_async_fifo_dual_rst.vhd b/modules/genrams/common/inferred_async_fifo_dual_rst.vhd index 89e6eb3cc6c00562bbb3950cb4d335e51a998467..23e900f2165017b21322928292c274a3839331e4 100644 --- a/modules/genrams/common/inferred_async_fifo_dual_rst.vhd +++ b/modules/genrams/common/inferred_async_fifo_dual_rst.vhd @@ -74,6 +74,10 @@ entity inferred_async_fifo_dual_rst is rd_count_o : out std_logic_vector(f_log2_size(g_size)-1 downto 0) ); + attribute keep_hierarchy : string; + attribute keep_hierarchy of + inferred_async_fifo_dual_rst : entity is "true"; + end inferred_async_fifo_dual_rst;