主要内容

高密度脂蛋白在MATLAB优化功能块边界使用MATLAB Datapath公司的架构

这个例子展示了如何使用各种优化在MATLAB功能块和MATLAB功能块边界与其他块在你的模型®模型。金宝app这个例子还说明不同的区域和时间,当你使用不同的高密度脂蛋白的架构设置MATLAB功能块。

为什么使用MATLAB Datapath公司架构?

HDL代码生成的MATLAB函数块支持两种高密度脂蛋白架构:金宝appMATLAB函数MATLAB Datapath公司。指定高密度脂蛋白架构高密度脂蛋白块属性对话框的MATLAB函数块。

使用MATLAB Datapath公司体系结构;

  • 模型复杂的定点和浮点MATLAB算法在MATLAB函数阻塞这个算法和接口与其他仿真软件在你的模型。金宝app

  • 改善区域和时间的设计大大优化算法在MATLAB功能块和与其他仿真软件MATLAB功能块边界块在你的模型。金宝app

这个架构是默认设置的MATLAB函数块浮点类型。通过支持MATLAB Datapath公司为定点操作体系结构,您可以使用各种优化,包括:

  • 层次结构压扁

  • 资源共享和流媒体

  • 时钟频率流水线

  • 自适应流水线

  • 分布式流水线和分层分布式的流水线

  • 关键路径的估计

MATLAB Datapath公司架构是如何运作的吗

定点仿真软件®模型使用金宝appMATLAB函数默认架构。某些HDL优化资源共享和分布式等流水线,启用这个架构优化MATLAB功能块周围的街区,该算法在MATLAB功能块。看到优化的效果在MATLAB功能块内部,检查生成的HDL代码块。此体系结构不适用在MATLAB的优化与其他仿真软件模块功能块边界。金宝app

使用浮点仿真软件模型金宝appMATLAB Datapath公司即使你指定架构MATLAB函数的架构设置。当你使用浮点类型,指定本机浮点模式。这种架构,代码生成器将块就像一个普通的子系统。HDL编码转换的控制流算法MATLAB函数内的MATLAB代码块使用仿真软件的数据流表示块。金宝app的MATLAB Datapath公司架构铺循环代码中由于这种转变。如果你想流循环,使用循环流优化MATLAB函数体系结构或使用流优化MATLAB Datapath公司随着高密度脂蛋白的架构。

通过使用MATLAB Datapath公司体系结构,您可以更有效地执行各种HDL编码器™与MATLAB优化功能块,否则你会执行与一个子系统。的MATLAB Datapath公司架构适用于您所指定的优化设置在MATLAB功能块内部的算法和MATLAB仿真软件模型中与其他模块功能块边界。金宝app

例如,考虑该模型与DUT子系统由一个产品块和MATLAB功能块。

open_system (“hdlcoder_MLFB_simple_datapath”)set_param (“hdlcoder_MLFB_simple_datapath”,“SimulationCommand”,“更新”)open_system (“hdlcoder_MLFB_simple_datapath / HDL_DUT”)

MATLAB功能块实现两个乘法。

open_system (“hdlcoder_MLFB_simple_datapath / HDL_DUT / MATLAB函数”)

的高密度脂蛋白架构块将MATLAB函数MATLAB Datapath公司。生成HDL代码HDL_DUT子系统,运行这个命令:

makehdl (“hdlcoder_MLFB_simple_datapath / HDL_DUT”)

当您生成HDL代码,代码生成器取代了MATLAB功能块执行乘法的一个子系统c * de * f

MATLAB Datapath公司内部架构,您可以执行优化MATLAB功能块和与其他仿真软件MATLAB功能块街区。金宝app在本例中,您可以共享内的两个乘数MATLAB功能块。优化模块,设置SharingFactor2在MATLAB功能块。

mlsubsys =“hdlcoder_MLFB_simple_datapath / HDL_DUT / MATLAB函数”;hdlset_param (mlsubsys“SharingFactor”,2)

当您生成HDL代码,代码生成器股票MATLAB功能块内部的乘法。共享组显示在优化报告。当你点击链接共享组,HDL编码显示共享乘数在MATLAB功能块生成的模型和原始模型。

您可以应用的优化与其他仿真软件MATLAB功能块街区。金宝app在本例中,您可以共享产品块外的MATLAB函数块与MATLAB功能块内部的乘数。共享这些资源,删除SharingFactor在MATLAB功能块,和父子系统,HDL_DUT,使FlattenHierarchy并设置SharingFactor3

hdlset_param (mlsubsys“SharingFactor”,0)hdlset_param (“hdlcoder_MLFB_simple_datapath / HDL_DUT”,“FlattenHierarchy”,“上”,“SharingFactor”3)

