主要内容

coder.hdl.loopspec

在生成的高密度脂蛋白和展开或流循环SystemC代码

描述

例子

HDL代码生成:coder.hdl.loopspec(展开)在生成的HDL代码完全打开一个循环。而不是一个循环语句,生成的代码包含循环体的多个实例,用一个循环体实例每循环迭代。

coder.hdl.loopspec编译指示不影响MATLAB®模拟的行为。

请注意

如果你指定coder.unroll编译指示,这杂注优先于coder.hdl.loopspeccoder.hdl.loopspec没有效果。

例子

HDL代码生成:coder.hdl.loopspec(“展开”,unroll_factor)由指定的展开系数,铺一个循环unroll_factor在生成的HDL代码。

生成的HDL代码包含一个循环语句unroll_factor原来的循环体的实例。的循环迭代生成的代码(original_loop_iterations/unroll_factor)。如果(original_loop_iterations/unroll_factor)有剩余,剩余的迭代是作为循环体的实例充分展开外循环。

这个编译指示不影响MATLAB仿真的行为。

例子

HDL代码生成:coder.hdl.loopspec(流)生成一个单一实例的循环体HDL代码。而不是使用一个循环语句,生成的代码实现当地过采样和添加逻辑匹配原始循环的功能。

你可以指定编译指示for循环在MATLAB的顶层设计。

这个编译指示不影响MATLAB仿真的行为。

例子

HDL代码生成:coder.hdl.loopspec(“流”,stream_factor)铺的循环unroll_factor设置为original_loop_iterations/stream_factor四舍五入到最接近的整数,并且oversamples循环。如果(original_loop_iterations/stream_factor余数,其余外循环循环体实例不是采样过量,并以原来的速度运行。

你可以指定编译指示for循环在MATLAB的顶层设计。

这个编译指示不影响MATLAB仿真的行为。

例子

SystemC™代码生成:coder.hdl.loopspec(展开)完全打开在合成回路在生成SystemC代码。你必须插入这个编译指示的第一行循环的身体在MATLAB代码中。

这个编译指示不影响MATLAB仿真的行为。

例子

SystemC代码生成:coder.hdl.loopspec(“展开”,unroll_factor)打开一个由指定的循环展开的因素,unroll_factor在合成,生成SystemC代码。你必须插入这个编译指示的第一行循环的身体在MATLAB代码中。

这个编译指示不影响MATLAB仿真的行为。

例子

SystemC代码生成:coder.hdl.loopspec(管道)管道的循环的起始时间间隔1,在生成SystemC代码。你必须插入这之前编译指示管线式循环。

这个编译指示不影响MATLAB仿真的行为。

例子

SystemC代码生成:coder.hdl.loopspec(“管道”,initiation_interval)管道的指定起始时间间隔循环,initiation_intervalSystemC代码生成。你必须插入前的编译指示管线式循环。的initiation_interval代表的时钟周期数之前的下一个迭代的开始循环。

这个编译指示不影响MATLAB仿真的行为。

例子

全部折叠

展开循环生成的代码。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec (“展开”);%编译指示和循环语句之间选的注释我= 1:10 y (i) =光伏+ i;结束结束

生成一个循环语句的HDL代码有两个迭代和包含五个原始循环体的实例。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec (“展开”5);%编译指示和循环语句之间选的注释我= 1:10 y (i) =光伏+ i;结束结束

在生成的代码中,实现10-iteration MATLAB循环作为一个单一实例的原始循环体采样过量的10倍。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec (“流”);%编译指示和循环语句之间选的注释我= 1:10 y (i) =光伏+ i;结束结束

在生成的代码中,实现10-iteration MATLAB循环五实例的原始采样过量的循环体2的一个因素。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec (“流”2);%编译指示和循环语句之间选的注释我= 1:10 y (i) =光伏+ i;结束结束

展开循环SystemC生成代码。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec(“展开”);%编译指示和循环语句之间选的注释因为我= 1:10 y (i) =光伏+ i;结束结束

生成一个循环语句SystemC代码有两个迭代和包含五个原始循环体的实例。

函数y = hdltest pv = uint8 (1);y = uint8 (0 (10));coder.hdl.loopspec(“展开”,5);%编译指示和循环语句之间选的注释因为我= 1:10 y (i) =光伏+ i;结束结束

SystemC代码生成,循环期间管线式合成。

函数y = myFun (a, b, c) y = int16 (0 (10));coder.hdl.loopspec (“管道”);我= 1:10 y (i) = + * b + c;结束结束

SystemC代码生成,管线式与循环initiation_interval作为2在合成。

函数y = myFun (a, b, c) y = int16 (0 (10));coder.hdl.loopspec (“管道”2);我= 1:10 y (i) = + * b + c;结束结束

输入参数

全部折叠

循环流因素,指定为一个正整数。

设置stream_factor原来的循环迭代的数量相当于完全流循环,或使用coder.hdl.loopspec(流)

例子:4

循环体的情况下,指定为一个正整数。

设置unroll_factor原来的循环迭代的数量相当于完全展开循环,或使用coder.hdl.loopspec(展开)

例子:10

启动间隔以管道循环,指定为一个正整数。

起始时间间隔的默认值1

例子:3

版本历史

介绍了R2015a

全部展开

另请参阅