1

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 グループでの議論がここにあります

4

2 に答える 2