type有三个可选值,分别为block、cyclic和complete。

为便于说明,这里我们以一个数组长度为12的一维数组A[12]为例。

  • 如果type为block,factor为4,意味着将A[12]分割为4个小的数组,这样每个数组的长度为12/4=3,同时每个数组中的元素是按顺序依次从原始数组中获取。
  • 如果type为cyclic,factor为4,这仍是将数组分割为4个长度为3的小数组,每个数组中的元素是交织地从原始数组中获取。
  • 如果type是complete,此时参数factor不起作用,可理解为将数组全部打散,可同时获取到12个元素,从而以寄存器方式实现。

三者的区别如下图所示。

block、cyclic和complete在下面这种描述方式下,最终的结果是一致的

#pragma HLS ARRAY_PARTITION variable=A block factor 12 dim=1
#pragma HLS ARRAY_PARTITION variable=A cyclic factor 12 dim=1
#pragma HLS ARRAY_PARTITION variable=A complete dim=1

如果factor不能被数组长度整除时会是怎样的结果呢?
假定上述案例中factor为5,最终将是5个数组,其中前4个数组长度为2,最后一个数组长度为4。

ARRAY_PARTITION还允许对不同维度进行分割,以二维数组A[6][4]为例,一维表示dim=1.二维表示dim=2

那么到底什么时候用block,什么时候用cyclic呢?本质上与数据流密切相关

HLS ARRAY_PARTITION相关推荐

  1. 常用HLS优化指令总结

    1.pragma HLS inline 删除函数作为层次结构中的独立实体.内联之后,函数被分解到调用函数中,在RTL中不再作为单独的层次结构出现 注:内联子函数还会分解应用于该函数的任何pragmas ...

  2. HLS:矩阵乘法单元设计与SDK测试

    目录 一.引言 二.程序框架 三.初步设计 四.报告分析 五.优化操作 六.接口优化 七.上板测试 八.补充部分 九.时间与参考 一.引言 矩阵乘法,涉及数组优化.循环优化和接口优化等.是一个学习HL ...

  3. Vivado HLS #pragma 学习笔记(一)

    https://www.xilinx.com/html_docs/xilinx2018_2/sdaccel_doc/hls-pragmas-okr1504034364623.html 数据精度 支持任 ...

  4. 【HLS教程】HLS入门与精通

    总纲 HLS和FPGA实现是怎么一回事 HLS已有库说明 HLS语法讲解与实例 HLS自定义模板 HLS实现OpenCV函数 前言 主要还是工作中用到,HLS毕竟还是小众模版库,就目前来看,连Veri ...

  5. FPGA HLS Matrix_MUL 矩阵乘法的计算与优化

    新建Vivado工程 设置clock,10表示一个周期10ns,带宽100M vivado工具比较保守,计算需要的延迟是14,实际优化可以在10,设置大一点,优化的计算更多,一般约束设置大一点在30- ...

  6. Vivado HLS加速卷积层运算

    源代码链接:https://github.com/happyday22/HLS_accelerator 1.Introduction 卷积神经网络(CNN)主要由卷积层.池化层.全连接层和激活层等网络 ...

  7. HLS pragma

    文章目录 Vivado HLS Pragmas by Type 1. Kernel Optimization 1.1 pragma HLS allocation 1.2 pragma HLS cloc ...

  8. HLS第三十二课(codingstyle )

    HLS中,C是用来描述硬件的,不是软件编程的,这是基本概念. 下面记录一些常用的C描述技巧. ++++++++++++++++++++++++++++++ 移位寄存器的描述. for(i = N - ...

  9. HLS第十七课(pragma, array, data,)

    对函数的任何编译控制,都体现在pragma中. 下面对一些常用的pragma进行详细说明. +++++++++++++++++++++++++++++++++++++++ pragma HLS arr ...

最新文章

  1. DataTable中数据记录的统计
  2. 青藏高原matlab掩膜,1982~2000年青藏高原地表反照率时空变化特征
  3. 七、Sqoop架构,安装和基本使用
  4. java 对象工厂_Java设计模式之--工厂方式
  5. Python爬虫Scrapy框架IP代理的配置与调试
  6. Idea导入web工程,并运行
  7. NWT失败反省:谁给汝之权力,竟然敢要吾走人?
  8. PowerDesigner 数据字典模板
  9. 谷歌浏览器去除广告--广告终结者
  10. 阿里云购买域名到建站的全流程怎么做?
  11. 谷歌邮箱(@gmail.com):两步验证+应用专用密码登录
  12. [报表篇] (11)设置印刷尺寸
  13. Telemetry 技术概述
  14. qt中在QLabel上显示图像并画矩形框。
  15. 【c语言】两个队列实现一个栈
  16. linux网卡配子接口,linux 内核学习(2).
  17. 微信怎样将图片上的文字变成文档
  18. MyBatis-Plus——超详细讲解配置文件
  19. 众包知识获取的预算任务调度
  20. idea打开多个小窗口换行

热门文章

  1. 修改谷歌和火狐浏览器滚动条的样式
  2. 3个自由度搬运机械手设计【CAD图纸+毕业论文+电路图+梯形图+接线图】
  3. 如何更好的做计划-SMART原则
  4. 主流图数据库对比,Neo4j、ArangoDB、OrientDB、JanusGraph、HugeGraph
  5. 中心移动平均_时间序列模型:移动平均 用Excel预测(4)
  6. IDEA+MySQL+JavaFX之通讯录系统
  7. 通达信指标公式编写答疑汇总(三)
  8. 电磁波波长与穿透力的关系是什么?
  9. hbase创建solr索引的超时问题
  10. openstack 遇到的error