目录
5.5 Xilinx的IP核配置
5.5.1 基础选项卡
1、Component Name:IP的名字,只能为字母,数字,下划线,其中首字符必须为字母。
2、Mode:IP的模式,有基本(Basic)和高级(Advanced)两种。其中基本模式不会对各接口层内容进行配置
3、Link Width:链路宽度,可选值为1、2或者4,链路宽度越大,数据的传输带宽越大。
4、Transfer Frequency:传输频率,这个值表示的是每个串行链路的传输速率,可选值有1.25、2.5、3.125、5.0和6.25。单位是Gbps。
5、Reference Clock Frequency:参考时钟频率,可选值为125MHz或156.25MHz,但并非任意选择,xilinx对其是有限制的,它来自高速传输模块的专用时钟。
6、TX/RX Buffer Depth:发送/接收Buffer的深度,可选值为8、16或32。这个值表示的是Buffer接口中可存储的包的最大数目。
7、Component Device ID:设备ID。也就是接口协议里面的源ID,根据协议可知可配为8 bit或16bit,这里位宽也是可选的。但收发双方的设备ID宽度应该相同,否则由于包头的偏移可能会导致事务被错误的解释,大多数系统Device ID为8位。
8、Unified Clock:如果用户设计中log_clk和phy_clk相同,那么可以选中这个选项,选中这个选项可以减少延时和资源利用率。
9、Transmitter Controlled:选中这个选项以后,RapidIO核会首先尝试用transmitter-controlled实现流控,但如果接收方不支持的话那么会自动切换为receiver-controlled。transmitter-controlled流控可以利用接收buffer的状态和水印最小化重试条件。receiver-controlled流控会随意的发包并使用重试协议。
10、Receiver Controlled:选中这个选项以后,RapidIO核仅能用receiver-controlled实现流控,在这种模式中,receiver-controlled流控会随意的发包并使用重试协议。
11、添加些调试相关信息
5.5.2 Logical Layer选项卡——逻辑层
1、收发支持的事物类型
2、Enable Arbitration:用来使能逻辑层与输入端口之间的仲裁器。防止多个事务的拥堵,优先级如下所示
下图是仲裁时序图,有空可以好好研究一下
3、Maintenance Transaction Support:维护事务,This is always enabled。
4、Local Configuration Space Base Address(LCSBA):
启用后,内核将检查传入的I / O事务的高位地址,如果地址匹配,则将事务路由到维护端口。 该规范没有提供禁用LCSBA的机制,因此在这种情况下的系统行为是不确定的。在封闭的系统中应屏蔽LCSBA功能。
注意:LCSBA匹配仅由内核对HELLO格式的数据包执行。I / O格式必须设置为HELLO,并且必须支持事务类型,以便数据包被核心重新路由到维护端口。
5.5.3 I/O选项卡
1、Port I/O Style:I/O接口可以配置为Condensed I/O和Initiator/Target两种类型。其中Condensed I/O接收和发送均使用一个AXI4-Stream通道。Initiator/Target接收和发送采用不同的AXI4-Stream通道。
2、I/O Format:I/O端口能被配置使用HELLO格式包或SRIO Stream格式包,一般情况下,强烈推荐使用HELLO格式
3、Messaging:用来选择消息事务的端口,可选的参数有Combined with IO和Separate Messaging Port两种。Combined with IO选项表明消息事务和I/O写事务采用相同的IO端口,Separate Messaging Port选项表明消息事务采用一个独立的端口传输,选中这个选项以后IP核会出现消息事务的AXI4-Stream通道。
4、Maintainance:用来选择维护端口类型,维护端口类型只能为AXI4-Lite类型。
5.5.4 Buffer层标签
1、Request Reordering:选中这个选项以后,发送Buffer会根据请求包的优先级重新排序。在这种情况下,较高优先级的请求将先于较低优先级的请求发出。这里所说的优先级应该是Xilinx对事务类型自定义的优先级,如下图所示。
2、Flow Control Options:用于流控的,其中“Watermarks”这个词不知道什么意思,主要是当链路缓冲区空间减少时,用来限制可以发送数据包的优先级。如果缓存区剩余空间小于设定值,则仅发送优先级更高的数据包。但需要确保Watermarks值得设定低于可缓冲区的最大值,以允许所有优先级都可以传输,显然如果太大的话则会锁死缓冲器。我们可以采用默认设置将其设为WM0=3, WM1=2, WM2=1.
5.4.5 物理层选项卡
1、CRF Support:关键请求流(Critical Request Flow),指示是否将CRF位用于扩展优先级映射。这是在SRIO协议的要求
2、Link Requests before Fatal:用来指定链路进入致命错误状态之前链路请求的个数,Xilinx建议将此值设置为大于零,以增强错误恢复能力。
3、Software Assisted Error Recovery:RapidIO规范定义了三个命令和状态寄存器,专门用于软件辅助的错误恢复。
4、IDLE Mode Support:空闲模式(IDLE Mode)的选择与传输速率有关,空闲序列1(IDLE1)仅仅支持每通道线速率小于5.5Gbps的情况,选择空闲序列1时,RapidIO使用的控制符号为短控制符号。空闲序列2(IDLE2)支持每通道线速率大于5.5Gbps的情况,6.25Gbps的线速率必须选择空闲序列2,空闲序列2提供了一些附加的功能,比如链路宽度,链路优先级信息以及一些用于改善均衡器性能,提高数据恢复率的随机数。当IDLE1和IDLE2均被选中时,每通道线速率仅支持小于等于5.5Gbps的情况。上一篇文章《RapidIO串行物理层的包传输过程》也介绍了空闲序列1和空闲序列2相关的内容。
5.5.6 逻辑层寄存器标签
1、Device Identity CAR:指定了Device ID与Vendor ID设备标识CAR存储有关RapidIO设备的信息。 该寄存器包含Xilinx分配的字段,并且不可修改。
2、Assembly Identity CAR:Assembly Identity CAR存储有关RapidIO设备子系统创建者的信息。可以在核心生成过程中设置寄存器的“程序集标识符”和“程序集供应商标识符”字段,以唯一地标识端点。这些值不影响核心功能
3、Assembly Information CAR:组装信息CAR存储有关RapidIO设备子系统版本的信息。 这是在核心生成期间设置的,不会影响核心功能。
4、Processing Element Features CAR:选择处理元素提供的主要功能。 允许的选项有:
5.5.7 物理层寄存器选项卡
1、Extended Features Space:
物理层寄存器存储在扩展功能(EF)地址空间内的寄存器块中。串行RapidIO Gen2物理层实现了两个扩展功能块:LP-Serial EF块和LP-Serial Lane EF块。SRIO Gen2端点为LP-Serial EF块保留了0x100字节的地址空间,为LP-Serial Lane EF块保留了0x400字节的地址空间。LP串行功能块的块偏移量必须小于LP串行通道EF块的偏移量。 每个块偏移量必须是为该块保留的字节数的整数倍。
也可以在扩展功能地址空间中实现一个或多个EF块。 用户应用程序必须在某处创建这些寄存器,并修改Configuration Fabric参考设计以适应其他寄存器块。 如果要实现用户EF,则应在Vivado IDE中将其启用,并应输入第一个EF块的块偏移量。 该偏移必须大于LP-Serial Lane EF块偏移加上为该块保留的0x400字节大小。 用户EF块偏移量必须是0x100的倍数,并且必须在扩展功能地址空间内
2、Port Link Time-out Control CSR:
端口链路超时控制CSR(偏移量0x120):PHY在确定链路控制符号(如数据包接受或链路响应)时使用的超时值已丢失。 当该计数器过期时,将遵循RapidIO串行PHY规范中定义的链接协议。 最大超时时间与此CSR中的值成线性比例。 FF_FFFFh的最大超时值对应于大约4.5秒的超时时间,但最大值仅精确到±33%以内
3、Port Response Time-out Control CSR:
端点将使用超时值来确定丢失的数据包。 FF_FFFFh的最大超时值应对应3到6秒之间的超时长度。 响应超时的实现留给您。
4、Port General Control CSR:
主机位指示该设备是主机设备。如果未设置此位,则设备是代理或从设备。该位不影响核心功能。主使能位控制是否允许设备向系统发出请求。如果未设置“主机使能”位,则设备可能仅响应请求。
5.5.8 共享逻辑标签
选择后,示例设计中将包括诸如MMCM,复位逻辑和GT COMMON模块之类的共享逻辑。在内核中包含共享逻辑:选中时,内核中将包含诸如MMCM,复位逻辑和GT COMMON模块之类的共享逻辑,主要是GTP部分内容。