JESD204B IP核作为接收端时,单独使用,作为发送端时,可以单独使用,也可以配合JESD204b phy使用。

JESD204B通常配合AD或DA使用,替代LVDS,提供更高的通讯速率,抗干扰能力更强,布线数量更少。

本篇的内容基于jesd204b接口的ADC和FPGA的硬件板卡,通过调用jesd204b ip核来一步步在FPGA内部实现高速ADC数据采集,jesd204b协议和xilinx 的jesd204 IP核相关基本知识已在前面多篇文章中详细介绍,这里不再叙述~

在该篇中,小青菜哥哥试图从一个初学者的视角来记录整个开发流程,力求做到每一个读者阅读完该笔记后都能快速开发基于jesd204b接口的FPGA-ADC数据采集,同时也确保几个月甚至几年后的本人已经遗忘了jesd204b开发细节后,通过阅读该笔记能够快速重新上手。

还是老话说得好:好记性不如烂笔头!

硬件工作环境
ADC:ADS52J90。FPGA:kintex7。供电:12V/4A 直流电源。该板卡最多外接32通道2Vpp模拟信号以及20路外部触发信号。数据传输接口方式有千兆以太网接口、高速光纤接口以及低速USB串口。需要用到的工具为万用表、示波器、信号发生器。

图2:ADC主要特性

  • 该款芯片内置了16个ADC(模数变换器),这16个ADC输出的数据通过jesd接口输出。
  • 这16个adc的数据通过2、4、或者8条lane输出,具体选哪种用户是可以选择的。
  • 每条lane的最高线速率是5Gbps。
  • 支持子类0、1和2。

该芯片的采样率、采样精度,采样通道数都有多种模式,用户可选择范围比较大,但必须最终满足每条lane的数据线速率不能高于5Gbps。

我们再来看看ADC数据的传输层数据结构。该ADC手册描述输出数据有“NORMAL PACKING MODE”和“ SINGLE CONVERTER PER OCTET MODE”两种模式,为了提高位传输效率,本人选择了“NORMAL PACKING MODE”,如图3所示:

图3:不同的jesd接口操作模式

在实际操作演示时,小青菜哥哥通过ADC配置接口,选择了固定的ADC基本采样参数:即ADC的采样率为80MSPS、采样精度为12bit、采样通道为16,所有数据最终通过4条lane输出到FPGA(4个lane正好对应FPGA的一个GTX quad,比较整齐。。。。技术男强迫症犯了)。因此,在“NORMAL PACKING MODE”模式下,N=12,N’=12,F=6。

具体的传输层数据结构如图4所示:

图4:“NORMALPACKING MODE”模式下的传输层数据结构

从图4也可以看出,F=6,采样数据没有contro bit 和tail bit填充,这样就保证了输出数据100%有效传输效率。

那么ADC的帧时钟是多少呢?手册上也已经给出了,如图5所示:帧时钟频率和ADC转换频率一样的,这里都为80MHz。

图5:jesd相关的时钟频率

基于以上信息,小青菜哥哥选择的工作模式的lane线速率就可以确定了:
帧时钟×帧字节数×每字节的bit数×8b/10b编码开销即为lane的工作线速率
80MHz×6×8×10/8=4.8Gbps
另外,还有一种更容易理解的线速率确定方式:
我们知道每条lane传输4个ADC的数据,而ADC采样率为80MHz,采样精度12bit,没有控制和tail bit,只要8b/10b编码,因此每条lane的线速率为:
80MHz采样率×12bit采样精度×4个ADC×10/8=4.8Gbps

另外,还有最后一个多帧参数K 需要确认。ADC数据手册给出了K的范围,即:Ceil (17 / Number of Octetsper Frame) ≤ Multiframe Size (In Terms of Number of Frames),即Ceil (17 / 6) ≤ K。因此K必须要大于等于3,小青菜哥哥决定K取4。

到现在为止jesd204的参数就确认完毕了,在这里就不一一介绍该芯片的其它功能了,该芯片的详细中文版介绍可以看小青菜哥哥以前的文章。

接下来我们来打开vivado,一步一步来完成FPGA-ADC数据采集的工程。在工程建立的过程中,小青菜哥哥还会反复提到上述的ADC芯片,因为在建立jesd204链路时,FPGA端的参数必须和ADC的参数保持一致~

如图6所示为新建的vivado工程“jesd204b_ads52j90”,匹配硬件的FPGA型号“xc7k325tffg900-2”,可以看到工程内部还没有任何文件:

图6:新建工程

