|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇只有目录的第三部分,其他部分请查看:卷积函数的FPGA实现-------对IPcore进行HLS及bug查找(上)、(下)篇
* F9 e+ L- s# w' l+ W# ?% s
+ ?: h1 a3 d8 L$ l* _6 L, e+ V背景:我们编辑了3x3卷积的IPcore,并完成了预编译。程序通过调用3*3卷积的IPcore实现运行。并通过HLS预编译指令实现为硬件结构,现在我们需要对IPcore程序进行HLS。6 j2 k# N0 e [) g9 V$ r5 o! q
9 A; M1 `$ C+ I# R! @) n
目的:对卷积IPcore进行HLS7 N9 z! w- ]7 D8 i) C1 \
( K# z( Q2 u$ b
目录
$ c5 E8 r( g; h% Q: X8 e5 n" G1 ]0 ~( S
, O. \7 J( A. a* y a
一、testconvBench编写
3 E) o2 M" r- C) p) y, j. U; k. {; U' ?% g
7 w8 m! U2 `! _- d9 R 1.1 linux下用cmake编译运行程序9 G' v: M+ f0 U/ I0 m U
3 h& i* l% i9 w0 I( C3 Q% x, F) X/ I z. y; u5 P
1.2 隐患与BUG
$ l, W- R0 L, B0 K# [) ]) P" R* _; ~" f! d: j0 p# \% O& U* E4 e1 b
3 z; c; B f3 \
1.3 testBench编写
B j* R& z; f. _
. n# F& r: x2 m/ Y$ `6 Z
" C9 f3 W% G1 A2 l, w7 q# e 卷积尺寸4 i' v2 T1 A' o+ @
% a5 f# J1 u, N; R. `3 U
1 G# H' W: w6 P8 Y 卷积与结果对比
* L7 f8 d8 q0 Z' C* a. O0 ^& J" q, Z9 W5 |9 V
* o( K' P5 |/ {# P二、c-simulation1 r: o. ]9 s3 E3 ~$ s
, h ^; [( _& z! p* y4 X
, ^* o0 b; E& c- c
出现bug更改流程' y( W- q0 i+ X; s$ g
: D) b o) e2 K8 V, G s* \
) l* j* R" c9 n三、几个bug与解决
* k% N) Q3 S4 S$ _& [) i, M
) V" m" s' y0 {( w. q5 Z* h2 V/ Y
: F3 p( G; U; i 3.1 reg格式问题
0 P0 J, X( x$ P
( r2 X6 c9 s Y" o, Y# a/ Z1 D: J b2 D8 Y2 H& F+ ^
3.2 关于DRAM接口的问题
& l# I8 S' t. B e. v! j7 I
" B8 |- i. d) O: i" Z
, S5 m! Y9 k0 q X 3.3 DATAFLOW的错误& X+ ]4 @" D* F6 X! n. }
: e t" a! L1 V4 x4 l" T( F" \( D; S1 s8 Z/ ?9 [8 ?, i
3.4 调试N_PE的问题
% z! |$ {2 S7 m+ u- y
" F( A" j( y" j! f# j1 U9 J% f4 A% \% D6 C# Y, X' j3 K
四、Bug位置查找
& Z1 X8 x) y, i, T4 x! \, A
& y9 J, O) A8 o+ G. i* d
: V; E; P7 Q1 J; O4 y9 _ ~ C 4.1 processInputChannel; H& D* ^3 T! A& j1 [
6 Y7 _* A8 N# P' y" v
3 B$ e' x" P" O" S% F2 `, A function instantiate
& }% u; |: m0 s( a7 o% y% t
; N, z% _; t0 n# i$ T4 s! _, n* w% r' B" M+ q9 v9 ]% y) m$ `
WBRAM3 ~+ n, m! b+ F: A) ?
; O2 r, Q7 Y7 w( M. @
1 j3 [7 }, T n( r4 k/ p9 U+ s
Loop 'L_CH_OUT' in 'processAll_channelOut'# @4 j$ v/ Q3 d; [/ L0 u; `. [
- E- o* d& f5 e9 g% \
0 J! O! R2 O. D2 S OBRAM没有生成RTL端口
0 A0 x4 J1 @- M8 |
: y/ Z" W2 `& C5 c0 m
8 y0 u8 n' Q5 D0 x' G. O( v 4.2 整个IPcore的HLS console9 T1 v1 y. s! ^( |$ G- M# v J
5 G! \. ]& E. W* `9 s+ n( t7 B
5 |. F p ^& h" |' @8 B! l4 X0 q, y- l1 |1 I% U3 z3 j2 x
1 j$ T- u5 | @+ q% [. {) A
4 @( h* a5 l( ]( |# v' G2 Y) ^3 R. n: ~& w* e# k: o
9 r4 ?. ]3 e6 `' c
8 F# s. ~9 O! L4 K0 V
三、几个bug与解决1 c2 H2 S# Y; F/ Q
% K9 Z( q @3 B5 B
3.1 reg格式问题
7 X7 Z. u" |' g6 e, l Q7 j0 S$ d2 R+ l5 d9 {
-------------------------------------------. i% I, ]( X/ U, Q' D
- r2 n7 K3 G3 z! Q) }3 E! j
3 errors generated.1 x8 Y6 f) ^( N. N# w6 x% a1 ^
. i4 M- }! \6 TERROR: [HLS 200-70] Compilation errors found:/ V7 _" f9 _$ c
2 H; e7 T9 n* N- q7 h0 m; h4 D6 R& |* X1 c
& y* ?# [3 G% Y7 E" L5 H
6 T0 f# B% J' g6 R, y- Z0 z8 k {3 S6 I3 H9 I9 B
9 T4 F, Z1 c5 e7 M- M8 H7 h
. g6 `, ?3 O6 P. v/ X* ~9 \ |
|