20 / 36 · 概念
以前の値から次の値を計算する
非ブロッキング代入とリセット優先度を読みます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
学習目標
- 非ブロッキング代入とリセット優先度を読みます。
以前の値から計算する
count<=count+2'b01の右辺は更新前のcountです。01なら次は10です。<=は計算結果を非ブロッキング更新段階へ予約します。複数のレジスタも同じエッジの前後を分けて考えます。
always_ff @(posedge clk)
if (rst) count <= 2'b00;
else count <= count + 2'b01;選ばれる分岐は一つ
rst=1ならifのリセット分岐だけで00を保存します。同じエッジでリセット後にelseの増加まで行うわけではありません。現在値、rst、選んだ分岐、次の値を表にすると優先度や折り返しを確認できます。
自分で考えてみましょう
count=11、rst=1の立上り後は00か01か?
解説を見る
00です。リセット分岐を選び、増加分岐には進みません。
✓ 学習済み