16 / 36 · 概念
フリップフロップとクロックイネーブル
リセット・許可・保持の優先順位を定めます。
レッスンは無料で読めます。受講登録すると進捗を保存できます。
学習目標
- リセット・許可・保持の優先順位を定めます。
値の保持も動作の一部
フリップフロップはクロックエッジで保存します。en=1のときだけq<=dを実行するとen=0では保持します。これは任意の組合せ回路でクロックを切る操作とは異なります。if(rst)を先に書けばrstとenが同時でもリセットが優先します。
always_ff @(posedge clk) begin
if (rst) q <= 1'b0;
else if (en) q <= d;
end順序回路と組合せ回路の違い
同期リセットはエッジがなければqを変えません。always_ffの条件付き未代入は保持を表せますが、always_combでは全経路に代入してラッチを避けます。rst/enを1/1、0/0、0/1にしてリセット・保持・取り込みを個別に試してください。
自分で考えてみましょう
q=1、d=0、rst=0、en=0の次のqは?
解説を見る
en=0なので以前のq=1を保持します。
✓ 学習済み