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