3、Vivado中Aurora IP核的配置:IP Catalog中查找Aurora核、Core Configuration选项卡详解、GT Selection与Line Rate设置
好,咱们直接进入正题。这一节我带你手把手走一遍Aurora IP核的配置流程。说实话,很多新手第一次打开Vivado的IP Catalog时,面对那一堆选项直接就懵了。别担心,我当年也一样,踩过不少坑,今天把这些经验全抖出来。
3.1 在IP Catalog中定位Aurora核
打开Vivado,左侧Flow Navigator里找到IP Catalog。点进去之后,在搜索框里输入“Aurora”。你会看到几个选项:
- Aurora 8B/10B —— 最常用的,8B/10B编码,适合中低速链路
- Aurora 64B/66B —— 64B/66B编码,效率更高,适合高速场景
我个人习惯用8B/10B,因为它的时钟恢复更容易,调试起来也省心。但如果你追求带宽利用率,64B/66B是更好的选择。
3.2 Core Configuration选项卡详解
双击IP核,进入配置界面。第一个选项卡就是Core Configuration。这里我按顺序讲几个关键参数:
3.2.1 Lane Width与Data Flow Mode
Lane Width:说白了就是并行数据位宽。常见的有2字节、4字节。我一般选4字节,这样内部逻辑时钟可以跑低一点,时序压力小。
Data Flow Mode:
- Duplex —— 全双工,收发同时进行
- Simplex (TX Only) —— 只发不收
- Simplex (RX Only) —— 只收不发
嗯,这里要注意:如果你选Simplex,那另一端的IP核也得配成对应的模式,否则链路起不来。我曾经在一个项目里吃过这个亏,两边配反了,折腾了两天才发现。
3.2.2 Interface与Flow Control
Interface:选Framing还是Streaming?
- Framing:带帧头帧尾,适合需要包边界识别的场景
- Streaming:纯数据流,没有帧结构,适合连续传输
我个人偏爱Framing,因为调试时能看到帧边界,定位问题方便。Streaming虽然省带宽,但一旦丢数据,你根本不知道从哪开始错的。
Flow Control:一般选None。除非你的应用层有明确的背压需求,否则别开。开了反而增加逻辑复杂度。
3.2.3 时钟配置
这里有个容易忽略的点:User Clock的来源。你可以选:
- From GT Common —— 从GT的公共时钟域来
- From Fabric —— 从FPGA逻辑来
我建议选From GT Common,这样时钟抖动小,链路更稳定。用Fabric时钟的话,万一布线长了,时序容易出问题。
3.3 GT Selection与Line Rate设置
接下来是重头戏——GT Selection选项卡。这里决定了你的高速串行链路到底用哪对收发器。
3.3.1 选择GT Quad
Vivado会列出你芯片上所有的GT Quad。每个Quad包含4个GT通道。你需要指定:
- GT Type:GTP、GTH、GTY等,取决于芯片型号
- Quad Location:比如Quad 112、Quad 113等
- GT Channel:每个Quad里的第几个通道
我一般建议:优先选靠近IO Bank的Quad。为什么?因为走线短,信号质量好。我曾经为了省事随便选了一个,结果眼图测试不过关,最后不得不改PCB,教训深刻。
3.3.2 Line Rate设置
Line Rate就是串行线上的比特率,单位是Gbps。设置时要注意:
- 必须与对端设备匹配
- 不能超过GT支持的最大速率
- 参考时钟频率 = Line Rate / (PLL倍频系数)
举个例子:你想跑5 Gbps,用8B/10B编码,GT的PLL倍频系数是20,那参考时钟就是5 Gbps / 20 = 250 MHz。这个计算一定要准,否则IP核初始化会失败。
3.3.3 参考时钟选择
每个Quad需要一对差分参考时钟。你可以选:
- 专用参考时钟引脚(比如MGTREFCLK0P/N)
- 从其他Quad借时钟(通过GT Common)
我强烈建议用专用引脚。借时钟虽然省引脚,但会增加抖动,而且布线复杂。除非你引脚实在不够用,否则别走这条路。
3.4 一个完整的配置示例
假设我们要配一个Aurora 8B/10B,4通道,Line Rate 6.25 Gbps:
| 参数 | 设置值 | 说明 |
|---|---|---|
| Core Type | Aurora 8B/10B | 常用编码 |
| Lane Width | 4 Bytes | 内部数据位宽 |
| Line Rate | 6.25 Gbps | 串行线速率 |
| GT Type | GTH | Kintex-7常用 |
| Reference Clock | 156.25 MHz | 6.25 / 40 = 0.15625 GHz |
| Data Flow Mode | Duplex | 全双工 |
| Interface | Framing | 带帧结构 |
配完之后,记得点OK生成IP核。Vivado会花几分钟综合,然后你就可以在IP核的例化模板里看到端口了。
3.5 知识体系总览
下面这张图帮你理清整个配置流程的逻辑关系:
这张图把整个配置流程分成了三层:先找到IP核,再配核心参数,最后搞定GT和速率。每一层都有几个关键点,你按这个顺序走,基本不会漏。
好了,这一节的内容就到这。配置Aurora IP核其实不难,关键是每个参数你都得知道它干嘛用的。下一节咱们聊仿真验证,到时候我会教你怎么写一个简单的testbench来测链路通不通。
公众号:蓝海资料掘金营,微信deep3321