启用了动态重新配置的英特尔® 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 开始修复。