UPGRADE YOUR BROWSER

We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

取消
显示结果 
搜索替代 
您的意思是: 
Observer zh8823049
Observer
182 次查看
注册日期: ‎09-01-2018

HLS c数组太大片内RAM不够怎么办

Hi,ALL

 

我用HLS实现算法,用到多个大数组做参数,超出BRAM,URAM资源的总和。板子是ZCU106, BRAM  11Mb, URAM 27Mb 。

 大数组 :

const float conv3_weights[884736] = {
 0.003119, 0.001814, -0.006275, -0.001058, -0.002756, -0.001053, -0.006687, -0.007006,xxx .... ...}

image2018-10-31_22-32-1.png

1,在不更换芯片的情况下,能否使用DDR存储,用什么数组接口能方便访问DDR资源,PL端有DDR4

     

2,HLS综合summary报告显示只用BRAM资源? 怎么设置也使用URAM ? 谢谢

0 项奖励
3 条回复
Moderator
Moderator
164 次查看
注册日期: ‎05-27-2018

回复: HLS c数组太大片内RAM不够怎么办

Hi @zh8823049,

    1、如果数组较大,可以把接口设置为AXIS,在配置MIG配置pl的ddr

    2、试试以下指令 使用URAM资源

    int data_array[4096];
    Pragma: #pragma HLS RESOURCE variable=data_array core=XPM_MEMORY uram
    Directive: set_directive_resource -core XPM_MEMORY -memory_style uram data_array
-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
Observer zh8823049
Observer
129 次查看
注册日期: ‎09-01-2018

回复: HLS c数组太大片内RAM不够怎么办

HI @wenchen

 

1,AXIS要怎么实现主动读DDR不同地址,是否AXI4或AXI4-LITE更合适呢,我的想法是多个数组放在pl ddr不同的地址,AXIS是没有地址的,是否还要自己加控制逻辑

 

2,另外想请教,系统启动时,ps端flash存的数组参数怎么写入pl ddr,是否要等pl启动后才能操作,或者pl启动后自己去读ps的flash数据,哪种可行?

0 项奖励
Moderator
Moderator
113 次查看
注册日期: ‎05-27-2018

回复: HLS c数组太大片内RAM不够怎么办

Hi @zh8823049,

     1、具体选择什么样的AXI接口决定于你的设计,AXI4-Stream 接口是串行高速接口,一般高速且大量的数据传输都是用这个接口,地址是动态分配的,需要添加AXI_DMA ip。相关设计BD,参考UG871 page261 

       AIX_Lite接口是按地址读取的,但是不适合大量高速数据传输,更多关于AXI协议的信息查看 UG902 Page107

     2、一定是要等到PL启动后才能操作的,启动后首先要把FLASH里面的数据读到PS端的DDR,

         然后由于PL端必须要有master才可以读PS端的数据,如果数据量偏大的话就在PL端添加AXI DMA从PS端的HP口读数据,如果数据量很小的话直接配置PL端的MIG  ,PS端通过masterGP口 链接 AXI-interconnect直接读取。

      

 

-------------------------------------------------------------------------
Don’t forget to reply, kudo, and accept as solution.
-------------------------------------------------------------------------
如果提供的信息能解决您的问题,请标记为“接受为解决方案”。
如果您认为帖子有帮助,请点击“奖励”。谢谢!
-------------------------------------------------------------------------------------------------
0 项奖励