この X 伝達の問題の根本原因は、読み取りデータ移動子(altpcieav_dma_rd.sv)モジュールにおけるLPM_DEST_ADD_SUB_componentのインスタンス化が、.databポートが正しくシグナル・ベクトル幅全体までゼロ拡張されていないということです。 したがって、シミュレーターは宛先アドレスの先頭の割り当て解除済みビットに X を割り当てます。
以下のLPM_DEST_ADD_SUB_componentのインスタンス化を参照してください。
*********************************************************************************************************************************
lpm_add_sub LPM_DEST_ADD_SUB_component (
.clken (1'b1)
.clock (Clk_i)
.dataa (cur_dest_addr_reg)
.datab ({rd_dw_size、2'b00})
結果 (cur_dest_addr_adder_out)
synopsys translate_off
,
.aclr ()
.add_sub ()
.cin ()
.cout ()
.overflow ()
synopsys translate_on
);
defparam
LPM_DEST_ADD_SUB_component.lpm_direction = "ADD"、
LPM_DEST_ADD_SUB_component.lpm_hint = "ONE_INPUT_IS_CONSTANT=NO,CIN_USED=NO"、
LPM_DEST_ADD_SUB_component.lpm_pipeline = 1
LPM_DEST_ADD_SUB_component.lpm_representation = "NUMAED"、
LPM_DEST_ADD_SUB_component.lpm_type = "LPM_ADD_SUB"、
LPM_DEST_ADD_SUB_component.lpm_width = RDDMA_AVL_ADDR_WIDTH;
*********************************************************************************************************************************
回避策は、以下に示すように .datab ポートの入力信号ベクトルを適切にゼロ拡張することです。
.datab({{(RDDMA_AVL_ADDR_WIDTH-12){1'b0}}、rd_dw_size、2'b00})
この問題は、インテル® Quartus® Prime ソフトウェアの今後のバージョンで修正される予定です。