VHDL の多次元ユーザー定義型を UVM 環境の SystemVerilog に接続しようとすると、Cadence ツール チェーン シミュレーションでこの問題が発生します。これは、VHDL 出力タイプの定義です。
TYPE loop_reg_ty IS RECORD
loop_index_value : std_logic_vector(REG_BITWIDTH-1 DOWNTO 0);
loop_counter : std_logic_vector(REG_BITWIDTH-1 DOWNTO 0);
loop_end_flag : std_logic;
END RECORD;
TYPE loop_array_ty is array (MAX_NO_OF_LOOPS-1 downto 0) of loop_reg_ty;
DUT の VHDL 出力ポートの 1 つはタイプloop_array_ty
です。
SystemVerilog に相当するものを次のように定義しようとしています。
typedef struct packed {
bit [REG_BITWIDTH-1:0] loop_index_value;
bit [REG_BITWIDTH-1:0] loop_counter;
bit loop_end_flag;
} raccu_loop_reg_ty;
typedef raccu_loop_reg_ty [MAX_NO_OF_RACCU_LOOPS-1:0] loop_array_ty;
を使用するirun
と、次のエラーが表示されます。
VHDL ポート タイプは Verilog と互換性がありません。
可能な回避策を提案してください。