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

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

搜索
查看: 3758|回復(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ā)板7 q! s) M1 Q; R2 r; P& g  H
2 O6 r8 i( c) B. y1 [
' L/ N2 H6 M+ T) f) Q
! h) B. I" }) h6 `1 J
前 言. h; T; q; u7 w$ i1 E
- P6 S( Y- ]- P* {; H4 e
本文基于創(chuàng)龍科技TLK7-EVM開發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
7 n! z+ U1 r9 O6 D評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進行產(chǎn)品方案評估與技術(shù)預(yù)研。
* u$ {7 \6 r- a7 p9 j$ A: c: ?' [2 O. A. Y8 T
: T, w, A% M( S/ u  R

6 h/ d8 D$ E! j' {" D) H* [
! j7 n4 G3 n  l6 Y6 n
​! ^; F, e3 z7 T; O0 B7 a' S/ H

) k0 F, l! P' \! }9 K3 Q/ E- t
% c. F: k# ^- E! `" g- R7 E; \) z
圖1  TLK7-EVM評估板
+ J1 ?& l; u1 ?& G( h# W
0 G/ W! r/ s# }* d$ f7 b0 }: y
4 P) w4 s) y. A! r* R
開發(fā)案例主要包括:
  I  m; ?, b8 A' _1 _' m# F$ o6 ]l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例1 \/ M/ U, P) Q( h, G  E
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
6 \, A5 a% S1 E0 L/ Nl AD9361軟件無線電案例; j5 `# r, L- X$ G! L' s( ]1 I
l UDP(10G)光口通信案例
, U* h5 d" [0 ]6 ~% Jl UDP(1G)光口通信案例% c- G7 n/ \. l' j3 l/ z
l Aurora光口通信案例3 X5 x+ h7 u: K# [  b( t8 p
l PCIe通信案例
3 f1 J+ E# N% `' @4 K3 K+ nl 案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload
9 \! n" u; B, O( ?5 M' V+ q: [+ [7 }

* L; K- k4 d( M7 }( C
5 z4 D1 I" [( k' E! R& N: L

7 ^- E' |- z; O本文主要介紹HLS案例的使用說明,適用開發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。
; `% g+ G( L1 i! l# Q. o8 t8 e" bXilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時支持基于OpenCL等框架對Xilinx可編程邏輯器件進行開發(fā),可加速算法開發(fā)的進程,縮短產(chǎn)品上市時間。% C' n) `2 X, a9 |
8 ]: d$ n9 k, E+ D

! x$ M9 j: G( |- n7 o# yHLS基本開發(fā)流程如下:
1 N: j9 c5 v; k! `$ J: _0 e& _: Q(1) HLS工程新建/工程導(dǎo)入7 g6 ]! u" V, y: }/ q# O, r
(2) 編譯與仿真- N. g$ o  l0 T" W6 V9 H, o- k5 [
(3) 綜合8 W- C9 K) I' g  |/ `" M' q6 O
(4) IP核封裝; M) ~) D9 `$ U3 e5 K
(5) IP核測試; x! R- g& w5 o2 O6 _. U4 Q  [7 x

- R+ g, u% E- ?# {/ y8 e
! U3 X8 U; l1 \5 R# U0 G, o+ _. m
HLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細說明如下表。1 z. s" g9 B- k: N

3 v9 s+ ]$ ], V! |: p

  |; B$ O3 _' Z, I) w表1
; |2 q7 n/ p1 J1 K  e- n. d
hls_ip_demo1 N! n5 N. J7 W- P
bin& q) R2 v. ]& G' e9 v
IP核測試程序可執(zhí)行文件0 Y( D1 w: p+ A1 R. U1 n
project' k7 ?8 w7 ~% o7 X
IP核測試程序Vivado工程4 V8 h3 a% y3 C/ {3 q
vivado_hls2 X* x. h! Z+ }. U1 l
ip_package! m- |: R8 ]' k* l
IP核7 A9 |9 E* Q, O" a# R2 e
poject' x, Q5 h! Y7 H; P: N- w% x1 r
solution1
  \( ~! C6 T( s0 l% G0 c1 S
仿真方案7 H1 u- \" B: D0 ]
src
; a) F+ `0 ?& R- M/ [* ]
HLS工程源碼
" L& Q4 w7 u! {; c4 x% g
test_bench' Q2 Q5 i$ ]2 s! {, s
HLS工程仿真程序或測試文件
# |0 Z, ^7 w4 k- N) |  P
vivado_hls.app
/ Z5 [4 L( G4 t
HLS工程文件
5 h0 H! X& m1 M* \) Y7 U
HLS詳細開發(fā)說明可參考產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。5 E5 n2 n4 m+ W1 M$ x
: q, S: b5 U; p/ @
+ d( E& N0 T  F6 ]

/ n) |* h2 l" I  w; R9 w
( W9 r9 A$ M; A5 A) {
HLS工程導(dǎo)入
8 s! n# t7 k/ I; e4 W* T" [" c

2 `! l; @, v+ C9 q雙擊桌面如下圖標打開Xilinx Vivado HLS 2017.4,并在彈出的界面中點擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點擊“確定”導(dǎo)入HLS工程。
- ^9 l( a+ {% [' E( H  p  X
& _2 D! m/ J4 A* j9 n! ?9 m

& }8 F1 r! N; u# @​
' r% K2 U$ [4 x2 h1 H7 V圖2; W& H$ I' K; f" S

3 i, `  l# Q; g4 [: n! }9 x

6 S- ?. l9 l8 n" D$ {4 K7 ?  w​
" A" E3 d- d1 Y圖34 B" m! S7 J. p
. t7 }4 h4 k% c

