Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.
Low pass latch + AND can gate the rising edge triggered FF. This will make the enable pin has 1T delay. When use Low pass latch + AND, if you pass STA, there will be no glitch. OR gate can also gate the rising edge triggered FF, if you pass STA, there will be also no glitch.
ps: when use write your own gate module, you'd bettern instance the cell library cell directly, this will disable synthesis tool do optimization on your gate logic. and there may have clock gating cells in your cell library now, may named as ICG cell.
You can use latch based clock gating style to avoid glitches. Use latch and AND gate combination.
clk and enable signal as inputs of latch, the output of latch will be one input for AND gate and the other input is clk signal. The output od AND gate is propagated to flop as a clock signal.
Now a days it is command pratice that you should tell your synthesis tool that this is ICG cell (integrated clk gating cell) and put constrain that use clk gating for bus greater than x bit wide. Synthesis tool will take care rest of the things.
Nir,
Are you pointing to ICG cells ?,
then I think ICG cells are available with the scan issue provision. ICG cells are available with scan pin option. So ICG cell as whole will take care for all the issues...
Any further comments on this.
I'm agree with navneetgupta.
Since, we don't have ICG cell and need to use low pass latch + AND gate as a replacement. During STA, latch must be properly constrained coz it is an async cell.
Let me give solution conceptually .. I am not sure how much this would be true ..
may be other forum members can completely disagree with it .. but i hope it will give some idea ..
Look at setup and hold time requirements of latch from your tech library ... Constraint your latch input with respect to clock (enable) signal at falling edge appropriately ...
for example, setup time is 12 ps (wild guess) ..
than constraint input of latch like this:
maximum delay allowed for path from previous flop to latch input (give this as a constraint) = clk-q (launching flop) + path delay + letch setup time (12 ps in our case)
probably set_max_delay can do this.
Only thing is you need to calculate delay (for path between launching flop & latch ) values for your self and constraint in .. But this value will change again when you generate new netlist ...
Here i have a suggestion.
Instead of using a latch, we use a negedge flop.
AND gate + negedge D-ff.
Now, someone might ask what happen when clock is transitioning from HIGH to LOW...meta-stability.
Since, after the transition the clock is low and then AND gate.
So, the AND gate will block the unstable flop value for the entire low period of the clock. Plus, it is much easier to do STA later on.
What do you think?
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.