主要内容

用HDL协仿真验证Viterbi译码器

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

要运行此示例,除了所需的MATLAB®产品外,还必须在MATLAB系统路径中安装并包含Mentor Graphics manbetx 845s®ModelSim®/Questasim®或Cadence®Xcelium®。

Simulink模型概述万博1manbetx

打开Simulin万博1manbetxk®模型viterbi_codegen.slx.该模型为定点维特比译码器生成HDL代码。

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

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

生成HDL代码

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

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

启动HDL模拟器

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

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

运行仿真

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

当仿真完成时,Simulink模型将显示结果。万博1manbetx在本例中,结果显示为两个显示块中显示的误码率(BER)。这两个显示器显示了来自无线HDL工具箱产品的Viterbi Decoder块的误码率结果和使用HDL Coder实现的HDL编码块。根据结果,HDL Coder实现产生与原始块相同的结果。

使用新参数重新运行模拟

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

EsNo = 5;

更改此参数不需要生成新的HDL代码,因为此更改不影响Viterbi块。要使用新的参数值重复此示例,请再次从打开的Simulink模型运行模拟。万博1manbetx

完成模拟

在完成模拟之后,关闭HDL模拟器会话。然后,返回到Simulink并关万博1manbetx闭模型。

另请参阅

功能

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

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

相关的话题