|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2019-5-19 11:32 编辑 ! V) h _2 l& Q! T# W0 D# ^
* r- Y" S7 ]; Z3 w" `# Y. y
此篇只有目录的第三、四部分,其他部分请查看上、中篇: x5 E q t: f# m$ Y, o; K
+ }" j/ L# X# [+ n) W背景:编写好IPcore并且验证通过,但是接口需要进行HLS。! e( W# I; b# X# W; }$ u, |1 B% a
: G) k; s5 Y& i6 a目的:将卷积IPcore接口进行HLS,将权重输入输出同步为DRAM的地址,axi-stream协议进行传输数据。将神经网络参数通过axi-lite协议进行传输。* l, V" B4 s( ^9 o
" P/ B$ M m1 E; U
目录+ M) @; W$ `0 w M! ~, v" Q1 Y" k
" y+ T8 y+ D: H, I" s; e
一、参考部分的接口$ S) b: [6 S2 ]5 Z5 R" F" T
x# c2 H3 v1 F' ?/ F6 s
1.1 axi-lite2 w9 c3 W0 x# r8 D" p% w
! P! t7 q5 S7 j& {
1.2 m_axi
) L M. }: ^1 }" [3 F6 F
7 C' C8 ^! N6 R# n4 k0 a/ }二、添加指令 - m% I. _7 R" v
2.1 需要传递的参数(参考) 4 S) W3 ~- l3 B
2.2 IPcore的参数传入(参考) ; ?0 Y5 c& Q. n7 _
2.3 加入volatile指令
7 ?5 e1 V3 o0 [. i0 q. { 2.4 传入参数更改
& e3 `7 g g( ^! s) ~ 2.5 最终执行的接口HLS
1 i2 \8 ~; f8 k" i `/ ~9 u( B* F) A7 D0 F( L2 p% m6 w
三、进行HLS, y. J0 V- |, I1 p3 u C7 V1 R
6 V: a# }+ i# l" a( o, @4 m; z9 @' V! F! e7 p
四、 必须有return值5 n% {3 ~# I3 e; i7 D2 C% J
: I7 }. G: i Y
3 w6 T4 {' a# I0 L6 C# n, c$ p& c0 D
9 z; q1 u2 e) a, G8 a' L0 u6 E% d$ o* K) R, k2 t& }8 K
三、进行HLS
# j$ b1 u6 S' t e) I6 {( J3 H0 h8 b+ Q
程序在mtcnn主程序之中测试通过
* H2 w( N' _2 ^+ W$ f$ A+ k6 b7 F+ C6 u6 G1 O/ c( H+ f
然后再HLS-testBench之中测试通过. z- ?$ a9 N3 ?. i. [3 A
7 A+ \1 ^( n/ |+ H
在接口之中测试通过' D* O6 K& @4 |2 g3 n# n
" U4 X# h) z3 `8 m3 q2 M$ j& ^
7 [3 L1 M: N9 }! U: ~
! T, S. k; A5 _5 j: s* r! Q所以我们将卷积加一个return值。. k/ B8 d* G' O) I0 [7 N
) F5 P; T0 S e( U/ ?
4 u1 Z8 [! b4 ]/ Z3 w% U |
|