|
勇敢的芯伴你玩轉Altera FPGA連載25:組合邏輯與時序邏輯 特權同學,版權所有 配套例程和更多資料下載鏈接: http://pan.baidu.com/s/1i5LMUUD
數字電路按照邏輯功能一般可以分為組合邏輯和時序邏輯。組合邏輯不含有任何用于存儲比特信號的電路,它的輸出只和當前電路的輸入有關,如前面(圖3.12)所列舉的加法器的電路。時序邏輯可以含有組合邏輯,并且一定有用于存儲比特信號的電路(一般為寄存器),時序邏輯的輸出值不僅和當前輸入值有關,一般也和電路的原有狀態相關。 如圖3.16所示,同樣是簡單的與非門電路,左側為組合邏輯,右側則為時序邏輯。
圖3.16 組合邏輯與時序邏輯電路 如圖3.17所示,以上面的組合邏輯和時序邏輯電路為例,輸入信號x和y為隨機信號,組合邏輯的輸出信號z1在輸入x和y發生變化并滿足邏輯變化條件時立刻發生變化,當然了,這個變化在實際電路中也有一定的延時。而在時序邏輯中,該實例除了組合邏輯滿足條件外,只有在時鐘信號clk的每個上升沿輸出z2才會發生變化。這里有一個細節大家也需要注意,x和y的組合邏輯輸出值在時鐘上升沿到來的前后的某段時間內(即建立時間和保持時間)必須是穩定的,否則有可能鎖存到不穩定的值(即亞穩態)。
圖3.17 波形輸入與輸出示例 通過這個簡單的例子,我們大致可以了解組合邏輯和時序邏輯的特點。一般而言,他們存在以下的區別: ● 組合邏輯的輸出與輸入直接相關,時序邏輯的輸出和原有狀態也有關。 ● 組合邏輯立即反應當前輸入狀態,時序邏輯還必須在時鐘上升沿觸發后輸出新值。 ● 組合邏輯容易出現競爭、冒險現象,時序邏輯一般不會出現。 ● 組合邏輯的時序較難保證,時序邏輯更容易達到時序收斂。 ● 組合邏輯只適合簡單的電路,時序邏輯能夠勝任大規模的邏輯電路。 在今天的數字系統應用中,純粹用組合邏輯來實現一個復雜功能的應用幾乎絕跡了。時序邏輯在時鐘驅動下,能夠按部就班的完成各種復雜的任務,也能夠非常便利的達到時序要求,并且能夠解決各種異步處理帶來的亞穩態問題。因此,時序邏輯設計的一些方法和手段是大家必須掌握和熟練應用的。 |