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

当使用英特尔® Agilex PHYLite 模拟示例设计并启用动态重新配置时,为什么流量刺激没有将任何流量发送到校准 IP?

环境

  • 英特尔® Quartus® Prime Pro Edition
  • 面向并行接口英特尔® Stratix® 10 FPGA IP 的 PHY Lite
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT
    说明

    启用了动态重新配置的英特尔® Agilex™ PHYLite 模拟示例设计应该能够通过流量刺激更改内插器延迟,从而为动态重新配置工作提供示例。但是,由于英特尔 Quartus® Prime 专业版软件版本 20.4 存在问题,如果 PHYLite 组设置为输入引脚类型,则英特尔 Agilex PHYLite 模拟示例设计中的流量刺激不会将任何流量发送到校准 IP。

    注:如果 PHYLite 组设置为 Output pin 类型或双向引脚类型,则不会出现此问题。

    解决方法

    要解决英特尔® Quartus® Prime 专业版软件版本 20.4 中的这一问题,内插器相位不能是硬编码值,这需要对 phylite_tester.sv 和 test_logic_iossm.sv 文件进行一些修改,以允许流量刺激读取内插值相位,增量读取值,然后修改内插器相位以达到新值。

    对名为phylite_tester.sv"的文件执行以下更改:

    1. 第 159 行:删除状态声明相延迟并添加两种状态声明:CORE_PHASE_DELAY和IO_PHASE_DELAY

    2. 第 177 行:从

    分配 iossm_test_start = (prbs_fsm == PHASE_DELAY);

    分配iossm_test_start = (prbs_fsm == CORE_PHASE_DELAY);

    3. 第 323 行 prbs_fsm:从

    prbs_fsm

    prbs_fsm

    4. 第 338 行 IO_CHECK prbs_fsm:从

    prbs_fsm

    prbs_fsm

    5. 第 338 行 CORE_CHECK prbs_fsm:从

    prbs_fsm

    prbs_fsm

    6. 第 341 行:删除

    PHASE_DELAY:开始

    如果 (core_checker_failed | io_checker_failed)

    prbs_fsm

    如果 (iossm_phase_shift_done)

    prbs_fsm

    结束

    取而代之:这两个

    IO_PHASE_DELAY:开始

    如果 (core_checker_failed | io_checker_failed)

    prbs_fsm

    如果 (iossm_phase_shift_done)

    prbs_fsm

    结束

          

    CORE_PHASE_DELAY:开始

    如果 (core_checker_failed | io_checker_failed)

    prbs_fsm

    如果 (iossm_phase_shift_done)

    prbs_fsm

    结束

     

    对名为test_logic_iossm.sv"的文件执行以下更改:

    1. 第 43 行:将 IOSSM_INIT_PIN_DELAY 的值更改为 196

    2. 第 45 行后:添加本地参数声明:

    localparam WAIT_INTERVAL = 8;

    3. 第 59 行:在IOSSM_WAIT_REQ之后添加以下三种状态声明

    IOSSM_PRE_READ,

    IOSSM_PRE_RDATA,

    IOSSM_PRE_WAIT,

    4. 第 72 行:从

    如果 (!reset_n) 开始

    pin_dly_write

    prev_pin_dly_write

    如果 (cal_debug_write & cal_debug_waitrequest) 开始,则为其他端

    prev_pin_dly_write

    pin_dly_write

    结束


    如果 (!reset_n) 开始

    pin_dly_write

    prev_pin_dly_write

    如果 (cal_debug_read_data_valid & iossm_fsm == IOSSM_PRE_RDATA) 开始,则为其他端

    prev_pin_dly_write

    pin_dly_write

    结束

    5. 第 85 行:从

    如果 (cal_debug_read_data_valid) 开始, 则最后

    如果 (cal_debug_read_data_valid &iossm_fsm amp == IOSSM_RDATA) 开始,则结束

    6. 第 108 行:从IOSSM_INIT状态下更改iossm_fsm信号

    iossm_fsm

    iossm_fsm

     

    7. IOSSM_INIT状态后,请添加以下两种状态:

    IOSSM_PRE_READ:开始

    如果 (!cal_debug_waitrequest)

    iossm_fsm

    结束

    IOSSM_PRE_RDATA:开始

    如果 (cal_debug_read_data_valid)

    iossm_fsm

    结束

    8. 第 139 行:从

    分配cal_debug_read = iossm_fsm == IOSSM_READ;

    分配 cal_debug_read = (iossm_fsm == IOSSM_READ) ||(iossm_fsm == IOSSM_PRE_READ);

    9. 第 146 行:从

    分配 wait_done = (req_wait_interval =7) ?1 : 0;

    分配wait_done = (req_wait_interval == WAIT_INTERVAL-1) ?1 : 0;

     

    此问题从英特尔® Quartus® Prime Pro Edition 软件版本 21.1 开始修复。

    相关产品

    本文适用于 1 产品

    英特尔® Agilex™ FPGA 和 SoC FPGA

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