|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇只有目录的第三部分,其他部分请查看:卷积函数的FPGA实现-------对IPcore进行HLS及bug查找(上)、(下)篇# _/ t( x2 u2 r* z7 Y
- S8 w! b4 m) l' g+ L' P$ [6 x" P
背景:我们编辑了3x3卷积的IPcore,并完成了预编译。程序通过调用3*3卷积的IPcore实现运行。并通过HLS预编译指令实现为硬件结构,现在我们需要对IPcore程序进行HLS。
6 c. l5 `$ l, q! l
! w* P5 J5 r8 m* L1 ~/ x目的:对卷积IPcore进行HLS! p* t( l3 W& K
* P" C* w( w4 c' D! h目录
i% K) k: s7 g: O1 N( H" |, o, m3 Q: }! p3 d* d+ X) k
2 C! m) Q5 t7 n3 K3 b
一、testconvBench编写% C, p' M' X) l/ H
& k8 Z" p7 X+ y, S: S% w" n5 C5 o
1.1 linux下用cmake编译运行程序# b- X+ I" g$ O2 V7 U$ W* o- z- D
0 |' J/ s( u1 v9 `6 ~
* T1 H9 N. v) A3 s 1.2 隐患与BUG
) H2 H+ a8 n" d2 z `7 d3 k: u5 |5 i( a: v0 \
# m4 `' z1 N' e9 w% v 1.3 testBench编写
2 R5 ]0 f* L9 S# e
6 z" V. u% ~: a) ]1 _2 c
+ l( m& g& X6 r9 b4 a 卷积尺寸9 `% M1 Q; t, V* B
& c0 e5 |, M6 G* k/ Z1 f4 b" v2 n3 H9 d) P
卷积与结果对比
# R8 v4 F+ J! n0 y: B# K3 `! R) S9 z9 }1 n* v( j3 ^0 t
! S0 _1 z1 ~( T8 s6 z) w
二、c-simulation2 Z) K0 G4 x# V, q/ A$ n* w
) R# t& Y& i, b$ _; k3 x3 `* @) V' B( q+ d7 O. u3 k m1 g ?
出现bug更改流程
_3 K) F$ N, _4 ]" Q( N% @5 N
z o* H$ k9 U
7 V/ r1 a; k O1 n c4 O# G: U8 | d& U三、几个bug与解决( o9 p3 @: o3 H2 D- g A
! M2 W; }7 b7 T7 Q0 N
- y0 ~% k, z# v3 m5 w) I, R 3.1 reg格式问题
& D. y- k2 y! y, n; w: i
; n" M8 z# S% v9 \" A! m6 i2 H# h3 q5 _; W! u4 M. e7 P3 H
3.2 关于DRAM接口的问题
# P1 n2 P& j, t0 J8 t- t7 }. X* x% @( g) B i" x
8 `4 C/ y2 S( v, \8 y. Q2 T) W 3.3 DATAFLOW的错误
3 w ^9 M, T, l3 ?7 Y# H6 [+ Y$ G2 a% e/ s% u
6 f! }$ ^: |, \( S8 K% } c% Q" }
3.4 调试N_PE的问题
8 C2 n6 ]' r: b" [* a2 S8 S8 @# {# H" t5 d2 Q/ \* g7 d6 k; o
( a1 n: u9 i X! K# N
四、Bug位置查找
, I: G/ O9 y3 r; g4 R
: ~& Q2 p" J' R" ~1 I; Z* e2 S4 w8 I0 C* P
4.1 processInputChannel5 T* u- _: ~! C( a3 s1 s) a7 }
( d# Q9 a3 w* |# ^7 G {* h) z! ?1 h& o% e3 l/ j9 c, I' g! r
function instantiate4 a; r) w; e. v! z6 g- |# S. r
1 \' g( G, T/ l& l$ ?
3 G/ t; _/ _3 Z* _ a3 I WBRAM
3 f1 X$ x2 `7 Q( J0 S/ \/ t q% y6 @) Z9 z# B/ e
& e6 C0 h W- j: [ Loop 'L_CH_OUT' in 'processAll_channelOut'
# I- |8 A2 }; g0 B; w9 l. Q. `( V) w2 p- F
9 ^; {4 P6 G6 `% F( k
OBRAM没有生成RTL端口; i3 E( O+ `; Q3 P# N
9 P! @% i, V& ~% a2 Z8 H# |# W
9 {! _ ]$ A" a5 n" a 4.2 整个IPcore的HLS console
, C: i* F A3 c& F4 D x" F0 J3 i& a( B9 w2 L$ g" @
) {& f2 [2 ~1 e N$ q
/ x" U! K4 B+ {
M5 N. k" Z, X/ O) B- y6 E
. w% l! r1 r$ n/ ~: b( U
& D% g7 i. r; J: _: R) \- T. ^" r) w/ m7 o/ I, e/ W
3 n0 ~# |. b/ P h& E d三、几个bug与解决9 T/ F6 f: P1 r1 ?' S7 D( C# T
' d, v. u, Q, y. u" B8 r/ J" D, s3.1 reg格式问题
8 t" q7 w# X- t) Q
- {4 Q! ~" E; D" r5 m9 f; c-------------------------------------------7 b N: I3 g; [0 T
6 B" f4 d- \. x. c8 I" X V( P7 m3 errors generated.
! n9 j0 J. d1 V5 O; b& {! Q- K- D
ERROR: [HLS 200-70] Compilation errors found: C! L$ T$ n1 C; d6 ?1 s
0 B+ s) o) x" G- c
- O6 d' `* U$ F4 J9 E5 l3 w1 u: R. S5 T) z1 d8 O6 \$ K
) T. l) s. h% a! E% U8 Y
6 u; }. \1 @# Y1 r, y8 M
1 Y; P [' X5 M6 T1 |* G
) I# C: g' h! Q9 Z4 b |
|