組合邏輯電路並不會紀錄儲存以前發生過的狀況,而是直接反應輸入產生結果。
序向邏輯電路,它們會根據目前的輸出狀態決定下一次的輸出狀態。
由基本邏輯閘組合而成之電路,當組合邏輯電路之輸入參數改變時,輸出參數會依據基本邏輯閘電路及輸入參數數值作立即適度之變化。
序向邏輯電路包含組合邏輯電路外還擁有記憶元件,其可分成四個部分:輸入參數、基本邏輯閘電路、輸出參數及記憶元件。由序向邏輯電路系統方塊圖得知輸出參數值是依據輸入參數、組合邏輯電路及記憶元件現在狀態值作適度的變化。
時序邏輯電路是指電路任何時刻的穩態輸出不僅取決於當前的輸入,還與前一時刻輸入形成的狀態有關。這跟組合邏輯電路相反,組合邏輯的輸出只會跟目前的輸入成一種函數關係。換句話說,時序邏輯擁有儲存元件(記憶體)來存儲信息,而組合邏輯則沒有。
從時序邏輯電路中,可以建出兩種形式的有限狀態機:
module D_flipflop (D,Clk,Q);
input D,Clk;
output reg Q;
always @ (posedge Clk)
Q <= D; // <= 非區塊指定
endmodule
D Type Flip Flops:
Two things to note about inferring flip flops:
- Non blocking signal assignment (<=) should always be used
- The sensitivity list must have the keyword posedge or negedge. (also for resets)
D-type flip flopreg q; always @ (posedge clk) q <= d; |
D type flip flop with asynchronous resetreg q; always @ (posedge clk or posedge reset) if (reset) q <= 1'b0; else q <= d; |
D type flip flop with synchronous resetreg q; always @ (posedge clk) if (reset) q <= 1'b0; else q <= d; |
D type flip flop with gated clockreg q; wire gtd_clk = enable && clk; always @ (posedge gtd_clk) q <= d; |
Data enbled D type flip flopreg q; always @ (posedge clk) if (enable) q <= d; |
Negative edge triggered D type flip flopreg q; always @ (negedge clk) q <= d; |
沒有留言:
張貼留言