async reset for only some of the registers in a process
Say I have two processes looking like this
signal s_valid_reg : std_logic;
signal s_data_reg : std_logic_vector(7 downto 0);
process (CLK, RST)
if (RST = '1') then
s_valid_reg <= '0';
elsif (rising_edge(CLK)) then
s_valid_reg <= VALID;
if (rising_edge(CLK)) then
s_data_reg <= DATA;
I've separated the processes to decrease the global reset fanout.
My question is this:
I've noticed that if I write one process and under the async reset section I reset the data register with 'X' I get the same results, meaning the quartus ignores the async reset signal and does not turn it into an enable signal. Is this behavior mentioned anywhere? Is it vendor dependent?