電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 3508|回復(fù): 3
收起左側(cè)

Xilinx Vivado HLS基本開發(fā)流程|基于Kintex-7、Zynq-7045_7100開發(fā)板

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級會員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-2-19 19:05:15 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
FPGA的HLS案例開發(fā)|基于Kintex-7、Zynq-7045_7100開發(fā)板
) y& @; B* [( d- I% h
, A5 w) j8 m, \" n) a9 B, U0 m

, T3 P! }1 ~! X) O
+ t3 Y' c- ]; r. \# B- \& U
前 言4 H3 _7 b# A& y7 o1 _8 U% |& b9 |
! f$ M% P0 F! ?: J+ y; i# Y
本文基于創(chuàng)龍科技TLK7-EVM開發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
' |$ z2 ]/ {, D& G- }評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。
# ?: i; ~1 a0 }- O  |9 R1 E2 _$ ?

; j5 e4 G2 |" s9 f. \, e) }* Y; n( C0 [0 ^- ~+ e0 U2 p
- J( Y0 N: {: l/ Q8 a# f& g# B1 u
​
# h/ B: \, r0 g5 b" P5 ]
) l! z. K: a* r  j" k: ]0 M

! T% l  ?2 M" K& ~圖1  TLK7-EVM評估板" B7 F1 Y5 Q9 n5 Y3 @5 r
1 ?$ u3 d) O. m5 x& C/ J
4 Q& B/ l# _) ?; g' e2 L+ X, j
開發(fā)案例主要包括:
% @, R+ J1 h9 `$ }$ O6 j/ rl CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例
; B+ j  E' `8 F0 z  S; Gl 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
" _3 V1 p* o9 Z4 g5 \8 J! Ml AD9361軟件無線電案例
+ X; k5 j7 m8 O# R! b% s; z8 Ml UDP(10G)光口通信案例/ i8 r. g: m' T1 P
l UDP(1G)光口通信案例
$ M% D. k/ @' n3 Q3 O7 ql Aurora光口通信案例2 @& `8 p. ^7 z1 p
l PCIe通信案例
, D! Q2 T9 G  G7 v8 ?/ hl 案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload/ n# f) p) w# y1 G4 K) g) |

