クロックとリセット
clock
はクロック配線を表す特別な型です。クロックの極性を指定するため以下の3種類があります。
clock
: ビルド時の設定で指定される極性を持つクロック型clock_posedge
: 正極性のクロック型clock_negedge
: 負極性のクロック型
reset
はリセット配線を表す特別な型です。リセットの極性と同期・非同期を指定するため以下の5種類があります。
reset
: ビルド時の設定で指定される極性と同期性を持つリセット型reset_async_high
: 正極性の非同期リセット型reset_async_low
: 負極性の非同期リセット型reset_sync_high
: 正極性の同期リセット型reset_sync_low
: 負極性の同期リセット型
特別な要件がなければ、コードの再利用を高めるため clock
と reset
の使用を推奨します。
module ModuleA (
i_clk : input `_ clock ,
i_clk_p : input `_ clock_posedge ,
i_clk_n : input `_ clock_negedge ,
i_rst : input `_ reset ,
i_rst_a : input `_ reset_async_high,
i_rst_a_n: input `_ reset_async_low ,
i_rst_s : input `_ reset_sync_high ,
i_rst_s_n: input `_ reset_sync_low ,
) {
var a: logic;
var b: logic;
var c: logic;
always_ff (i_clk, i_rst) {
if_reset {
a = 0;
} else {
a = 1;
}
}
always_ff (i_clk_p, i_rst_a) {
if_reset {
b = 0;
} else {
b = 1;
}
}
always_ff (i_clk_n, i_rst_s_n) {
if_reset {
c = 0;
} else {
c = 1;
}
}
}