找回密码
 注册
关于网站域名变更的通知
查看: 312|回复: 1
打印 上一主题 下一主题

卷积函数的FPGA实现-------对IPcore进行HLS及bug查找(上)

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2019-5-19 15:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 uperrua 于 2019-5-20 13:56 编辑
2 ~! Z$ Y( ~" a2 p
6 R# s$ D% @- ]9 m  x, B2 @本篇只有目录的一、二部分,其他部分请查看:卷积函数的FPGA实现-------对IPcore进行HLS及bug查找(中)、(下)篇
1 F+ ~% B! M& [: h3 C  P2 z- z; s4 X0 f- J  x) E( |! i! g
背景:我们编辑了3x3卷积的IPcore,并完成了预编译。程序通过调用3*3卷积的IPcore实现运行。并通过HLS预编译指令实现为硬件结构,现在我们需要对IPcore程序进行HLS。
( Y, a  c  b5 _& v; P% s5 r) Q# s* c. N4 J& _2 }" i
目的:对卷积IPcore进行HLS
6 Z% T4 I, I. t1 O& {3 a& E1 d0 D0 v( o
目录
$ ~7 K2 A3 p7 w' Y1 `$ R; M2 f- v. c, R' H4 _  ^# _, s

3 S, E! `, \5 {) P1 F一、testconvBench编写- R8 x6 c1 F  t7 X" H( |
$ }: J0 ~' m, x$ Q/ `8 Y8 v$ ^
7 O/ V0 }  k0 ]- }# \. X
       1.1  linux下用cmake编译运行程序2 B- o( \5 N2 y: v; c

) W3 b- H5 C! g% q. \2 G

" a! q+ M* v0 ~: y! t       1.2 隐患与BUG
$ B" q: ]1 p  F: U* J4 k$ V# S* |

0 k- T8 U' h5 q3 G: P       1.3 testBench编写
( d# }; M" ]) G" i# p0 a
9 p: [  V6 h" _5 X- V* ?

5 ~% [2 i0 D  r6 ~; v7 X$ _) Z              卷积尺寸$ C/ M( i4 F% h& }$ J1 P* K: B# o

8 t/ [5 C7 c- c  j, Q

- h5 O% ^* v9 C; ]/ _              卷积与结果对比* |5 K7 W; K) z1 ~

% |5 ~$ ^! a7 ^2 l8 N
, |7 O1 p8 F# v- |# V
二、c-simulation
7 b" F/ o8 T9 z, O2 `7 U& g/ a$ ^- ^' b/ v: R
/ k2 J: D% n' A& k4 w2 i% e
       出现bug更改流程" r; W  }# }' i7 Z9 Y) N

, N0 \$ [* }; I7 @' S$ j$ W+ N
% }1 x0 y* W% r1 B5 X- K
三、几个bug与解决
' ~" ?5 B( g! W1 ]
5 f6 Z2 l; b4 N& `  \2 }

3 E/ K. `9 ]" r       3.1 reg格式问题
8 S: V: ?5 d% c6 ]8 f
9 Q3 U+ d9 d* e" g% Y9 P- t
$ ~# \& L8 ^# T( V, M
       3.2 关于DRAM接口的问题0 J1 N# ^9 b8 }! h) K! H

  N) T% ?+ N* h/ b" m: D5 ?( I5 t

+ v) h* Z3 q8 m8 b* P1 e       3.3 DATAFLOW的错误
# [3 Z. s% n: R: E+ |) r% I
5 ~: S/ ^$ [  g2 U' S

: f, h! g3 A3 F; T/ L( M       3.4 调试N_PE的问题
& A. u! y0 Y4 ~2 k3 y* X# y  b2 E4 J' d. f* Q8 z. d" R

. k+ F0 z, G' p7 m( J) e6 w四、Bug位置查找
. d. n2 \+ R. F; T- j
7 E' l/ z: }! {6 u2 z

' d' Q$ V! D1 Q       4.1 processInputChannel
# X8 ~9 c1 R5 J0 K1 S1 M& D; D! T( A7 O% h7 C6 R* e
- b% o  Z" l8 T' {; e& K7 t' }6 X
               function instantiate
' b6 P0 ^/ ^  \% k+ N; q+ a7 w
* v2 ]5 P  {# M( p( d
6 P* ]& O( w7 J9 H
               WBRAM& H$ y( E% y& W, z9 A

' U. I5 H- M9 X+ @& B! f8 O
, w8 o+ d; _; Q
               Loop 'L_CH_OUT'  in 'processAll_channelOut'% J7 c& m# ~4 n. s0 B/ `7 W( Z/ g

2 ~6 Y7 [; Y; D, D; R. V+ o
# g+ }7 a! w/ k: Y/ x( K$ q9 n. F) \
               OBRAM没有生成RTL端口
# {: T% a# ]0 A- j$ ?4 ~3 p. \2 m5 p  A7 \  y) r' i# b, z2 }

* |$ W) I  L% |7 J! X3 l0 \       4.2 整个IPcore的HLS console8 H0 Y( Y# Q9 Z) q3 ?3 c
" }' d6 _* I8 U" R% Q

# H1 m% s; F/ @$ P: f  X, S/ A
  a# G+ l9 l8 n& F- F
, I* c1 I! h2 j

* ]% n5 C0 _8 P: h; A  A; w

& k( k1 R* \8 Y6 X8 q, L7 Y2 x  `1 ^9 G
/ c1 x& _0 S$ i: i& Q

; P# P  j, K, M

* ^. Y' p* _+ J& `8 n一、testconvBench编写& W  V1 E$ u. U" [3 @, H

$ N6 [) S/ K5 ]/ q6 L; u原程序需要调用OpenCV并且调用次数过多,无法当作HLS的testBench,我们需要编写简单的testBench,先确保IPcore无误且可用。
5 B8 W" Z/ x9 A% l# `* i
1 C6 t: [3 Y% s: p1.1  linux下用cmake编译运行程序
6 y6 x! r* B: N7 f+ ?) y
! N# b8 F3 T, p4 J' K& T+ p4 O- QHLS_test文件夹,里面文件夹src放入相应程序。HLS_test文件夹创建CMakeList.txt文件1 N' a$ M; Z: r7 j& T
游客,如果您要查看本帖隐藏内容请回复
: i: \/ E1 H: c; [
9 G2 ^5 u$ P5 [, J6 D. q4 v

7 u' P" h+ u1 ]  V( R2 G: u
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-10-9 17:47 , Processed in 0.140625 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表