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

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

搜索
查看: 3473|回復(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ā)板
: ]$ o8 V& z5 ^4 h, M9 D+ T
% x6 F) i* m3 W# Z+ r0 O# j+ a+ u( o% ^

6 x. t+ `1 X2 u, r4 L

. E' J: t9 N" c- m前 言
8 {3 R6 ~9 q! r+ P! P
% K* o3 }! ^: q7 Y1 c) ^* P. @7 c4 B
本文基于創(chuàng)龍科技TLK7-EVM開發(fā)板,是一款基于Xilinx Kintex-7系列FPGA設(shè)計的高端評估板,由核心板和評估底板組成。核心板經(jīng)過專業(yè)的PCB layout和高低溫測試驗證,穩(wěn)定可靠,可滿足各種工業(yè)應(yīng)用環(huán)境。
  u$ A# H' i  i( a9 _9 }評估板接口資源豐富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用戶快速進(jìn)行產(chǎn)品方案評估與技術(shù)預(yù)研。
# M6 Q" M" i! I: x8 {8 J* {; V3 Z5 g0 i
2 \$ L: y5 o9 ^
$ U8 u. j. u, W4 F

- _3 n! }4 Y2 S8 j9 Z1 S4 F  V; E​
3 h4 i1 P8 p; g5 d' Z
+ B2 ^5 A) `0 H

$ s$ Z% G1 z. a, H圖1  TLK7-EVM評估板
. q9 Q( m) K7 W' \# ~4 u( [; |  y% d% n7 `2 z

$ x  f/ e2 K' `$ b7 X; H, U開發(fā)案例主要包括:2 [  l. L  |# Y# F# M3 S% X
l CameraLink、SDI、HDMI、PAL視頻輸入/輸出案例
* P& i3 N% U8 ~6 X' g* x7 _7 g9 ^l 高速AD(AD9613)采集+高速DA(AD9706)輸出案例
8 M8 \8 y) b& sl AD9361軟件無線電案例
* {. P0 y' H9 vl UDP(10G)光口通信案例
$ w5 C* T* |* ]. m- R+ _l UDP(1G)光口通信案例
9 ?) @, v" u1 F/ h! }3 pl Aurora光口通信案例, {) g1 d/ Z- ^4 h& L
l PCIe通信案例
8 ?5 V  s# K* o9 X" k' F/ l7 i2 t8 Ul 案例源碼、產(chǎn)品資料(用戶手冊、核心板硬件資料、產(chǎn)品規(guī)格書):site.tronlong.com/pfdownload
$ {/ W4 W) X" O0 ~, u: N# w- P
' @# y/ {' h1 O5 ~/ [3 }% d) g
5 W% s: O; C3 O' R
, |0 k9 Q3 I& e; E
7 A% ^6 `. }. q$ _- i$ ]$ K3 o
本文主要介紹HLS案例的使用說明,適用開發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。& u4 p" c' |$ P9 h- t: @1 u
Xilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時支持基于OpenCL等框架對Xilinx可編程邏輯器件進(jìn)行開發(fā),可加速算法開發(fā)的進(jìn)程,縮短產(chǎn)品上市時間。
$ d# I. t2 ]. @4 X! u0 A+ y: [
! ~1 s) J. `  L; r" `

+ n4 \& Q7 X% ~. g7 ^% ~HLS基本開發(fā)流程如下:( |; A/ F% u5 A$ F: x# s5 c
(1) HLS工程新建/工程導(dǎo)入3 g3 [4 [' @* ?! h  u
(2) 編譯與仿真
) ]+ Y/ |# `6 G( U* T8 \+ r1 x(3) 綜合  p9 O. Z1 Q! B& p$ u
(4) IP核封裝4 S5 ?8 ]% \/ M; o
(5) IP核測試4 w" a! e% S2 \+ ?3 J* O2 R, j

+ l& [* @4 D; y9 b* d; v

1 w* e) N9 U: `) a2 o+ D- `HLS案例位于產(chǎn)品資料“4-軟件資料\Demo\FPGA-HLS-demos\”目錄下,案例目錄詳細(xì)說明如下表。0 T7 Q) q9 I1 g2 z$ F7 I
  K# d! Z0 d: P+ m# W( O2 D% |$ C

