using both edges of clocks in a design - effects on synthesis

Hi,

I am working on a design where there are different components coded by different people. I am integrating all of these into a single top module.

Different components have transitions on different edges of the clock.For eg: a FIFO in the design waits for the negative edge of the clock whereas another component waits for the positive edge of the clock...

My question is...will it lead to synthesis problems if I make the code work keeping the different clock transitions or should I make all of them(including the subcomponents) transition on the same edge of the clock..

I am synthesizing to Virtex XC2V 4000 FPGA and am planning to download the bitstream and show a working proof

Thanks, Hardware Engineer

Reply to
hardwareengineer
Loading thread data ...

Followup to: By author: snipped-for-privacy@gmail.com (hardwareengineer) In newsgroup: comp.arch.fpga

Depends on the FPGA you're synthesizing to. Most current FPGAs can clock any particular register either on the positive edge or on the negative edge, but not both.

I have not had any problems having some elements clock on the positive edge and some on the negative edge, however, and the timing tools seem to deal with it fine as well.

-hpa

Reply to
H. Peter Anvin

Sounds like you had some very poor project management. A top down design phase would have spec'd all the interfaces so that this would not be an issue.

The real question is, did they do their designs knowing the clock phasing of the other components? If a pos edge register feeds a neg edge reg (or vice versa), you will only have half a clock cycle for the signals to run through the logic and routing and meet the setup time of the destination register. Otherwise the synthesis software will do exactly what you want and give you logic clocked on what ever edge you spec.

--
Rick "rickman" Collins

rick.collins@XYarius.com
 Click to see the full signature
Reply to
rickman

I recently received such design too, with a FIFO being clocked on the negative edge and the rest on the positive edge. It synthesizes and works fine, but Quartus says it can't achieve the timing goals, whatever speed you enter. But this is a matter of setting up the timing constaints properly I've been told; still have to check that out.

Jeroen

Reply to
Jeroen

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.