主要内容

使用HDL协同仿真验证Viterbi解码器

这个例子展示了如何生成和验证HDL代码来实现定点Viterbi解码器。

要运行此示例,除了所需的MATLAB®产品外,还必须在MATLAB系统路径中安装Mentor Graphics®M下载188bet金宝搏odelSim®/Questasim®或Cadence®Xcelium®。

Simulink模型概述金宝app

打开Simulin金宝appk®模型viterbi_codegen.slx.该模型为定点维特比解码器生成HDL代码。

该模型采用二进制相移键控(BPSK)和加性高斯白噪声(AWGN)块来模拟数据的无线传输。在顶层模型中,参数EsNo,表示信号的平均能噪比,影响数据的传输。默认情况下,EsNo参数设置为0

启动数据传输后,试验台将数据送入维特比译码器(无线HDL工具箱)块,它是使用无线HDL工具箱™产品实现的。维特比解码器块试图恢复原始数据,但在恢复过程中可能会出现错误。为了测量这个解码器的准确性,测试台将解码后的数据发送到一个错误率计算(通信工具箱)与原始数据一起块。然后显示(金宝app模型)块显示此计算的结果。

生成HDL代码

打开高密度脂蛋白编码器(TM) app,上应用程序选项卡中的“Simul金宝appink工具条”,单击高密度脂蛋白编码器应用程序图标。要选择要用于协同模拟的工具链,请首先单击设置,打开“配置参数”对话框。在左侧窗格中,单击HDL代码生成,然后试验台.为仿真工具参数,选择工具链。通过单击应用更改好吧

要为Viterbi解码器生成HDL代码并打开一个新的Simulink模型,请单击金宝app生成Testbench,然后高密度脂蛋白Cosimulation

启动HDL模拟器

您可以连接并格式化新的Simulink模型以适应您的测试台。金宝app这个例子包括两个准备好的模型:viterbi_modelsim.slx而且viterbi_xcelium.slx.选择适合您的工具链的模型。本例使用ModelSim/QuestaSim Simulink模型,如图所示。金宝app

要启动HDL模拟器,双击模型中的Start simulator块。除了启动HDL模拟器外,该操作还输入命令来编译HDL代码,并为与MATLAB和Simulink进行联合仿真做准备。金宝app

运行仿真

当HDL模拟器完成对HDL文件的编译并为模拟做准备时,将输出文本准备好合作了…出现在HDL模拟器命令窗口中。出现此文本后,返回到Simulink中的开放模型并从那里运行仿真。金宝app

仿真完成后,Simulink模型将显示结果。金宝app在本例中,结果显示为两个显示块中的误码率(BER)。这两个显示显示了来自无线HDL工具箱产品的Viterbi Decoder块和使用HDL Coder实现的HDL编码块的误码率结果。基于这些结果,HDL Coder实现产生了与原始块相同的结果。

使用新参数重新运行模拟

的参数EsNo控制传输的行为。更改此参数可更改模拟行为。例如,在MATLAB命令提示符下输入此命令。

EsNo = 5;

更改此参数不需要生成新的HDL代码,因为此更改不会影响Viterbi块。要使用新参数值重复此示例,请从打开的Simulink模型中再次运行仿真。金宝app

完成模拟

在完成模拟之后,关闭HDL模拟器会话。然后,返回到Simulink并关金宝app闭模型。

另请参阅

功能

makehdl(高密度脂蛋白编码器)|makehdltb(高密度脂蛋白编码器)

维特比译码器(无线HDL工具箱)

相关的话题