示例有限狀態機(finite state machine,fsm)包含幾個要素: 輸入、狀態、狀態轉移條件、輸出。這裡討論的兩種狀態機區別在於輸出的產生:
二段式:
有兩個always block:狀態切換用時序邏輯描述、次態判斷和輸出用組合邏輯描述。
這種寫法條理清晰,但輸出由組合邏輯描述因此可能存在競爭和冒險,產生毛刺。若要解決毛刺,一般要對狀態機的輸出用暫存器打一拍,但很多情況不允許插入暫存器節拍,此時應使用三段式描述。
三段式:
有三個always block:狀態切換和輸出用時序邏輯描述、次態判斷用組合邏輯描述。
輸出邏輯也用時序邏輯塊描述,可以解決毛刺問題。由於時序邏輯輸出實質也是對輸出打一拍,為了解決比組合邏輯慢一拍的問題,三段式寫法應用次態作為輸出判斷條件。
求法:負數的補碼等於他的原碼自低位向高位,的第乙個『1』及其右邊的『0』保持不變,左邊的各位按位取反,符號位不變。
次態判斷和狀態切換
parameter s0=
0,s1=
1,s2=
2,s3=3;
//位反轉前輸出0,1狀態,反轉後輸出0,1態
reg[1:
0] state,next;
always@(posedge clk or posedge areset)begin//時序邏輯、非同步復位
if(areset)
state<=s0;
else
state<=next;
endalways@(
*)begin//組合邏輯
case
(state)
s0:next=x?s1:s0;
s1:next=x?s2:s3;
s2:next=x?s2:s3;
s3:next=x?s2:s3;
endcase
end
輸出邏輯(二段式)
//這是二段式moor狀態機寫法,輸出只與狀態有關,用現態判斷
//輸出是組合邏輯輸出,可能毛刺
//組合邏輯用阻塞賦值,若未列出所有可能要有default
always@(
*)begin
case
(state)
s0:z=0;
s1:z=1;
s2:z=0;
s3:z=1;
default
:z=0
; endcase
end
輸出邏輯(三段式)
//三段式moor寫法(時序塊產生輸出)
//用next判斷可以解決時序邏輯比組合邏輯慢一拍的問題
//時序邏輯用非阻塞賦值
always@(posedge clk or posedge areset)begin
if(areset)
z<=0;
else
case
(next)
s0:z<=0;
s1:z<=1;
s2:z<=0;
s3:z<=1;
default:;
endcase
end
次態判斷和狀態切換
parameter a=
2'b01,b=2'b10,c=
2'b11;
reg[1:
0] state,next;
always@(
*)begin
case
(state)
a: next=
(x&~areset)
?b:a;
b: next=c;
c: next=c;
default
:next=next;
endcase
endalways@(posedge clk or posedge areset)begin
if(areset)
state<=a;
else
state<=next;
end
//這是二段式mealy狀態機寫法,用現態判斷
//題目本身就是輸出相對輸入慢一拍的(輸出取決於上一拍的輸入)
//對於組合邏輯輸出(輸出取決於現在的輸入),需要打一拍
//對於moor機與輸入無關就沒有這個問題
always@(posedge clk or posedge areset)
if(areset)
x_t<=0;
else
x_t<=x;
always@(
*)begin
if(areset)
z=x_t;
else
case
(state)
a: z=x_t;
b: z=x_t;
c: z=
~x_t;
default
:z=x_t;
endcase
end
輸出邏輯(三段式)
//三段式moor寫法(時序塊產生輸出)
//時序邏輯用非阻塞賦值
//題目本身就是輸出相對輸入慢一拍的(輸出取決於上一拍的輸入)正好對應一次打拍
always@(posedge clk or posedge areset)begin
if(areset)
z<=0;
else
case
(next)
a: z<=x;
b: z<=x;
c: z<=
~x;default
:z<=x;
endcase
end
三段論邏輯
一。承前啟後 前面說過,邏輯學是研究 推論 的學科。推論的有效性取決於它的形式而不取決於它的內容。推論是由命題組成的,而命題又是由詞項組成的。前面一段討論的是命題邏輯,命題邏輯只研究簡單命題和復合命題之間的關係,這種復合邏輯的真值僅僅取決於其支命題的真值,不涉及到命題內部的詞項之間的邏輯關係。命題邏...
二段提交協議 三段提交協議
1 二段提交協議 2pc提交事務階段 投票階段 協調者發起事務請求到所有的參與者,參與者接收到事務請求後判斷自身情況,如果不能執行事務,則反饋不能提交事務,返回no,如果可以就執行事務,並將undo和redo資訊記錄事務日誌中,反饋yes 執行事務階段 協調者收到所有參與者反饋yes就發布commi...
調音台 三段EQ調音
調音台最主要的作用之一就是對音色進行修飾,而現在的調音台 高檔除外 音調部分幾乎無一例外都是三段式均衡器 高頻 低頻再加乙個中頻參量均衡器,即高音頻率lokhz或是2khz,低音80hz或是100hz,有些則標個英文的hi和lo讓你去猜,但你猜以上引數也會 不離十。中頻則是引數可調式的,對於中頻參量...