Verification Engineerの戯言
Bluespec SystemVerilogでは、モジュール引数には次のようなアトリビュートを持っている。
・ osc= ・ gate= ・ gate_inhigh= ・ gate_unused= ・ reset= ・ clocked_by= ・ reset_by= ・ port=
リファレンス・ガイドの13.6.1 Argument-level clock and reset naming attributesの例を見てみると、
(* synthesize *) module mkMod((* osc="ACLK", gate="AGATE" *) Clock clk, (* reset="RESET" *) Reset rst, ModIfc ifc);
のように各引数の前にアトリビュートを付けることができるようです。
(* osc="ACLK", gate="AGATE *)はClockインターフェース、
(* reset="RESET" *)は、Resetインターフェースのアトリビュートになります。
(* osc="ACLK", gate="AGATE *)はClockインターフェース、
(* reset="RESET" *)は、Resetインターフェースのアトリビュートになります。
この記述から次のようなVerilog HDLコードに変換されます。
module mkMod(CLK, RST_N, ACLK, AGATE, RESET, ...
アトリビュートに対応したポートが生成されます。
検証、Verification、Bluespec SystemVerilog