[基本]有限状態マシンの設計をFMS

  有限ステートマシンは非常に基本的なVerilogである非常に重要な知識です。本論文では、有限状態マシンは、簡単な紹介を行います。

 

1ステートマシンの3つの要素は

  有限状態機械は、3つの要素を有する:ジャンプの状態は、ジャンプが決定され、動作の状態を、

  1)ステータスジャンプ二次状態へジャンプし、現在の状態。

  2)決意ジャンプ:状態決意条件ジャンプ。

  3)操作状態:状態の動作に対応します。

 

2.ステート・マシンの実装

  1)ワンセグ:状態マシンは三つの要素に統合され、常にブロックします。

1      常に @(posedgeの CLK または negedgeのRST_N)
 2      開始
3を       場合(!RST_N)開始
4          状態を<= 2 " B00を。
5          Qoutが<= 1 ' B0。
6        端部
7        他の 場合(状態)
 8          2 'のB00:始める
9            た場合(A)開始
10              状態を<= 2 ' B01と、
11              Qoutが<= 1 ' B1。
12           エンド
13を           他の 開始
14              の状態を<= 2 ' B00。
15              Qoutが<= 1 ' B0。
16            端部
17          端部
18          2 'のB01:始まる
19を           場合(!A)開始
20              状態を<= 2 ' B00と、
21              Qoutが<= 1 ' B0。
22            端部
23             始まる
24              の状態を<= 2 ' B01。
25              Qoutが<=1 " B1; 
26            終了
27          終了
28          デフォルト:;
29は       ENDCASE 
30      の端を
FMS_ONE

  2)二段階:三つの要素の二つに状態機械設計である常にブロック。

1      常に @(posedgeの CLK または negedgeのRST_N)
 2       開始
3を        場合(!RST_N)
 4           状態<= 2 " B00。
5         他の 場合(状態)
 6           2 'のB00:始める
7             場合(A)、
 8               状態<= 2 ' B01。
9             他の 
10               状態<= 2 ' B00と、
11           端部
12           2 'のB01:開始
13            もし(!A)
 14               状態<= 2 " B00。
15             他の
16               状態<= 2 ' B01。
17           終了
18           デフォルト:;
図19は、        ENDCASE 
20       の端部
21   
22を           常に(@ posedgeの CLK または negedgeのRST_N)
 23は      開始
24を        場合(!RST_N)
 25           Qoutを<= 1 'は、B0 
26         他の 場合(状態)
 27          2 'のB00:Qoutが<= 1 ' B0。
28           2 'のB01:Qoutが<= 1 ' B1。
29           デフォルト:;
30は        ENDCASE 
31       の端を
FMS_TWO

  3 )三段階:それぞれ3つの要素を持つ状態マシン、3つが常にブロック。

FMS_THREE
1      常に(@ posedgeの CLK または negedgeの RST_N)// 状態遷移
2      開始
3。       IF(!RST_N)    
 4。                  current_state <= 2 ' B00; //リセット
5        そう 
6                  current_state <= next_state // 現在の状態でリフレッシュクロックの立ち上がりエッジ
7      終了
。8  
。9          常に(current_state)@は           // 判決ジャンプ                     
10を     始める
。11              ケース(current_state)
 12は                 2 "B00:開始
13                      であれば(A)
 14                          next_state = 2 ' B01。
15                      
16                          next_state = 2 ' B00。
17                  端部
18                  2 'のB01:始まる
19を                     場合(!A)
 20                          next_state = 2 ' B00。
21                      
22                          next_state = 2 ' B01。
23                  終了
24                  デフォルト:;
25      終了
26は、 
27          必ず(*)@                      // 状態動作
28          開始
29              ケース(current_state)
 30                  2 'B00を:Qoutがは= <1 ' B0;
 31である                 2 ' B01:Qoutがある<= 1。' B1;
 32                  デフォルト:;
 33は             ENDCASE 
34が         エンド

 

3.ステートマシン設計要件

  1)設計要件に応じて適切なスタイルを選択します。

  2)case文はdefault文に追加する必要があります。

  3)巧妙なDFFリレー、信頼性を向上させます。

  グレイコードの設計条件を用いて、4)クラスホットエンコードされ、

  5)覚えグローバルリセットを使用しました。

おすすめ

転載: www.cnblogs.com/yjw951012/p/10964420.html