|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
本帖最后由 chop147 于 2025-3-6 17:20 编辑
1.1 JESD204B同步
1.1.1 JESD204B同步简介
JESD204B的同步过程一共分为4步,分别是代码组同步、帧同步、校验和同步和初始化同步。
1.1.2 代码组同步
Ø 含义:K码同步是JESD204B链路层建立的第一步,
Ø 过程
第一步:接收端收发送同步请求;
第二步:发送端发出K码;
第三步:接收端收到连续4个K码,表示K码同步完成;
参考JESD204B5.3.3节对于代码组(K码组)同步介绍:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图1 K码同步操作过程
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图2 k码同步操作过程(子类1)
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图3 K码同步操作流程图
Ø 影响k码同步的因素:未找到
1.1.1 帧同步
Ø 含义:
Ø 过程:
第一步:k码同步期间一直发送K28.5;
第二步:K码同步后,第一个非K码的RX被认为是帧的开始;
第三步:RX总是设定F为帧的第一个字节;
参考JESD204协议5.3.3.3
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图4帧同步的建立过程
Ø 影响同步因素:引脚配置不正确;
时钟配置不正确。
1.1.2 校验和同步
Ø 含义:检查接收发两侧的参数,例如K、M、S、L等值是一致。
Ø 过程:没找到过程只有一段相关描述,如下,
如果在通道上发送的校验和与通道上的ILA的参数一致,则对于通道为高电平。
参考AD9144数据手册page62,CGS,Frame Sync,Checksum and ILAS MOnitoring。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图5 校验和标志
Ø 影响校验和同步因素:
第一,ILA即初始通道同步失败;
第二,校验和计算参数和ILA的参数不一致;
1.1.3 初始通道同步
Ø 含义:当代码组同步结束之后,发送端停止发送k码,SYNC边缘变化时检测到LMFC后开始发送/A/码,对齐字符/A/码可能在不同时间接收到,接收到A码后,每个接收端江随后的数据储存在缓冲区,并向其它接收端发送ready标志。当所有接收器都升起校准接收标志后,它们在同一时间点江接收到的数据传播给数字处理系统。
Ø 过程:
参考5.3.35
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
Ø 影响通道初始化同步因素:
主接收通道在规定时间内同步上,其它通道在缓冲区还没有找到对应的同步码/A/;
怀疑时通道延时没有控制好,造成通道初始化同步失败,目前还没有完全看懂数据手册;
1.2 不同步时的定位
1.2.1 判断是否同步
Ø 通过下载程序后观察mdyFmcAd9144上面的LED灯,如果亮表示AD9144同步上了。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
LED灯连着AD9144的IRQ,IRQ为0时,表示XXXXXX。
Ø 打开vivado,观察LIA tx_sync信号,如下图,tx_sync信号拉高表示同步上,没有拉高表示没有同步上。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
1.1.2 K码同步的检查
AD9144的0x470寄存器可以指示是否K码是否同步,如下图。
AD9144的数据手册有如下描述。
预期值为8’hff表示8条lane都K码同步上了,读取该寄存器的值为8‘h0f,本项目使用了8条LANE。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
本例程使用的是mode0模式,mode0模式只有单link模式,查阅数据手册,可以查找到这样一段,描述为在单link模式下,SYNCOUT0用做所有通道的主控通道。
预期值为8’hff表示8条lane都K码同步上了,读取该寄存器的值为8‘h0f,本项目使用了8条LANE。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
1.1.3 帧同步的检查
读取寄存器471的值,471的值为0f表示4条lane都帧同步上了。有4条通道没有同步上
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
1.1.4 校验和同步的检查
当收发两端的参数完全一致时,校验和就能同步上;如果不能同步,说明两端的参数不同。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
读ad9144 472,理论上,472寄存器的值为ff表示同步成功。读取472地址数据得到472寄存器值为00,表示校验和同步失败。
Ø 校验和不能同不上的原因:AD9144寄存器和配置AXI寄存器的参数不一致。
1. 检查步骤
确定目标参数:
mode0模式 、M=4、L=8、S=1、F=1、K=32、HD=1、N=16、NP=16、子类1、扰码打开、DID、BID、LID等参数。
AD9144和AXI寄存器相关配置如下俩表
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
表1 AD9144相关寄存器配置表
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
表2 AXI寄存器表
读相关寄存器检查参数是否配置进AD9144芯片
地址
| 描述
| 预期值
| 读取值
| 400
|
|
|
| 401
|
|
|
| 402
|
|
|
| 403
|
|
|
| 404
|
|
|
| 405
|
|
|
| 406
|
|
|
| 407
|
|
|
| 408
|
|
|
| 409
|
|
|
| 40A
|
|
|
| 40B
|
|
|
| 40C
|
|
|
| 40D
|
|
|
| 40E
|
|
|
| 412
|
|
|
| 415
|
|
|
| 416
|
|
|
| 41A
|
|
|
| 41D
|
|
|
| 41E
|
|
|
| 422
|
|
|
| 425
|
|
|
| 426
|
|
|
| 42A
|
|
|
| 42D
|
|
|
| 42E
|
|
|
| 432
|
|
|
| 435
|
|
|
| 436
|
|
|
| 43A
|
|
|
| 43D
|
|
|
| 43E
|
|
|
| 442
|
|
|
| 445
|
|
|
| 446
|
|
|
|
|
|
|
|
|
|
|
|
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
V20版本读取寄存器值:
AD9144读相关寄存器配置代码如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
读取几个寄存器0x400-406发现读取的数据一直为0,有两种可能 ,1. AD9144读接口有问题,导致所有读到的值为0;2. 这几个寄存器确实为0,不符合预期。
试验读一段既可以读又可以写的寄存器,如下图所示读0x452至0x459的地址:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
1) 0x452寄存器读取
如下图所示,读取到的0x452的值为8‘h00
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
2) 0x453寄存器读取
如下图所示,读取到的0x453的值为8’h87
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) 0x454寄存器读取
如下图所示,读取到0x454寄存器的值为8‘h00
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
结论:读其他寄存器正确,说明AD9144接口读写正确,这几个状态寄存器的值确实为0,不符合预期。
v8工程读AD9144寄存器对比测试
1) 增加跟V20版相同代码
按照之前原理,增加ad9144_config模块代码,主要增加读取M,L ,K等参数寄存器代码,如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
2) 上板读取地址
工程编译完成后在ILA观察,观察对应寄存器地址读取的值
DID参数读取
第一:预期值
预期值为00,表示设备ID为00
第二:读取寄存器说明
读取0x400寄存器的值就能直到DID的值;如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
第三:读出的数据确认
在ILA中观察到寄存器0x400读出数据为8'h0F,与预期不符合
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
BID和ADJCNT参数
第一:预期
预期BID为00,ADJCNT为0,表示BANK ID为0 ,对DAC LMFC的调整设置为0;
第二:读取数据说明
0x401=8‘h00,BID为0,ADJCNT为0,如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
第三:读取寄存器数据
读出数据得出0x401=00,符和预期,正确?
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
参数ADJDIR、PHADJ、LID
第一:预期
读出数据与写入数据一致,写入数据为ADJDIR为0,PHADJ为0,LID为0.
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
第二:读出数据确认
参考寄存器表0x402,要读出数为8’h00,如下所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
读出数据为0x402=8'h00,符合预期,确认正确,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
参数SCR、L-1
第一:预期
读出数据与写入数据预期一致,写入数据为SCR打开bit7为高,L为4;即预期值为8‘h83,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
第二:读取数据确认
读取寄存器0x403,其值为00,不符合预期,结果错误。如下图所示,
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
参数F
第一:预期
预期读取的参数F为1,与写入寄存器0x454的F值相同;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
第二:读取寄存器值
读取0x404的值,0x404=83,与预期不符,确认错误
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
Ø 参数M检查
1) 预期值
预期值为4,原因是要有4个通道输出波形,所以要用4个。
2) AD9144寄存器说明
配置AD9144寄存器配置456的地址写入03,如下图表示4个。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
3) AD9144配置代码确认
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
4) AD9144寄存器读取确认
寄存器406预期读取值为03,实际值为00。配置不正确?
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
5) IP核寄存器说明
IP核 的AXI寄存器地址810bit0至bit7控制M的参数,M=4,bit0至bit7的值为8’h3。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
6) IP核配置代码确认
检查AD9144的代码,如下图:
AXI设置,第13个地址是2064(16'h810),值为986883(32'hF0F03),最低8位是3=M-1,预期正确。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
7) IP核寄存器读取确认
Ø 参数N检查
1) 预期值
预期值为16,表示采样分辨率为16。
2) AD9144寄存器说明
寄存器0x457[4:0]=8'h0F,表示采样分辨率为16如下图所示:
3) AD9144配置代码确认
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
4) AD9144读取值确认
5) IP核寄存器配置说明
AXI寄存器810[12:8]=8'h0F,表示分辨率N=16
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
IP核配置代码确认
6) IP核代码确认
检查AD9144的代码,AXI设置,第13行地址是2064(16'h810),值为986883(32'hF0F03),第8bit到第12比特是15=N-1,预期正确。如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
7) IP核读取寄存器确认
Ø 参数NP
1) 预期
预期NP为16,表示实际分辨率为16bit。
2) AD9144寄存器说明
寄存器0x458[4:0]=8'h0f表示实际分辨率为16bit,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
3) AD9144寄存器代码确认
0X458[4:0]=8'h0F,表示NP为16
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
4) AD9144读取寄存器确认
5) IP核寄存器说明
寄存器0x810第16至第20bit表示NP,0x810[20:16]=8'h0f表示NP-1 NP=16,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
6) IP核寄存器代码确认
检查AD9144的代码,AXI设置,第13个地址是2064(16'h810),值为986883(32'hF0F03),第16到第20比特是15=NP-1,预期正确。如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
7) IP核寄存器读取确认
AD9144寄存器地址458 bit0-4控制NP的值,NP=16,458[4:0]=8’hf。
AXI寄存器地址810bit16至20控制NP的值,NP=16,810[20:16]=8‘hf。
俩边都符合预期。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
Ø 参数CS
1) 预期
预期CS=0,表示每个采样的控制符为0bit;
2) AD9144寄存器说明
寄存器0x457[7:6]=8'h00表示CS=0,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
添加图片注释,不超过 140 字(可选)
3) AD9144代码确认
0x457[7:6]=8'h00,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) AD9144寄存器读取确认
5) IP核寄存器确认
寄存器0x810[25:24]=8'h00表示cs=0,如下图所示:
6) IP核寄存器代码确认
检查AD9144的代码,AXI设置,第13个行是2064(16'h810),值为986883(32'hF0F03),第24 到第25比特是00=CS如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核寄存器读取确认
Ø 参数L
1) 预期
预期L=8,表示有8个通道
2) AD9144寄存器说明
控制L=8的寄存器一共有3个,0x453,0x47D,0x201;
0X453[4:0]=8'h07;
0x47D =8’hff ;
0x201 =8'h00;
表示L=8 。如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) AD9144寄存器代码确认
0x201=00;0x453[4:0]=8'h07和0x47D=8'hff 表示L=8,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) 读取寄存器确认
5) IP核寄存器设置
寄存器0x80c[28:24]表示L-1,0x80c=8’h07表示L=8,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
6) IP核寄存器代码确认
寄存器0x80c[28:24]表示L-1,0x80c=8’h07表示L=8,如下图所示
第12行代码表示10进制的地址2060即16进制0x80C,0x80C[28:24]=8‘h07表示L-1.即L=8。
0x80c=7000000;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) 读IP核寄存器地址
Ø 参数LID BID DID
1) 预期
LID表示匹配发送侧的通道ID,预期为0;
BID表示匹配发送端的BANK ID,预期为0;
DID表示匹配发送端的设备ID ,预期为0.
2) AD9144寄存器配置说明
0x450=8'h00表示DID=0;
0x451=8'h00 表示BID=0;
0x452=8‘h00,表示LID=0;
如下图所示:
3) 寄存器代码确认
寄存器0x450=8’h00;表示DID为00
寄存器0x451=8'h00;表示BID 为00
寄存器0x452=8'h00;表示LID为00
如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) 读寄存器确认
5) IP核寄存器说明
寄存器0x80C[7:0]=00,表示DID为0;
寄存器0x80C[11:8]=00,表示BID为0;
寄存器0x80C[20:16]=8'h00,表示LID为0;
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
6) IP核寄存器代码确认
0x80C[7:0]=8'h00;
0x80c[11:8]=8'h00;
0x80c[20:16]=8'h00;
即第12行寄存器2060(0x80c)的值为7000000000(7000000)
确认正确,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
Ø 参数HD
1) 预期
预期HD=1,表示打开高帧率模式
2) AD9144寄存器说明
寄存器0x45A[7]=1,表示HD=1打开高帧率模式;
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) AD9144寄存器代码确认
0x45A[7]=1,表示HD=1,打开高帧率模式;
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) AD9144寄存器读取确认
5) IP核寄存器说明
寄存器0x814[16]表示HD,0x814[16]=1,如下图所示:
6) IP核寄存器代码确认
0x814[16]=1,第14行代码寄存器地址2068(0x814)的值为983883(F0F03),第16bit为1;
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核读取寄存器确认
AD9144寄存器地址45A[7]控制 HD参数,寄存器地址459[4:0]控制s参数,453[7]控制扰码是否打开,并且寄存器地址0x00C也控制扰码HD=1 S=1扰码打开 即45A[7]=1,459[4:0]=0,453[7]=1;
AXI寄存器地址814[0]控制扰码,814[12:8]控制S,814[16]表示HD ,HD=1 S=1,扰码打开,即814[0]=1,814[12:8]=0000,814[16]=1,0X00C=1;
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
AXI寄存器地址为814的值为十进制65537
0X0C的值为1
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
Ø 参数F
1) 预期
参数F预期值为1,表示每一帧有1个控制符
2) AD9144寄存器说明
地址0x545=8'h00表示F-1 F=1;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) AD9144寄存器代码确认
0x545=8'h00,表示F=1,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) 寄存器读取确认
5) IP核寄存器说明
寄存器0x020控制参数k-1;K=1,0x020=8’h00;
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
6) IP核寄存器代码确认
第八行寄存器地址32(0x20)的值为0(8'h00);表示k=1;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核寄存器读取确认
Ø 参数K
1) 预期
K=32,表示有32个多帧组成一帧
2) ad9144寄存器说明
寄存器0x455=8’h1F表示,k=32
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) ad9144寄存器代码确认
第36行,寄存器0x455=8'h1F,表示K=32。如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) ad9144寄存器读取确认
5) IP核寄存器说明
寄存器0x024=8'h1f =F-1,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
6) IP核寄存器代码确认
第9行,寄存器36(0x024)的值为31(8’h1F);31=K-1;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核寄存器读取确认
Ø LANE通道被使用
1) 预期
L=8 ,表示8个通道都被使用
2) AD9144寄存器说明
通道全部被使用,有俩个寄存器控制分别为0x201、0x47D
0x201=8'h00表示全部通道都使能;
0x47D=8'hFF表示8个通道都连接;如下俩图所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) AD9144寄存器代码确认
0x201=8‘h00;和0x47D=8’hff表示全部通道都被使用,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) AD9144寄存器读取
5) IP核寄存器说明
寄存器0x028每比特拉高表示这一通道被使用,例如7表示0至2通道被使用。如下图所示:
6) IP核寄存器代码确认
第10行 40(0x028)为255(8‘hff)表示全部通道都使用
确认正确,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核寄存器代码读取
Ø 参数 Subclass模式
1) 预期
Subclass 1模式,表示使用外部参考时钟进行同步;
2) AD9144寄存器说明
寄存器458[7:5]=01表示是子类1模式。
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
3) AD9144寄存器代码确认
0x458=8’h2F,0x458[7:5]=01,表示子类1模式,如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
4) AD9144读数据确认
5) IP核寄存器说明
寄存器0x02c=01表示子类1;如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
6) IP核寄存器代码确认
第11行代码,寄存器44(0x02c)的值为1(1),表示子类1模式;
如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
7) IP核寄存器读取确认
Ø 扰码
1) 预期
扰码为1表示打开扰码。
2) AD9144寄存器说明
3) AD9144寄存器代码确认
4) AD9144寄存器读取确认
5) IP核寄存器说明
6) IP核寄存器代码确认
7) IP核寄存器寄存器读取
反复确认后,相关参数配置正确,但上板472寄存器的值依旧为00,没有同步上。
Ø 读相关寄存器检查参数是否配置进AD9144芯片
AD9144读相关寄存器配置代码如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
1.2 mdyFmcAd9144各个模式配置步骤
mdyFmcAd9144各个模式配置步骤见链接《mdyFmcAd9144各个模式配置步骤》https://qr.dingtalk.com/page/yunpan?route=previewDentry&spaceId=5125287837&fileId=58471550793&type=file
1.3 MODE2模式下TXDATA的理解
1.3.1 tx_data的定义
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
如图所示:tx_tdata是以32为1组,每组对应1条lane的数据。[31:0]是给lane0使用的,[63:32]是给lane1使用的。
1.3.2 mode2模式下tx_tdata理解
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图1
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
图2
推测 mode2模式下,tx_tdata的数据格式猜测1
从上俩图中可以提取一些关于tx_tdata数据格式的要点:
a. 首先,serdes先发并行数据的低位;
b. 图1中又可以看到,J15首先收到,然后是J14,一直到J0,然后下一个J15,J14;
c. 图2中tx_tdata[31:0]先发送I0[8],然后是I0[9],I0[10],…,I0[15],I1[8],I1[9],I1[10],…,I1[15],I2[8],I2[9],…,一直到I3[15];
d. 图2中lane0先收到I0[8],然后是I0[9],I0[10],…,I0[15],I1[8],I1[9],…I1[15],一直到I3[15];
可以推测出:
a. serdes的一个采样点由{J15,J14,J13,…J0}组成;
b. 图1中的第一条serdes的J15对应着图2中的tx_tdata[31:0]中第一个发送的数据I0[8],对应着lane0中首先收到的I0[8];图1中的第一条serdes的J14对应着图2中的tx_tdata[31:0]中的第二个发送数据I0[9],…,图1中的第一条serdes的J8对应着图2中tx_tdata[31:0]的第八个发送数据I0[15],对应着lane0第8个接收的数据I0[15],图一中第一条serdes发送的J0对应着图2中的tx_tdata[31:0]的第16个发送数据I1[15]。依次类推。
c. 图2中I0[8]对应着tx_tdata[31:0]中的最低位tx_tdata[0],I0[15]对应着tx_tdata[31:0]的tx_tdata[7],I3[15]对应着图2中的tx_tdata[31:0]的tx_tdata[31],依次类推,可以列出图1中serdes与图而中tx_tdata发送数据和lane收到数据的映射关系,如下表所示。
DAC0
| sample0
| 数据先后顺序
| SEDRES0
| lane0收到数据
| tx_tdata[31:0]
| 1
| J15
| I0[8]
| tx_tdata[0]
| 2
| J14
| I0[9]
| tx_tdata[1]
| 3
| J13
| I0[10]
| tx_tdata[2]
| 4
| J12
| I0[11]
| tx_tdata[3]
| 5
| J11
| I0[12]
| tx_tdata[4]
| 6
| J10
| I0[13]
| tx_tdata[5]
| 7
| J9
| I0[14]
| tx_tdata[6]
| 8
| J8
| I0[15]
| tx_tdata[7]
| 9
| J7
| I1[8]
| tx_tdata[8]
| 10
| J6
| I1[9]
| tx_tdata[9]
| 11
| J5
| I1[10]
| tx_tdata[10]
| 12
| J4
| I1[11]
| tx_tdata[11]
| 13
| J3
| I1[12]
| tx_tdata[12]
| 14
| J2
| I1[13]
| tx_tdata[13]
| 15
| J1
| I1[14]
| tx_tdata[14]
| 16
| J0
| I1[15]
| tx_tdata[15]
| sample1
| 先后顺序
| SEDRES0
| lane0收到数据
| tx_tdata31:16]
| 1
| J15
| I2[8]
| tx_tdata[16]
| 2
| J14
| I2[9]
| tx_tdata[17]
| 3
| J13
| I2[10]
| tx_tdata[18]
| 4
| J12
| I2[11]
| tx_tdata[19]
| 5
| J11
| I2[12]
| tx_tdata[20]
| 6
| J10
| I2[13]
| tx_tdata[21]
| 7
| J9
| I2[14]
| tx_tdata[22]
| 8
| J8
| I2[15]
| tx_tadata[23]
| 9
| J7
| I3[8]
| tx_tdata[24]
| 10
| J6
| I3[9]
| tx_tdata[25]
| 11
| J5
| I3[10]
| tx_tdata[26]
| 12
| J4
| I3[11]
| tx_tdata[27]
| 13
| J3
| I3[12]
| tx_tdata[28]
| 14
| J2
| I3[13]
| tx_tdata[29]
| 15
| J1
| I3[14]
| tx_tdata[30]
| 16
| J0
| I3[15]
| tx_tdata[31]
| DAC1
| sample0
| 先后顺序
| SEDRES0
| lane1收到数据
| tx_tdata[63:32]
| 1
| J15
| I0[0]
| tx_tdata[32]
| 2
| J14
| I0[1]
| tx_tdata[33]
| 3
| J13
| I0[2]
| tx_tdata[34]
| 4
| J12
| I0[3]
| tx_tdata[35]
| 5
| J11
| I0[4]
| tx_tdata[36]
| 6
| J10
| I0[5]
| tx_tdata[37]
| 7
| J9
| I0[6]
| tx_tdata[38]
| 8
| J8
| I0[7]
| tx_tdata[39]
| 9
| J7
| I1[0]
| tx_tdata[40]
| 10
| J6
| I1[1]
| tx_tdata[41]
| 11
| J5
| I1[2]
| tx_tdata[42]
| 12
| J4
| I1[3]
| tx_tdata[43]
| 13
| J3
| I1[4]
| tx_tdata[44]
| 14
| J2
| I1[5]
| tx_tdata[45]
| 15
| J1
| I1[6]
| tx_tdata[46]
| 16
| J0
| I1[7]
| tx_tdata[47]
| DAC1
| sample1
| 先后顺序
| SEDRES1
| lane1收到数据
| tx_tdata[63:32]
| 1
| J15
| I2[0]
| tx_tdata[48]
| 2
| J14
| I2[1]
| tx_tdata[49]
| 3
| J13
| I2[2]
| tx_tdata[50]
| 4
| J12
| I2[3]
| tx_tdata[51]
| 5
| J11
| I2[4]
| tx_tdata[52]
| 6
| J10
| I2[5]
| tx_tdata[53]
| 7
| J9
| I2[6]
| tx_tdata[54]
| 8
| J8
| I2[7]
| tx_tdaat[55]
| 9
| J7
| I3[0]
| tx_tdaat[56]
| 10
| J6
| I3[1]
| tx_tdaat[57]
| 11
| J5
| I3[2]
| tx_tdaat[58]
| 12
| J4
| I3[3]
| tx_tdaat[59]
| 13
| J3
| I3[4]
| tx_tdaat[60]
| 14
| J2
| I3[5]
| tx_tdaat[61]
| 15
| J1
| I3[6]
| tx_tdaat[62]
| 16
| J0
| I3[7]
| tx_tdaat[63]
| …
| …
| …
| …
| …
|
| DAC3
| sample0
| 先后顺序
| SEDRES3
| lane3收到数据
| tx_tdata[127:96]
| 1
| J15
| Q0[0]
| tx_tdata[96]
| 2
| J14
| Q0[1]
| tx_tdata[97]
| 3
| J13
| Q0[2]
| tx_tdata[98]
| 4
| J12
| Q0[3]
| tx_tdata[99]
| 5
| J11
| Q0[4]
| tx_tdata[100]
| 6
| J10
| Q0[5]
| tx_tdata[101]
| 7
| J9
| Q0[6]
| tx_tdata[102]
| 8
| J8
| Q0[7]
| tx_tdata[103]
| 9
| J7
| Q1[0]
| tx_tdata[104]
| 10
| J6
| Q1[1]
| tx_tdata[105]
| 11
| J5
| Q1[2]
| tx_tdata[106]
| 12
| J4
| Q1[3]
| tx_tdata[107]
| 13
| J3
| Q1[4]
| tx_tdata[108]
| 14
| J2
| Q1[5]
| tx_tdata[109]
| 15
| J1
| Q1[6]
| tx_tdata[110]
| 16
| J0
| Q1[7]
| tx_tdata[111]
| DAC3
| sample0
| 先后顺序
| SEDRES3
| lane3收到数据
| tx_tdata[127:96]
| 1
| J15
| Q2[0]
| tx_tdata[112]
| 2
| J14
| Q2[1]
| tx_tdata[113]
| 3
| J13
| Q2[2]
| tx_tdata[114]
| 4
| J12
| Q2[3]
| tx_tdata[115]
| 5
| J11
| Q2[4]
| tx_tdata[116]
| 6
| J10
| Q2[5]
| tx_tdata[117]
| 7
| J9
| Q2[6]
| tx_tdata[118]
| 8
| J8
| Q2[7]
| tx_tdata[119]
| 9
| J7
| Q3[0]
| tx_tdata[120]
| 10
| J6
| Q3[1]
| tx_tdata[121]
| 11
| J5
| Q3[2]
| tx_tdata[122]
| 12
| J4
| Q3[3]
| tx_tdata[123]
| 13
| J3
| Q3[4]
| tx_tdata[124]
| 14
| J2
| Q3[5]
| tx_tdata[125]
| 15
| J1
| Q3[6]
| tx_tdata[126]
| 16
| J0
| Q3[7]
| tx_tdata[127]
|
结合上述表格,可以推测出AD9144 mode2模式下,tx_tdata的输出格式为:
DAC0_sample0={tx_tdat[0],tx_tdata[1],…,tx_tdata[15]};
DAC0_sample1={tx_tdata[16],tx_tdata[17],tx_tdata[18],…,tx_tdata[31]}
DAC1_sample0={tx_tdat[32],tx_tdata[33],…,tx_tdata[47]};
DAC1_sample0={tx_tdata[48],tx_tdata[49],tx_tdata[50],…,tx_tdata[63]}
DAC2_sample0={tx_tdat[64],tx_tdata[65],…,tx_tdata[79]};
DAC2_sample1={tx_tdata[80],tx_tdata[81],tx_tdata[82],…,tx_tdata[95]};
DAC3_sample0={tx_tdat[96],tx_tdata[97],…,tx_tdata[111]};
DAC3_sample1={tx_tdata[112],tx_tdata[113],tx_tdata[114],…,tx_tdata[127]};
推测mode2模式下,tx_tdata的数据格式推测2
如图所示:mode2一共有4个dac,4条lane。可以推测出tx_tdata作用。
dac0_sample0={tx_tadata[7:0],rx_tadata[15:8]};//DAC0 sample0【为什么是这么赋值?为什么是sample0,而不是1?】
dac0_sample1={tx_tdata[23:16]rx_tadata[31:24]}//DAC0 sample1
dac1_sample0={tx_tadata[39:32],rx_tadata[47:40]};//DAC1 sample0
dac1_sample1={tx_tdata[55:48]rx_tadata[63:56]}//DAC1 sample1
dac2_sample0={tx_tadata[71:64],rx_tadata[79:72]};//DAC2 sample0
dac2_sample1={tx_tdata[87:80]rx_tadata[95:88]}//DAC2 sample1
dac3_sample0={tx_tadata[103:96],rx_tadata[111:104]};//DAC3 sample0
dac3_sample1={tx_tdata[119:112]rx_tadata[127:120]}//DAC3 sample1
1.3.3 mode2 模式下tx_tdata的验证
Ø 为什么通道LANE每个时钟传输的4字节的数据,高16比特位sample1,低16bit为sample2
a. 第一个通道进行赋值
通过vioIP和,给tx_data[31:0]赋值为tx_tdata=[8'h70,8,h60,8'h30,8'h00] 。如下图所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察示波器,观察到的现象为:160M的波形,幅度为396mv。如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
b. 将tx_tdata[7:0]和tx_tdata[15:8]的数据进行对换,其它俩字节数据保持不变,tx_tdata=[8'h70,8'h60,8'h00,8'h30],vio赋值如下图所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察示波器现象:160M的波形,幅度值为200mv,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
c. 将tx_tdata[15:0]与tx_tdata[31:16]数据进行对换,验证sample0和sample1的问题
tx_tdata=[8'h30,8'h00,8'h70,8'h60],如下图所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察到的示波器图形为:160M波形,幅度值为395mv,如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
d. tx_tdata=[00,00,80,00] ,vio赋值如下图所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察到波形:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
e. tx_tdata=[00,00,80,00],vio赋值如下所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
f. tx_tdata=[8'h7f,8,hff,8'h00,8,h80],vio如下所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察到的波形如下所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
g. tx_tdata=[00,80,7f,ff],VIO如下所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
观察到的图形
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
h. tx_tdata=[00,80,ff,7f],vio如下所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
波形如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
i. tx_tdata=[ff,7f,00,80] ,VIO如下所示
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
波形如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
j. 设计一个计数器,计数器计数周期为4,按以下方式进行赋值:
cnt=0时,第一个通道数据tx_tdata=[16'h00f0,16'h0080];
cnt=1时,第一个通道数据tx_tdata=[16'hf0ff,16'h00ff];
cnt=2时,第一个通道数据tx_tdata=[16'hff00,16'hffff];
cnt=3时,第一个通道数据tx_tdata=[16'hff0f,16'hff7f]。
代码如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
示波器波形如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
k. 设计一个计数器,计数器计数周期为4,按以下方式进行赋值:
cnt=0时,第一个通道数据tx_tdata=[16'h0080,16'h00f0];
cnt=1时,第一个通道数据tx_tdata=[16'h00ff,16'hf0ff];
cnt=2时,第一个通道数据tx_tdata=[16'hffff,16'hff00];
cnt=3时,第一个通道数据tx_tdata=[16'hff7f,16'hff0f]。
代码如下所示。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
波形如下所示:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
l. 设计一个计数器,计数器计数周期为4,按以下方式进行赋值:
cnt=0时,第一个通道数据tx_tdata=[16'h0000,16'hff1f];
cnt=1时,第一个通道数据tx_tdata=[16'hff3f,16'hff2f];
cnt=2时,第一个通道数据tx_tdata=[16'hff5f,16'hff4f];
cnt=3时,第一个通道数据tx_tdata=[16'hff6f,16'hff7f]。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
波形图为:
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
m. 赋值方式为:
cnt=0时,第一个通道数据tx_tdata=[16'hff1f,16'h0000];
cnt=1时,第一个通道数据tx_tdata=[16'hff3f,16'hff2f];
cnt=2时,第一个通道数据tx_tdata=[16'hff5f,16'hff4f];
cnt=3时,第一个通道数据tx_tdata=[16'hff7f,16'hff6f]。
[backcolor=rgba(0, 0, 0, 0.1)]
[backcolor=rgba(0, 0, 0, 0.1)]
由于篇幅有限,请继续关注AD9144笔记(2)
|
|