电子产业
数字化服务平台

扫码下载
手机洽洽

  • 微信小程序

    让找料更便捷

  • 扫码下载手机洽洽

    随时找料

    即刻洽谈

    点击下载PC版
  • 华强电子网公众号

    电子元器件

    采购信息平台

  • 华强电子网移动端

    生意随身带

    随时随地找货

  • 华强商城公众号

    一站式电子元器件

    采购平台

  • 芯八哥公众号

    半导体行业观察第一站

Virtex-7 FPGA Gen3 集成模块Completion timeout机制

来源:华强电子网 作者:华仔 浏览:573

标签:

摘要: 任何一种 split 交易协议都存在 Requesters 得不到期望的 Completion 的风险。为了允许 Requesters 使用一种标准方式从这种情况下恢复,规定了 Completion timeout机制。PCIE 规范规定发出需要 Completions 的 Requests 的 PCIE 设备必须实现 Completion Timeout 机制。配置 Requests 除外。PC

任何一种 split 交易协议都存在 Requesters 得不到期望的 Completion 的风险。为了允许 Requesters 使用一种标准方式从这种情况下恢复,规定了 Completion timeout机制。


PCIE 规范规定发出需要 Completions 的 Requests 的 PCIE 设备必须实现 Completion Timeout 机制。配置 Requests 除外。PCIE 设备每发出一个需要 Completions 的Requests,Completion timeout 机制被激活。PCIE Root Complexes, PCI Express-PCI Bridges, 和 Endpoints 需要实现 Completion timeout 机制。Switches 不需要主动发起操作,因而不需要 Completion timeout。


Completion timeout 可以通过配置软件禁止。配置寄存器 Device Control 2 的bit 4 控制 Completion Timeout 的禁止。

1.jpg

图1

在V7的Gen3 Integrated Block中,对Completion Timeout的实现有一些特殊的地方,在应用时需要加以注意。


首先,配置寄存器Device Control 2的bit[3:0]规定了Completion timeout的值,bit4控制Completion timeout的disable。这一部分和规范一致。

2.jpg

图2

此外,在Gen3 Integrated Block的属性里面,有一些属性和Completion timeout相关。首先是PF0_DEV_CAP2_CPL_TIMEOUT_DISABLE,这个属性控制是否允许Completion timeout被disable。默认这个属性是设置为FALSE的。如果需要修改这个属性,需要在相应的verilog/VHLD代码里面修改。

3.jpg

图3

其次还有TL_COMPL_TIMEOUT_REG0/1这两个属性,控制timeout的值。这两个属性分别对应evice Control 2的bit[3:0]设置为0101和0110的情况。这两种设置下,timeout的值由这两个属性控制。同样,这两个属性也可以通过相关的verilog/VHLD代码修改。

4.jpg

图4

事实上,虽然Device Control 2的bit[3:0]定义了9种timeout的值,只有bit3[3:0]设置为0101和0110时,Gen3 Integrated Block的Completion timeout机制才能工作。设置为其他值时,Completion timeout机制并不工作。这一点要特别注意,如果需要timeout机制,一定要把Device Control 2的bit[3:0]设置为这两个值中的其中一个。


当出现timeout时,在Requester Completion总线上,completion的bit[15:12]将设为1001,表示出现timeout。这时,Completion只有bit 30(request Completed bit), bits [71: 64] (tag field) 和bits [55: 48](requester Function field)有效。

5.jpg

图5

下图是一个仿真得到的TIMEOUT波形,设置Device Control 2的bit[3:0]为0x5,设置PF0_DEV_CAP2_CPL_TIMEOUT_DISABLE为FALSE,设置TL_COMPL_TIMEOUT_REG0/1为0x1(为了缩短仿真时间)。当Requester没有得到Completion,timeout以后,可以看到RC总线上出现了1001的Error code。

6.jpg

图6

型号 厂商 价格
EPCOS 爱普科斯 /
STM32F103RCT6 ST ¥461.23
STM32F103C8T6 ST ¥84
STM32F103VET6 ST ¥426.57
STM32F103RET6 ST ¥780.82
STM8S003F3P6 ST ¥10.62
STM32F103VCT6 ST ¥275.84
STM32F103CBT6 ST ¥130.66
STM32F030C8T6 ST ¥18.11
N76E003AT20 NUVOTON ¥9.67