Let me dig down to the bottom of this question:
Some designers worry that feeding data from one flip-flop output to the
input of another flip-flop clocked by the same clock is "dangerous",
since a late-arriving clock on the destination flip-flop might clock in
the already changed info from the first flip-flop. This is called a race
condition, or a hold-time violation.
The obvious cure to this "problem" is to alternate between rising and
falling clock edges. This "cure" works, but it creates unnecassary
complexity and cuts performance in half.
Our answer is: Don't worry, be happy! The chip designers have taken
care of this situation and given you a very fast, low-sekw clock
distribution net ( actually many of these flobal clock nets) that
completely eliminate the theoretical "problem".
But if you use normal routing resources to distribute the clock, then it
is wise to worry. Running the clock delays in the opposite direction of
the data flow is a well-known cure.
Peter Alfke, Xilinx
=====
Dan RADUT wrote:
>
> (Henning Bahr) wrote in message news:<. com>...
> > Hi there!
> > I hope this isn't too trivial:
> > I'm having a digital system with a finite state machine and a few
> > other modules which send a control signal to the FSM. Do you think it
> > is possible to use only clock and only posedge Flip Flops in such a
> > design? I can't manage it without the inverted clock so that the
> > control signals change at half the clock signal. But is there a way to
> > avoid this without violating setup and hold times?
> >
> > Cheers,
> > Henning
>
> You can write your code using both the rising and falling edges of the clock.
> All you need is to select a device(FPGA)that accomodates the clock frequency
> and meets the timing constraints. Using timing constraints will help you to
> implement(write) the VHDL code such as not to violate setup and hold times(in
> Xilinx ISE is easy to do).
>
> Regards,
>
> DanR