3 C$ Q: H. E, {1 |7 V/ N; ?
, t' z, B: G' V8 o; X1 Y1 m

( Z4 r+ @) \% t, H$ a5 O
- a6 m, i0 ^9 u1 ^! `$ E; T
本文主要介紹HLS案例的使用說明,適用開發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。
) N9 \$ ]3 Z2 }1 wXilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時支持基于OpenCL等框架對Xilinx可編程邏輯器件進行開發(fā),可加速算法開發(fā)的進程,縮短產(chǎn)品上市時間。1 u3 ?! B" V4 m' n2 x: |
  ^+ L! P9 u4 w/ Y& g0 N' D  |

  d; _. b2 P$ ?8 z; c4 f7 @HLS基本開發(fā)流程如下:( Y( T! N3 J$ @+ @
(1) HLS工程新建/工程導(dǎo)入
! @$ {2 D. G, h(2) 編譯與仿真
/ w- F; X7 q, S' ^2 t(3) 綜合
9 E" F0 T) A8 e0 A(4) IP核封裝
( i: W/ r: h# e6 Z# J2 }/ U' u* T, y(5) IP核測試2 l/ l5 n8 H( k
5 y" w# N& X, r5 ?1 K7 j  M9 f" f

1 t" e1 N% A: f( ?" X  r* ]HLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細說明如下表。- B/ N+ X/ {" x+ F6 t

/ b. Q: r3 D" ?/ d& i8 ?6 i! f2 D

" O7 V* E/ C0 s% p0 ~表11 I4 E3 n( O% K6 I1 d7 o
hls_ip_demo# }0 Y- x( W' P7 h- {
bin
( i. N- }% M6 P' p, i1 v
IP核測試程序可執(zhí)行文件1 H* o, f( |/ u. O, @9 F6 O
project% v" ?1 u/ |* v5 ~
IP核測試程序Vivado工程3 ]7 I- z5 L: d0 \
vivado_hls; a; {) v( C1 Z& A/ B1 S. n
ip_package
$ M  d* \4 K1 S3 W' O1 F# i8 w
IP核5 r2 J7 e- ~- j) x! p: R0 g
poject; A( @* v% s- M1 }* B, [2 X
solution13 t5 F) }+ n2 P7 ~
仿真方案
$ A% J7 j1 y- c3 @, E3 ~1 Y& o
src
7 Q* T: v( A9 F8 E. f) U- d5 N
HLS工程源碼+ H* M  e( y# g& }9 v6 S
test_bench1 `# O7 S4 k  z- B; W
HLS工程仿真程序或測試文件& R" }8 X+ j5 D/ q( |
vivado_hls.app
: Z0 T1 L/ Z( k1 r
HLS工程文件
0 K. u- Q: ~- z0 @# {
HLS詳細開發(fā)說明可參考產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。/ P: I; L7 ]# [1 `% l

0 Z- N( N5 r1 n* ^8 z" a

* {! @0 |( H& W; m& J7 T, f# G/ w$ |* @- n# k8 l( Z- Q

" z, `( F; p4 u  L& _( d HLS工程導(dǎo)入5 E8 z, m. @" x% b

8 w( t, R0 t" \  J雙擊桌面如下圖標打開Xilinx Vivado HLS 2017.4,并在彈出的界面中點擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點擊“確定”導(dǎo)入HLS工程。+ ^7 ]; d& b. a* f- i- e
. w# S* p! o) J- P+ m6 Q

* I( ?2 k/ Q$ Q$ n% U% C/ a# H7 d​
3 O1 Q8 [/ }7 Z5 z圖23 F. |9 A  w8 i: B6 }
& z7 l- N5 M; O

& y( b" c4 f% [+ E- n​0 a6 B0 K7 Y" P% `
圖3  l" z: R' i4 ~
+ v- m3 ]2 \# A7 _
3 C$ u3 j5 f4 ~1 ~+ C' l
​
: s; i% a  U3 C% U  m0 `0 Z% k' N圖43 B3 m- _8 u4 N
亦可新建HLS工程,并使用C/C++等語言進行程序編寫。& q; n. Y+ l' @9 u

" a8 A- w3 c+ A; \

  Y/ M1 W" ~0 I. A4 T2 C# p% @. B+ g' Z+ N1 _$ |! }) \/ t
( m# j5 e3 e# y% Z; u! z* c
綜合
6 F  W: A/ Q/ m' e0 d: Y+ H/ c( _! q/ D

4 O( c7 E/ Y6 {& ?, E0 B本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計,并生成綜合報告。8 g' g8 w0 U' `7 {- S4 w) n
點擊界面右上角Synthesis返回至工程界面,然后點擊進行綜合。/ z! B/ h$ Y- u' z: u% U" e
( F2 i8 A' r* _1 N

$ g. V4 H( I8 l​
8 \) M- {9 S. n; d- K: r, _圖8: n. e" b* z2 x

3 `' f& z% o6 C5 O

' n3 H- Y2 R) m( `​
; j! O/ @% T+ L; e( H1 U# Y$ p
9 |9 ^3 m: y, G1 `9 |4 c* b! D, M
- L. Q) t& P! J8 H" b
圖9
5 }6 B) z' }, N" `* U% ?2 g( t1 }1 V7 w5 w: w. D
. S0 L$ a" r/ g# H# F6 F5 b
綜合完成后,報表文件將自動打開。, i% ~# @, d6 N" M

0 M6 A7 m- h# S+ M) j$ F
( A2 m: B$ ~( v7 L; `9 ]
​
7 S6 I0 r7 C6 z5 b2 g: s9 c圖10# m9 Y- u( U0 r$ A* C

5 A9 F+ L  R& K
- j- X# Q0 n1 l. V) a+ W
通過報表文件可查看本設(shè)計的時延、資源占用等信息。0 W+ u% o( @. |# q; L

$ c$ e2 O0 a% t2 ^6 v+ {
& t9 A! e, K$ G9 `  e; |: o  k" o
​
7 q9 j3 J0 N$ Y$ ^' Q
1 f6 e% L: E- {9 [% V% E; b
) b( W& i! G8 h( g1 P6 Q9 @
圖11/ }& \, G; O7 }4 G' G

2 Y9 F+ s9 B5 D, s5 C; H; e% g% q

* @8 t  X1 S( T0 Z( l$ T編譯和仿真C代碼) V  _3 L1 y! Q8 J& Z9 J5 b, O
. j7 Q9 ^5 \9 c5 Z/ |/ T1 `$ C$ Y
仿真程序位于工程的test_bench目錄下,用于驗證src目錄下的HLS工程源碼。" l0 H$ ^+ n7 r
導(dǎo)入HLS工程后,點擊(Run C Simulation)進行編譯與仿真。- n5 D6 Q7 B  o) r3 i
0 L2 n. B* q3 p, ~0 o/ t# F7 [" A8 C

1 m7 @# w$ B3 q+ u2 ]" `​
8 |' X4 }2 s6 M6 _9 i. \圖5& L& y# p8 J+ }+ c/ q, ?0 \6 Z

, T0 Z! @- Q. r2 O6 s
- j* K) p2 s& h8 y7 ]& ^& K& N  m
彈出如下界面,勾選“Launch Debugger”,并點擊OK。
  l/ }4 Y9 K4 P6 U
, K2 i8 A, J2 m. U  U2 r( l, L& i2 j- l
: N  _: C& d) Q1 _% U4 K/ E
​; Z7 B' Y  h9 h& a2 S( {8 f) E
圖6
" g" Z0 s; ]/ d& W& n! Y6 d4 c+ O6 _$ u$ F; n2 w3 S) t2 A
3 g2 r  E* G: X4 M5 H. Q
編譯完成后即可全速或單步運行仿真代碼。' ]4 a5 d1 e9 T/ L! G
​
; M/ [6 Z7 Q8 m8 Q' Q/ }2 M圖78 p% h7 @( h  m' R% j3 E
' x  V/ M/ v- U# M' A$ X- w0 c
. B' d9 U, g' l, i/ j. Q6 x8 ^

, F2 L6 Z6 a& d6 n7 ~) v; H
IP核測試7 V* y5 X& Z* o- z+ X+ V. _: X9 C

6 b. L3 j" c4 g% r% B8 F" K- Z' E進入案例“hls_ip_demo\project\”的IP核測試程序Vivado工程目錄,雙擊.xpr文件打開工程,工程默認已添加待測試的IP核。2 O% n, C7 ?# N' ?" j

% ?- }: l, j$ h5 W/ b7 x& i
9 ?/ m% `3 B0 q) E
​
' m2 T, q, Q1 Z, M6 f- [8 K# g+ t: p) S7 |2 w

$ W  \6 }/ A6 d4 [7 m) J% D- i圖179 p: l- K$ N8 Y( X. f
如需自行導(dǎo)入IP核,請參考如下步驟。
2 C  [0 C. ^' q0 u3 P
7 W. y4 l& G0 I1 y3 G2 O

$ }6 u: N0 g0 }7 ?(1) 請點擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點擊OK。; F. W2 [" A5 _% y' I
​3 I* e3 r- o: a6 ?

1 ?* t3 G8 d& A4 ~" f! R

- K- @0 _/ t9 ~- V圖18' V! y9 b, y% w" w7 I2 h
​& R% F/ _$ Q" Y, B
圖19
& J5 z) r% {6 S(2) 右擊“User Repository”后點擊“Refresh Repository”,即可看到添加的IP核。* A, v5 k  }, t: v- @$ D& z, z
​$ }4 o  Y/ N1 ?9 {
* }' F, l  F0 {" e0 e+ h
; @' ]3 Z+ i( H" q2 s% A* q
圖20
0 B# Q/ ?; f: g! g: ^​- P1 k" x8 y; k* M" Q# u
圖213 K1 B% f0 T" o# E- t% c  o

8 u) D7 l; W. V5 P2 n+ M
, l# l. f" U' k; z" \
(3) 如需添加Vivado自帶的IP核,點擊“Open Block Design”,在彈出的界面中點擊,并選擇所需IP核將其導(dǎo)入工程。1 l4 B; m$ j* U9 z6 f
' V5 J5 I2 F+ l2 U9 A& V; F# ]$ C

- ~. \2 j: x- w​
% x) a6 N# ~( U+ W0 F; E6 c+ t8 n( O: P- ]6 P& \0 ^

3 o1 V/ L0 Z3 d圖22
' `( ?4 Q$ J# w1 ^​
( W' M9 V2 I% ]- L8 _# ~5 ?" J2 g圖23
$ ]& c6 ?1 z6 |" y; {' e" _  x點擊Vivado界面左側(cè)的“Generate Bitstream”選項,在彈出的界面中點擊OK進行IP核測試程序Vivado工程編譯。) D! h6 \. p' F; g8 r1 v5 o
​
" c, W- l3 @5 `3 h5 ^: {7 l
  A7 W9 S# J; t* L* [' m. g

& P, z9 b0 _# j& _% G* Y5 J
  w: H! j2 T" r) Y
4 S6 m/ `9 f- S4 \8 x( r
圖24
( v' D* u. C/ x+ U( O9 R& S" `6 x( f/ f. t# C! c  U9 P
1 w3 I3 [( {" y, w7 Q# z
​
; u: Y) X1 q. |& Y圖25
* U1 y* W0 O& `, A7 g# @* ~- M% e. z6 S

6 s9 w; [: N% s3 p3 k) a編譯完成后,將會在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。
4 u: k. K/ d0 L, A9 \: M! e8 `" Z3 W8 c) ~, F
0 d# N* L* z; m" U7 ~
​" N9 U* _* u' O8 {0 _9 ]! X* S
- W7 s& v1 S1 E) t8 D2 J! a# B6 c
" u  d& e$ d7 i/ f, ?
圖26
# z7 i! G$ |( I  D* u; g" T% {% d0 a1 c! Z4 p* j  Y' W( v

& A- J+ t( H* i請參考基于Vivado的FPGA程序加載與固化手冊加載.bit格式可執(zhí)行文件,即可看到評估底板的LED2進行閃爍。3 E! z  e, c$ M% Q2 T
IP核封裝# p1 r# Y2 O: d- z+ p8 N
: [& [9 Z( l9 m9 K
綜合完成后,點擊生成IP核。
2 _8 J( k3 q0 k) S1 e' v​3 z+ J, W9 q5 ^
$ ?& e1 o" f. r5 {

- Z7 }; o3 \! ^9 r4 p0 V圖12
0 h$ E& x7 I; m1 \
. D( b4 A' [+ c; S0 y" C1 O

" }/ b6 h. A# D2 C2 l' ?3 ~​" T3 u# i: P! S: w" g1 ^
圖13
$ R, h! s. [7 ^8 r2 t+ x5 \/ }​: f+ [8 ]: M. ~* ?9 q0 p6 [
圖14$ L& j0 M7 r. A/ y1 A3 V1 }
運行完成后,將會在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。) n: t4 x9 R, l: g1 A* Z7 S
​& D) j* i' h3 \# ?1 y! `

- M5 i- B+ ^/ Q; ]5 Q

4 C. {3 {" X! }; E圖15  Z8 _' m! d" J) W- O
​& a8 _/ D# L3 G6 z$ V2 ]& N4 _
圖16( @) \- j6 }+ K2 [! P3 o
& o+ N4 Q+ N; f$ a* k6 N! W: ^

# j/ P$ l9 I. _; s4 A* Rl 更多推薦/ w: z" U& `' p0 E1 K

7 |; q3 D. h# c. L5 C/ R; Y​7 f& Y& k! M5 L7 w4 k9 J/ U# }5 |
! ^* D- P8 v" E) [' m

( B5 Z/ l3 p: y圖279 Q& T, k, g0 y9 D1 m2 r; I; ]
4 N' @8 J. F* C
嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload
回復(fù)

使用道具 舉報

0

主題

9

帖子

36

積分

一級會員

Rank: 1

積分
36
沙發(fā)
發(fā)表于 2021-8-30 14:53:56 | 只看該作者
HLS的開發(fā)對于底層寫驅(qū)動的人的沖擊挺大
回復(fù) 支持 反對

使用道具 舉報

1

主題

31

帖子

103

積分

一級會員

Rank: 1

積分
103
板凳
發(fā)表于 2021-10-22 09:04:02 | 只看該作者
獲取資料,謝謝!
* \0 l; I; N& J5 `- C3 `" x! n$ v  \  T1 \" j
回復(fù) 支持 反對

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表