Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
15 years ago

Quick Question - How to event on multiple clocks rising edges?

Very quick question...

If I have two clocks of different speeds, and want something to happen when the rising edge of both clocks occur at the same time.... how do I do this?

I have tried a few different ways, but am relatively new to VHDL...e.g. I tried something like:

 
if ((intRCLK'EVENT) and (intRCLK = '1')) then
  if((MULT_CLK'EVENT) and (MULT_CLK='1')) then
   Load_State <= Load_Byte1;
  else
   Load_State <= Load_IDLE;
  end if;
 end if;

But got errors such as:

error (10820): netlist error at lvds_fifo_control.vhd(229): can't infer register for load_state[0] because its behavior depends on the edges of multiple distinct clocks

and:

error (10822): hdl error at lvds_fifo_control.vhd(221): couldn't implement registers for assignments on this clock edge

I know I am going about this in the wrong way, but I don't really know what approach to take with this.

As always, any pointers or help greatly appreciated!

17 Replies