接下里我们来例化jesd204 IP核,如图7所示:

图7:例化IP核

双击该IP核后打开了jesd204的配置界面,配置界面分成4个子界面:“Configuration”、“Shared Logic”、“Default Link Parameters”以及“JESD204 PHYConfiguration”。我们下面将分别描述:

“Configuration”配置界面
如图8所示为“Configuration”配置界面,该界面有7个地方是需要用户来选择的

图8:“Configuration”配置界面

1:输入IP核名字
2:由于是ADC数据采集,因此FPGA的IP核应该设置成“Receive”
3:设置IP核内部的接收数据缓存器的字节长度。数据缓存器主要用来做lane之间的数据对齐和实现确定性延迟功能。字节长度是用户可选的,选得值越小越节约FPGA逻辑资源,但字节长度必须要超过F*K(本篇为6*4=24),因此选择了64,如果大家不清楚的话,直接选最大长度,绝对没问题。
4:lane数量:本篇为4条lane。
5:jesd204 IP核的AXI4-Lite配置时钟:默认为100MHz。对于ultrascale器件,频率范围为10MHz~200MHz,对于7系列器件,如果IP核的模式为“Include Shared Logic inexample design”,则频率范围为10MHz~200MHz;如果IP核的模式为“Include Shared Logic incore”,则频率范围和Transceiver DRP时钟频率范围相同,本人选择了80MHz(80MHz为FPGA系统时钟,可以省去FPGA另外再提供100MHz时钟);
6:该选项可以选择sysref信号被core clk的上升沿或下降沿采样,用于jesd204b子类1的确定性延迟功能。一般来说,外界提供的core clock和sysref是同源且上升沿对齐信号,因此在FPGA端最好选择在时钟下降沿采样sysref比较精确,具体描述可参考pg066的page-60。
7:用户决定IP核的core clk是否由glbclk(p/n)管脚输入。当refclk(p/n)频率不等于core clk时,必须外部输入core clk。本篇中的线速率为4.8Gbps,因此core clk为120MHz,所以本人将参考时钟输入频率也调成120MHz,这样IP核只需要一个120MHzd的参考时钟输入接口了。

“Shared Logic” 配置界面
如图9所示为“Shared Logic” 的配置界面:该界面只有两种选择,要么选择“Include Shared Logic in example design”,要么选择“IncludeShared Logic in core”。对于大部分用户来说,选择“Include Shared Logic in core”就可以了,后期使用起来很简单。对于需要使用“transceiversharing”这种高级功能的特殊用户来说,就需要选择“Include Shared Logic in example design”,以便自己可以修改IP核内部的部分代码。我们选择“IncludeShared Logic in core”就可以了。

图9:“SharedLogic” 的配置界面

“Default Link Parameters” 配置界面
如图10所示为“Default Link Parameters” 的配置界面:该界面5个部分需要用户设置:

图10:“DefaultLink Parameters” 的配置界面

1:Default SYSREFAlways:该选项用来配置LMFC计数器是否在每个SYSREF脉冲到来时都复位,或者只在SYSREF的第一个有效脉冲到来时复位,忽略以后的SYSREF信号。这里选择OFF即可。
2:Default SCR:在ADC端我们禁止了扰码功能,因此这里也将扰码功能关闭。扰码功能有利有弊,小青菜哥哥反正一直都不用该功能的~
3:Default F:从前面的ADC部分描述来看,这里F设置成6
4:Default K:从前面的ADC部分描述来看,这里K设置成4
5:Default SYSREFRequired on Re-Sync:该选项用来选择每次链路重新同步时是否需要sysref信号,我们最好关闭它,默认链路同步时不需要该信号,只在SYNC拉高后的下一个LMFC上升沿同步就可以了,这样就方便许多。

“JESD204 PHY Configuration” 配置界面
如图11所示为“JESD204 PHY Configuration” 的配置界面:该界面6个部分,只有其中4个部分需要用户设置:

图11:“JESD204 PHYConfiguration” 配置界面

1:Transceiver Type:这是由所选FPGA型号决定的,这里不能选择
2:Line Rate:前面已经计算过,当前需求的数据线速率为4.8Gbps
3:Reference Clock:由于线速率已确定4.8Gbps,而core clk为其1/40,即120MHz。所以为了不使用glbclk(p/n),减少一路时钟输入,这里将ReferenceClock 也设置成120MHz ,这样外部输入的glbclk(p/n)就可以由Reference Clock代替。
4:这里也没得选:只能是CPLL
5:DRP Clock Frequency:配置页面已经提到过,对于七系列器件,DRP clk和AXI4-Lite clock为同一时钟,所以这里也不可选了,只能为前面定下的80MHz。
6:不需要Transceiver的调试功能

