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

卷积函数的FPGA实现-------加入HLS预编译指令

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 uperrua 于 2019-5-16 13:50 编辑
2 f9 ?$ P" |( Y+ V( _& D# Y7 i1 h3 H1 H$ \9 e
背景:我们编写了卷积操作的IPcore,并且在c代码端模拟通过,现在我们需要实现加入HLS的预编译指令,然后将其实现为硬件结构。  M9 O& B. Z4 ]

4 d8 D2 O5 S0 z+ G
/ m5 p0 _9 {* y2 l
目的:加入HLS预编译指令。1 g+ A. W$ ^0 ~; x

9 p& i( r: ?  J. Y1 n. ]4 Q% q9 _0 S  H+ a( \2 f/ S# w+ x  v
. E5 E0 E' d" C1 y* I9 K
目录
7 U: j$ V9 f3 V3 i; {; g) G$ g
4 n  e, u& [- Z4 L( f

- j' f* t6 y& i* l: F一、数组的BRAM的实现9 I4 t+ S( Y1 ^% S2 J
  w; E4 Y3 d+ G! {! {
4 Q% u. |& x+ f% u* Q/ q; Z& _" w
       1.1  IBRAM
3 I7 I# u0 r9 K
# h$ W4 o; s- q8 Y- C7 g

/ E! [( [; V4 l) `5 F              IBRAM:zynqNet实现方法) t9 l; K1 |$ g! D9 P$ s
0 W+ H9 x1 l! J- |  K
$ ^4 d% D1 [- w1 u- x( z( o- ]: ]
              IBRAM:MTCNN代码加入
6 j7 I4 ~0 ?9 w' C
  [6 r: F+ m8 ]' `* v
6 U7 ?5 t1 E$ F6 A8 g: c
       1.2  OBRAM  q& I, A7 W3 r8 ]% B
1 y1 s: u6 I6 l0 |% ?4 t

+ B3 x" h! l+ n( n+ w! v( Y              OBRAM:zynqNet实现方法
7 ^  ^- ]" y' A: W  v
# d! [3 M; s5 T

' ^* @: q1 J' z$ w              OBRAM:MTCNN代码加入
7 K( p; R: u& y' _! M8 N( c2 B0 s
8 N  F5 C; n$ k5 j
/ r4 M" ?' ?  U
       1.3  WBRAM; \  u' [9 ^; I/ f6 H1 O9 q! r
" S" L* J0 C) j

* Q/ b; R; \9 }              WBRAM的zynqNet实现  W$ x/ c" Q6 v; G0 Z' l9 @7 _% d) v
5 P0 x9 Z' v# y5 e6 f

# _: r2 ?9 _0 C2 \1 v/ P5 T5 F              WBRAM:MTCNN代码加入
# f5 x0 D' P, j+ n5 {7 o4 s
& \4 Z+ V7 I0 ~

( a, [) j+ K: J5 F 二、并行化与相关并行数组的实现& j0 \0 a& X  E. z; i+ @- p) ?
3 `- Q- w* \) r

8 W1 u# t9 a7 j6 c1 b       2.1 MACC中的UNROLL) }% F0 E; i1 f3 n

6 E4 C; U1 r( h& U

; M2 F0 @8 `4 `4 R' H; x              UNROLL:zynqNet的格式# ^2 G  W0 c9 t. U% P

# A! U! a% b. B

2 J# V2 _3 I8 s              UNROLL:MTCNN加入6 K. a4 q8 Z6 U5 |7 v4 H$ _7 h

1 s' H2 L# a- u# Y
2 Z8 n+ b% {# y! T: I8 m
       2.2 与UNROLL相关的ARRAY_PARTITION
& G8 M- K& ^% u6 B& F1 R
+ d) {8 B, {+ d# j
* ?1 r+ B- E& |6 I6 {# D
              zynqNet的ARRAY_PARTITION
' Z, V2 X) {; M0 C9 T
7 F  b/ |# e4 n& M

+ |; |' D) v% Y) r  p# M% `              MTCNN的ARRYA_PARTITION
2 a7 J5 y3 k! Z* @! D, \2 C/ }& g) g$ w- ~- S. r5 t

6 R6 p6 S; c: B+ |2 X9 e       2.3 并行化MACC
" B7 _: L& v# \6 J, P4 K1 f1 j4 M" z% e; c% A

& H% T$ ?2 h% _4 o  X" g& |/ \              zynqNet并行化MACC的方法
4 b! v9 T4 u  F/ I4 F# m1 r7 G" O( n* ]  [. j$ B5 x/ y- @3 l! Y0 o

6 @2 W1 `$ E' f( j9 g3 T              MTCNN并行化MACC的指令
) p$ M! r( \) f1 x) B& h# O# L' z3 [% J* z8 e8 a

. W! N- c4 {, L3 g* I三、INLINE与实体化- C9 r! o3 \  c' q
+ {5 z! G) g; @( c0 X7 e

) I) W2 A7 n1 y$ K9 ~- Q; ^: t; n" l6 N       3.1 OBRAM 相关的实体化
" m; T; Y$ }- k. O* j: `: B& H1 I" H( c1 b6 J4 J. f

* {! a. H2 X3 C; {       3.2 OBRAM向DRAM相关的实体化
2 T* [" l* D9 X% |3 g' u
' I9 ~: N7 Y1 w, j9 @% P/ ^
( c, _6 k, N" |  r" C" o. ^* f
       3.3 权重DRAM加载入WBRAM& p, d7 V; J1 S, E2 C1 p

' c! J, H8 m2 {: y* @2 Q- m

: n/ a  o: q/ U5 V7 p- l       3.4 权重从WBRAM取出到PE6 S/ j  H) E: l0 V3 X* r

3 @. @: [) T9 O8 |- a
* r) w% c! L$ T' Y; l. Q
       3.5 图像从DRAM到IBRAM
# x1 V4 R% z  I$ b2 ]5 j$ w8 |, c! y  f9 T- W

5 `# T4 C& Q/ u( {  ~# \       3.6 IBRAM读出到PE
% A6 F( x% A9 L# m6 O7 P
$ _6 H# ^- Q' e1 L) [/ D/ a4 {
% a* j  F$ \* Q# K1 B1 ?% o' j
' L4 `7 o* J3 p
& O' l  P7 s2 v4 T  M4 G一、数组的BRAM的实现
5 K: _0 B' W/ V1 |* W8 i8 W/ p7 W; ?1 v6 j4 f8 i( b1 @
只有三种BRAM,参考zynqNet的模式,将相应BRAM加入具体优化指令。) g3 t3 S8 y8 K8 t7 B
7 S1 _, y/ p! K, {' C; a) l0 H
运用resource指令与array partation指令,将权重,图像,累加的输出实现为具体的BRAM上。
* `" P/ V& j6 @ ' i% W: ]! i/ U4 O5 r
% B7 N0 `! C- R7 W- i* _) J6 Q

  }9 g* ]; {2 S/ l4 r1.1  IBRAM
! Q+ [3 j/ }  k
; S+ A7 i( A& E, l: BIBRAM:zynqNet实现方法
' ]& ~3 u& e2 S' g0 I: j
游客,如果您要查看本帖隐藏内容请回复
4 Y+ D! L: P/ }3 ^! I' z
7 z" _3 q) v( H$ w

# T: B) v* G: Z" c% T' J0 t9 D6 d" b) J" E
3 v  t8 B) l! A3 Y8 Q

# i; L# C3 F) B7 Y( g( c  L& }
( Y* s2 @( L' f, S& W6 I6 q, K( @3 b- v' J0 O& q4 F* f8 ^
. `4 p$ `( l- k- u

5 J0 Y$ \8 F  Z$ v+ W; S" b8 @8 M0 d5 C

9 \! U/ r3 O( _# N. }* g, y. W7 d6 ?# z3 v1 I. P% S

6 Q' W- e( Y: `9 Y! a% V1 a3 N& A6 E& h, _

# d. K0 U1 m: M3 J  A9 }1 R+ X6 B) q$ F8 n& V7 N' d
7 k. {  m/ p/ o% Z2 g* E/ p2 S

* u5 d) d# l: S* r, _3 J$ _
/ H8 T: L( i8 {( ?$ V& |) x% p
6 S( K1 c; g; x- L: y
) R6 R/ t) u! t, t
! }& t) L3 J! b. M

" }# m$ N" H6 a+ k4 R1 K
2 D3 t# t3 U9 i0 X. y5 @) }; Y* s2 P8 z9 u

3 i* V: M8 n8 t3 d8 R6 k; H- _1 U9 I/ k- l7 B' y6 _/ L0 m
2 i1 n6 y! |4 m9 _9 _* ^* s' ?9 R
) Q& N4 a1 G! G* M* S
: C4 J/ f4 q3 y4 O- K6 K, k
8 L& L3 D6 F1 W1 F! k  h0 i* B. g
5 _, W3 J4 g' k( b7 r# u3 F0 @5 O
8 J. m2 U3 v9 a! ?8 Q. _

1 B5 i  e4 K. E2 b8 g! f
; g1 {) M3 u+ L8 ]6 ^) M3 ?' m. F5 A/ A: Q2 z- b

( S' z* H/ y+ W: `9 _5 @2 J7 k) i6 b" i

6 n# J; |6 ~& b0 T$ f3 @( v! X5 [4 B' m: x5 m
& ^* H6 d- K1 H
$ r) K3 @; }4 m. M2 U' p
7 z. u! Z; }# W7 `0 }

