Chisel コードを記述するときに、生成された Verilog コードのセンシティビティ リストにリセット信号を追加する方法 (たとえば、以下の D フリップフロップのコード):
val x = Reg(init = UInt(0, width = 1))
x := io.D
io.Q := x
Verilog コードを次のように生成します。
always @(posedge clk) begin
if(reset) begin
x <= 1'h0;
end else begin
x <= io_D;
end
end
ご覧のとおり、リセットはクロックと同期しています。Chisel をコーディングして次のようなものを生成する方法は次のとおりです。
always @(posedge clk or posedge reset) begin
if(reset) begin
x <= 1'h0;
end else begin
x <= io_D;
end
end
ここで、リセット信号は感度リストにあり、したがって非同期です。
編集: chrisvp が指摘したように、別の質問がここにあり、chisel-users の Google グループでの議論がここにあります