PotatoPie 2.1/3.0 教程(11)——实验10 硬核AST异步收发器的环回通信-Anlogic-安路社区-FPGA CPLD-ChipDebug

PotatoPie 2.1/3.0 教程(11)——实验10 硬核AST异步收发器的环回通信

AST 回环测试实验
 实现对芯片 AST 收发的验证。 设计 AST 收发控制器,采用外部环回的方式演示 AST 的数据收发。

 

1.实验说明

1.1管脚说明

set_pin_assignment	{ I_ast_rx }	{ LOCATION = P59; IOSTANDARD = LVDS33; }
set_pin_assignment	{ O_ast_tx }	{ LOCATION = P50; IOSTANDARD = LVDS33; }
set_pin_assignment	{ O_clk0 }	{ LOCATION = P5; }
set_pin_assignment	{ S_code_error }	{ LOCATION = P52; }
set_pin_assignment	{ S_rd_error }	{ LOCATION = P54; }
set_pin_assignment	{ S_receive_state }	{ LOCATION = P57; }
set_pin_assignment	{ S_rx_word_sync }	{ LOCATION = P58; }
set_pin_assignment	{ sys_clk }	{ LOCATION = P128; IOSTANDARD = LVCMOS33; }
set_pin_assignment	{ sys_rst }	{ LOCATION = P56; }
  • sys_clk,系统时钟,连接至PotatoPie 开发板的板载10M时钟上
  • sys_rst,系统复位,高电平复位
  • O_ast_tx,AST收发器的发送端
  • I_ast_rx,AST收发器的接收端
  • S_rd_error,AST解码极性异常
  • S_receive_state,AST接收工作正常
  • S_code_error,AST解码数据异常
  • S_rx_word_sync,AST数据通道对齐完成
  • O_clk0,PLL输出一个25M,用于观察PLL工作是否正常。

AST 管脚的电平属性需要使用 LVDS25, 引脚连接到差分管脚的 P , 当使用 EF2 FPGA 器件时, AST
为硬核, 需要使用固定的收发引脚, 具体引脚请参考 EF2 器件手册。

1.2实验现象

此实验本身比较简单,但是需要先了解AST IP,因此实验步骤及实验现象都放到本文后面讲解。

2.实现原理

2.1 IP介绍及IP生成

AST IP 是安路科技开发的基于 LVDS 的中低速异步收发器,该收发器支持从 100Mbps-400Mbps
速度配置。主要用于
20 米以内的 FPGA 器件之间的直连数据传输,无需外部专用收发器,节省用户成本
PCB 空间。 AST IP 使用 8B10B 编码后的数据进行传输,因此传输通道可以使用隔直通道传输,保护
FPGA 器件。 PotatoPie EF2 FPGA中包含 AST IP,每个 AST 包含两路发送通道和一路接收通道。支持从 80Mbps-400Mbps 的速度配置。

具体 AST IP 生成示意图如下所示:

20231221101801862-image

2.2 AST IP 功能框图

AST IP   所示, 主要包含时钟模块、 TX 通道、 RX 通道:

20231221101607483-image

2.3时钟模块

IP总共需要4路时钟, 如果使用EF2PLL产生时钟, 需要使用PLL特定的输出通道,时钟具体说明如下表所示:

AST 时钟说明表

时钟名称 频率范围 功能说明
Clk_1x 10Mhz-50Mhz 内部并行数据处理时钟
Clk_x5 50-250Mhz(Clk_1x 5 ) 内部串行数据处理时钟
Clk_12p5x 125Mhz-625Mhz(Clk_1x 12.5
倍)
接收通道串行数据的采样时钟
Clk_12p5x_90 125Mhz-625Mhz
(Clk_12p5
延迟 90 度相位)
接收通道串行数据的采样时钟

采用 PLL 产生时钟时需要使用特定的输出通道,具体 PLL IP 生成时钟如下图所示:

20231221101734170-image

PLL时钟通道0连接clk_1xPLL时钟通道1连接clk_12px5PLL时钟通道2连接clk_12px5_90PLL时钟通
4连接clk_5x

clk_1x: 频率从10Mhz50Mhz, 是内部并行数据的处理时钟。
clk_x5clk_1x 5 倍, 范围50-250Mhz。 是内部串行数据处理时钟。
clk_12p5xclk_1x 12.5 倍, 范围125-625Mhz。 是接收通道串行数据的采样时钟。
clk_12p5x_90clk_12p5x 延迟 90 度相位, 也是接收通道串行数据的采样时钟。

本实验中PotatoPie板的PLL配置如下:

20231221105711526-image

20231221105720452-image

 

