天天看點

組合邏輯電路與時序邏輯電路

部落客福利:100G+電子設計學習資源包!

​​http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect​​ --------------------------------------------------------------------------------------------------------------------------

組合邏輯電路:輸出隻是目前輸入邏輯電平的函數(有延時),與電路的原始狀态無關的邏輯電路。當輸入信号中的任意一個發生改變時,輸出都有可能變化,但與目前所處的狀态沒有任何關系(即邏輯電路無記憶部件)。

時序邏輯電路:輸出不隻是目前輸入的邏輯電平的函數,還與目前電路所處的狀态有關的邏輯電路(即邏輯電路有記憶部件)。

組合邏輯電路實作方法:

  1. 組合邏輯語句可以用 assign 語句實作:

          assign c=a+b; //加法器

          assign c= ena ? a : b; //資料選擇器

      2. 複雜的組合邏輯最好用 always 塊實作:

由于在 always 塊中可以使用 if、 case 等語句,是以對于複雜的組合邏輯,使用 always語句描述顯得層次更加清楚,可讀性更強。

時序邏輯電路的結構特點:

1)時序邏輯電路通常包含組合電路和存儲電路兩部分,存儲電路(觸發器)是必不可少的;

2)存儲器的輸出狀态必須回報到組合電路的輸入端,與外部輸入信号共同決定組合邏輯電路的輸出。

時序邏輯電路的分類:

1)按邏輯功能劃分有: 計數器、寄存器、移位寄存器、讀/寫存儲器、順序脈沖發生器等。

2)根據儲存電路中觸發器的動作特點不同分為: 同步時序電路和異步時序電路。 在同步時序電路中,所有觸發器狀态的變化都是在同一時鐘信号操作下同時發生的。在異步時序電路中,觸發器狀态的變化不是同時發生的。

3)根據輸出信号的特點分為: 米利(Mealy)型和穆爾(Moore)型。 在米利型電路中,輸出信号不僅取決于存儲電路的狀态,而且還取決于輸入變量。在穆爾型電路中,輸出信号僅僅取決于存儲電路的狀态。穆爾型電路隻是米利型電路的一種特例。

always & assign:  

同一Verilog子產品中所有過程塊(如initial/always)、連續指派語句、執行個體引用語句都是并行的,前後次序沒有關系。

隻有連續指派語句(assign)和執行個體引用語句可以獨立于過程塊而存在于子產品的功能定義部分。

always塊内部的語句順序執行,always塊稱為過程塊,always塊中的語句稱為順序語句。

在 always 塊中,被指派的信号都必須定義為 reg 型,這是由時序邏輯電路的特點所決定的。對于 reg 型資料,如果未對它進行指派,仿真工具會認為它是不定态。為了能正确地觀察到仿真結果,在可綜合風格的子產品中我們通常定義一個複位信号 reset,當 reset 為低電平時,對電路中的寄存器進行複位。

在 always 塊中,阻塞指派可以了解為指派語句是順序執行的,而非阻塞指派可以了解為指派語句是并發執行的。實際的時序邏輯設計中,一般的情況下非阻塞指派語句被更多地使用,有時為了在同一周期實作互相關聯的操作,也使用了阻塞指派語句。(注意:在實作組合邏輯的 assign 結構中,無一例外地都必須采用阻塞指派語句。)