使用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工具箱)
相关的话题
生成HDL代码(无线HDL工具箱)
为生成的HDL代码选择一个测试平台(高密度脂蛋白编码器)