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

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

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

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

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級(jí)會(huì)員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2021-2-19 19:05:15 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
FPGA的HLS案例開(kāi)發(fā)|基于Kintex-7、Zynq-7045_7100開(kāi)發(fā)板
3 |6 `" B0 o" O: P4 e6 y

1 d9 h# m3 `& s! ?; V; ?# R) v: |/ i4 F" y( v) G
- H: [5 j" N$ v. b- C8 Z5 f0 b2 U
前 言
$ |0 b0 M: G% Y

* }( y+ q# c& E本文基于創(chuàng)龍科技TLK7-EVM開(kāi)發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計(jì)的高端評(píng)估板,由核心板和評(píng)估底板組成。核心板經(jīng)過(guò)專業(yè)的PCB layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。- a4 a* h2 i+ \& s9 f; ?( A  m: d
評(píng)估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。
2 g5 I# ~  f$ D, T& L& b, S
0 \$ _+ s* c0 ]4 l* r( d/ A4 {2 J! r
# P' F' }7 b$ {1 V$ t
- P0 ~% w  x5 G4 k" N, ?, a" q
) o" z' g2 F! J+ ^- ]
​. ]. f, B  x) W0 M3 A/ k; \6 ?
7 l  ^& T# o  f% u5 q, [

7 n2 }' E6 t; _圖1  TLK7-EVM評(píng)估板* P- [& S; H% S. b
" v: Z' w- V) E

