A causa principal deste problema de propagação de X é que LPM_DEST_ADD_SUB_component instação no módulo Read Data Mover (altpcieav_dma_rd.sv) não tem sua porta .datab adequadamente estendida a zero para a largura total do vetor de sinal. Portanto, o simulador atribui os X aos principais bits não atribuídos no endereço de destino.
Consulte a LPM_DEST_ADD_SUB_component instalação abaixo.
*********************************************************************************************************************************
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}),
.result (cur_dest_addr_adder_out)
sinopses translate_off
,
.aclr (),
.add_sub (),
.cin (),
.cout (),
.overflow ().
sinopses translate_on
);
defparam
LPM_DEST_ADD_SUB_component.lpm_direction = "ADD",
LPM_DEST_ADD_SUB_component.lpm_hint = "ONE_INPUT_IS_CONSTANT=NÃO, CIN_USED=NÃO",
LPM_DEST_ADD_SUB_component.lpm_pipeline = 1,
LPM_DEST_ADD_SUB_component.lpm_representation = "NÃO ASSINADO",
LPM_DEST_ADD_SUB_component.lpm_type = "LPM_ADD_SUB",
LPM_DEST_ADD_SUB_component.lpm_width = RDDMA_AVL_ADDR_WIDTH;
*********************************************************************************************************************************
A solução alternativa é zerar corretamente o vetor de sinal de entrada da porta .datab , conforme mostrado abaixo.
.datab ({{(RDDMA_AVL_ADDR_WIDTH-12){1'b0}}, rd_dw_size, 2'b00}),
Este problema está programado para ser corrigido em uma versão futura do software Intel® Quartus® Prime.