3、Vivado IP Catalog与收发器IP:如何打开IP Catalog,搜索并例化Transceiver IP核,IP核配置向导概览

好,咱们今天聊聊Vivado里怎么找到并配置收发器IP。说实话,很多新手第一次打开Vivado,面对满屏的菜单和选项,第一反应就是——我该点哪里?

别急,我带你走一遍。这个流程我走了不下上百次了,闭着眼睛都能找到。

3.1 打开IP Catalog的两种方式

IP Catalog,说白了就是Vivado的IP超市。所有官方IP核都摆在这里,任你挑选。

方式一:从Flow Navigator进入

打开Vivado工程后,左侧的Flow Navigator面板里,找到PROJECT MANAGER区域,点击IP Catalog。这是最直接的方式,我个人习惯用这个。

方式二:从菜单栏进入

点击顶部菜单栏的Tools → IP Catalog。效果一样,看个人喜好。

打开后,你会看到一个类似资源管理器的窗口。里面按功能分类,比如Communication & Networking、Digital Signal Processing等等。

小技巧: 如果你知道IP核的名字,直接在搜索框里输入关键词,比如"transceiver"或"gth",比翻目录快得多。

3.2 搜索并找到收发器IP核

收发器IP核的名字,不同系列略有不同。我整理了一个表格,方便你对照:

器件系列 IP核名称 搜索关键词
7系列(Artix-7, Kintex-7等) 7 Series FPGAs Transceivers Wizard transceiver wizard
UltraScale/UltraScale+ UltraScale FPGAs Transceivers Wizard ultrascale transceiver
Versal Versal Transceivers Wizard versal transceiver

在搜索框里输入transceiver,结果列表里就会出现对应的IP核。双击它,就开始配置了。

注意: 我曾经遇到过有人选错了IP核版本。比如用的是Kintex-7,却选了UltraScale的Wizard。虽然也能打开,但配置选项对不上,折腾半天才发现。所以,一定要确认IP核名称和你的器件系列匹配。

3.3 IP核配置向导概览

双击IP核后,会弹出配置向导。这个向导通常有4-5个步骤,我带你快速过一遍。

3.3.1 第一页:基本配置

这里设置最核心的参数:

  • Protocol Template:协议模板。如果你做的是PCIe、SATA、Ethernet等标准协议,可以直接选模板,省去手动配置的麻烦。
  • Line Rate:线速率。单位是Gbps。比如10.3125 Gbps就是10G Ethernet常用的速率。
  • Reference Clock:参考时钟频率。这个要和板上的晶振匹配。
  • TX/RX通道数:你需要几对收发器。

嗯,这里要注意:线速率和参考时钟是联动的。你改了线速率,参考时钟的可选范围也会变。Vivado会自动计算PLL的分频比,你不用操心。

3.3.2 第二页:TX和RX设置

这一页主要配置发送和接收的物理层参数:

  • TX Swing:发送摆幅。决定了信号幅度,影响功耗和信号质量。
  • TX Pre-emphasis / Post-emphasis:预加重/去加重。用于补偿高频损耗。
  • RX Equalization:接收均衡。包括CTLE和DFE,用于补偿信道损耗。
  • RX Termination:接收端接电阻。通常选50欧姆。

这些参数,说白了就是调信号质量的。我在项目中遇到过,板子跑不起来,最后发现是预加重没开够。调大两档,眼图立马就睁开了。

3.3.3 第三页:时钟和复位

这里配置:

  • CPLL/QPLL选择:CPLL用于单通道或低速率,QPLL用于多通道或高速率。
  • 复位模式:建议选Shared Logic,这样多个通道共用复位逻辑,节省资源。
  • 时钟源:可以选择内部PLL生成,也可以从外部输入。
核心经验: 我个人习惯把Shared Logic in the example design勾上。这样生成的example design里,复位和时钟管理逻辑都是现成的,直接拿过来用就行。省得自己写,还容易出错。

3.3.4 第四页:高级选项

这一页通常不用动。除非你有特殊需求,比如:

  • PRBS Generator/Checker:内置伪随机码生成和检测,调试时很有用。
  • Loopback Mode:环回模式,用于自检。
  • Polarity Inversion:极性反转。如果PCB上差分线接反了,不用改板,在这里勾一下就行。

3.3.5 第五页:总结

最后一页会列出你配置的所有参数。建议截图保存,或者点击Generate前,仔细核对一遍。

我曾经有一次,线速率配错了,10G配成了12.5G。板子跑起来后,误码率居高不下。查了两天才发现是这里的问题。所以,别嫌麻烦,多看一眼。

3.4 生成IP核并例化

配置完成后,点击OK,Vivado会生成IP核文件。你会看到:

  • .xci文件:IP核的配置文件,记录了所有参数。
  • .v/.vhd文件:IP核的HDL封装。
  • example design:一个完整的测试工程,可以直接仿真或上板。

在顶层模块里例化IP核,就像例化一个普通模块一样。Vivado会自动帮你把端口列出来,你只需要连上时钟、复位和数据线即可。

// 例化示例
transceiver_wizard_0 u_transceiver (
    .gtrefclk0_in      (refclk_156m25),   // 参考时钟
    .txusrclk_out      (txusrclk),        // 用户时钟输出
    .txusrclk2_out     (txusrclk2),       // 用户时钟2输出
    .txdata_in         (tx_data),         // 发送数据
    .txcharisk_in      (tx_charisk),      // 发送控制位
    .rxdata_out        (rx_data),         // 接收数据
    .rxcharisk_out     (rx_charisk),      // 接收控制位
    .gt0_txdata_out    (tx_p),            // 差分正极
    .gt0_txdata_n_out  (tx_n),            // 差分负极
    .gt0_rxdata_in     (rx_p),            // 差分正极
    .gt0_rxdata_n_in   (rx_n),            // 差分负极
    .gt0_txresetdone_out(tx_resetdone),   // 复位完成
    .gt0_rxresetdone_out(rx_resetdone),   // 复位完成
    .userclk_tx_reset_in(tx_rst),         // 复位输入
    .userclk_rx_reset_in(rx_rst)          // 复位输入
);

你看,端口名字虽然长,但命名很规范。gt开头的是高速串行信号,user开头的是用户逻辑接口。一一对应连上就行。

3.5 本章知识体系

为了让你更直观地理解整个流程,我画了一张图:

收发器IP核配置流程 打开IP Catalog 搜索Transceiver IP 配置向导 生成IP 基本配置 TX/RX设置 时钟/复位 高级选项 总结 关键参数:线速率、参考时钟、预加重、均衡、PLL选择 输出文件:.xci(配置)、.v/.vhd(封装)、example design(示例) ⚠ 注意:IP核名称必须与器件系列匹配!

这张图把整个流程串起来了。从打开IP Catalog,到搜索IP,再到配置向导的五个步骤,最后生成IP核。你照着这个流程走,不会迷路。

总结一下:
  • IP Catalog是入口,搜索关键词要准确。
  • 配置向导分五步,核心是基本配置和TX/RX设置。
  • 时钟和复位选Shared Logic,省心省力。
  • 生成后,例化就像例化普通模块一样。

好了,这一章就到这里。下一章我们聊聊怎么用example design快速验证你的配置是否正确。到时候我会分享一个我踩过的坑,保证让你少走弯路。

可可精品资料库