在許多應用中,整個設計項目都采用外部的全局時鐘是不可能或不實際的。PLD具有乘積項邏輯陣列時鐘(即時鐘是由邏輯產(chǎn)生的),允許任意函數(shù)單獨地鐘控各個觸發(fā)器。然而,當你用陣列時鐘時,應仔細地分析時鐘函數(shù),以避免毛刺。通常用陣列時鐘構成門控時鐘。門控時鐘常常同微處理器接口有關,用地址線去控制寫脈沖。然而,每當用組合函數(shù)鐘控觸發(fā)器時,通常都存在著門控時鐘。如果符合下述條件,門控時鐘可以象全局時鐘一樣可靠地工作:
1.驅(qū)動時鐘的邏輯必須只包含一個“與”門或一個“或”門。如果采用任何附加邏在某些工作狀態(tài)下,會出現(xiàn)競爭產(chǎn)生的毛刺。
2.邏輯門的一個輸入作為實際的時鐘,而該邏輯門的所有其它輸入必須當成地址或控制線,它們遵守相對于時鐘的建立和保持時間的約束。
組合邏輯中多用門控時鐘,一般驅(qū)動門控時鐘的邏輯都是只包含一個門,如果有其他的附加邏輯,就容易因競爭而產(chǎn)生不希望的毛刺。門控時鐘通過一個時能信號控制時鐘的開關。當系統(tǒng)不工作時可以關閉時鐘,整個系統(tǒng)處于非激活狀態(tài),這樣就能夠在某種程度上降低系統(tǒng)功耗。然而,使用門控時鐘并不符合同步設計的思想,它可能會影響設計的實現(xiàn)和驗證。單純從功能上看,使用使能時鐘替代門控時鐘是一個不錯的選擇;但是使能時鐘在使能信號關閉時,時鐘信號仍然在工作,它無法像門控時鐘那樣降低系統(tǒng)的功耗。
解決方案:
對于上升沿有效的系統(tǒng)時鐘clk,他的下降沿先把門控時鐘打一拍,然后再用這個使能信號和系統(tǒng)時鐘clk相與后作為后續(xù)電路的門控時鐘。