9 b/ f$ q6 J: o0 z8 ?  }​
( W0 N. R( y% j4 S2 y圖4. D% E( W' W. l
亦可新建HLS工程,并使用C/C++等語言進行程序編寫。
- Z) J6 r& J5 ~  Y# v( N- C2 U
3 }8 E' `( I" G( f1 M/ g8 V4 ~
+ d9 K3 u/ u  b+ C! C5 t: }$ Z

' x& t& I0 C% V2 m: U
& Z$ V* I! H& O, ]
綜合$ c) m4 q! P: f3 I
  P/ T3 h; ]) R6 `5 J' Z
本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計,并生成綜合報告。
2 C. [; e+ z7 ]4 U) o點擊界面右上角Synthesis返回至工程界面,然后點擊進行綜合。
( z& f7 y' A* }! l" g" m
2 y) I$ u6 U- i# R. i5 `9 A! @
4 c/ b- g) y! F% m
​
* [/ A# {6 T6 K  a3 S! c7 ]2 a圖83 p0 C& x5 W9 C  l7 \
9 v& ?" Y- b7 n8 y+ G: x$ f
- u) Q$ G  T) \. H; n. A
​
' S& ~/ l: ?# l( q8 i  |" E0 a( _6 W; ~0 z0 ?% L

3 N6 i% R+ r$ n, @0 K圖9
; w( q5 o6 H3 Y1 v0 m0 W
" W6 D% y. p) G

, k% [6 P1 V- p# j綜合完成后,報表文件將自動打開。
0 K4 w. @, `6 b: h" \  f8 Z' L$ z7 I3 ~( h7 ~

+ j! U9 \+ M- v) f- G) T$ a' g​
% U0 v" G1 j' y, q圖10
- i1 t- U% }  v1 I5 n
$ D4 k% r, f& @; d1 g: q9 \1 H7 z

6 b7 z9 K, c$ n" T/ ^+ _  v0 Q) W4 u通過報表文件可查看本設(shè)計的時延、資源占用等信息。
# {: ]* K% J: U% e* T6 A
7 E7 d0 j# h8 c# g( q& c+ d

( z) v& T. j  `9 {! m. g​3 m5 t2 D: j/ o  D( Z. l# V

$ ^: b" I) Y* X+ n# c4 k0 B, {
2 \3 ?7 d9 Y9 h, x' r
圖11
% X' g8 N4 ~( ~) b! N0 B5 {$ M" H1 f/ \. S7 P/ ~4 {

4 {* D! [3 g  @& Q6 t/ S編譯和仿真C代碼
* I' r# w' L8 a; e! J; n
8 t$ Z( i5 f4 w* w
仿真程序位于工程的test_bench目錄下,用于驗證src目錄下的HLS工程源碼。3 r# v; [/ h1 X/ U' X
導(dǎo)入HLS工程后,點擊(Run C Simulation)進行編譯與仿真。
0 ~; b% y+ N& T) z! e0 u3 T( n* N$ x! {7 b2 \5 X) n2 `

9 Q0 s; B+ v$ i4 q* o. Y​
1 }* Z8 k9 V! [' X圖5
* w# P# j& u/ b# c: L
- Y! J8 H* b! K- ?5 G

4 x1 c' Q1 R% G& A9 w彈出如下界面,勾選“Launch Debugger”,并點擊OK。& S9 i) a% c7 k0 T* B0 D7 f2 k8 r
8 l2 l! D* G, X% o: u" |' ]$ _" l
! p& V' B- h) l& x+ ~, u
​; x1 o! l* V& f, u/ J3 y* y! y% v
圖6
+ t' k1 X' c# ]1 Q
- j  ]/ H5 K2 e0 F% K: E6 s

0 r; r7 K" C3 {9 z* }) V編譯完成后即可全速或單步運行仿真代碼。: ^5 x4 Q7 d( J" K4 C; m2 b
​
4 J! W$ o2 O$ b- @1 e* s圖7
( o4 \) J, A7 U* Y6 |# ^0 `1 F. T1 y  R2 ^

! I, x! f0 R/ Z% P% d6 L! A, B6 p+ S8 h* p$ h
IP核測試
4 |, [  }) _/ s8 W% C; N0 \
; z9 X5 G* i' Z, s
進入案例“hls_ip_demo\project\”的IP核測試程序Vivado工程目錄,雙擊.xpr文件打開工程,工程默認已添加待測試的IP核。
" v' j" I4 @3 P7 [4 W! J- _( J  W: _# Q

' [$ S- B' B/ ^9 h1 p​9 V1 ~8 w0 U# s4 W% a2 }/ z$ h
" U8 y. K$ T9 S3 |0 S
! S. D, k+ N4 r. y! O
圖17- O6 O4 b1 i0 {! D; o) O$ A0 G, V+ L
如需自行導(dǎo)入IP核,請參考如下步驟。
+ }) Z& W+ I9 S* ^0 ]. v* [* z2 @+ l- ?1 V( G( u3 ]
* B1 X) g+ M; K
(1) 請點擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點擊OK。
. d$ V( I: I; _( Z1 H$ i​0 [( [  b9 I% ?/ L

: \6 ?( j0 P2 w! J# f/ ?
" K, O) V9 J8 `- P0 `
圖18
  Z2 |1 r  R* V8 b; F# r( {) ?1 v​
6 Z6 f5 h" [6 [& L圖19
5 v) x& o6 H" |(2) 右擊“User Repository”后點擊“Refresh Repository”,即可看到添加的IP核。
2 E: y1 {9 S  \2 g( ^2 ^4 f; L​) c6 v$ E1 y8 W, D# T
) e" J# j) q9 [/ `. Z
- b; v1 o" [% {% N" u. I! \# L
圖20
! l6 r% Z' e- |/ {, r0 m& P% c/ q3 I​
6 l6 D' E+ v5 s% e圖21
  ]' F/ b8 b; M$ p9 q, V' g9 K- x; v. ]3 s& a' g

8 Y/ A" d. K! {. e$ l; ~(3) 如需添加Vivado自帶的IP核,點擊“Open Block Design”,在彈出的界面中點擊,并選擇所需IP核將其導(dǎo)入工程。+ V2 f# ^9 V# F
' _& n- u6 U5 c7 S$ T2 m1 g  M

0 B9 J5 O7 ~2 W# A% i0 \& u​
( \# ^+ l8 W- Z# V" B5 G/ i
) X; n- m7 L' L) E6 T3 ]

/ y4 R5 D+ _( {( H圖22
/ m' c: B8 z/ g8 s​! b: F' L- U2 G5 @* x
圖23
. M" g+ n6 q* h6 m點擊Vivado界面左側(cè)的“Generate Bitstream”選項,在彈出的界面中點擊OK進行IP核測試程序Vivado工程編譯。( `$ F: T- F( p+ S6 p& g' O2 [
​0 V$ R4 @4 b$ m: p6 r# G
" k5 p$ }# N$ i  u. W& e

: r& y2 O' t# K' n9 J2 @! r, W; ?9 j0 R  i" y8 G4 [. j

* c8 Y% ?% {* x; r$ Y/ G圖24
/ e9 c* G% s7 v1 q# b7 S/ O# ?. o. p; c2 I8 x' M

" [, d( R* P% v, B, f​
9 w* Z+ i9 h/ I' u: o* w; |9 ?圖25
& U8 l4 H" [/ Y) E! X' I) K: |0 v
: z% \. }) }% x/ Z$ o3 R( M0 S
編譯完成后,將會在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。- ^" J9 R- m: ]7 Q( [  M6 K) x

/ M/ t" p. @5 _. T: _9 R7 B

" ~/ |+ V0 N5 k! s2 U/ y​( `' Y; y. a3 W/ x% N1 r
0 S6 a" a/ v5 C' e( c

1 T( U# T) e% q$ B7 f$ ~圖26! l) y3 l; i( G6 r$ B, u( ]. U
" t. U2 n, {$ r4 r% b

( }1 ^1 ]) D7 \7 a請參考基于Vivado的FPGA程序加載與固化手冊加載.bit格式可執(zhí)行文件,即可看到評估底板的LED2進行閃爍。
3 d& j& ^& y6 g! _* `# {3 CIP核封裝% X) ?! L3 `) J: D

  I  N6 v' @  M: d綜合完成后,點擊生成IP核。
6 U7 |( M* y: j. T" Q9 h4 ~# X& e​
* S* o" m1 u& b7 O) a
4 ~+ h5 m% q/ }6 V' J2 q
; t# {7 ]4 Y3 D" I7 }2 H
圖127 l% F: f" B6 q6 J$ U6 g
2 ~' u: w5 F9 `9 n, s
6 `, A, a( n0 y' g3 j3 w. p9 A
​
8 |2 U4 v% I0 G& B; q圖13
! L  h* u) C' ]6 l2 f5 `​9 f5 U  X7 b; Q, u
圖14) V- h, N7 n6 E4 {
運行完成后,將會在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。' e# J1 [( x$ j
​4 v: V9 m) w' M! Z

$ `: i; _8 k- |6 l
9 o# i8 u, o3 _+ P4 E
圖15  n" x- a0 W) c7 t! V# x
​
& P% ]$ t$ p% B7 h- |+ V# `圖169 S) L4 b6 s' c( @2 v

7 Q  T( J1 Q& T1 `% t7 y
9 K  B" u8 p5 q  k
l 更多推薦4 J! ?& o+ C4 T" ~
0 d. s! X) K$ i7 F
​
6 t8 W" `" |) }5 ]- O. j% Z% W
0 U: g9 O- ?! ~! H
8 k$ E' ?1 C6 S& A! I
圖27
: t( ^  N: x8 w" M. X& J) P
& [+ K5 s7 F% q" ]. a7 U) f
嵌入式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 | 只看該作者
獲取資料,謝謝!
8 [- h( k2 I; w0 P2 |/ ]/ Z. r$ U$ E% r- n( f2 o
回復(fù) 支持 反對

使用道具 舉報

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

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

本版積分規(guī)則


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