Forum Discussion
Altera_Forum
Honored Contributor
8 years agoHow about:
assign CLK1 = EXT_CLK & ~CLK2; assign CLK2 = !EXT_CLK & ~CLK1; which is basically how one does this using cross-coupled NAND gates in discrete TTL logic. That being said, if CLK1 and CLK2 are to be distributed over a wide area (large number of loads) controlling skew to guarantee they will be nonoverlapping at all loads will be problematic. It will require timing constraints for layout, and you may find as the design progresses that some layouts fail to meet timing as the placement/routing changes. All in all I would say this is NOT a good design approach and I would look to find a solution that relies on logic using a single distributed clock where you use both edges, as appropriate, for local clocking.