|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本帖最后由 uperrua 于 2019-5-17 16:14 编辑 % X, m& h- D) _: t
% B( e+ H& e1 S0 _! x+ M/ a
此篇只有目录的第二部分,其他部分请查看上、下篇
5 S1 I5 `6 y9 j- B0 t: p/ {& ~背景:编写好IPcore并且验证通过,但是接口需要进行HLS。
3 d) b# O/ T& l
1 d5 u. c$ ?( P: ?2 p$ P. F目的:将卷积IPcore接口进行HLS,将权重输入输出同步为DRAM的地址,axi-stream协议进行传输数据。将神经网络参数通过axi-lite协议进行传输。
8 C! f0 V Z N r( l
1 M& M4 i9 V4 o6 m0 D目录
7 R7 A! |$ Y5 y1 e" q
! L7 `) C5 R, x( w8 A9 f# M, x! B一、参考部分的接口
- u+ n2 H+ \# v
2 Y' r& y3 {3 S 1.1 axi-lite* ]- `) k& a6 |, o0 U
" f$ N# d" J: k0 S$ ?9 v O6 F0 A) H
1.2 m_axi2 f9 U/ S4 e* Q# q$ ~! N& S8 u- K
1 i/ M" u8 v0 r+ q二、添加指令
1 b1 R" N% m6 J; l5 p) Z1 d
! K" \2 d' N7 P
& C' b& ?, P: X; C( i9 u 2.1 需要传递的参数(参考)
9 W U% Y* F- i9 G
! @5 G! D( I" O+ X* |% _" T6 H. L/ Y6 z3 J, i ^, X
2.2 IPcore的参数传入(参考)0 f/ d2 M3 S) l+ ]) `
7 I5 G- T! z7 `1 ~6 ?. e/ M% a- f, l* y% l
2.3 加入volatile指令
% q' k; \. p. x0 X- M3 i. J! m+ r% R7 F. \* Q% Y
( q3 h! K8 Q' F& q F& F 2.4 传入参数更改
: q, A- l' y) c, U+ k6 d1 v2 N4 t" w+ M9 _) k m) A0 H' p! _
' U# F! ^- z. [' ~
2.5 最终执行的接口HLS" v2 i) ]/ D/ e+ x8 N
" |/ @! s/ h0 j" a三、进行HLS
& d* h; n% T) c+ @3 _
: F9 t& B9 R4 Y9 @7 C e/ |四、 必须有return值4 y& T/ i8 R: r9 y2 p. r
; o: o8 |1 g% {' K5 Y! s# R# h3 p' Z
5 y z5 x7 P& l9 [" k* {
% T( [/ A' P- s t; U9 j# V
二、添加指令
( ]# W' Y) T$ n5 O' e% G
" Q; |) ]! S( w! {2.1 需要传递的参数(参考)
# o1 O3 C) d- V0 o; M3 [, p. i4 W- y4 n1 v% D
此步因为涉及多指针的问题,后面舍弃掉了。) ~( {* u( c# a2 Y) i
8 F- }6 P; a8 D函数之中,需要用到axi-lite指令传递的参数为:) o% x: m" v$ r
: ]* E2 r$ |2 r) P0 @/ J
-----------------------------, Z, V! b$ d" {+ V
4 v w. b7 L; }. x//current varable for loop
+ I5 F) e# q: A+ H1 s
" l7 |1 ~- C9 Uint cur_channel_out,cur_channel_in,cur_row_out,cur_col_out;4 N1 u V" G3 ]! ~ w. {
: B9 l$ A5 t% G# }2 H
int filter_col,filter_row;
. K/ E% w p0 K3 U' j( w' h% e" h
) G/ I0 ^3 f# w3 z; \ D( S7 x) d' O/ s6 p* X7 \* n% k" J6 ?( R, v' T. K& b! f
5 h% d6 i/ i) N6 z1 |" X+ d b# D( `) ~
& ~ K& ^- }5 b8 P+ y I+ U [2 o9 P& q! W O% D
! A+ j# m5 x' B8 r4 q' `: \/ E, T4 R( z4 w- U/ V
& z* r( n! o4 G/ t; R6 x' P, l
|
|