Older VHDL books write clocked processes as if clk'event and clk = '1' then, newer code uses if rising_edge(clk) then. Both synthesise to the same flip-flops in my 50 MHz design. In simulation, however, I noticed that the old form produced a clock edge at the very start, when clk went from 'U' to '1'.
Is rising_edge just shorthand, or does it behave differently? And can I use it on signals other than the clock, for example to detect a button press?