至此,jesd204的IP核就配置完成了。例化该IP核后,其生成的ip核端口信息如下图12所示(带信号注释):

图12:IP核例化代码

我们再看看小青菜哥哥建立的工程顶层接口文件,如图13所示:(带注释),接口其实真的很简单~

图13:顶层文件接口

小青菜哥哥的FPGA顶层文件主要包括以下8模块,如图14所示:

图14:顶层设计

1:PLL模块
该模块利用外部40MHz晶振和FPGA内部的PLL,产生2路时钟:其中一路10MHz,作为时钟芯片配置模块和ADC配置模块的运行时钟;另一路100MHz,本打算供给AXI4-lite配置模块时钟,后来发现不需要,这里就留着备用了。
2:时钟芯片配置模块
没啥可说的,就是看lmk04826的数据手册,通过SPI接口协议配置时钟芯片内的寄存器,产生整个系统所需的时钟和sysref信号。以前的文章详细讲述过~
3:ADC配置模块
通过SPI接口协议配置ADC芯片,使其工作在我们需要的jesd204参数状态,本篇中小青菜哥哥将ADC配置成了累加数,便于输出测试。以前的文章详细讲述过~
4:jesd204 IP核模块
调用前面的IP核即可
5:全局时钟模块
IP核会输出一路120MHz的core clk,供给用户使用。我们将该信号引入全局时钟模块,产生120MHz和80MHz全局时钟,作为ADC数据解析模块的时钟。另外80MHz时钟还可以作为AXI4-lite的配置时钟。
6:AXI4配置模块
配置jesd204 IP核的工作参数。这里需要注意的是配置的参数和ADC配置模块的参数要相同,比如F,K,N等参数。
7:ADC数据解析模块
由于IP核输出的数据是128bit位宽,在120MHz的时钟域下工作。而ADC采样时钟是80MHz,所以ADC数据解析模块的功能就是将总共4 lane的这些数据分离,变成16个ADC的12bit精度的连续采样数据。每款ADC芯片的数据组织结构(其实就是JESD204B的传输层数据结构)不一样,所以该模块不具有普适性,只针对本篇的需求~
8:逻辑分析仪
我们通过ILA逻辑分析仪来观察每一路的ADC采样数据,看是否正确。

如下图15所示为小青菜哥哥的jesd204 IP核信号的连接方式,供大家参考:

图15:IP核顶层代码

我们再看看数据解析模块的接口含有哪些信号,如图16:

图:16:数据解析模块顶层

我们再看看逻辑分析仪监测的数据情况,如图17为IP核输出的数据时序,这里我们看不出来ADC数据到底对不对,得到的都是ADC采样数据经过传输层分割后的数据。

图17:jesd IP核数据输出

进一步的我们看看最终还原的ADC数据到底对不对:由于小青菜哥哥将ADC配置成了发送累加数,所以说如果jesd204链路正常工作了,那么观察到的16路ADC采样数据肯定也是累加数,如图18所示:可以看到数据从0累加到4095,然后循环往复,正好对应我们在前面配置的12bit ADC精度。

图18:ADC累加数据

将ADC的累加数配置更改为采集正常输入信号后,我们外接了信号发生器,将信号发生器设置成发送正弦波,下图19是在FPGA内部监测到的一路正弦信号,其他路没有接信号,是噪声基线:

图19:正弦波模拟信号的输入测试

下图20是用该板卡和上面描述的方案在试验现场测试的3种放射源的混合能谱,看上去还可以吧!

图20:实际放射源测试结果

JESD204B IP核与ADC的实际操作就到这里了,其实只要明白了jesd204协议的基本内容和IP核各个端口的含义,开发起来并不复杂。我们主要还是要仔细阅读ADC数据手册,根据手册给出的参数来确定IP核的工作参数即可。希望大家看完以后都能够有所收获,获得收获的朋友们点个小红星吧哈哈哈~~

