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

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

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

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

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級會(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ā)板
9 }1 R1 T# E+ L+ K

  y* _7 @, g4 U4 w. ?; K8 t" U7 c1 e6 s+ d

7 s5 b2 x) Z& x# Y2 H0 A前 言( u/ I, y. W+ C
2 _; ]! }5 `% ^* m: M4 @" ^4 A# y4 p
本文基于創(chuàng)龍科技TLK7-EVM開發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計(jì)的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗(yàn)證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。  z/ x, h* h5 x) k
評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評估與技術(shù)預(yù)研。
' }# x- ^! @0 Q4 ]2 Z, T0 c
' b; Z: B/ j! U" k. M
% t4 Q! f+ p9 [0 F# H- F3 D5 n
. L0 @1 ~/ E* d9 X, Q
3 i( j. n$ o8 {' i6 o1 H' K' y2 n
​: h4 p# r7 S9 Q1 j1 o

' H* b" E0 ~  J3 ~5 C2 X0 E8 p$ Y  ]
/ G: H* N+ Y1 U: w; S4 F: M4 Z
圖1  TLK7-EVM評估板
; y- T* R5 p* ]2 u, q% a6 n' [4 l6 L  z& c

, {8 x. m# n! W8 J, r( `開發(fā)案例主要包括:
1 o  g+ Y( ]6 G/ P  fl CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例! D- t0 @8 u0 h# J3 l. N/ J9 \
l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例9 R/ E8 E5 w! D+ e& X6 {* G
l AD9361軟件無線電案例
, L; c  s3 L: _% ^l UDP(10G)光口通信案例
. e. P9 v$ w* w/ O0 Y) _, j% Ol UDP(1G)光口通信案例: T7 w5 G' j8 J, x
l Aurora光口通信案例
; p! W% }, I+ Xl PCIe通信案例1 H1 ~& p, W" D* J$ D
l 案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload
& x. V! \- s! |1 n4 t
2 K7 }# c4 t( [" `% G

/ G, ]' m" y3 Q& @6 D6 N
7 F  _) o: x2 P

+ K! h1 ~! |' M9 g! v/ g; c3 K" G本文主要介紹HLS案例的使用說明,適用開發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。
3 R! h$ n- w% _# J: _+ MXilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時(shí)支持基于OpenCL等框架對Xilinx可編程邏輯器件進(jìn)行開發(fā),可加速算法開發(fā)的進(jìn)程,縮短產(chǎn)品上市時(shí)間。  [, U; ?" [  q3 c6 m8 u$ Y  m
8 Q/ e5 ?1 G1 ]/ M* m1 g+ n
, S+ |; |7 M! K
HLS基本開發(fā)流程如下:5 E6 b; @# e) Y: O6 Z
(1) HLS工程新建/工程導(dǎo)入$ o, H1 n! y9 o
(2) 編譯與仿真
0 d. j6 s# O1 a. T(3) 綜合
! ~+ r4 L" b- f. G5 Q8 b(4) IP核封裝  X+ D0 ~. Q, }) u. Q  ^
(5) IP核測試7 S2 X# B+ j1 Y' W# q( r2 b: F9 w

9 }# |% }4 u2 z) j( L4 T5 m
7 A5 }# N: J6 N7 e, c; W" i" ]8 ~
HLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細(xì)說明如下表。2 k9 G1 M4 \0 l6 V4 c0 P

* n% ?' o+ u5 r, I- ?! }' n

