title: Signal temp2 cannot be synthesized, bad synchronous description
body: <pre><code>entity timer is
      Port ( click : in  STD_LOGIC;
             clear : out  STD_LOGIC;
             t_unlock : out  STD_LOGIC);
  end timer;
  
  architecture Behavioral of timer is
      signal temp2 : integer range 0 to 20 := 0;
  begin
      process
      begin
          if rising_edge(click) then
              temp2&lt;=0;
              clear&lt;='0';
              t_unlock&lt;='0';
          else
              temp2&lt;=temp2+1 after 15 ns;
          end if;
          if temp2=6 then
              clear&lt;='1';
          elsif temp2=20 then
              t_unlock&lt;='1';
          end if;
      end process;
  end Behavioral;
  </code></pre>
  
  <p>I have writted this code.And the complier say:</p>
  
  <pre><code>Signal temp2 cannot be synthesized, bad synchronous description. The description style you are using to describe a synchronous element (register, memory, etc.) is not supported in the current software release.
  </code></pre>
  
  <p>I have searched on stackoverflow.They say <a href="https://stackoverflow.com/questions/30377494/signal-current-cannot-be-synthesized-bad-synchronous-description">The error 'bad synchronous description' usually means that you have described a register (clocked element) that does not exist in the hardware.</a>But I don't know how to solve my problem.</p>