Nguyên nhân chính của sự cố tuyên truyền X này là do sự khởi tạo LPM_DEST_ADD_SUB_component trong mô-đun Read Data Mover (altpcieav_dma_rd.sv) không có cổng .datab đúng cách không mở rộng đến độ rộng vector tín hiệu đầy đủ. Do đó, trình mô phỏng chỉ định X cho các bit chưa được chỉ định hàng đầu trong địa chỉ đích.
Tham khảo thông LPM_DEST_ADD_SUB_component ngay lập tức bên dưới.
*********************************************************************************************************************************
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)
hội đồng translate_off
,
.aclr (),
.add_sub (),
.cin (),
.cout (),
.overflow ()
hội đồng translate_on
);
dải phân mảnh
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 = "UNSIGNED",
LPM_DEST_ADD_SUB_component.lpm_type = "LPM_ADD_SUB",
LPM_DEST_ADD_SUB_component.lpm_width = RDDMA_AVL_ADDR_WIDTH;
*********************************************************************************************************************************
Cách khắc phục là mở rộng đúng cách vector tín hiệu đầu vào của cổng .datab như minh họa dưới đây.
.datab ({{(RDDMA_AVL_ADDR_WIDTH-12){1'b0}}, rd_dw_size, 2'b00}),
Vấn đề này được lên lịch sẽ được khắc phục trong phiên bản phần mềm Intel® Quartus® Prime trong tương lai.