SD-FEC硬核LDPC编解码使用方法
概述
本文主要描述如何应用Xilinx的SD-FEC集成块硬核资源,进行5G-NR 通信系统PDSCH和PUSCH信道编解码开发。主要从SD-FEC集成块硬核特性、配置流程和注意事项等进行说明。由于在实际项目开发过程中,涉及大量技术细节,在此文中将不展开详细讨论。
2 如何获取SD-FEC集成块硬核IP资料?
当你在学习或工作中,可能会使用Xilinx公司的Zynq UltraScale+ RFSoC系列芯片进行项目开发,在某些芯片型号中,自身带有SD-FEC硬核资源,具体查询方式,可在Xilinx官方网站检索DS889手册。
SD-FEC集成块硬核资料可在Xilinx网站下载,PG256便是该IP产品手册,如下图中所示。
也许细心的你,已经发现了上图中的论坛问答,有我本人的问答记录。这也将载入SD-FEC硬核应用史册,方便全球的5G工程师从中学得一些经验。基于这样的目的,我将这些零碎的心得体会,发布在我个人微信公众号上。
当我们从网站下载了IP手册后,需要结合实际需要进行阅读,并尝试进行开发。
众所周知,5G与4G的一大不同,就是信道编解码技术完全不同,以及可配置的子载波间隔有了更多选项,带宽得到大幅度提高,同时考虑应用到更多新型场景。
在进行开发时,虽然SD-FEC硬核已经集成到芯片中,但依然需要对应的IP license。这一点,也可通过在Xilinx官方网站申请获取。申请需要用户注册,如果您已购买相关的license,或者通过申请获取,需要注意将本地PC主机的MAC地址修改与IP license一致,校验通过方可使用。
3 SD-FEC IP 介绍
当你下载获得该IP的产品手册后,便可进行阅读,获取相关信息,进行相应的开发了。
事实上,当你第一次使用时,有一种懵懵哒的感觉,因为你不知道,怎样在短时间内很好的用起来。
Xilinx的PG256产品手册提供中英文版,看英文比较费力的朋友(不过笔者相信,作为《科学文化人》的读者,英文功底肯定不错),可以尝试去读中文版,或者中英结合。
下面,重点针对IP的特性、应用等进行简单的说明。
上图中,包含了非常丰富的信息,当然你也可能说,每一个字我都认识,但是连起来我却一无所知。如果想深入了解,不妨在夜深人静的时候,找笔者交流一下学习心得。
看到这些特性,实质上你应该知道,该IP支撑支持LTE中的Turbo解码以及5G-NR中的LDPC编解码,当然还有更多应用。
本文比较关心LDPC编解码,因此,其余的配置和使用不在讨论之列。
我选取了关于LDPC编解码部分,贴出来,与大家一起讨论。
如果你想看懂上图中的叙述,建议先看看手册,以及5G-NR标准技术报告,了解LDPC码在5G标准中的应用情况。
字越少,事越大,并且也重要。
这里面涉及到端口的具体使用,因此,还是建议仔细看文档。
整个SD-FEC硬核的架构如下图所示。
上图中,包含的信息也是极为丰富,如果你用FPGA实现了该IP,我想年薪百万不是梦。
上图中给出了IP 的接口和数据流向,整个硬核的框架,十分清晰。重点在于这副牌在你手里,怎么去打。
4 如何应用SD-FEC进行LDPC编解码开发
当你拿到手册后,读完一遍,长舒一口气,说简单也简单,说不简单,也不简单。
在此,我只提醒两点,敲黑板:
只需要注意这两点,足够解决大部分问题,其他当然也很重要,限于篇幅,此处省略5千字。
接下来,我们打开Vivado设计环境,把SD-FEC调出来,看看是不是足够英俊潇洒。
建立一个新工程,选择RFSOC系列器件的芯片,在IP目录里找到Soft-Decision FEC。
接下来,你可以按照手册中的说明,一步步往下配置。比如,选择5G标准,LDPC Decode模式。
配置接口,这里我用Initialized,具体差异,自行体会。配置通道数,根据自己的喜好,萝卜青菜,各有所爱。
接下来,默认,不想去设置它。
接下来,是最后一项,假如你想使用例程进行开发,就勾选带处理器。如果你觉得例程不好用,想自己实战一次,施展自己的才华,那么就不勾选例程,自己动手,丰衣足食。
一顿猛操作后,我们把IP实例文件拷贝到工程中,接下来,就任由你发挥了。
当你幸幸苦苦写完代码,进行仿真验证,并且解决掉无数个bug后,你终于露出了甜美的笑容。
于是,你迫不及待地想上板调试,证明自己是一个王者,而不是青铜。
这里还是提醒一下,这个硬核的物理位置约束。如果你只是用了一个或两个硬核资源做LDPC编解码,Vivado会自动去布局,一般情况下,也能得到较好的时序效果。
但是,最怕的就是但是这一转折性语句。但是,Xilinx说了,如下总结。
具体位置怎么约束呢?Xilinx给出了一张表。
于是,你照着做了,跑出了完美的bit,就等上板见证奇迹的时刻。
是不是很简单,看到这里,你觉得不过如此嘛,值得你打这么多字,熬那么深的夜?
人穷怪屋基,人笨怪自己。
这里,在多说几句,关于CTRL和status端口。
对于LDPC解码,其CTRL如下:
对于LDPC编码,其CTRL如下:
端口用的好,可节约开发难度和开发周期。
对于status端口,作为输出端,还是有必要关注一下。
也许你会问:这端口描述在手册里有,你还啰嗦什么呢?
笔者担心你没看明白啊,万一没用好,你还得来找笔者交流,那我可要收费了。
俗话说,帮忙修改一行代码,10元;技术指导,一次50元。
知识有时候挺廉价的,有时候却也是救命的。
最终,详细设计就靠自己了,等你调试成功了,记得来报喜。
一分耕耘,一分收获。记得玩转FPGA,千万别从入门到放弃。
今天的SD-FEC技术分享到此结束了,欢迎大家留言,说说你的FPGA开发心得。
来源: FPGA算法工程师
作者: Duoqiang Liu
原文链接:FPGA算法工程师
推荐阅读
更多IC设计技术干货请关注FPGA的逻辑技术专栏。