3 v) U: d$ E4 [) p4 ~3 l7 y9 Y開(kāi)發(fā)案例主要包括:
$ \4 \6 {9 Z! y) [( q5 @/ Zl CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例: D4 X' x9 M& r8 U
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
0 g2 R5 n2 _& O7 X4 L9 Jl AD9361軟件無(wú)線電案例, L' |( a% j0 l/ i
l UDP(10G)光口通信案例" J% ]/ B* I: e8 K% G& ^
l UDP(1G)光口通信案例
6 W" f" @1 u2 S3 f3 K. ?, w6 ql Aurora光口通信案例+ X. b* y7 [3 _& J
l PCIe通信案例
* O8 T% z$ g# d$ {( v6 gl 案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload
* @% j9 x8 v8 q5 \6 S3 p2 d5 u: E* D: F* q3 W- k$ f6 ~
( p2 m' b1 N9 J4 {2 ^* F
. E; }, H! v( W  Y& B0 V
$ _6 S* Z0 X2 J+ n
本文主要介紹HLS案例的使用說(shuō)明,適用開(kāi)發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。% r. O/ Z  k: i. E  w, P
Xilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語(yǔ)言轉(zhuǎn)化成硬件描述語(yǔ)言,同時(shí)支持基于OpenCL等框架對(duì)Xilinx可編程邏輯器件進(jìn)行開(kāi)發(fā),可加速算法開(kāi)發(fā)的進(jìn)程,縮短產(chǎn)品上市時(shí)間。
' P0 s# i+ a8 \$ R% w. }* K& }! ^0 g" p/ E- Z" [: {5 W
- v$ o* b3 w: l" c3 s
HLS基本開(kāi)發(fā)流程如下:% P5 e' A; y$ v% u3 W$ _6 i/ F& F! y4 s
(1) HLS工程新建/工程導(dǎo)入# M& x* o1 J; d( A( B; d& }2 ]
(2) 編譯與仿真
% j2 ~1 [( K0 J/ p(3) 綜合
" E* [* K, V8 A(4) IP核封裝
2 }& ~! ~0 Q+ k! R; Q; J9 v1 G" p9 d(5) IP核測(cè)試0 s+ Y' c0 p8 E6 M4 K/ c) W

2 _) @! |, M) n7 r7 }
  m8 N! @3 f; O* ^: I$ ^! J- E3 V1 R7 W
HLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細(xì)說(shuō)明如下表。, W! d3 ~  C$ M0 _/ I

2 N) `4 P9 Q3 j5 I- j; h/ W* V
) y# d  x3 J, \  {1 H0 H2 U
表1
: k0 W0 b" C2 ^- T; w: V
hls_ip_demo5 {  r. e7 R- u+ k4 B; \
bin( J$ d5 f- q4 y# p( a: Z: e
IP核測(cè)試程序可執(zhí)行文件
" r, e0 t" t; m" `. T/ S
project' ]7 B$ j6 g  S: G  I9 K1 {
IP核測(cè)試程序Vivado工程
  P' q: W4 H5 q2 R, F' h( P- R
vivado_hls
$ C1 o+ F$ q# Z( c
ip_package3 l6 t. ^  [/ A/ d  y
IP核5 {" x& c5 |0 \! X# D
poject- {. v% Q+ n3 I" ?% O
solution1
( A$ C/ ?6 ]% Q0 {4 Q
仿真方案
- |' u" K% |- r0 Y
src
" `: o2 S( T" D
HLS工程源碼
# q0 E5 Q' q/ \: u$ V) [
test_bench
/ N* v1 ?% [% m1 `
HLS工程仿真程序或測(cè)試文件
' i/ j+ t5 P. R. p/ H
vivado_hls.app
( p8 O- H6 J. [) u5 i" y
HLS工程文件
( K3 }* ]: G* i% O9 D
HLS詳細(xì)開(kāi)發(fā)說(shuō)明可參考產(chǎn)品資料“6-開(kāi)發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。, I% Z. {6 D: F' T# \

! r% z% H. y$ M

& W7 j: e- K6 N  W, K3 r6 R
0 c/ [4 F2 ?  o6 D8 G! o

& H& E# ~0 G6 [7 L# ?0 }* Q/ h HLS工程導(dǎo)入
- D! S% M& t* F9 g+ S( r
  `* a/ f  _9 j+ w- R$ O! U
雙擊桌面如下圖標(biāo)打開(kāi)Xilinx Vivado HLS 2017.4,并在彈出的界面中點(diǎn)擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點(diǎn)擊“確定”導(dǎo)入HLS工程。9 O" r( P. q5 Y8 }+ C
& I9 O$ N+ n, z( u% l$ ~& D6 R

, \- P& O1 f- z) \; E( @​
3 b' `" l& R& N8 E2 G1 @圖21 p6 V8 w; o7 |* x7 u0 U

+ w2 |9 x" x: T. _! J2 b

' N. @  O9 _+ M3 ]9 t5 c​8 T% z4 t0 M3 o8 y6 S' B5 q
圖3
) L; X4 D9 z5 W: K
& K  p/ ^  B; S8 S# Q( x% f$ s9 e
% v5 g2 A, _. ^/ j2 K4 I' P
​8 t$ a" K# X, u- m6 X
圖4# T- l( n/ ]; h% f
亦可新建HLS工程,并使用C/C++等語(yǔ)言進(jìn)行程序編寫。
; Q! c. y( X+ `% y% g$ {# @& `  k, B- ?8 C! n, z
  f3 K5 b, A+ e5 ?$ B0 H; R0 I
3 t8 D0 k* R1 L( z
, `6 a- K5 I1 T2 S$ W( q0 Y) j
綜合2 M7 h* s: W9 ?' e! n/ Y+ \" u
0 }* f( D# c" X6 ^: A
本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計(jì),并生成綜合報(bào)告。
9 G9 h8 }* |  e4 Z' r1 g) N點(diǎn)擊界面右上角Synthesis返回至工程界面,然后點(diǎn)擊進(jìn)行綜合。
7 I: g! e4 _  n9 e# ^
3 S! P$ b* K5 s9 U9 {- n
# I7 i) a1 D" Y2 N/ J+ r7 K/ L
​
/ _' n7 S5 f4 t5 G7 v圖8
- h9 {4 s. @' J- C! T0 N0 _; F* \$ A  L; O3 s7 ?/ J

) d# W  d) \) v9 Y/ A​+ x0 @7 _2 F1 Y2 D7 }8 p$ s

+ G0 I3 ]! Y" Z$ i, V

* O! r: g" N  A6 a圖9
% x8 q8 L8 f2 R4 N
1 ^5 B5 L/ K0 v9 m8 M: Q
* u. w; D, P1 g. i: E( d3 E- ~, l
綜合完成后,報(bào)表文件將自動(dòng)打開(kāi)。+ h8 Q; {& Z% s

- z) B9 {" ~5 H% k
$ x3 u1 Q( w9 N" t# Y, `+ l: u& Q
​( Z( y, w9 x- F0 ?! x/ d
圖10
: s$ h$ T$ M% X1 U; _3 ]
5 P3 J* d0 B/ z
; }0 i4 R' N9 W5 Y  T) D4 A
通過(guò)報(bào)表文件可查看本設(shè)計(jì)的時(shí)延、資源占用等信息。& U# E1 u: Y! w% R- n0 m  W

% a4 `- G5 g  y

- r0 w+ O1 T+ l% x​
* K- a9 C& z2 B4 G3 w, L/ T
! r/ c' h1 \$ a6 s- ]1 I

& g) {% w6 |) v& ~, Q7 b; Q5 B* ~, }圖113 @' F$ \; z: t0 l: l+ [: C: ^
- n6 l" e' |2 S% U+ h8 Y" Z8 G+ Y

  S' H* c) s5 E6 \6 _9 {編譯和仿真C代碼
% T, O! h: `, I8 \* Z8 E$ y7 m

* \8 q7 ~3 O1 V5 P5 P仿真程序位于工程的test_bench目錄下,用于驗(yàn)證src目錄下的HLS工程源碼。
" @0 x/ I7 G2 M導(dǎo)入HLS工程后,點(diǎn)擊(Run C Simulation)進(jìn)行編譯與仿真。/ N7 H. W2 m; `# k+ l. N* Q/ j2 Q/ [

) o) }; B; q* o# [3 k5 a
# k% D9 \/ M- J. z! b
​* X8 m1 N  S6 a& |' F# Q
圖5
; y) _0 `( L" L0 Z! K1 N& Z8 v: j4 v$ I) i/ {# L

$ r. k+ |0 ]8 f1 H& N彈出如下界面,勾選“Launch Debugger”,并點(diǎn)擊OK。; _1 V: x/ n% T

" k8 p/ W- G2 _2 T) F# B  t

1 P: f# x# }3 o' o​/ S  f' x3 T( v( g% N
圖6, V0 G2 r7 F/ `- M8 X
1 r6 A# N- W, W$ [! p# p: f

$ c5 t) u) K6 \; t編譯完成后即可全速或單步運(yùn)行仿真代碼。
0 ?% z7 v* q! M3 O​
4 |* t, M8 ~* {+ i圖7
" H: m' |1 l  ~' t
" [# ~7 v( W: C% T/ o
( z  p( ?8 Z8 q, j9 O6 I% n

2 o8 ^0 E* k: _5 t9 H
IP核測(cè)試
5 I( o9 |. ^7 j1 U

' V0 G! d7 Q- K進(jìn)入案例“hls_ip_demo\project\”的IP核測(cè)試程序Vivado工程目錄,雙擊.xpr文件打開(kāi)工程,工程默認(rèn)已添加待測(cè)試的IP核。5 A  K0 K; X0 W  S# v# \( h; b
( Z% a, `8 ?' X; v  Q! q. e. _' {
& g: S* c8 Y( t
​+ |$ F6 p+ }& ?( T: f0 S) ]; X
) q# R* h# x% u( T2 b6 J

# G  b' y  D, W* v/ `! V) ~" k圖17
6 L3 z" h- C3 ~. o7 j2 E如需自行導(dǎo)入IP核,請(qǐng)參考如下步驟。" J" s* \" w# n( S( {# u; _

) i2 z9 E4 i- z2 [: y. k6 X5 \; q2 L

( q) G2 y" H) r7 o3 k(1) 請(qǐng)點(diǎn)擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點(diǎn)擊OK。7 {# _8 h5 I& A8 r0 ]% O
​
- G) n& B7 I: ~6 {9 q) n4 R5 y" J, j4 h3 b( C4 k& l6 s

3 ^/ ]* e0 o5 M圖18
) U$ H# R$ ?; l# M' i​* U% h  O6 f; G0 ^& @% U
圖192 t1 ]0 |) N) |) M
(2) 右擊“User Repository”后點(diǎn)擊“Refresh Repository”,即可看到添加的IP核。
& P8 m0 M% d7 y# T​
: z2 o3 E/ O" {6 x$ X( u* ~; q% j4 h3 ^; ~% D; q- L# ?( s

