主要内容

加速SoC模拟不同抽象级别

这个例子展示了不同的抽象级别用于SoC架构以及如何加快仿真速度SoC模型通过选择正确的抽象层次。

介绍

芯片系统(SoC)的设计和开发设计包括几个步骤,如算法开发、架构映射和系统集成。在每一步,设计使用建模与仿真验证。基于模型设计(MBD)方法,使用相同的模型和改进的算法设计的早期阶段的最后阶段完成系统集成。这一模型方法,它是有用的改变级别的抽象建模根据设计阶段。SoC Blockset能够仿真详细级别之间的权衡和仿真速度。例如,在算法的发展阶段,验证算法的精确仿真体系结构并不重要,但同样重要的体系结构映射后的验证系统需求。

加速记忆的模拟

记忆抽象级别

帧缓冲块提供三个层次的抽象建模内存传输不同的仿真逼真度:

  • 在破裂准确富达层面,模拟内存事务在一个突发事务的准确性。创建内存破裂为指定的大小和频率和这些事务仲裁期间,内存控制器块)(模拟,从而提供更高层次的忠诚为内存交易时机。仿真的速度在这个级别相对较低。

  • 在协议准确的忠诚程度,模拟内存事务接口协议的准确性,不把时间精度的内存事务。仿真的速度在他的抽象级别是中间。

  • 行为忠诚,模拟内存事务在行为层面的数据传输通过记忆和并不认为接口协议或交易时间记忆的准确性。仿真的速度在他的抽象级别很高。

选择模拟抽象层次在帧缓冲块

控制内存模拟逼真度,打开帧缓冲块面具,找到属性命名内存模拟

FrameBufferMask.png

破裂的准确选择(默认),记忆是模拟仿真逼真度高,当它吗协议的准确,内存模拟仿真逼真度较低(甚至更低行为选择)。

比较直方图均衡化仿真时间的例子

说明执行时间的不同内存模拟开启或关闭时,使用soc_histogram_equalization_top模型的直方图均衡化使用视频帧缓冲的例子。执行下面的代码捕获模型的仿真时间内存模拟破灭时准确,然后协议时准确。两个模拟完成后,表显示执行时间和计算模拟加速度。

open_system (“soc_histogram_equalization_top”);set_param (“soc_histogram_equalization_top”,“ReturnWorkspaceOutputs”,“上”);set_param (“soc_histogram_equalization_top”,“StopTime”,“0.05”);set_param (“soc_histogram_equalization_top /帧缓冲”,“MemorySimulation”,“破灭准确”);evalc (“simOut = sim (“soc_histogram_equalization_top”)”);ExecutionTimeBurstAccurate = simOut.getSimulationMetadata.TimingInfo.ExecutionElapsedWallTime;set_param (“soc_histogram_equalization_top /帧缓冲”,“MemorySimulation”,“协议准确”);evalc (“simOut = sim (“soc_histogram_equalization_top”)”);ExecutionTimeProtocolAccurate = simOut.getSimulationMetadata.TimingInfo.ExecutionElapsedWallTime;ExecutionAcceleration = (ExecutionTimeBurstAccurate - ExecutionTimeProtocolAccurate) * 100 / ExecutionTimeBurstAccurate;T =表(ExecutionTimeBurstAccurate ExecutionTimeProtocolAccurate ExecutionAcceleration,“VariableNames”,{“破灭准确模拟(执行时间年代),协议的准确模拟(执行时间年代),“执行加速%”});close_system (“soc_histogram_equalization_top”,0);disp (T)
破裂准确模拟(执行时间s)协议准确模拟(s)执行时间执行加速% _______________________________________________ __________________________________________________ ___________________________ 90.907 5.5589 93.885

结果表明,关闭内存仿真帧缓冲块产量显著地提高性能。

加速任务管理器模拟

任务管理器抽象级别

任务管理器块提供了两个不同的抽象层次建模任务调度中不同层次的仿真逼真度:

  • 高仿真逼真度水平,任务执行模拟根据调度器政策确定计时精度包括其持续时间、优先级和抢占。仿真的速度在这个级别相对较低。

  • 模拟逼真度偏低,任务执行模拟在行为层面上,瞬间执行任务不考虑他们的优先级和抢占。模拟在这个级别很高的速度。

选择模拟抽象层次在任务管理器

控制内存模拟逼真度,打开任务管理器堵塞面具对话框,复选框属性命名启用任务模拟

启用任务模拟选择(默认),任务调度器模拟高保真和清除时,任务调度器模拟保真度较低的水平。

ADSB比较仿真时间的例子

来说明不同的内存模拟和仿真任务执行时间打开或关闭,使用soc_ADSB模型的基于ads - b收发器的例子。执行下面的代码捕获模型的仿真时间当内存模拟和任务模拟打开然后关闭。这两个模拟完成后,一个表显示了执行时间和计算模拟加速度。

open_system (“soc_ADSB”);set_param (“soc_ADSB”,“ReturnWorkspaceOutputs”,“上”);set_param (“soc_ADSB”,“StopTime”,“0.1”);set_param (“soc_ADSB / AXI4-Stream软件”,“MemorySimulation”,“破灭准确”);set_param (“soc_ADSB /处理器/任务管理器”,“EnableTaskSimulation”,“上”);evalc (“simOut = sim (“soc_ADSB”)”);ExecutionTimeBurstAccurate = simOut.getSimulationMetadata.TimingInfo.ExecutionElapsedWallTime;set_param (“soc_ADSB / AXI4-Stream软件”,“MemorySimulation”,“协议准确”);set_param (“soc_ADSB /处理器/任务管理器”,“EnableTaskSimulation”,“关闭”);evalc (“simOut = sim (“soc_ADSB”)”);ExecutionTimeBehavioral = simOut.getSimulationMetadata.TimingInfo.ExecutionElapsedWallTime;ExecutionAcceleration = (ExecutionTimeBurstAccurate - ExecutionTimeBehavioral) * 100 / ExecutionTimeBurstAccurate;T =表(ExecutionTimeBurstAccurate ExecutionTimeBehavioral ExecutionAcceleration,“VariableNames”,{“准确的模拟(s)执行时间”,“行为仿真(s)执行时间”,“执行加速%”});close_system (“soc_ADSB”,0);disp (T)
准确模拟(s)执行时间行为模拟(s)执行时间执行加速% _________________________________________ ___________________________________________ ___________________________ 16.875 12.971 23.131

结果表明,关闭内存模拟AXI4-Stream软件模块和任务在任务管理器模拟块产量显著地提高性能。

结论

这个例子展示了如何加速simulation-abstractions SoC模型通过选择不同。