由于配置空间寄存器访问时间的 UG-01145_avst 2017.05.15 - 6.12.1 错误的参考代码,英特尔® Arria® 10 和 英特尔® Cyclone® 10 PCIe* 事务层配置空间访问将不稳定。这是因为 tl_cfg_* 接口受多周期限制,但代码与它不匹配。
代码如下:
始终 @(coreclkout_hip)
开始
检测地址更改
cfg_addr_reg[3:0]
cfgctl_addr_change
...
结束
要解决此问题,请将参考代码升级为 UG-01145_avst |2019.05.22 - 5.12.1,用于配置空间寄存器访问时序。
添加了一条管道,以避免多周期时序风险。
代码如下:
始终 @(coreclkout_hip)
开始
tl_cfg_add_reg
tl_cfg_add_reg2
结束
检测地址更改以生成一个选择以采样输入 32 位数据
始终 @(coreclkout_hip)
开始
cfgctl_addr_change
cfgctl_addr_change2
cfgctl_addr_strobe
结束