1 B; W! c' Q4 O6 B. g圖20+ z; r# b- n' m# W
​
" u' Q# H% Y) u7 S" H5 d! {圖21
! g8 B( L4 b! \9 }" t5 {3 k* x
4 \( i9 e3 s: p

2 n/ |9 i$ J$ u& r/ I(3) 如需添加Vivado自帶的IP核,點(diǎn)擊“Open Block Design”,在彈出的界面中點(diǎn)擊,并選擇所需IP核將其導(dǎo)入工程。- x3 D7 n) L3 G; f8 J9 F

. l8 G- z( b3 z( m: Q( ]

) U# m& d0 C# z6 D# ~8 E​
; [. g( l/ M" k# p  C5 }5 L! Y
/ b5 |, O* f* Q9 D( h4 I

6 e1 \7 c# m9 K8 \3 Z, i; w圖22. y" y% ^: U% i( S
​( D  g" e4 S9 B7 T% ~3 K# I/ l
圖23- l% j! h; X# z* B
點(diǎn)擊Vivado界面左側(cè)的“Generate Bitstream”選項(xiàng),在彈出的界面中點(diǎn)擊OK進(jìn)行IP核測(cè)試程序Vivado工程編譯。
0 ~2 v2 s; f! ~0 r5 f+ i: _; D, @8 F​
/ j& q+ _' l6 [- ?) [7 p! W- _$ m4 v/ q. V

- ^- H: ^$ w9 p, k+ F  K' P/ r3 X# Y! F+ L

$ s4 G  H" H2 n5 K0 K, s. ~圖24
4 a" m3 P8 b5 T+ A6 i* z3 G" e: v% s" n6 l" f' x8 d/ A8 q

" z1 j- U# M, F& S3 G! p​6 s/ m7 p; R2 Y  {, c
圖25
. T& H5 ~- t, g4 H: C% t7 c  _( L8 ^; ~( |7 a

) v3 W+ t6 m- C5 t) ]' B編譯完成后,將會(huì)在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。
! M7 e2 I$ I2 [$ P% M" Z" F, ~5 H2 I, K8 W9 t' t

$ j# K( x0 u; B) R​7 Z- A6 G) }+ z& X  ^" i

' L: D# \: F; O% s) W3 |0 V( x+ Z
+ C+ o1 g6 P9 v6 _
圖26
7 @2 o2 Y: m% ~- O( I1 [& w! Y# q; m: e9 Y

$ K/ j5 l, h. y. V1 B" U請(qǐng)參考基于Vivado的FPGA程序加載與固化手冊(cè)加載.bit格式可執(zhí)行文件,即可看到評(píng)估底板的LED2進(jìn)行閃爍。
7 S6 E, [$ N( H! E/ R) w8 Q6 BIP核封裝+ }+ Q" d% g% z
9 Q) s! w  h/ M* c
綜合完成后,點(diǎn)擊生成IP核。
6 M' A4 J2 s* F$ i( J​  m0 r( p! H, M: u9 c: s; w

* B8 R$ E! u% `& w
' W5 ]4 a1 {9 a6 _& W* K1 O" i& d
圖12
" i$ P. j; s/ V8 P9 z8 N3 a5 n* n+ E& ~8 A' X( Y; ^# P% ?
6 O- v$ D% V& p( R1 H
​" [" i3 N0 {0 {
圖13
, m3 v. i; J8 _/ e: {1 B1 j​
( A- ?3 @3 y! g圖14
$ ~# N6 }8 m3 f3 W  }' `( `- |) |運(yùn)行完成后,將會(huì)在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。, s8 N4 U, z" \) [+ o0 w* w
​7 q" B, P" Y8 l* M
, D5 [+ n3 ?1 ~$ N
9 Q- K9 h( b8 z9 Z1 r' G2 K. `
圖15
' m7 }0 ], r( D: q5 L9 k​: I: k- H3 ?8 t  T
圖16
( e0 z- r2 [4 Y0 ~$ O% L3 X* y1 e$ e9 X9 B$ Y1 m

9 m% M7 H0 m/ d0 j- X7 ql 更多推薦& E. ?2 V" m+ P! K, D/ a$ J
6 K; ]8 F" a# w/ |; x6 a) o9 ?7 T
​2 x  W) i9 ]$ |/ J# r0 Y9 q

+ @" n0 N, C, H8 S( k' P

8 ]2 @* [6 D2 i$ ]圖27
3 c1 ?* U- o4 }: R' [6 g/ T
# j3 G" F( w7 r7 h9 H
嵌入式DSP、ARM、FPGA多核技術(shù)開(kāi)發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload

1

主題

31

帖子

103

積分

一級(jí)會(huì)員

Rank: 1

積分
103
板凳
發(fā)表于 2021-10-22 09:04:02 | 只看該作者
獲取資料,謝謝!
. R) v! b- X3 v- v4 `
$ ^% y9 Y) O2 f$ ~

0

主題

9

帖子

36

積分

一級(jí)會(huì)員

Rank: 1

積分
36
沙發(fā)
發(fā)表于 2021-8-30 14:53:56 | 只看該作者
HLS的開(kāi)發(fā)對(duì)于底層寫驅(qū)動(dòng)的人的沖擊挺大

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

本版積分規(guī)則


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