I am currently using lp_clock_gating_control_point set to postcontrol, simply because this was set in the the scripts I inherited.
Are there any signficant advantages of postcontrol over precontrol?
I guess that postcontrol has a slight timing advantage, since precontrol has an additonal gate in the EN-D path.
Anything else? Which option do other users prefer or use?
timing is certainly a difference but I believe the biggest difference is observabiliy for DFT coverage purposes. Post control limits your ability to check proper operation of the CG latch if not mistaken
I suggest you check your target standard cell library to determine what kind of clock gating cells are available. In many cases only one type is available. For example:
$ grep clock_gating slow.lib clock_gating_integrated_cell : "latch_posedge"; clock_gating_integrated_cell : "latch_posedge"; clock_gating_integrated_cell : "latch_posedge_precontrol"; clock_gating_integrated_cell : "latch_posedge_precontrol"; In this case, you would want to use precontrol. If you chose post-control RC would be forced to build the clock gating cell from primitive components, which is obviously not what you would want.
In reply to bmiller:
Brad, the library I am using contains both pre and post control integrated cells, so this is not an issue I need to consider.
Grasshopper, I am not sure I understand your comment. I guess you mean that we will catch failts on the D input of the latch?
Thanks for the feedback,