如何使用5G工具箱生成用于SystemVerilog验证的5G波形
RTL验证的挑战之一是开发现实的定向测试。像3GPP 5G新无线电(NR)标准这样的新标准需要深入的领域专业知识,这使得创建符合标准的波形验证模型更具挑战性。
5G Toolbox™提供符合标准的功能和示例,用于5G通信系统的建模、仿真和验证,以确保其符合5G NR标准。本视频展示了如何使用HDL Verifier™从5G工具箱功能自动生成SystemVerilog验证组件,合成一个具有参数的真实波形,您可以在SystemVerilog中调整,以及一些更常见的步骤,您将在这个过程中经历,包括:
- 分区MATLAB®从算法的测试台架和定义什么是可参数化
- 将MATLAB函数输出转换为不动点
- 解决阻止C代码生成的编码风格问题
- 将生成的SystemVerilog DPI组件集成到简单的测试台架中
如果您正在为5G无线应用程序设计硬件,则需要验证硬件功能是否符合标准。如何创建符合标准的波形?更好的是,如何使用参数创建它们以测试不同的场景?
MATLAB with 5G Toolbox为5G通信系统的建模、仿真和验证提供了符合标准的函数和示例,以确保其符合3GPP 5G新无线电(NR)标准。
在这里,我将展示如何重用通信算法工程师开发的内容,为SystemVerilog验证生成5G新无线电波形。学习5G规范并在SystemVerilog中编写波形需要多长时间?
5G工具箱中有一些波形生成的好例子,你可以用它们来开始,比如这里的这个。但是在算法开发过程中,测试和算法通常没有相互划分。
无线HDL工具箱包含5G硬件设计IP,使用5G工具箱功能的测试台已经为此结构化,如NR HDL Cell Search参考。本设计搜索最强的小区ID,这意味着它执行OFDM解调并识别最强的主、次同步信号。
波形生成的大部分都是在这个函数中完成的,它生成块模式case b。测试台架添加了频率偏移和噪声,使其更能代表你将从空中接收到的信号。我将把该功能放入主函数并将这些参数作为输入传递,这样当我使用SystemVerilog中的组件时,我就可以使用相同的刺激并扫描信噪比、频率偏移的参数,并设置不同的单元ID。这是情况B的硬编码,我也可以参数化它,但我现在保持简单。
这是主函数的结尾,在这里我添加了频率偏移和噪声。我要做的另一件事是把它转换成定点。在MATLAB中默认的类型是双精度浮点,但RTL设计的输入是定点的。
HDL验证器是生成该组件的产品。它调用MATLAB Coder来生成C代码,并构建一切将其链接到SystemVerilog模拟中。因此,它将在任何SystemVerilog模拟器中本机运行。
命令是dpigen,我需要为输入参数定义数据类型——它可以从驱动它们的代码中找出输出。
但是当我开始运行这个命令时,我得到了一些错误。MATLAB是一种解释语言,它对数据类型非常宽容,所以我必须对C代码生成做一些修正,例如,如果一个变量将被分配复杂数据,就用复杂数据初始化它。C代码生成不允许在开始读取结构之后向结构中添加元素,因此对此有一些修复。但总的来说,这些修改都是非常小的。
现在我可以生成组件,并查看创建了什么。它生成构建函数所需的所有C代码、构建函数所需的makefile以及构建DLL。如果需要在不同的平台上编译,可以使用makefile。它还生成一些SystemVerilog代码来显示如何使用组件。
它需要初始化句柄,它有重置行为,当启用时,它每次调用时钟的函数。在这种情况下,注意函数输出整个波形——这就是MATLAB代码通常的工作方式——但这意味着我可能不想一遍又一遍地调用它,我只调用一次然后禁用它。
我创建了一个简单的测试工作台,这里没有任何花哨的东西。它只是实例化RTL设计,这也是从无线HDL工具箱IP生成的。然后在这里我只是实例化生成的SystemVerilog DPI。这是一个非常简单的测试台——它只是进行重置,为DUT设置一些参数,然后加载波形。这里是它在一次调用后禁用DPI的地方。然后它进行循环,每次从完整的波形中提取一个样本。
如果您想要使用更少的内存并且稍微长一点的运行时间,您也可以让MATLAB和C代码动态地生成样本。
我已经编译了DUT,这是我的小测试台的DO文件。这里的关键是,我还需要确保在启动模拟器时编译生成的SystemVerilog并在DLL中链接。
这需要一些时间来模拟,所以我将直接跳到波浪。输入信号在这里,波形参数和数据本身。在这个设计中,硬件在两个通道中被调用,我只运行第一个通道,它是搜索PSS检测。这个reportValid表示在哪里检测到PSS相关性,如果我放大其中一个,就会看到相关性结果,它清除了阈值,结果是PSS0。
您还可以从MATLAB或Simulink中生成检查组件,甚至可以从Simulink中生成UVM。但这里我只想关注波形。
总的来说,这需要一到两个小时的工作,如果我与MATLAB代码的开发人员进行现场合作,可能会更快。但这是一种非常快速和有效的方法,可以生成可参数化的SystemVerilog组件,以生成符合5G New Radio标准的波形,以验证5G硬件设计。
您也可以从以下列表中选择网站:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳的网站表现。其他MathWorks国家网站没有针对从您的位置访问进行优化。