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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
本帖最后由 uperrua 于 2019-5-16 13:50 编辑
/ j- q8 p. l% s! Q8 P0 p  I1 ^0 w* g2 v! W0 }
背景:我们编写了卷积操作的IPcore,并且在c代码端模拟通过,现在我们需要实现加入HLS的预编译指令,然后将其实现为硬件结构。' M) c: A6 ?" t( ]+ M% L

% f$ n( a( p# C9 W
+ {( U( ^7 y: {
目的:加入HLS预编译指令。
8 z+ x/ g$ Y$ Z( ]. @, d1 c5 D( P( S" M! W

' X" Z: m3 P0 `$ ^& }
2 x0 `7 i$ S' s目录1 o  H: x+ X; v$ R8 Q0 _. Z

2 `5 r  h6 d; \- W

' `/ O( l- Y: P一、数组的BRAM的实现: L# o4 T! |) H  t
+ f+ Q$ p* l. X

  O5 ^% K7 [: J9 s% @6 ]' z' i       1.1  IBRAM/ K7 j% P0 s5 d

3 c. \! M; U  A% |! b
: j0 P$ q7 _; G4 t8 }/ s) {9 t1 J
              IBRAM:zynqNet实现方法
5 X" o" H; W( W  G. o2 Y2 N& R6 b& |( J+ {( n, U, k" `" l# W
2 B7 s0 c! g0 ]* @4 s. V
              IBRAM:MTCNN代码加入
# O/ k" }4 I7 b6 ~) ?) {0 d' b5 S  D" ?1 Y
- q4 m" H8 s$ F
       1.2  OBRAM
, N7 [; C* e# t# I$ q9 Y4 Z3 U) g9 {: t3 O. w$ B- x) D  ?

3 `  M0 l+ k8 ]) \) @& r              OBRAM:zynqNet实现方法6 D9 _( `. {- m4 I

3 l; J! b- o! v8 @! H( r
  I3 A  W& k7 E" O9 j
              OBRAM:MTCNN代码加入3 H& E+ \7 s- k% m" |

$ ]8 ?/ r  W  A, s  g
" F% `- _5 P  P% L1 w6 C
       1.3  WBRAM
9 H6 M& g  i+ m/ H: L: d9 z/ @, |; G1 m

) x$ t1 ~. H+ F# H' A              WBRAM的zynqNet实现4 c8 M2 V  O" l4 h  R  _# \1 Q
( O0 m# i* L3 x7 p! h: x
1 G  X. I4 r' O
              WBRAM:MTCNN代码加入2 X- }1 t$ r: |  J
  ?$ `- i9 P9 K

, V8 p: ^3 @8 B 二、并行化与相关并行数组的实现+ ~3 A; D; _( h/ H/ [) J( u, L

9 t6 @5 A( D" x" C2 Q
& A7 C! S6 Z8 S( k
       2.1 MACC中的UNROLL
9 a" n3 E) f0 k% q, v% q8 ?- l% n
* |* A' a, x4 y+ u! F
              UNROLL:zynqNet的格式; a) P& t0 a2 t5 i

, k' ^4 F1 X0 _- Q" G

7 M6 f$ w6 T7 w4 q: D  `4 I              UNROLL:MTCNN加入* x8 S4 }' d( d6 K* `8 N5 _
1 u7 g9 P9 C+ P4 O; f: P5 C
* f  @$ I6 u+ F+ b7 l1 ^# g; L
       2.2 与UNROLL相关的ARRAY_PARTITION  P2 j5 Y$ X* b
* u7 l$ X7 M+ y& |7 I7 `
2 r; B- U+ y, @5 w
              zynqNet的ARRAY_PARTITION) K, H  }8 ]* [- X2 R
: P+ q* o: Z0 s5 X/ i
; D4 B, w/ z7 S# \7 t
              MTCNN的ARRYA_PARTITION
; g7 q$ ^, P3 M* {
* d! I. @) U' P+ H: @& e/ l6 g# _

, ]8 u0 [4 H) ]3 K3 T" Y       2.3 并行化MACC% s3 T$ f1 [* K6 l$ K

. C! c: a! T, D' j

4 {2 H3 h% }4 N4 M! u              zynqNet并行化MACC的方法
% E* k  z4 O+ l1 ^  t, t% p9 h& e9 Z
/ ]6 u. `8 o( f' }
5 A+ G  C6 T5 Y" U- O4 K  Q8 C
              MTCNN并行化MACC的指令* D6 C' w6 M2 L8 A7 W( ?) @8 l2 C( x
% j) t$ R1 `' K2 g

1 ~- N2 x. Y! }" u& |4 H三、INLINE与实体化
- ?7 g& S& {3 K8 |8 e
. \) ?5 l( Z/ t  R
, i2 T- S5 K) Z- Z: ]/ l8 x6 n7 ~( D
       3.1 OBRAM 相关的实体化3 \: p2 w# ~. y( h

6 ?7 q0 f, r2 o3 k' S
+ {+ V; V" Y& w- m% O6 B6 H
       3.2 OBRAM向DRAM相关的实体化0 @' X& P+ S1 u+ \
- Y& m) J8 \0 J9 n

9 X& j9 f% @  d- R! ^; @- s: p: Q       3.3 权重DRAM加载入WBRAM
: D; ]  H; C5 o  ?( d" V$ F9 v; W0 a/ I% g! N, U& t) x
. _' G5 Y; d4 ^* U! B+ d: {, P
       3.4 权重从WBRAM取出到PE1 s' {4 T' t3 t0 ?
/ j, J% g" M5 \2 B/ F
( V7 F) a  u% b  x
       3.5 图像从DRAM到IBRAM# s8 @- X  ]% C) u4 [9 o

( q( C2 q  ^2 n  Z9 P2 @: u# U5 g3 T
/ ]4 {/ Q+ S+ o* `
       3.6 IBRAM读出到PE. p2 n7 L& N, v' ^2 R( `) Y
! m' P3 u# Y% @; }  w

1 }1 |# l6 d- B: v
( q* f8 ?& v' q# |
" ]9 Q. Y2 Y4 B1 Z& W一、数组的BRAM的实现
0 _: Q. e4 H$ |) |0 O! T- G0 n2 n0 r3 p9 p
只有三种BRAM,参考zynqNet的模式,将相应BRAM加入具体优化指令。' o4 ?3 r' h9 \

6 ?7 @1 V! b) S$ i运用resource指令与array partation指令,将权重,图像,累加的输出实现为具体的BRAM上。6 q: |) x+ p; L, k) D* D: N3 V4 k

+ W/ A+ y" L4 w3 T  W
* z6 k' J$ K$ c
$ e! N4 |) k8 S! H1 k) f+ k1.1  IBRAM, X; S8 F" _/ t+ h5 t* K

1 \% x. }2 C5 A5 |IBRAM:zynqNet实现方法+ J! x" h8 T- W- {$ b
游客,如果您要查看本帖隐藏内容请回复
# `& V  |* J6 n6 l
. `  o9 s. \; }9 b, W
! b0 M$ S/ f( r, C# n0 l) X0 V

! L) z5 j. L( K! E% \* D6 M* l/ f( P' A1 ~" N, o" G9 I  `& @
6 L( l+ I0 n2 {  J

) ~' X  l' h1 p1 l
; v+ l4 Z2 j! L* v% h+ I: o9 r
! [5 @, ]0 {0 Q' ]% m
3 ?) t% Z, ?3 m, {/ X+ S/ ?
( s, S4 j& [7 `& c0 V% ^. W! [6 c% b& C% @

: A8 `: O2 a. N8 `$ A: r1 I4 s' l6 m

: ~- P+ U; v& l! }
  @$ z" ^/ E& x, ^/ E5 E' w7 ]( b( j+ I  E

. L6 i  u* e2 o& c4 V$ t, F. A" }' z# W  A. r% y9 x8 L5 ]

7 |/ V1 A9 d  x9 ?
- c8 G2 D9 s, b2 G" j
7 C4 t) G2 j/ S  r7 R6 I- N. R5 A( ], _$ Y2 k' b% C

0 }5 U  }' K$ _7 o' f! R2 o# S8 }+ O7 R  [4 B
7 H' q& Z8 J4 H
* {* t" w( f! v; b, K% ]$ S$ N7 \
, L" Y8 o7 e) M7 M
( G: Q* E' h9 T* R! y$ C; ~$ ]/ X

4 ?( u" {5 c) m# g  r- [; \7 i9 K7 U1 Y6 J% Z0 s  q

8 z2 `* w2 w. [8 @6 ^; `
% d5 H, s0 }5 \* m6 C+ t
# O# F* a% X6 v! C4 E- A
5 c% Y8 z' q7 F! j5 M- H- P" a/ r& b7 `2 F

' X' W+ p* v7 P, L7 z; W9 @& [0 u# `- s. |# \; T: z& Z6 t

7 e3 E0 a" L; u1 R- a
" Y+ M$ x- W8 T( B
! x* O9 i. g* h9 d# V$ ]
& o7 D8 ]3 l- q6 a( ~
' ?; |9 O7 k* m8 I/ h% P$ m
% r" Q- K  N6 x8 Q# X6 I- [" S8 \& b1 ^1 d! u: N( p
. ]: B+ N9 C9 Z1 f

* K3 w  \  X6 e' f5 Z4 S- }; y8 M
  _1 o7 M) c) Y: s0 {" S" U4 Z; K. q1 c- d1 v1 n

# t5 a% p( C3 I; ^+ Y# w) H9 y7 c% E$ s8 t
! [6 p! C# x, C& m$ K

8 l0 {8 _: y; k& S8 G" f3 p) C& Y" F9 p5 `: ~  G

( f& _9 _7 k# d6 f( ]
" Q, ]3 }) L9 A0 _* o2 a
9 ~% M7 L- B2 I8 G: ^0 k! l; _$ @8 c& d

6 s% y. t: S* o; h4 F" ~5 R# P# ]& W  k, j; L0 e1 W! F7 k
% }1 I! t1 M6 s" ?1 @6 U4 {+ @

1 m; h: j2 d' M4 M$ q! m, U4 _) _* W/ s5 T
$ A2 n: y$ ?) h" ~; W2 I& x% D; r/ s
$ T6 b3 P% C7 _) W% y0 x

9 d( z$ o3 R2 w  `
) m2 n7 z, y# A( e. _4 N* W) o- Z! x- Z6 n
4 ]' e# ~. Z9 f1 G& R! l) b

3 x8 ?. c' v% x% U7 D. h7 i6 x+ ~! r: j- j: j

- l* @+ Q$ D, f! b0 j$ h1 D8 K; S- d6 E# O  Q* q; B" I$ R/ `; r
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-10-9 13:24 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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