注意:不要使用InlineMATLABCode财产的MATLAB Datapath公司块的体系结构。使用FlattenHierarchy代替。

当你生成HDL代码,代码生成器股票MATLAB功能块内部的乘法与产品外块。你看到的共享组三个因子优化报告。当你点击链接共享组,共享乘数突出显示在生成模型和原始模型。

MATLAB功能块模型与默认的MATLAB函数架构

为模型,展示了一个例子MATLAB Datapath公司体系结构,以及它如何不同于MATLAB函数建筑,打开模型hdlcoder_MLFB_share_pipeline。模型使用整数类型。一个示例,演示了如何使用MATLAB Datapath公司架构与浮点类型,明白了生成独立于目标HDL代码与本机浮点

open_system (“hdlcoder_MLFB_share_pipeline”)set_param (“hdlcoder_MLFB_share_pipeline”,“SimulationCommand”,“更新”)

该模型包含两个DUT子系统在顶层HDL_DUT_sharingHDL_DUT_distpipe。子系统说明如何使用资源共享和分布式流水线优化在MATLAB功能块与其他块边界。内外两个子系统执行基本的增加和乘法MATLAB函数块。

open_system (“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing”)
open_system (“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing /子系统”)
open_system (“hdlcoder_MLFB_share_pipeline / HDL_DUT_distpipe”)

看到HDL参数保存在模型运行hdlsaveparams函数。

hdlsaveparams (“hdlcoder_MLFB_share_pipeline”)

你会看到默认的MATLAB函数高密度脂蛋白架构是保存在模型。

使用MATLAB函数生成HDL代码架构

生成共享DUT HDL代码,运行这个命令:

makehdl (“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing”)

当你打开流和分享报告,该报告显示四个乘数和三条共享资源。

当你点击第二个共享组,代码生成器突出三条周围的MATLAB函数块。共享组包括两个小蝰蛇子系统内部和外面添加块。代码生成器并没有分享的乘数和蛇在MATLAB功能块。

关键路径上启用了估计模型。当你标注关键路径,MATLAB功能块作为一个屏障,这种优化。如果关键路径是在MATLAB函数块,如果你想突出关键路径,使用MATLAB Datapath公司体系结构。

生成HDL代码HDL_DUT_distpipe运行这个命令:

makehdl (“hdlcoder_MLFB_share_pipeline / HDL_DUT_distpipe”)

当你打开分布式流水线的报告,你看,代码生成器管道内HDL_DUT_distpipe子系统,但没有分配管道内部的MATLAB函数块。

这个图显示如何分配管道管道移动寄存器内的子系统。

应用在MATLAB优化功能块和其他仿真软件模块金宝app

改善你的设计的区域和时间,使用MATLAB Datapath公司体系结构。为HDL_DUT_sharing子系统,可以把资源共享与时钟频率流水线和MATLAB功能块内部共享资源,在MATLAB与其他模块的功能块。

共享资源:

1。启用FlattenHierarchy并指定一个SharingFactor在父子系统HDL_DUT_sharing。设置SharingFactor8

share_subsys =“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing”;hdlset_param (share_subsys“FlattenHierarchy”,“上”,“SharingFactor”8);

2。指定MATLAB Datapath公司建筑内部的MATLAB函数块HDL_DUT_sharing子系统。

share_mlfcn1 =“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing / MATLAB函数”;share_mlfcn2 =“hdlcoder_MLFB_share_pipeline / HDL_DUT_sharing /子系统/ MATLAB函数”;hdlset_param (share_mlfcn1“架构”,MATLAB Datapath公司的);hdlset_param (share_mlfcn2“架构”,MATLAB Datapath公司的);

当你打开流和分享报告,该报告显示8乘数和两个共享的共享组6组。

当你选择第一个共享组,你看到优化共享内的乘数MATLAB函数与四个街区外。第二个共享组由两个MATLAB的蛇在每个功能块。

您可以使用分布式流水线的优化Distributedpipe_MLFB子系统。使分层分布式流水线在顶层和MATLAB函数来设置高密度脂蛋白的结构MATLAB Datapath公司DistributedPipelining设置为

hdlset_param (“hdlcoder_MLFB_share_pipeline”,“HierarchicalDistPipelining”,“上”);dist_subsys =“hdlcoder_MLFB_share_pipeline / HDL_DUT_distpipe / MATLAB函数”;hdlset_param (dist_subsys“架构”,MATLAB Datapath公司的);hdlset_param (dist_subsys“DistributedPipelining”,“上”);

在您生成HDL代码之后,打开生成的模型。代码生成器使用分层分布式流水线和分布式流水线将管道内的块和寄存器MATLAB函数子系统。

这个图显示如何分配管道管道内部寄存器MATLAB函数子系统。

另请参阅

功能

相关的话题