' L" P; k  t. Y5 i) w' N" E1 o/ I
9 _2 ?, ^4 b- K3 R% I5 i( D# r
& O0 K6 N- P0 T+ k

3 h, P2 R6 ^0 n7 [1 |
' u7 `9 \4 A+ ?# W' o
6 j$ T9 V1 _: F: e7 c/ Q8 B) J, y8 u! ]( f  j

- d. H! Z) N, Y4 Z/ j0 o# T: s4 i2 P" \9 |

6 W6 ]  o+ d, B; \7 O/ y3 a& `8 Y) a( C8 t

) M7 b# `" a+ h
) l+ R$ ^# V  E9 ]: a
6 R1 a3 \: ?+ v! X+ p$ E  U) C: M0 U& k

+ o! M1 }; K3 s7 }
/ B; N2 V/ V" W+ ^
' N) U0 R1 c- X3 N5 ^% H" e
( R/ B# J# g" e  n4 R$ l' m8 P. _9 a. f1 l! F4 U: n. m1 S' i( I  w
& j/ f/ S2 i- q0 o& I- Z

0 K' y. h: f0 D$ q6 F9 z' E& Z* w/ v9 E; s% Y

0 x# [' `$ {" r
! ^# x, l& t& d5 }! v; T) F- {' n- f8 S) U' Q1 ]
$ o& G! j* V6 k
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-3 13:46 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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