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. 【硬核干货 | 程序的编译、链接、装载与运行】
  2. curl 慢 不稳定_慢病毒包装步骤及注意事项
  3. bzoj1013球形空间
  4. JavaScript this指向相关内容
  5. [BZOJ2456/ZOJ2132]mode/The Most Frequent Number
  6. iOSTableview 禁止下拉,允许上拉
  7. HMM:Hidden Markov Model 代码讲解
  8. 计算机组成原理唐朔飞课后答案第六章,计算机组成原理第六章部分课后题答案(唐朔飞版)...
  9. h3c trunk口改access_H3CNE配置VLAN的Access链路端口和Trunk链路端口
  10. 程序员很少加班?得全栈开发者得天下?撕开标签的技术圈真实模样
  11. 百度网站打不开了,只有百度首页跟搜索页打不开其它能正常打开怎么解决?
  12. 使用 PyQt5 和 Echarts 打造股票数据看板
  13. python统计字符串字母个数_python如何统计字符串中字母个数?_后端开发
  14. android 4 源码目录,LXR 目录Android 源码
  15. lol服务器维护补偿,LOL官方:服务器崩溃补偿!全服再次免费赠送皮肤一款!
  16. java printerjob打印_利用PrinterJob类实现打印控制
  17. 创意电子学小知识:电位器
  18. MySQL 之高级命令
  19. [COPYRIGHT] 常见版权许可协议
  20. www.starky99.com

热门文章

  1. 【STM32】:RCC时钟系统
  2. .net framework 4.0 64位 提示 0x8007064 无法安装 解决方法
  3. 快改密码!Struts2漏洞引爆网站“泄密门”
  4. Linux FUSE开发
  5. codesourcery 和Linaro简介
  6. 养老院人员定位系统包含室内人员定位,老人防跌倒报警系统-新导智能
  7. lenovo服务器换系统重装系统_thinkserver服务器怎么重装系统?
  8. 解读《森林防火视频监控系统技术规范》
  9. JS 中 replace 和 replaceAll 的区别?
  10. 【安卓笔记】自定义toggleButton