Programmable Devices
CPLDs, FPGAs, SoC FPGAs, Configuration, and Transceivers
20688 Discussions

Cascading gated clock bufs in Arria 2 GX

Altera_Forum
Honored Contributor II
1,001 Views

I need (at least) two levels of gated clocks in a particular design. 

 

For example: 

Input pin drives signal called CLKIN. The CLKIN drives global or regional 

clock net called CLK1A and CLK1B which are enabled with signals EN1A and 

EN2A respectively. 

 

The first clock domain is clocked from both CLK1A and CLK1B which must of 

course be matched in skew. 

 

CLK1A also drives global or regional clock nets called CLK2A and 

CLK2B which are enabled with signals EN2A and EN2B respectively. 

 

The second clock domain is clocked from both CLK1A and CLK1B which must of course be matched in skew. 

 

I find that I cannot fit this in Arria2, since neither GCLK or RCLK can be 

driven from another GCLK or RCLK. 

 

If anyone has a solution to this I would be very grateful. 

 

BTW - I really do want to shut down the clock with the enable, and NOT 

have the enable synthesized away into logic. 

:oops:
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
296 Views

Possible solution 1: Replace your clock gating with clock enables. 

If you can't rewrite all the code to insert clock enables, Quartus has an option to convert clock gating into clock enables. You may have to rewrite the clock gating code to match Altera's template for this. 

 

Possible solution 2: 

Replace your two levels of gating with a single level. Combine EN1A and EN2A to produce the gated clock CLK2A. Same for CLK2B. 

In this case, I assume you are using ALTCLKCTRL to gate the clocks. It's the only way to have low skew clock gating/muxing on Altera's FPGAs.
0 Kudos
Reply