推斷出來的時鐘門控,我不想要
比起寫書,寫專欄要輕松很多,不用考慮遣詞造句,格式字體,讓我們用白話來輕松討論吧。
除了我們手動插入的時鐘門控外,工具會自動推斷出一些時鐘門控,但其中有一部分,它其實(shí)不是時鐘門控,而是時鐘。
工具推斷時鐘門控的方法如下,如果A點(diǎn)是已聲明的時鐘,那么B點(diǎn)輸入信號就會被推斷為時鐘門控,C點(diǎn)就是門控后的時鐘。

但實(shí)際情況并不是這樣的,我的設(shè)計中,也有A和B都是時鐘的,兩個都不是門控。
還有一種是時鐘從pad輸出,這個時候你再推斷出時鐘門控,再去檢查時鐘門控就沒啥意義了,比如下圖,假設(shè)A是一個想要輸出的時鐘,B,C,D是另外3個想要輸出的信號,經(jīng)過MUX 四選一輸出到pad外面。由于A是時鐘,B,C,D會被當(dāng)成時鐘門控,pad_output會被當(dāng)成時鐘樹的一根樹枝,pad_out_en又會被當(dāng)成時鐘門控。

被推斷成時鐘門控后,工具就會對時鐘門控做時序檢查,就是setup檢查和hold檢查。以下是一個hold檢查的例子,檢查點(diǎn)設(shè)定為該時鐘的下降沿,門控須在時鐘檢查點(diǎn)后再保持一段時間,如果不是這樣,就是違例。

違例了就會在min檢查時報錯:

但在pad的例子中,B,C,D,pad_out_en信號都不是門控,不想做門控檢查,不想報錯,咋辦?
用set_disable_clock_gating_check命令,它只能屏蔽那些推斷出的門控,沒法屏蔽手動插入的門控,不過我們要的就是這個。
舉個例子,這是屏蔽了對A2上門控的檢查。
set_disable_clock_gating_check? u_pad_mux/U3/A2
上面舉的例子是hold檢查,setup檢查很多會被工具自動屏蔽掉,如下:
