Skip to main content
Logo image

Section 9.3 A template for mixed synchronous and asynchronous processes

process(clk, A, B, ...)           -- 1                       
begin
   if rising_edge(clk) then       -- 2
      -- synchronous logic                                 
   end if;    

   -- asynchronous logic          -- 3
end process;
Listing 9.3.1. A template for combining synchronous and asynchronous logic in the same VHDL process.
  1. The sensitivity list includes the clock and all inputs to the asynchronous part.
  2. The synchronous logic is inside the if rising_edge(clk)...end if block.. Every signal assignment in this block is registered (stored in flip-flops).
  3. The asynchronous logic is outside the if rising_edge(clk)...end if block. These signal assignments are not registered.