Community
cancel
Showing results for 
Search instead for 
Did you mean: 
yonana
Beginner
36 Views

async reset for only some of the registers in a process

Hi,

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;

end if;

end process;

process (CLK,)

if (rising_edge(CLK)) then

s_data_reg <= DATA;

end if;

end process;

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?

i.e.

process (CLK, RST)

if (RST = '1') then

s_valid_reg <= '0';

s_data_reg <= 'X';

elsif (rising_edge(CLK)) then

s_valid_reg <= VALID;

s_data_reg <= DATA;

end if;

end process;

0 Kudos
0 Replies
Reply