JESD204B 使用说明相关推荐

  1. JESD204B接口调试记录2 - 资料

    LMK04828 芯片手册相关资料,在TI官网下载:LMK04828 数据表.产品信息和支持 | 德州仪器 TI.com.cn 除了手册,还需要下载和使用TICSPRO-SW,产生所需要的时钟芯片配置 ...

  2. abaqus高性能服务器怎么用,高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF...

    高性能计算平台ABAQUS任务调度使用说明作者陈林E-Mailchenlin.PDF 高性能计算平台ABAQUS 任务调度使用说明 作者:陈林 E-Mail:chenlin@ 日期:2017-1-10 ...

  3. linux 文件拷贝并替换,Linux_cmd replace 文件替换使用说明,帮助信息: 复制代码 代码如 - phpStudy...

    cmd replace 文件替换使用说明 帮助信息: 复制代码 代码如下: 替换文件. REPLACE [drive1:][path1]filename [drive2:][path2] [/A] [ ...

  4. Simple Dynamic Strings(SDS)源码解析和使用说明二

    在<Simple Dynamic Strings(SDS)源码解析和使用说明一>文中,我们分析了SDS库中数据的基本结构和创建.释放等方法.本文将介绍其一些其他方法及实现.(转载请指明出于 ...

  5. Delphi开发的IOCP测试Demo以及使用说明。

    Delphi开发的IOCP,此为压力测试Demo和使用说明.

  6. oracle database link mysql_oracle database link使用说明

    oracle database link使用说明 作用: 将多个oracle数据库逻辑上看成一个数据库,也就是说在一个数据库中可以操作另一个数据库中的对象. 简易语法: CREATE [PUBLIC] ...

  7. 序列拼接工具Bowtie使用说明

    序列拼接工具Bowtie使用说明 2011-06-08 ~ ADMIN Bowtie是一个超级快速的,较为节省内存的短序列拼接至模板基因组的工具.它在拼接35碱基长度的序列时,可以达到每小时2.5亿次 ...

  8. benchmarksql测试mysql_数据库压力测试工具 -- BenchmarkSQL 使用说明

    关于数据库的压力测试,之前写过3篇Blog: 数据库基准测试(Database Benchmarking) 说明 数据库压力测试工具 -- Hammerdb 使用说明 数据库压力测试工具 -- Swi ...

  9. 计算机网页基础课专业,关于《计算机应用基础》课程网页下的学习资源使用说明....

    关于<计算机应用基础>课程网页下的学习资源使用说明. 关于<计算机应用基础>课程网页下的学习资源使用说明 各位同学:大家好! 07春学期已接近一半的时间了,新生对课程还需要更多 ...

  10. gh ost mysql_MySQL在线DDL gh-ost 使用说明

    3)使用说明:条件是操作的MySQL上需要的binlog模式是ROW.如果在一个从上测试也必须是ROW模式,还要开启log_slave_updates.根据上面的参数说明按照需求进行调整. 环境:主库 ...

最新文章

  1. mysql库可以无限创建吗_mysql 创建库
  2. java常用容器(集合)的总结
  3. js词法作用域(静态作用域)
  4. 数据段描述符和代码段描述符(二)——《x86汇编语言:从实模式到保护模式》读书笔记11
  5. keyshot卡住了还能保存吗_相机希望你知道的13件事 keyshot相机切换事件
  6. getobject java,Object get(Object obj)
  7. JavaScript服务器端开发(函数实参对象arguments使用的几个注意事项)
  8. Linux 命令(11)—— col 命令
  9. python开发Day10(多进程多线程补充)
  10. bootstrap日期控件 只显示 年月
  11. CSDN博客停用公告
  12. java cxf文件上传下载,CXF webservice 上传以及下载文件
  13. win7修复计算机卡了,win7系统下360补丁修复过程中卡住的解决方法
  14. 美国visa虚拟信用卡
  15. Cadence Allegro Segments Over Voids 功能介绍图文教程
  16. 【番外】 使用@arcgis/cli脚手架进行ArcGIS JS API开发
  17. 基于医疗知识图谱的项目构建学习总结(一)—项目构建环境搭建及爬取数据部分
  18. dotnet core error 0x80070057
  19. 【渝粤教育】广东开放大学 中国文化与中国文学 形成性考核 (46)
  20. 聊一聊Dubbo的一些特性和原理

热门文章

  1. OpenEmu for mac(苹果系统原生游戏模拟软件)中文版
  2. R、Rstudio、Rtools的下载与安装
  3. 新版Edge浏览器88版本系列不支持adobe flash的处理方法
  4. AutoCAD二次开发基础(一):基础使用
  5. 删除目录以及子目录以下所有目录和文件
  6. 电子游戏数据分析报告
  7. 不知道怎么把英文文档翻译成中文?手把手教你怎么操作
  8. 关于平面设计知识,设计师需要懂得印刷常识——黎乙丙
  9. metasfresh 集成 yetiforce crm
  10. 天池大数据竞赛——资金流入流出预测赛后感想