他言語組み込み
embed
宣言
embed
宣言により他言語をコードに埋め込むことができます。embed
宣言の第一引数は埋め込み方法です。以下の方法がサポートされています。
inline
: コードをそのまま展開するcocotb
: cocotb テストとして扱う
コードブロックは lang{{{
で始まり、}}}
で終わります。以下の lang
指示子がサポートされています。
sv
: SystemVerilogpy
: Python
embed (inline) sv{{{
module ModuleSv;
endmodule
}}}
inline
かつ sv
指定された embed
宣言はモジュール宣言、インターフェース宣言及びパッケージ宣言の中に配置することができます。これはSystemVerilogテストベンチとの統合に使用できます。
#[allow(unused_variable)]
interface bus_monitor_if {
var clk : clock ;
var ready : logic ;
var valid : logic ;
var payload: logic<8>;
embed (inline) sv{{{
clocking monitor_cb @(posedge clk);
input ready;
input valid;
input payload;
endclocking
}}}
}
include
宣言
include
宣言により他言語のファイルを含めることができます。include
宣言の第一引数は embed
宣言と同じです。第二引数はソースコードからの相対ファイルパスです。
include(inline, "module.sv");