2.3.1 TX 通道
TX通道内部结构较简单, 逻辑内部包含8 Bit位宽的发送数据和接收有效信号, 管脚为2对串行差分
发送
ast_tx, 实际使用选取任意一对。

TX 通道会在空闲时间段, 即不发送数据时, 会自动发送对齐字节 K 码。


2.3.2 RX 通道
RX通道, 逻辑内部主要包含8Bit位宽的接收数据和接收有效信号, 管脚为1对串行差分接收ast_rx
RX通道会根据接收到的对齐字节自动对齐。

RX 通道还包含 4 个接收状态的指示标志。

2.4 AST IP 接口描述

AST IP 中具体信号说明如下表所示:

AST IP 具体信号说明

信号 方向 描述
rst_n in 系统复位, 低有效。
ast_cs_n in ast IP片选信号, 低有效。
clk_1x in AST并行处理时钟, 最低10Mhz, 最高50Mhz
clk_5x in AST串行处理时钟, 是clk_1x5倍, 范围50-250Mhz
clk_12p5x in AST接收通道采样时钟, 是clk_1x12.5倍, 范围125Mhz-625Mhz
clk_12p5x_90 in AST接收通道采样时钟, clk_12p5x延迟90度相位。
txdata[7:0] in AST发送并行数据, 位宽8bit
txdata_vld in AST发送并行数据有效标志位, 置1时发送并行数据有效。
ast_tx out AST发送串行数据输出。
rxdata[7:0] out AST接收并行数据, 位宽8bit
rxdata_vld out AST接收并行数据有效标志位, 置1时接收并行数据有效。
ast_rx in AST接收串行数据输入。
rx_word_sync out 1, 表示接收通道数据对齐完成; 置0, 接收通道数据未对齐。
code_error out 18B/10B解码数据错误; 置08B/10B解码数据正常。
rd_error out 18B/10B解码极性错误; 置08B/10B解码极性正常。
receive_state out 1, 接收通道工作正常; 置0, 接收通道工作异常。

其中需要注意的是当接收通道复位及片选完成,不能立即接收用户数据,需要进行通道字对齐,该

时间为 9 clk_1x 周期,因此前一级的发送通道需要等待至少 9 clk_1x 周期,才能发送数据,否
则接收通道数据无法对齐。

2.5 AST 接口时序

2.5.1 接收通道接口时序
接收通道需要用到clk_1xclk_5xclk_12p5xclk_12p5x_90四个时钟。 接收通道接口时序如图
2-3所示。
接收通道复位及片选完成, 不能立即接收用户数据, 需要进行通道字对齐, 该时间为
9clk_1x
期, 因此前一级的发送通道需要等待至少
9clk_1x周期, 才能发送数据, 否则接收通道数据无法对齐。
发送通道并行数据输入到后一级接收通道并行数据正常接收, 时间约为
10 clk_1x 周期。

20231220225149121-image

2.5.2 发送通道接口时序
发送通道只需用到clk_1xclk_5x两个时钟, 发送通道接口时序如图2-4所示。
因为后一级接收通道需要字对齐, 所以发送通道复位及片选完成后, 需要等待至少
9 clk_1x
期才能发送数据。

20231220225201297-image

 

3. 代码说明

功能描述

该例程通过设计 AST 控制器将数据送往 AST 硬核,并将 AST 发送串行数据输出与 AST 发送串行数
据输入端口相连,实现
AST 回环,用以测试 AST 硬核数据传输的正确性。该例程设计框图如下图所示。

20231221102128782-image

演示方法
编译下载 FPGA 的位流文件,通过选取 ChipWatcher 窗口进行 AST 读写数据模块信号的抓取。 具体
读写验证信号如下图所示。

20231221101950149-image

调试
硬件调试时, 需要查看 AST IP 是否正常工作, 一般查看 rx_word_synccode_errorrd_error
等信号, 可加入到 CWC 调试进行观察。
首先看
rx_word_sync 信号是否为高电平, 只有为高电平, AST 接收通道数据才对齐完成, 建立链
路成功。 另外需要查看
8B10B 解码数据是否发生错误, 解码极性是否发生错误。 如解码数据发生错误,
请看线材是否屏蔽双绞, 另外
pn 端是否接反。

移植与注意事项
AST IP 是基于 8B10B 方式, 使用 LVDS 电平实现的异步收发器。 EF2 器件使用该 IP 时, 该器件支持
2 AST 硬核 收发, 每路均支持全双工功能。 AST 必须使用器件的固定引脚。 具体引脚请参阅 EF2
件手册。

通信线材, 请优先选用带屏蔽的双绞线, 在通信速度和稳定性上更好。

请登录后发表评论