ブロックalways
ブロックとブロックalways @*
の違いはありますか?Verilog: `always`と` always @ * 'の相違点
3
A
答えて
3
always @*
は、always
ブロックの1つである。組合せ論理を推論するために使用されます。
always @(posedge clock)
は、順次ロジックを推論するために使用されます。
詳細については、IEEE標準(1800-2009など)を参照してください。
0
これらは異なるです!私は彼らが同じだと思っていました。そうではありません。
常に@(*)は何も意味しませんが、コンパイラは自動的にそれを記入します。それが組み合わせロジックの場合は、それを使用してください!だからあなたは何も忘れずに機能を失敗させません。
常には、常に文章が実行されることを意味します。遅延がなければ、システムはを停止し、シミュレーション結果は得られません!とてもうるさい。
たとえば、FSMの次の状態ロジック部分では、常に@(*)ではなく常に使用すると動作しません。
以下は、私が書いた簡単なシーケンス検出器です。あなたが望むなら、それを実行するためにtbを書くことができます。
`タイムスケール1nsの/ 10PS
モジュールseq_detect3(//順序10110 を検出し、//シーケンス入力 CLK、//クロックの正エッジが RST、//リセット、アクティブハイ同期 一致をtrigged //アウトマッチ、一致する "1" );
input in, clk, rst;
output match;
wire in, clk, rst;
reg match;
reg [5:0] state, next_state;
parameter IDLE = 6'b000001; //no bit matched
parameter STATE1 = 6'b000010; //first 1 bit matched
parameter STATE2 = 6'b000100; //first 2 bits matched
parameter STATE3 = 6'b001000; //first 3 bits matched
parameter STATE4 = 6'b010000; //first 4 bits matched
parameter STATE5 = 6'b100000; //all 5 bits matched
//-----------S.M. & O.F.L.-----------
always @ (posedge clk) begin
if(rst) begin
state <= IDLE;
match <= #1 0;
end
else begin
state <= next_state;
if(state == STATE5) begin
match <= #1 1;
end
else begin
match <= #1 0;
end
end
end
//-----------next state logic-----------
always @(*) begin //Can not replaced by always here!!
case(state)
IDLE: if(in) next_state = STATE1; //0 keep, 1 next
else next_state = IDLE;
STATE1: if(in) next_state = STATE1; //0 next, 1 keep
else next_state = STATE2;
STATE2: if(in) next_state = STATE3; //0 idle, 1 next
else next_state = IDLE;
STATE3: if(in) next_state = STATE4; //0 s2, 1 next
else next_state = STATE2;
STATE4: if(in) next_state = STATE1; //0 next, 1 s1
else next_state = STATE5;
STATE5: if(in) next_state = STATE3; //0 idle, 1 s3
else next_state = IDLE;
default: next_state = IDLE;
endcase
end
ENDMODULE
関連する問題
- 1. Verilog alwaysブロックで 'generate'を使用する際の問題
- 2. Delphi - RoundTo - always down
- 3. STE ChangeTracker.OriginalValues always Empty
- 4. FileUpload.HasFile()always null
- 5. Jquery always functions
- 6. carrierwave content_type always nil
- 7. jQuery serialize()always empty
- 8. wp_nav_menu()always null
- 9. c#MainWindowHandle always zero
- 10. browser position.address.postalCode always null
- 11. Azureウェブサイト "Always On"
- 12. jQuery - always on top
- 13. Ckeditor getSelectedElement always null
- 14. WPF:SelectedValue always null
- 15. foreverとalwaysステートメントの使用
- 16. `always`ブロックの合成
- 17. Java Reflection isArray()always false
- 18. UIImagePickerController always pics 640x640 image
- 19. always-use-default-targetサンプル
- 20. sifr alternate text always display
- 21. MVCログイン。 User.Identity always empty
- 22. galleriaサムネイルnav always display
- 23. OpenLayers always-offlineアプリケーションですか?
- 24. Laravel angularjs Request :: ajax()always false
- 25. jquery mobile fixed(always on top)header
- 26. importとconstとの相違点とcommonjsでの相違点
- 27. =と:=の相違点
- 28. Apacheのヘッダー設定の "always"と "onsuccess"の違いは何ですか?
- 29. 複数のnode.js + always =エラー:EMFILE時計
- 30. PHPUnitとPHPSpecの相違点と相違点