资料
  • 资料
  • 专题
Vivado HLS中指针作为top函数参数的处理
推荐星级:
时间:2020-03-05
大小:61KB
阅读数:391
上传用户:wsu_w_hotmail.com
查看他发布的资源
下载次数
0
所需E币
5
资料介绍
Vivado HLS中指针作为top函数参数的处理。 本文采用浅显易懂的描述方式,结合具体的c代码例子,详细描述了常用三种指针的设计类型,以及其作为顶层函数参数时,采用不同的编码风格和HLS约束策略,满足设计者对指针作为RTL接口的需求。 Vivado HLS中指针作为top函数参数的处理             Harvest Guo : xilinx       指针作为C语言精华,对于软件设计者比较好理解,但是在xilinx vivado HLS高级语言综合的设计中,由于其综合后对应的硬件元素难以用软件的概念解释,常常 令程序设计者和VHLS工具使用者头痛。本文采用浅显易懂的描述方式,结合具体的c代码 例子,详细描述了常用三种指针的设计类型,以及其作为顶层函数参数时,采用不同的 编码风格和HLS约束策略,满足设计者对指针作为RTL接口的需求。   1. 1.       基本指针类型 基本指针类型指的是指针没有运算或者没有多次的存取(读写)。指针作为top函数的参 数时,指针综合为wire型或者握手协议类型接口。如下例子1-1:   void pointer_basic (dio_t *d) { static dio_t acc = 0; acc += *d; *d = acc; }  例子1-1 基本类型指针作为顶层函数参数   在这个例子中,只是简单的读写指针指向的变量值,并没有对指针做偏移或者指针(地 址)运算,其接口综合为线​型的RTL接口。   1. 2.       指针运算类型。 指针作为top层函数参数,并且函数中有对指针运算时,我们称之为指针运算类型。指针 运算常常限制指针可能综合的接口类型​。如下例中,指针做了偏移运算用于累加数据, 从第二个值开始读出累加,并将每次累加结果写入上一个地址中。   void pointer_arith (dio_t *d) { static int acc = 0; int i; for (i=0;i acc += *(d+i+1); *(d+i) = acc; } }   例子1……
版权说明:本资料由用户提供并上传,仅用于学习交流;若内容存在侵权,请进行举报,或 联系我们 删除。
相关评论 (下载后评价送E币 我要评论)
没有更多评论了
  • 可能感兴趣
  • 关注本资料的网友还下载了
  • 技术白皮书