文章 ID: 000082231 内容类型: 故障排除 上次审核日期: 2021 年 08 月 27 日

为什么用于 PCI Express* 的 英特尔® Arria® 10 或 英特尔® Cyclone® 10 GX Avalon®-MM DMA 接口的 Modelsim*/Questasim* 模拟在读取数据移动器 (altpcieav_dma_rd.sv) 模块中出现 X 传播问题?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • 面向 PCI Express* 的英特尔® Arria® 10 Cyclone® 10 硬核 IP
  • PCI Express*
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    造成 X 传播问题的根源在于,Read Data Mover(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}),
    .result (cur_dest_addr_adder_out)
    synopsys translate_off
    ,
    .aclr (),
    .add_sub ()
    .cin (),
    .cout (),
    .溢出 ()
    synopsys translate_on
    );
    defparam
    LPM_DEST_ADD_SUB_component.lpm_direction = "ADD",
    LPM_DEST_ADD_SUB_component.lpm_hint = "ONE_INPUT_IS_CONSTANT=否,CIN_USED=否",
    LPM_DEST_ADD_SUB_component.lpm_pipeline = 1、
    LPM_DEST_ADD_SUB_component.lpm_代表 = "UNSIGNED",
    LPM_DEST_ADD_SUB_component.lpm_type = "LPM_ADD_SUB",
    LPM_DEST_ADD_SUB_component.lpm_宽度 = RDDMA_AVL_ADDR_WIDTH;

    *********************************************************************************************************************************

    解决方法

    变通方法是正确零扩展 .datab 端口的输入信号向量,如下所示。

     

    .datab ({(RDDMA_AVL_ADDR_WIDTH-12){1'b0}},rd_dw_size,2'b00}),

     

    此问题计划在 英特尔® Quartus® Prime 软件的未来版本中修复。

    相关产品

    本文适用于 2 产品

    英特尔® Arria® 10 FPGA 和 SoC FPGA
    英特尔® Cyclone® 10 GX FPGA

    本页面上的内容是原始英文内容的人工翻译与计算机翻译的组合。我们提供此内容是为了您的便利并且仅供参考,未必完整或准确。如果本页面的英文版与翻译版之间存在任何冲突,应以英文版为准。 查看此页面的英语版本。