CPRI V6在Arria 10上的应用以及重新校准
【时间:2017 年 09 月 13 日, 来源:本站原创, 作者:Daniel Tang】
[简介]
本文介绍Arria10如何使用收发器IP建立工程,以及调试CPRI v6的前期准备工作。
[CPRI v6的应用]
Intel PSG CPRI v6.0IP是根据CPRI V6.0规范设计的,提供一个高速串行接口。网络上的REC(radio equipment controllers)通过这个高速接口从远端的RE(radio equipment)获取和发送数据。
CPRI V6 IP致力于高性能的远端无线网络应用,可以被设置为RE或者REC,也可以配置各种不同的速率,例如0.6144, 1.2288, 2.4576,3.0720,4.9152, 6.144, 8.11008, 9.8304, or 10.1376 Gbps。
[工程的建立]
图1为Arria 10上收发器各IP的设计流程,Intel PSG wiki网站(http://www.alterawiki.com)上也提供了一些参考设计供参考,建议第一次设计可以先使用这些参考工程进行学习设计,熟悉各接口的连线。
首先,我们需要根据不同的应用特性选择合适的PHY IP,比如我们选择的就是需要的CPRIV6。需要注意的是,这个IP不是免费的,需要相应的license,并从Intel PSG获得安装补丁。安装后,建议进行功能仿真,以评估各个特性。
其次,根据协议的需求,设置各种有效参数。图2是我们的一个示例。
最后,按照图2配置完CPRI IP后,生成PHY IP。QII软件会生成几个文件夹,比如altera_cpri_ii_160,sim folder, 以及cpri_v6.qsys和cpri_v6.v文件。cpri_v6.v文件就是这个PHY IP的顶层,可以使用这个顶层文件进行仿真和编译。
除了生成PHY IP外,完整的工程还需要收发器PLL和复位模块。Arria 10器件有三种类型的PLL IP内核:
高级发送(ATX)PLL IP内核;
小数分频PLL(fPLL)IP内核;
通道PLL/时钟乘法器单元(CMU)PLLIP内核
我们选择fPLL作为Tx PLL,当需要切换速率时,需要刷新输出频率。当然,也应该刷新CPRI PHY IP,我们将在后续分析。至于复位模块,有两种方法复位Arria 10器件中的收发器:
1.使用收发器PHY复位控制器;
2.根据所建议的复位流程创建自己的复位控制器。
为了确保收发器通道已经预备发送和接收数据,就必须正确复位收发器PHY。Intel建议的复位序列确保每个收发器通道中的物理编码子层(PCS)和物理介质附加子层(PMA)被正确地初始化并正常运行。因此可以直接使用例化复位IP控制器。
图1 Arria 10收发器设计流程
图2 CPRI V6参数设置
动态重配置能够在器件操作期间动态修改收发器通道和PLL设置。为了支持动态重配置,设计必须包括一个能够使用Avalon-MM 接口访问动态重配置寄存器的Avalon master。Avalon-MM master使能PLL和通道重配置。我们能够动态调整PMA参数,例如差分输出电压Vod和预加重。通过用户生成的Avalon-MMMaster写入Avalon-MM重配置寄存来进行此调整。
最后的步骤就是连接CPIR PHY IP、PLL IP、以及复位控制器模块,作为收发器顶层模块使用。
[重新校准]
在Arria 10器件上,对收发器通道和PLL进行重新校准的操作,是必须的,跟28nm器件有一些差异。在Arria 10器件中,使用精密信号完整性校准引擎(PreSICE)进行校准。PreSICE包括一个Avalon-MM接口来访问收发器通道和PLL可编程寄存器。该Avalon-MM接口包括了一个通信机制,使得客户能够从校准控制器中请求特定的校准序列。
Arria10收发器PMA和PLL包括了下面类型的寄存器用于校准:
Avalon-mm接口仲裁寄存器;
校准使能寄存器;
功能寄存器;
速率切换标志寄存器;
有三种情况下,客户必须进行校准收发器或者PLL。其中之一就是当重新配置完收发器通道或者PLL之后,特别是进行了速率切换。
重新校准fPLL的第一步,就是请求Avalon-MM的使用权。具体步骤如下:
1. 将0x2 写入到偏移地址0x0[7:0],请求用户访问内部配置总线。
2. 等待reconfig_waitrequest 被置低(逻辑低),或等到PreSICEAvalon-MM 接口控制的功能寄存器=0x0。
3. 要校准fPLL,Read-Modify-Write 0x1 到fPLL 的地址0x100 的bit[1]。
4. 通过写入0x1 到偏移地址0x0[7:0],将内部配置总线释放到PreSICE 以执行重新校准。
5. 定期检查*cal_busy 输出信号或者读取功能寄存器0x280[1]来检查*cal_busy 状态,直到完成校准。
对PMA的校准类似于fPLL,不过又分Tx和Rx方向。PMA RX校准包括CDR/CMU PLL校准、偏移取消校准和VCM校准。Tx PMA校准包括Tx匹配、Vod和DCD校准。
骏龙科技微信公众号 骏龙ALTERA及FPGA社区