FPGA-in-the-loop (FIL)使您能够运行一个模型万博1manbetx®模拟与HDL设计同步运行在一个英特尔®或Xilinx®FPGA板。这个模拟器和董事会之间的联系使您能够验证高密度脂蛋白直接仿真软件和MATLAB实现万博1manbetx®算法。您可以应用实际数据和测试场景从这些算法在FPGA HDL设计。
当模拟无线HDL工具箱™块,您必须使用流示例接口。流示例数据,而所需的通信系统的硬件实现,是耗时FPGA-in-the-loop仿真软件的界面。万博1manbetx
你可以从帧转换样本和样本帧在MATLAB仿真软件或。万博1manbetx根据您的工作流,您可以优化您的FPGA-in-the-loop模拟两种方式中的一种。
工作流是一个从MATLAB仿真软件模万博1manbetx型,进口陷害数据。然后使用这种类型的模型帧样本和样品架块转换数据格式。FPGA-in-the-loop,这些转换块替换费尔帧样本和费尔样本帧块。
另一个工作流仿真软件模型,从MATLAB进口流数万博1manbetx据。这种类型的模型与MATLAB脚本使用ltehdlFrameToSamples
和ltehdlSamplesToFrames
功能。FPGA-in-the-loop,修改脚本和Simulink模型,通过向量FPGA-in-万博1manbetxthe-loop的数据接口。
当你生成一个编程文件费尔目标的仿真软件,该工具创建一个模型比较费尔模拟与仿真软件的设计。万博1manbetx无线HDL工具箱的设计,模型复制的费尔块sample-streaming接口和发送一个样本FPGA。这两个修改构造向量可以更有效地使用仿真软件之间的接口模型和FPGA板。万博1manbetx
下面的指令显示如何修改FPGA-in-the-loop模型从MATLAB验证Turbo译码器与流媒体数据和从MATLAB验证Turbo译码器与框架数据工作流实例。
生成的模型,包括费尔块与FPGA接口板,显示了一个模型,将仿真软件流样品。万博1manbetx如果每个样品都是由多个值,值是费尔夷为平地到单独的端口。
蓝色的ToFILSrc子系统的sample-stream输入分支高密度脂蛋白算法块的FromFILSrc子系统。蓝色的ToFILSink子系统的sample-stream输出分支高密度脂蛋白算法块进比较子系统,而的输出高密度脂蛋白Algorithm_fil块。这个设置是缓慢的,因为模型只发送一个样本,及其相关的控制信号,在每个数据包的FPGA板。
改善通信带宽与FPGA板,修改自动生成模型。修改后的模型使用费尔帧样本和费尔样本帧块一次发送一帧。
创建这个修改费尔模型:
把蓝色的子系统,同时创建一个分支框架输入端口的帧样本块。
插入费尔帧样本块前高密度脂蛋白Algorithm_fil块。插入费尔样本帧块后高密度脂蛋白Algorithm_fil块。
设置输出帧大小在费尔块输入帧大小。
在费尔帧样本和费尔样本帧块,设置参数的设置相匹配帧样本和样品架块。
分支的帧输出样品架块进行比较。你可以比较整个框架的Diff块。比较validOut
使用一个信号XOR块。
输入大小在费尔块输入数据帧的帧大小。向量的大小费尔港口不修改生成的HDL代码块。它的数据包大小只影响模拟器和FPGA板之间的沟通。这个修改模型将整个帧发送给FPGA板在每一个包,显著提高通信链路的效率。
生成的模型,包括费尔块与FPGA接口板,显示了一个模型,将MATLAB流样品。如果每个样品都是由多个值,值是费尔夷为平地到单独的端口。
蓝色的ToFILSrc子系统的sample-stream输入分支高密度脂蛋白算法块的FromFILSrc子系统。蓝色的ToFILSink子系统的sample-stream输出分支高密度脂蛋白算法块进比较子系统,而的输出高密度脂蛋白Algorithm_fil块。这个设置是缓慢的,因为模型只发送一个样本,及其相关的控制信号,在每个数据包的FPGA板。
改善与FPGA板通信带宽,使用生成的费尔块在一个不同的模型。夷为平地的替代模型导入和导出向量数据。相应的MATLAB脚本重塑了输入和输出数据,并验证费尔输出行为模型。重塑MATLAB中的数据比较容易,在仿真软件仿真速度比重塑。万博1manbetx
首先,修改相应的MATLAB脚本:
选择一个费尔仿真帧大小。这个尺寸没有符合实际的帧大小在生成的数据。它可以包含你的整个数据集。费尔块将数据划分为最大大小与FPGA板通信数据包。
filframesize = 99;
将单元阵列的输入帧组合成一个矩阵。
allframes = [inframes {}):;
平样品和控制信号有一个向量的每个输入端口费尔块。这个模型包括LTE Turbo译码器块,所以输入样本由三个值。
系统输入= allframes(1:3:结束);p1In = allframes(2:3:结束);p2In = allframes(三3:结束);ctrlstartIn = ctrlIn(1:3:结束);ctrlendIn = ctrlIn(2:3:结束);ctrlvalidIn = ctrlIn(三3:结束);
叫费尔模型。
simTime =大小(allframes, 1);modelname =“TurboDecoderStreamingFILVectortoSL”;open_system (modelname);sim (modelname);
重塑了输入输出变量whdlSamplesToFrames
函数。重建一个N3控制信号矩阵和一个向量的示例数据。在这个例子中,输出样例是一个单值。如果输出样本是多个值,建立一个N——- - - - - -SampleSize样本矩阵。
sampleOut =挤压(sampleOut_ts.Data);ctrlOut =[挤压(ctrlstartOut_ts.Data)…挤压(ctrlendOut_ts.Data)…挤压(ctrlvalidOut_ts.Data)];
然后,创建一个仿真软件模型:万博1manbetx
生成的费尔块复制到一个新的模型。
配置和连接信号从工作区块的每个输入端口费尔块。使用MATLAB脚本的变量作为参数值。
设置输出帧大小在费尔块所需的费尔帧大小。
配置和连接到工作空间费尔块的块为每个输出端口。
费尔块输入大小是你指定的帧大小信号的工作区块。向量的大小费尔港口不修改生成的HDL代码块。它的数据包大小只影响模拟器和FPGA板之间的沟通。这个修改模型将整个帧发送给FPGA板在每一个包,显著提高通信链路的效率。