杰克·埃里克森,数学工厂
RTL验证的挑战之一是开发现实的定向测试。像3GPP 5G新无线电(NR)标准这样的新标准需要深入领域的专业知识,这使得创建符合标准的波形验证模型更具挑战性。
5G工具箱™ 为5G通信系统的建模、仿真和验证提供符合标准的功能和示例,以确保它们符合5G NR标准。此视频演示如何使用HDL验证程序™ 要从5G工具箱函数自动生成SystemVerilog验证组件,该工具箱函数使用可在SystemVerilog中调整的参数合成真实的波形,以及在此过程中您将经历的一些更常见的步骤,包括:
如果您正在为5G无线应用程序设计硬件,则需要验证硬件功能是否符合标准。如何创建符合标准的波形,更好的是,如何使用参数创建波形以测试不同的场景?
MATLAB with 5G Toolbox为5G通信系统的建模、仿真和验证提供符合标准的函数和示例,以确保它们符合3GPP 5G新无线电(NR)标准。
在这里,我将展示如何重用Comms算法工程师的开发,以为SystemVerilog验证生成5G新的无线电波形。在SystemVerilog中学习5G规范和代码波形需要多长时间?
5G工具箱中有一些很好的波形生成示例,您可以使用这些示例开始使用,比如这里的示例。但在算法开发过程中,测试和算法之间往往没有划分。
无线HDL Toolbox包含5G硬件设计IP,具有使用此5G工具箱功能的测试台,并已为此构建,如NR HDL Cell搜索参考。此设计搜索最强的单元ID,这意味着它执行OFDM解调,并识别最强的主和辅助同步信号。
在该函数中进行大量波形生成,它产生块图案案例B.测试台在频率偏移和噪声中增加,以使其更代表您在空中接收的内容。I’m going to put that functionality into the main function and pass these parameters as inputs, so when I use the component in SystemVerilog I can use the same stimulus and sweep the parameters for signal-to-noise ratio, frequency offset, and set a different cell ID. This is hard-coded for case B, I could parameterize that too—but I’m keeping this simple for now.
这是主要功能的结束,在那里我添加了频率偏移和噪声。我所做的另一件事是将它转换为固定点。MATLAB中的默认类型是双精度浮点,但RTL设计的输入是固定点。
HDL验证器是生成这个组件的产品。它调用MATLAB编码器来生成C代码,并构建所有东西将其链接到SystemVerilog仿真中。因此它将在任何SystemVerilog模拟器中本机运行。
命令是dpigen,我需要为输入参数定义数据类型,它可以从驱动它们的代码中找出输出。
但是当我开始运行这个命令时,我会得到一些错误。Matlab是一种解释的语言,它非常宽容数据类型,因此我必须为C代码生成进行一些修复,例如,如果将分配变量复杂的数据,则将其初始化为复杂的数据。和C代码生成不允许您在开始读取后添加元素到结构,因此有一些修复。但总体而言,这些编辑很令人未成年。
现在我可以生成组件,并查看创建的内容。它生成构建函数所需的所有C代码,构建它的makefile,它构建了DLL。如果您需要在不同的平台上编译,则可以使用m一个文件。它还生成一些SystemVerilog代码来演示如何使用该组件。
它需要初始化句柄,它具有重置行为,启用时,它会在时钟的每个posedge调用函数。对于这种情况,请注意,函数输出整个波形,这是MATLAB代码通常的工作方式,但这意味着我可能不想反复调用它,我只会调用一次,然后禁用它。
我创造了一个简单的测试台,一点都没有想到。它只是实例化了RTL设计,再次由无线HDL工具箱IP生成。然后我只是实例化那个生成的SystemVerilog DPI。这是一个非常简单的测试台 - 它只是重置,为DUT设置一些参数,然后在波形中加载。这是一个呼叫后它禁用DPI的位置。然后它通过完全波形循环通过并拉出样品。
如果要使用较少的内存,您也可以使用MATLAB和C代码生成样本,并且可以使用较少的内存,并且运行稍长。
我已经编译了DUT,这是我的小测试台的do文件。这里的关键是我需要在启动模拟器时务必务必编译生成的SystemVerilog和链接在DLL中。
这需要一段时间来模拟,所以我会跳到波浪中。此处输入信号,波形参数和数据本身。在这种设计中,硬件在两个通过中调用,我只是在运行第一个通过,这是搜索PSS检测。此Report8dalid指示在检测到PSS相关性的位置,如果我放大其中一个,则存在相关结果,它清除了阈值,并且是PSS0。
您还可以从MATLAB或Simulink生成检查组件,甚至可以从Simulink生成UVM。但这里我只想关注波形。金宝app
总的来说,这需要一到两个小时的工作,如果我和MATLAB代码的开发人员现场合作的话,可能会更快。但这是一个非常快速有效的方法来生成可参数化的SystemVerilog组件,生成5G新的符合无线电标准的波形,以验证5G硬件设计。
也可以从以下列表中选择网站:
选择中国网站(以中文或英文)以获取最佳网站性能。其他MathWorks国家网站未优化您的位置。