Verilogで特定のノードの値を強制的に指定するために,force文を使う.force文の指定を解除するためには,release文を使う.非同期分周器の場合,分周器の入力に対して強制的に値を指定し,クロック立ち上がりを入力し値をDFFに取り込む.次に,release文を使う事でforce文を解除する.
- module tb();
- reg CLK;
- wire OUT;
- always begin
- #5 CLK <= ~CLK;
- end
- // dut
- DIV INST_DIV(
- .CLK(CLK),
- .OUT(OUT)
- )
- initial begin
- CLK <= 1;
- force INST_DIV.invout=1;
- #10
- release INST_DIV.invout;
- end
- endmodule
- module DIV(
- .CLK,
- .OUT
- );
- input CLK;
- output OUT;
- wire invout;
- inverter(.A(OUT), .YB(invout));
- dff(.CLK(CLK), .DATA(invout), .Y(OUT));
- endmodule