% w# B" B) O$ B: P3 N  g; w表1$ z6 @+ o! a+ ~# X# s: i
hls_ip_demo
# ^) N& b9 H& q$ y" [+ H
bin. s' I9 Y& Y6 F0 l, q
IP核測試程序可執(zhí)行文件# ?9 G9 U+ b6 W. m# k$ @) v) Z: T
project
; u2 b9 a( j. S1 r
IP核測試程序Vivado工程
+ r( j; {4 N' m/ F
vivado_hls
5 X7 M1 h6 l3 s
ip_package
* n3 Q- \1 Q# ?% e
IP核4 c7 Z- ]9 L. o" s0 b: l$ Q5 _1 h% O2 Z
poject
. M1 o0 O7 J2 H& P7 X1 \- `7 I
solution1
( t1 a0 B6 B6 p. e' W- a- ]5 _1 B3 W
仿真方案3 H( a9 H" j1 m& a/ Y
src
6 ^* r+ z' C6 R0 w; G
HLS工程源碼" M7 r" h: j3 j% l9 v2 Y" l
test_bench+ ^8 s5 C7 F9 I. t" w+ |. [
HLS工程仿真程序或測試文件( R$ f/ m7 o7 V8 s/ _
vivado_hls.app3 u. p3 d- n! _
HLS工程文件
& ~# P2 P+ s6 w) m. Z# ^6 z- z0 j6 a
HLS詳細(xì)開發(fā)說明可參考產(chǎn)品資料“6-開發(fā)參考資料\Xilinx官方參考文檔\”目錄下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。
3 e$ x8 d" r7 W" Y, R# }
+ [% }6 _( J5 |: V6 Y- V

. b5 ]- H  ]$ Q2 f5 ~- D
7 _+ L& B# A$ D0 G, f& B

8 O0 Q/ U, G+ R7 o& D0 ^4 \0 ~: M& _ HLS工程導(dǎo)入
1 v# J2 J. @' ~! }

" G, x" ~/ R' h/ o5 f雙擊桌面如下圖標(biāo)打開Xilinx Vivado HLS 2017.4,并在彈出的界面中點擊“Open Project”選擇案例“vivado_hls\project\”目錄,然后點擊“確定”導(dǎo)入HLS工程。9 L- H9 \6 s5 r! N6 ^
! d& H# V5 Y& \

. w8 C6 H' B" O0 J​7 _* G- G- O0 M% L
圖24 d0 w, c6 {5 n& p9 b. A2 L
* V  v0 l7 H# ]$ {' g  n3 l" L8 b9 r9 p
4 @* a: x. P! P% S
​
( L4 Z: d6 R& M. w5 y圖37 ?# j7 D7 O% l- E, V8 `! S

# j& ~- f3 d, L& @' c. J! ]

: U( F$ D) k: h​! v' {; y3 ?: [+ ~$ d
圖4
" m( k" Q2 _6 e% _! o2 [亦可新建HLS工程,并使用C/C++等語言進(jìn)行程序編寫。
7 q8 }0 P$ D) U1 {3 T+ w* h8 f3 F8 `8 C- x/ |! S; E

; m! N# {: a+ n+ T4 Y) ?" A
2 h0 r( ~3 V# u
& V' s3 {" K. e& ?
綜合
1 Z+ b: v* X- e# i

6 @/ p# {4 h' E- |本小節(jié)演示將C/C++等程序綜合成為RTL設(shè)計,并生成綜合報告。- h  Q( |0 y& }) i* k) J0 \' u
點擊界面右上角Synthesis返回至工程界面,然后點擊進(jìn)行綜合。
% f& [9 [" X/ G8 g! |& |
7 _' M6 o$ U2 G% e& X/ N9 s, _( |1 {
" m  H, f8 b: Y& }7 d; W
​# |2 K' l) p" ?/ Q
圖8" m! m5 `1 `7 A8 `0 F
$ D% T; F1 F( Z1 }

' ~- u3 B0 |, B​
; }0 g9 L$ @: \3 ?: W2 C
  f. |- M0 k% J8 z( {
$ j( F, a% |2 h
圖9
2 z# X5 Y+ R# L3 z
1 V7 L  H0 o6 @8 \* G

$ l' {, I5 j2 d. X! [綜合完成后,報表文件將自動打開。
5 i. P! K; O8 l, \6 u
" x; R# J- E! B+ @
0 _/ l& _$ h$ W. C
​+ H9 J* M$ C5 p5 G' H
圖10
" \+ \0 v4 x; w1 e9 Z8 E
, o# K3 y3 v% v  ?/ p& ~! G3 F
. D( I2 H6 k" Q& r0 x
通過報表文件可查看本設(shè)計的時延、資源占用等信息。  C5 v, ~7 G0 K" ^+ K: x
  M2 w- K& D  D2 B) ~, o% r# _

# ?. }$ @, ?" N​
& w5 P; g. w# S$ y" u/ l$ y8 x& M( E4 Z
, B$ D- R$ r! e
圖11! k( I$ J+ h7 ]& H& L8 b( L
  p+ ?/ `: ~- j2 D4 T& b

& X  e* |5 J% g9 Z編譯和仿真C代碼
, G' A: D  s2 S  M2 ]6 M8 V
8 b8 p8 P0 `. Y1 Q
仿真程序位于工程的test_bench目錄下,用于驗證src目錄下的HLS工程源碼。# ~! e3 s# M1 G" f: ?+ ~5 I
導(dǎo)入HLS工程后,點擊(Run C Simulation)進(jìn)行編譯與仿真。
9 _6 _8 o+ Y# ^4 d% c/ }
# [% U. H: C0 @

0 r$ n9 S2 s5 Z2 U. c( B​
0 R2 q0 C) k. \6 v: d圖5
; c1 |$ [  B1 Z7 a
, R& J( {6 W# A

* I+ U' e7 ?& H6 Q3 Z/ H8 @彈出如下界面,勾選“Launch Debugger”,并點擊OK。7 m: s! q# P# p" ]
! Y+ R2 t1 F( b: z% B
- b8 `, m. B/ ^- m, W! z
​
, K' P# U8 m% B0 E% z  Q: I. T圖6
$ o# m0 ^& A6 a8 ]0 F2 @( d: Z6 l9 n% r* W

/ J/ O; _0 Y5 T編譯完成后即可全速或單步運行仿真代碼。" J5 F" t8 D# x: w" B( E
​1 v: r; z3 K+ s% w; f
圖7
- J3 J' U! S0 E2 o8 |& M- R& ?/ g- V# x6 I3 U/ c9 z

) l. @6 T1 i  X* A: L' Q
) S9 n$ U6 n& C1 f9 Y: G4 D
IP核測試. k2 }! S# Z7 {1 a8 o( T2 D

% C. ?3 n. K+ d6 c% Q進(jìn)入案例“hls_ip_demo\project\”的IP核測試程序Vivado工程目錄,雙擊.xpr文件打開工程,工程默認(rèn)已添加待測試的IP核。! z6 [+ q/ {* G! g* w) \

7 e% F4 Q! |$ f7 w! Q3 ?  z
8 z: Y# J6 l2 @9 R
​
, `* C0 y  b) k; u' S( w# s7 O" T4 h0 x# C" N' e8 q9 e+ m
  k- t( m; m' ?9 ^9 e
圖173 {( P% ^+ i. o) a# k" ~
如需自行導(dǎo)入IP核,請參考如下步驟。, ?$ [) ]6 ~$ D1 ~6 l. e8 M

% u; M1 Y, C9 u& O
7 a- S+ i" _* Y5 k! \+ k
(1) 請點擊“IP Catalog -> User Repository -> Add IP to Repository…”,在彈出的界面中選擇IP核后點擊OK。, x1 {/ @1 ~; ^5 B  ^4 N  R- ^7 l
​. f! s$ J5 i5 m; q* _! V6 W
% M3 o$ A# U- m* r$ y! y/ U4 ~
6 O/ R$ l, `" |  y. Q4 U
圖18. L. G# G! P  G
​
: c6 V( U8 q  v9 l2 `! S圖19
/ a# Y: I/ m, N5 |8 r# T* R5 m(2) 右擊“User Repository”后點擊“Refresh Repository”,即可看到添加的IP核。& o' l* a# ]1 W9 H4 J) {
​7 K) X0 s& W6 L. h% ?

8 E- V' }! q' W2 E2 Q7 ?2 F

. ]. N! w) M0 M% D; C圖20  g, k( j4 P, [5 F$ S! a
​& c3 M9 B2 G: ^6 ]* q- z- v8 k
圖21, `/ ^0 B% K% y" l: L# A  z

2 @  P( s* p& W# c4 \! N
$ E7 x/ Q' |. V( l7 D7 k
(3) 如需添加Vivado自帶的IP核,點擊“Open Block Design”,在彈出的界面中點擊,并選擇所需IP核將其導(dǎo)入工程。6 L$ P* E; |) G6 N# t9 ^. i

6 l) U! g- H1 d0 m

8 l( G+ L( Z4 ^0 R8 f2 O8 H5 I​$ F+ v" w8 t6 m; W0 e* v9 `
( g+ Z% \( Z, Z* O" O3 R

+ g/ z: |% K0 }2 v圖22' [$ R) n4 O& j$ b4 x+ p  v4 S
​
0 X" ]8 j, s+ I1 |. X6 F圖23
8 z2 v" T0 B% q* m* d: @+ Z點擊Vivado界面左側(cè)的“Generate Bitstream”選項,在彈出的界面中點擊OK進(jìn)行IP核測試程序Vivado工程編譯。$ d, g7 B1 z4 d
​
* e2 s& a9 S5 {$ j2 D+ ~# c+ Q; C3 q4 ~/ Y: r; r  W/ ^! W
) @% P. J* M9 P( B1 }, F4 S3 h

, |, O, p( X5 a( g0 Q
9 t3 J0 k+ u1 Q! a* K8 F) r9 |
圖24
& t7 e) k! \$ d, {* p' ?
3 u1 x8 t$ T! f/ Y* S7 X

% k" A3 z6 }% v/ N​- z6 \" \' S$ d- ~1 l
圖25% x; m: W# }6 `7 r7 m5 a- f# h: I

. X; M) L) ?/ ~. W( e9 F4 `" `

  N# }9 R* {! i# U* \4 F- d7 ^" L7 G- ~% W編譯完成后,將會在工程“l(fā)ed_flash.runs\impl_1\”目錄下生成.bit和.bin格式可執(zhí)行文件。. [& k" Q$ x" M, b0 s5 X
9 |; w" f% b3 y
% k# J2 w2 {" i8 c( K2 N5 y
​8 V) Q. s) ~9 t# `) C$ \
" I1 }  s/ c+ x: U" {% \9 I$ Y

* f( v7 b% h7 B! @% x; S' w/ P圖26# Y- X9 o% V! X8 u! m0 B1 z" s: \: `) i1 W

6 D8 d( E! q7 |) [! e
2 F/ n+ G* k, P# [; e3 p: {' [
請參考基于Vivado的FPGA程序加載與固化手冊加載.bit格式可執(zhí)行文件,即可看到評估底板的LED2進(jìn)行閃爍。/ D3 u9 H  i, s, J! S
IP核封裝% r4 W6 ~9 J( m$ e: v

4 r$ h3 N, ^/ G' @綜合完成后,點擊生成IP核。
6 Z" f$ B3 l& a' O! u2 v​/ }: S8 [- S  q  e

- u6 c" R7 M; s. ?" t' }& O+ H6 y* ?4 ~
8 U) S' g& g9 O* Q( W( m4 J
圖12. U& a7 U# M9 I
% u, U) Z1 m8 s8 d2 l9 s

8 F4 l/ L+ n* A' J$ W5 H​1 s! n- e% B! p" s* p
圖13
9 M6 N' t/ Y( L) m4 |​) H% _# l7 n' p6 C9 Y$ r9 v7 m
圖149 ]0 Y4 g0 t4 {2 c3 m! D
運行完成后,將會在案例“vivado_hls\project\solution1\impl\ip\”目錄下生成IP核。
* N5 m! @! f; X+ Z​
7 ~& |7 j: B% I1 e4 z8 K4 n- T, t& A# u0 n9 I& {4 p3 S

! t( k7 W0 S* E$ i圖15
+ g: W2 J6 c- k+ L​4 J3 v: r" ~/ q; \; d2 ?
圖165 K8 r- S5 Z! b  ^# _8 A
/ P* t! s4 F( \: B; \1 {, p: v
( Y7 e& K# j9 |7 X2 _# `8 H9 N
l 更多推薦
! m5 d# V1 ^6 Q! z" p
* S( g1 t& \; D$ Z: w. H( Y6 w& m
​8 v6 R. Q' Q' f/ R3 I' ?2 k' G  `
: ^- q8 w) Q# T% H

2 G' j, v4 h% R) Y1 e6 b8 J圖278 M; l! M" h. {7 J& u

8 J% ]0 I7 d  S- ~, n% `
嵌入式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 | 只看該作者
獲取資料,謝謝!; {$ C* h& u" s$ V0 Q% E$ j
1 t% Q' E9 N+ h/ g# E4 V
回復(fù) 支持 反對

使用道具 舉報

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

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

本版積分規(guī)則


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