% B+ c7 ~; l( I" k, B表16 \, e2 {) C( m+ ^- n
hls_ip_demo
' j$ I2 l3 |) }+ M! `5 a) [
bin: L1 C6 Y7 r& ]! m+ q( R6 C# j
IP核測試程序可執(zhí)行文件, E" v% m( [! {+ E/ D: L
project
; l- L0 M0 \# J. c! A
IP核測試程序Vivado工程3 f$ C9 P$ o, t1 Q! ~% R+ U
vivado_hls+ M8 v  u. |2 t5 n
ip_package
' w! L6 M& m0 ?* [
IP核0 a2 o; k" A$ M% E0 R
poject
$ L- f; r) L  i
solution1
# j& j/ _% w: w4 P3 C
仿真方案
6 Q0 i: `4 t4 b  W" s
src  |5 b7 U9 O  T4 m; l9 R! w
HLS工程源碼. U; C$ E/ ?' J; k' w' z
test_bench
  I/ f! c3 Q( I$ u6 E# |
HLS工程仿真程序或測試文件) n! D3 ], Z& Q
vivado_hls.app2 x* L; d! A) Z
HLS工程文件2 O* N" p( T' E% _8 g3 [* w
HLS詳細(xì)開發(fā)說明可參考產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。9 w3 X" I' [" {! ^1 h( B$ P
1 ^% ^1 w$ b* ~1 r
2 n/ q& \5 H6 V4 \+ l
: H) `% y7 Q3 ^/ t
  |6 w6 q  T" H6 b3 y
HLS工程導(dǎo)入
% O0 o; _1 F3 g3 T" P  N
5 a% @# H1 h4 `5 j# O7 i9 q2 E; {" q
雙擊桌面如下圖標(biāo)打開Xilinx Vivado HLS 2017.4,并在彈出的界面中點(diǎn)擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點(diǎn)擊“確定”導(dǎo)入HLS工程。) [( b5 f/ e9 f) y; N! N0 m

8 i7 d- b" m7 x0 G1 C: `2 C/ `

# q. k; ]& p' {4 b: O​: A0 u' R! m: E
圖2
7 X4 i, w( q, ^( Q( _
% j5 @# \- R( @. ~! K' g2 l

# [6 e0 j% Z9 L! q4 A# r* i​
) }% s+ H7 g; I7 G圖3
0 J) C" q1 e9 T( ^) ?4 e
, F  ]3 C# R) A* m4 d! ]1 a# q
( j$ n# Y: [, y* }! {
​8 @' h" X. a& {( \0 l( m
圖4* @& D( n: g3 `( M) h) F
亦可新建HLS工程,并使用C/C++等語言進(jìn)行程序編寫。# r8 p# C' I2 Z) X, }  c8 H
' i! R+ g; M, j2 ]1 @% _

+ R- E0 S9 U/ \  m
" o5 D# i0 h0 t, V( `

3 t* P% C) u3 o' j" |/ s1 E 綜合9 _9 Y$ o. E! |+ A- T' _
; {5 w$ Y. ^1 W
本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計(jì),并生成綜合報(bào)告。
. ?8 K3 a, W4 R  ^# u+ e5 y; i* I點(diǎn)擊界面右上角Synthesis返回至工程界面,然后點(diǎn)擊進(jìn)行綜合。* e: b6 D8 l& @, U' [! k# y

+ Z' _1 Y3 r' F. t5 h7 A6 g; }

, c% Q; ^+ \/ l2 A4 D! h0 b​
) l2 F' W' ?' x3 G, o) ]0 V8 e圖8/ T* V5 v* f2 r' Y) b5 V6 P
; ~$ O- B/ W) S4 W/ V0 L
: D( v* P- |/ p. i9 K
​
6 v# S$ d# ^0 Q( E( |- i, M  w4 Q: {$ _
" i3 s: v3 \  B7 b# H
圖9
- i5 m& p$ {2 l. F0 v4 Q" S$ p" h2 X. {% L) J5 T. }# l; V
% [5 m. d) T" q+ w  c, u% I. A( Z; `5 E
綜合完成后,報(bào)表文件將自動(dòng)打開。# v+ d) _" i/ L) F! e1 m: ?
6 b6 e& T5 L8 G8 ]% H
" C% I' R3 d3 \! j
​
4 `6 [- P/ a* G圖10
2 H, V) L4 u- P3 C6 l, g
1 C' j  f6 d& K1 z/ P+ e
  q& W5 F+ J3 j! @0 ?# Y
通過報(bào)表文件可查看本設(shè)計(jì)的時(shí)延、資源占用等信息。' Q8 c8 ^6 t3 u, H! P

! k3 s$ E5 J2 Y( _' ?6 ^

. |# I4 x" d: @* c5 Q​4 `  g9 ?  n2 i: C4 L* {
, c2 w' o7 [- I0 {0 Z3 Y) l
( z9 ~/ M* i) h# k# L5 F/ Y
圖11. x  Y! Q# P$ N/ V. S& |

; i' q1 ~. c4 r* z, v
! _6 N$ U+ C- R0 S4 c, G* c
編譯和仿真C代碼; @/ e3 Y1 x. s0 D

0 w) C" v3 j' c6 `* G  f仿真程序位于工程的test_bench目錄下,用于驗(yàn)證src目錄下的HLS工程源碼。
+ E4 c* A& C. c7 z導(dǎo)入HLS工程后,點(diǎn)擊(Run C Simulation)進(jìn)行編譯與仿真。
- j+ g7 N6 H- E1 k. I) o! L: E  n6 I: Y8 ~1 V

