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

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

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

Xilinx Vivado HLS基本開發(fā)流程|基于Kintex-7、Zynq-7045_7100開發(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案例開發(fā)|基于Kintex-7、Zynq-7045_7100開發(fā)板: k& I" e+ G- L# t% o0 o

; z) v+ v, R  e3 L0 T. {" v+ K  y

0 N6 g0 W/ _  @( |前 言
& e* S' r1 ]+ Q8 b) t, l

3 r+ D+ ^5 k2 M7 {: a" |3 R本文基于創(chuàng)龍科技TLK7-EVM開發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計(jì)的高端評(píng)估板,由核心板和評(píng)估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測(cè)試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
2 g: G, X) [5 X1 ~9 n8 b7 R' C評(píng)估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評(píng)估與技術(shù)預(yù)研。
/ G5 Q# U/ R9 P( v1 M8 z4 f
) D' k0 f# d9 q9 I% ?
- l% S, f8 ^+ U' v" a

2 y! O" Q6 Y$ F7 E( i# ~' U- F8 P9 D
( L- d$ u; i* l1 Z5 W4 `* V
​- N! {0 k2 s( B$ s. o

+ O8 q  J6 q* g1 K
! a. ~- ]) ~0 L; i: W) ]7 _3 w  V
圖1  TLK7-EVM評(píng)估板/ N% O: [; N( `
- O! A, M7 F* G5 J6 E* B
2 k- L. Y: \" R. s' |
開發(fā)案例主要包括:' q6 r7 W9 E- u! Q8 C
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例; j& \( k8 X' R) H" k" i/ n
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
2 E& h3 g2 M; D) w* R+ yl AD9361軟件無線電案例
. v% U9 Q. h8 O4 u0 ^l UDP(10G)光口通信案例
& Q% x& ~+ o! o; o4 K" v. f- cl UDP(1G)光口通信案例
6 k: V: E. h2 N0 j, N( Y: ^# Ql Aurora光口通信案例
8 r) y3 O  d; t7 I. k; ?l PCIe通信案例
' s8 L$ d, ]# R) c8 J  P- e* q3 \+ al 案例源碼、產(chǎn)品資料(用戶手冊(cè)、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload
8 l' F2 l. q+ e  p1 @
4 j+ z# q: z( l

9 x6 v% p  G+ F5 s' ^: {! T- E7 ]; g- R, Z, u7 E/ g

" L. V2 {9 R5 O: _" `本文主要介紹HLS案例的使用說明,適用開發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。
4 M+ K9 s0 F! s1 MXilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時(shí)支持基于OpenCL等框架對(duì)Xilinx可編程邏輯器件進(jìn)行開發(fā),可加速算法開發(fā)的進(jìn)程,縮短產(chǎn)品上市時(shí)間。' K. _; w/ E3 s# B" Q

/ K6 d: ]8 a8 b9 \3 s9 a2 O2 F# H4 [
& o4 e8 f3 e3 @! P) s. G
HLS基本開發(fā)流程如下:* r4 G5 _+ E! j# O! a( [9 s
(1) HLS工程新建/工程導(dǎo)入5 w- Q, u- P0 l3 Q% l
(2) 編譯與仿真
* E- P/ g7 P4 I& S(3) 綜合  q8 A* j. g) U$ W% V! L" Z, l7 q
(4) IP核封裝
9 E2 V7 w! j- v9 q& v! I# X* l(5) IP核測(cè)試
0 Y; E/ K* L- h% S6 G5 i4 w4 f& y
( I2 `; r7 n. o$ I: \

+ M  @# r# }4 L& Q3 ^! R, THLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細(xì)說明如下表。/ W+ s& p! `# ?, @& j: K% y

6 G$ a* b( }; [

2 x% e6 `9 F* B/ u$ Q" l, n* m表1' H: z( o& [+ _- ^# h
hls_ip_demo
+ \4 m* I/ T5 C6 s- U' x8 r
bin
$ I+ t1 i6 o) x& \% v- V0 C
IP核測(cè)試程序可執(zhí)行文件
2 I+ g# a$ M: V$ \7 R* q) B& G
project
# T  x2 Z2 r9 a9 n7 ?2 q8 ?1 c. j; C! F
IP核測(cè)試程序Vivado工程" M: ^& ?5 t4 u* n  @/ n  O3 Y
vivado_hls
# C/ u) R7 w8 c: F6 S8 Y
ip_package. K( J3 [% M* `. I; |3 W/ f/ e5 ?
IP核; j3 ?. e8 A- V) U
poject5 b, k9 q" I5 t* V% \# R
solution1
% o5 W$ C5 |$ A0 P1 U" v$ P$ d
仿真方案+ U+ Z' f! e& o$ i- A! r7 y. n" _  t
src
2 ~) D9 {% f' T/ ]
HLS工程源碼9 ^6 W5 b1 A+ _! r
test_bench6 l( \8 ^6 b% {1 S. M
HLS工程仿真程序或測(cè)試文件
, o  d9 D0 Q! W1 P3 w
vivado_hls.app
% O- d6 K2 R+ {! _+ U. _2 a% x
HLS工程文件
; w* y; j/ c! i* D9 L
HLS詳細(xì)開發(fā)說明可參考產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。
6 g( p3 G0 s; b: ]4 k1 e1 h/ y' z. ~! {3 \- A. Y6 d& ^  j

3 d( z$ n4 Z5 X  x( k
& J4 b, s) W: [: b$ r+ `
/ E! G% H1 b! Z4 y# h. t
HLS工程導(dǎo)入  |) `6 z6 O. ]0 @
. I5 r/ B& c. l
雙擊桌面如下圖標(biāo)打開Xilinx Vivado HLS 2017.4,并在彈出的界面中點(diǎn)擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點(diǎn)擊“確定”導(dǎo)入HLS工程。
. B- T! ~1 x7 I, G+ m9 F- H- M0 `9 s" [

! Z; B+ p- [+ y5 a​( M3 Z/ N5 ?: c- V3 z, _
圖29 O$ }! N* b) i5 w3 V9 p

2 W! H  P# q4 x) ?9 `

+ G9 B4 |9 S* R3 n& Z0 z​9 }" c( b8 o* O5 e& ?! ~
圖3& [( B6 @: r3 ^/ P6 |  x
# D6 W- ?, m# P/ b$ K4 D  `
. B/ M, o) P, m# e& M/ F
​
5 D$ {: C, ~# R: B  g# \圖4) r, M4 V% q& W0 }
亦可新建HLS工程,并使用C/C++等語言進(jìn)行程序編寫。! i3 w% t# Q5 J9 H7 Y* o0 |

3 n+ F# @( r" l, v, [  D, f/ r

7 @0 U. m. [5 a7 |7 z- R5 m# C
, d/ m5 f) |1 c1 M5 Z
, T+ e9 O$ E5 N: i
綜合8 U  n" L$ k7 U) Y) Z
( H" e! x: i& l+ m  ?9 }; P
本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計(jì),并生成綜合報(bào)告。
2 ~/ k1 y5 G  o- l8 i# |; a4 N點(diǎn)擊界面右上角Synthesis返回至工程界面,然后點(diǎn)擊進(jìn)行綜合。( z7 @' C4 Z4 c6 p- X3 h+ h

4 o- ?% c+ p/ @1 @" @. R

$ E, K6 U$ N* C% Y9 _" ?$ K7 M​
0 f1 ?* ~6 P: o4 f, w2 _+ u圖8* E1 B  ?) R3 j4 o' X: F  a
/ C% G% |/ H; _. n  ^. |

& H) Z, n# F! |% x​2 ]* o/ k$ N/ h* \2 s& ?

" c- w7 A: ^* I% _0 e6 K7 N
/ m, S5 N1 k$ k( _/ K; g& m, o
圖91 P" w$ u2 o: h! N- ]

  H) X$ `$ t4 M
; T& V( I2 T& g" X. V, U
綜合完成后,報(bào)表文件將自動(dòng)打開。' l" {9 M" I% {: Z8 y

, M. x" C) k5 \! q
7 i, b$ A4 W& ~/ A3 o+ S8 I7 t) B: }
​0 F: O- o. {& I/ z4 O% q' T
圖107 f6 b2 Z6 ]+ C& l( f9 A
/ C5 ?+ d6 t9 h

' V9 c( z- B9 _3 j4 U5 C7 U通過報(bào)表文件可查看本設(shè)計(jì)的時(shí)延、資源占用等信息。/ m) h# |7 \* l# Q& G7 U

- B% B, c, L- h$ }' ?" L# g  K; |6 e

: b4 S' `: W. g" A2 ^​
# c; w1 w4 m$ U7 ^9 }! J- N" r
/ I$ {" K7 n0 U+ _
, v% z; I) [7 U7 Q! O6 k
圖119 Y! s% o9 f# O

+ w1 f' S8 t4 [* D
  W# R7 }8 d# x$ e. x! U5 {7 s
編譯和仿真C代碼# g3 _! o& @7 P! D+ N
) J. y3 K% E* b0 n8 Z% k9 u$ v
仿真程序位于工程的test_bench目錄下,用于驗(yàn)證src目錄下的HLS工程源碼。5 i, O% ^  v5 A
導(dǎo)入HLS工程后,點(diǎn)擊(Run C Simulation)進(jìn)行編譯與仿真。
8 Y' _" m; g/ F3 l# X$ n4 g: w3 o2 D  s
$ q4 u# |  E4 u) R' t
​
" F3 O* M8 _; A2 x2 c* ^0 _7 u圖50 {/ Z/ E3 [4 E- B6 _2 U. r& V
0 _/ c% i+ ]0 t9 b) }/ A( D% F; r

% T- ^' u) A5 o: B彈出如下界面,勾選“Launch Debugger”,并點(diǎn)擊OK。
* d0 U6 ^, P# j( [* P% d/ V2 K& B. ^' `; U) K! K0 u
; d% r1 ^, |( Q) f  G# y+ \, R$ b$ H
​1 E2 @" I" {0 D4 ]
圖6
" r6 D* z) v/ w9 {! r- T& I( U  b- F# Y- ]7 \8 k1 t2 G
: D6 I5 `! S2 M; u, E
編譯完成后即可全速或單步運(yùn)行仿真代碼。4 U  i. t% i6 O5 ~: d! K
​
1 q+ f) u4 k$ c) F) c2 }( R$ I4 u圖7
3 A' R* ?& K9 r4 c0 ]' ^. f$ E5 \
; n! R/ ~  R6 x1 N6 F- q  ~$ A& u/ M
4 R/ i, ?# U7 ]7 n# V
IP核測(cè)試) p% `2 ]+ ^6 N
/ a3 z& u0 x# _5 S2 e
進(jìn)入案例“hls_ip_demo\project\”的IP核測(cè)試程序Vivado工程目錄,雙擊.xpr文件打開工程,工程默認(rèn)已添加待測(cè)試的IP核。% m1 @0 O( C& G% b5 E3 x! t2 ^/ U

/ z1 [0 z) s* V4 W

+ t3 s$ t# h) ]​
  [) `9 }. f! E6 o" g; @
/ ^9 B3 M& k8 R
( Y6 X. c8 h# Q+ r/ N1 t, }
圖17
. Y/ f' @) N, O' ~如需自行導(dǎo)入IP核,請(qǐng)參考如下步驟。
& \( S6 n) x2 A' P$ k  C1 s3 m5 x/ c) `$ p
" t, O" E! W" @  O
(1) 請(qǐng)點(diǎn)擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點(diǎn)擊OK。/ s, H9 u4 A2 P, Y: m0 A% j2 U9 c
​# h6 M& K0 k6 R

" R8 v# T, \+ @! r# k
! x; _4 a) X) H8 k3 B( ^" K) X
圖18
, k1 y6 {% g2 G' ~  K1 z​
9 @. E/ M2 h+ B9 C7 q6 n& [圖195 S9 d! ^& Z$ Y4 T$ h" D, j
(2) 右擊“User Repository”后點(diǎn)擊“Refresh Repository”,即可看到添加的IP核。
) H& o( V2 B% K( M6 \& I- P​+ e, j' ^9 S5 B8 y  \( a

5 `! r8 ~. K) q! S
9 B. f8 ?2 C1 F  H- a" W# b
圖20
7 w& h7 A/ ?, j' Q' |​/ z1 a9 |# I3 G0 c( ?  C% f7 L
圖21
- ~2 u2 }& E9 i1 K9 D. d  Q- \6 t% W  z9 v# R

# B3 G" R; A3 g  J4 }& f4 c; U; g% t" g1 O(3) 如需添加Vivado自帶的IP核,點(diǎn)擊“Open Block Design”,在彈出的界面中點(diǎn)擊,并選擇所需IP核將其導(dǎo)入工程。
5 ~, I# z2 t9 |* j3 _0 G4 }! t& c5 e; A% t2 o+ m

/ s, s& ?1 h& m/ B, v* ?5 J( a​  P2 P( V# g& P  A/ A* C
2 v5 X9 g1 m9 _+ ~) c/ w
& r& P2 ~; o7 C
圖228 q7 C8 x! _& b  h. |9 q/ d2 J) u
​9 O5 e2 E7 n6 Q
圖23
9 x4 E0 E* x7 C8 b  U( [6 X. q點(diǎn)擊Vivado界面左側(cè)的“Generate Bitstream”選項(xiàng),在彈出的界面中點(diǎn)擊OK進(jìn)行IP核測(cè)試程序Vivado工程編譯。
6 J! L. s- ~( t# d& z3 G6 x​4 S1 ~0 `% a7 w& L1 T! S

& I: F2 k3 y5 G# ]% A6 q
0 }% B- U+ t, A$ R7 ]

/ I9 K( [- j8 _( e& T# p) l  ^2 a

# K8 u4 x( _) T4 P$ k2 N$ _圖24
  X& D" o( u+ Z  h! S
1 s8 _' s* m; W/ Q- y. F# E

  n. o: j  U3 K$ g  e​, N1 I# K+ x4 |' p  _+ K  v2 p
圖256 {6 S3 X9 C# x5 _' p# G3 [

+ m5 @  Z& J! q% c9 F6 C
& K3 L7 ?7 i: I8 O* g) k
編譯完成后,將會(huì)在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。
/ y6 `0 g0 Q; K$ [: }& n  |- F- e* s) @3 [9 m- }0 p

& [. \' k% L5 p( q; o  k- k​
! k, x- D2 A8 I6 z0 N0 d6 Z& s+ C7 q# \1 f& s
- F+ l! h* o' k+ M; V, v
圖26- ?  G0 z+ B- D1 X
6 n& Z! C* \0 e

2 F( s( Y! I# l1 X" g請(qǐng)參考基于Vivado的FPGA程序加載與固化手冊(cè)加載.bit格式可執(zhí)行文件,即可看到評(píng)估底板的LED2進(jìn)行閃爍。+ A: X9 p* b# n* J1 Z4 M0 t5 A; m# c
IP核封裝
! F# G2 R0 q, U: Z
5 r6 J3 K4 m7 Y
綜合完成后,點(diǎn)擊生成IP核。, ?' W  U0 V( l& Z
​5 C# u! f% H( x9 Z# x: ^/ S3 e6 c
( d+ ~5 [' F4 B: f0 W4 q
! x8 U4 X4 o0 g  K. Q
圖12
/ t; T3 R& Q9 p  S. T
3 {% q# Y0 T' x) N2 J

/ o: e* m, J* y) t% Y0 h* K​
. [* E- d1 w8 y! b9 v圖137 U' Q+ U% B  T& [
​
8 |/ ~7 G: [; ]3 k1 h圖142 S! ^  e" X) H2 f% a
運(yùn)行完成后,將會(huì)在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。
2 N8 n" b0 I& V( t* F  z8 C​0 Y; k1 `/ f0 W0 X

% J( K- X' S" m. J0 T6 m  ?

3 g2 q! w$ G  M# i+ {! G圖158 j+ ^( M( [9 z6 s4 D6 H: W
​% s& B( c& B+ t, m
圖16% s( g: ~2 C# K- G% f) A
. k$ ^0 F  I5 R

, v  f5 m3 v1 p2 N+ m% j+ P7 Hl 更多推薦
. l# i( ^5 g9 d6 o

( g7 {( R7 Z4 O, _/ {​) a8 L6 g3 p$ I: E8 X' \) _

0 Y7 v2 Q' j5 K2 d/ O- `% \
- C! h- Y) }3 @# {* o
圖278 x+ j1 H% {. [: y3 I

/ \4 N) L8 v( j0 e
嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload

0

主題

9

帖子

36

積分

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

Rank: 1

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

1

主題

31

帖子

103

積分

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

Rank: 1

積分
103
板凳
發(fā)表于 2021-10-22 09:04:02 | 只看該作者
獲取資料,謝謝!
* H0 U' C! ^& ]" N6 x$ x
+ ?0 R, ]6 i1 i, f4 O

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

本版積分規(guī)則


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