インテルのみ表示可能 — GUID: bpv1661264480787
Ixiasoft
インテルのみ表示可能 — GUID: bpv1661264480787
Ixiasoft
1.9. HDLコードでの force ステートメントの使用
合成における force ステートメント例
次に、 インテル® Quartus® Prime開発ソフトウェアの合成でサポートする force ステートメントの例をいくつか示します。
force ステートメントを使用してカウンターの enable を0に設定
次の例は、force ステートメントを使用して counter インスタンス u1 の en ポートをロジック 0 に結び付ける方法を示しています。
module top(clk, rst, enable, dout); input clk, rst, enable; output [3:0] dout; counter u1(.clk(clk), .reset(rst), .en(enable), .q(dout)); initial begin force u1.en = 1'b0 end endmodule
force ステートメントで en ポート (top モジュールの enable ポート) の他のドライバーをオーバーライドしていることが分かります。
force ステートメントを使用しての接続の変更
次の例は、force ステートメントを使用してデザイン内の接続を変更する方法を示しています。
module top(input [3:0] din, din1, output logic [3:0] dout, dout1, input clk, rst); dff i0(.din(din), .dout(dout), .clk(clk), .rst(rst) ); dff i1(.din(din1), .dout(dout1), .clk(clk), .rst(rst) ); endmodule module top_modified(input [3:0] din, din1, output logic [3:0] dout, dout1, input clk, rst); top i_top(.*); initial begin force i_top.i1.din = i_top.din; end endmodule
この例では、デザインの top モジュールで dff モジュールの2つのインスタンスをインスタンス化しています。top モジュールの din および din1 ポートでは、i0 および i1 インスタンスの din ポートを駆動します。
top モジュール内のRTLを変更せずに top モジュールの接続を変更するとします。この場合は、force ステートメントをラッパーモジュール (top_modified) 内で使用することができます。また、このモジュールが新しい top モジュールになります。新しい top モジュールで、force ステートメントを使用して top モジュール内の接続を変更し、i0 および i1 の両方のインスタンスの din ポートが top モジュールの同じ din ポートで駆動されるようにします。force ステートメントでは、クロスモジュール参照 (XMR) を使用してその下の階層の信号にアクセスします。XMRの詳細については、HDLコードにおけるクロスモジュール参照 (XMR) を参照してください。
この例の場合は、ラッパーの top_modified を作成して top モジュールをインスタンス化する代わりに、次のように二次上位エンティティーを作成し、その内部で force 割り当てを作成することもできます。
module secondary_top(input [3:0] din, din1, output logic [3:0] dout, dout1, input clk, rst); initial begin force top.i1.din = top.din; end endmodule