5 w: \6 V7 J- a, G8 ?! v​8 i+ z3 K2 N. J4 m# E, s. T
圖51 B& I' y  B# J+ J; U
% \+ S, J! J" {! a5 J# M* }
1 j# J# \$ G7 c: `
彈出如下界面,勾選“Launch Debugger”,并點(diǎn)擊OK。8 r" _6 v) y" a
! E: ^, W0 f$ j% _
8 ]' q; l+ Y6 V% j" S4 h5 c
​
3 t+ ?( B, Y6 N; Y2 u9 F圖6
7 @  B8 O$ H( M' D6 C
' }7 a0 {5 p4 U6 A+ g2 `' Z
3 g% w  m" _" u6 }
編譯完成后即可全速或單步運(yùn)行仿真代碼。( r+ {* Z, w( L
​) ]* [; w; m4 O6 M
圖76 ~( R/ H9 c$ i0 j5 x

& x9 a: p- O% ]* A
& l2 O1 Y+ f6 Y$ r9 r

5 u8 F2 o1 f7 R5 c& k
IP核測試
# ?/ C' [$ Y! U3 `; e

/ J% j! q" @  E8 R" z) d9 C進(jìn)入案例“hls_ip_demo\project\”的IP核測試程序Vivado工程目錄,雙擊.xpr文件打開工程,工程默認(rèn)已添加待測試的IP核。7 _0 i6 o0 C( r$ L+ t3 X$ {
- |2 P( U, B0 e7 j- q) [
# O$ _9 V8 G) c# B6 p
​* V; v& y& a! `, {6 b
# Z- N& S0 l8 P/ k5 V1 z6 d

1 h' @$ k4 \% f0 l圖17
) [! ?$ Y: M' Q/ G' [, K如需自行導(dǎo)入IP核,請參考如下步驟。4 R! ]# C  o3 C4 E+ _

) z/ v8 e# N7 w7 y
/ n& `9 L2 g' e: a# F. t# d+ }
(1) 請點(diǎn)擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點(diǎn)擊OK。
/ u% Q7 `9 `2 \6 n- z! M1 D; W# m​
! [0 @) e% I6 ]) [7 i2 j2 I8 a% ~! i* J
; v6 ]; L! `& S$ I" b& F
圖18
/ p/ S1 k( A4 G- T6 U6 d​, N7 K% M, O1 ?8 _; p0 U, T
圖198 i! S" ?- q% g; ^3 k/ N0 H0 h
(2) 右擊“User Repository”后點(diǎn)擊“Refresh Repository”,即可看到添加的IP核。
0 Y* @+ i; K& f& [  c* i9 {0 Y$ w! b1 M​
% f# i# H# A" U! ?2 N( s$ Z$ t: }: p: K$ O# t

2 W4 Y: F" {; s3 Q7 n' U圖20
% g9 `( N& p$ _0 P​
  `4 T) A5 m8 q7 _" R) B0 c圖21
1 j$ B7 F% o( y( j+ ^! j, g; q$ q" G& `8 |' ?' f

5 t7 Z+ G% q+ o0 D(3) 如需添加Vivado自帶的IP核,點(diǎn)擊“Open Block Design”,在彈出的界面中點(diǎn)擊,并選擇所需IP核將其導(dǎo)入工程。
& H" w, s3 j" U) P# G0 I! ~- V
/ Y& v' K' M3 q/ v+ {. `, q

) A: M" {8 `& a  n1 m' K​7 c6 K- ^1 M0 e. {# k

) H2 ?) U: N3 K
, s- ], s3 u; t) M+ ~' G+ Q
圖22. I# Z: ?$ ^+ S6 M. K5 j* Q
​
/ W$ H5 ?  Q& |& \* _* b" U圖234 A/ j" T" X0 v( a
點(diǎn)擊Vivado界面左側(cè)的“Generate Bitstream”選項(xiàng),在彈出的界面中點(diǎn)擊OK進(jìn)行IP核測試程序Vivado工程編譯。
* u8 n. _1 p2 y( C+ a3 [​
2 S. C4 u. f4 w/ o- L4 g
5 L* \" C7 C' r  R. o( W$ n
8 d9 _2 o- E" K9 z3 S. v/ b

( X  ^: ~( \# X, R% w
/ B0 i! ~- l7 \4 h
圖24
. m9 i% J$ B3 O% r& A3 X6 {# f+ F' }0 |8 E- Q) p6 _% j

$ {3 L( e" n9 f3 M$ ]. B$ B​7 |$ W( j& G5 P
圖25
# z3 [$ t) ]! H+ b' Q+ \) }  I; w1 O! P
! Z. x: `" c# g& t& Y1 ^' j
編譯完成后,將會(huì)在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。
6 Q' N$ n/ O8 q4 R+ W! _
" k( o  J/ A1 \! H& R" d
% J  {+ y: \$ V
​' ]$ c/ r" F* |; ?
, O0 S/ J6 ]# e; k
2 Q) u' g1 y  o
圖26
$ o+ u/ I. f) z1 c; @
# i4 V( R1 r0 l/ v
: e+ v4 I8 u! ^2 [) i6 e
請參考基于Vivado的FPGA程序加載與固化手冊加載.bit格式可執(zhí)行文件,即可看到評估底板的LED2進(jìn)行閃爍。
" l2 A0 [4 s; U% i/ r6 p1 IIP核封裝; ^; a8 _* ^/ R0 g  Z6 ^% Y4 P0 G
. a8 o- u; `$ q
綜合完成后,點(diǎn)擊生成IP核。
7 ^) a2 E4 r, N! H0 x​
  C( u) W5 K6 G0 C& u
* d* ^% i- T; `/ L; J
" c4 `  I$ Z1 p1 H
圖12
2 d) Y1 Q' y# s( M* R8 l& R' {7 i! ?3 ]9 c% r) j
1 R" }5 w6 w0 Y9 u6 ^3 N0 E. l1 V
​
+ G! S1 k+ t  r! B* R6 t7 V圖13+ `' p' j3 a& Y
​! V3 ^* W4 J# t) X$ z- t0 z" f
圖14, q* k& Y  W8 ?% R
運(yùn)行完成后,將會(huì)在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。
/ I+ g9 j0 t- H, V& c$ B  X​
, [9 u, o: u, k* O+ h" A
; X& k8 Z) {. U3 \) v7 R; W0 F
6 `! S+ J# I# f6 e& I
圖15; L6 Q- E7 ]& c0 U
​
+ ?6 \1 v: ~: t  T  s圖16- j/ r4 V1 b( c7 N* n: W

- D8 B' s, z& Z& s$ T) z6 H3 D! D
: x' f( L, c1 z6 q6 y
l 更多推薦
+ A5 H! ?( y! L) o% ~
( N  @& I$ `5 I: j( X3 N
​
8 G" o4 L7 `- v$ r* G, \0 }7 ]
% C. M8 f" o, m+ j
3 b" q3 `4 _5 P" d8 P
圖27
* ?4 `  M2 Z% a. {  H0 j, z4 w
. x' o5 v1 u/ ?- `
嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload

0

主題

9

帖子

36

積分

一級會(huì)員

Rank: 1

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

1

主題

31

帖子

103

積分

一級會(huì)員

Rank: 1

積分
103
板凳
發(fā)表于 2021-10-22 09:04:02 | 只看該作者
獲取資料,謝謝!7 P  ?: j; y3 N

! C$ K( {+ F$ H! X" `5 O4 [4 F

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

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

本版積分規(guī)則


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