电子产业一站式赋能平台

PCB联盟网

搜索
查看: 4015|回复: 3
收起左侧

Xilinx Vivado HLS基本开发流程|基于Kintex-7、Zynq-7045_7100开发板

[复制链接]

678

主题

902

帖子

8293

积分

高级会员

Rank: 5Rank: 5

积分
8293
发表于 2021-2-19 19:05:15 | 显示全部楼层 |阅读模式
FPGA的HLS案例开发|基于Kintex-7、Zynq-7045_7100开发板/ D5 U" D! _, x' F

  C$ d5 s7 s- ?7 J4 J% z
4 q0 G8 Q1 g+ U6 l& s7 [8 w8 W
7 ~7 h# b7 b9 G8 N+ K
前 言
) E3 l. w# |5 _! V, \% c1 Y+ _

2 R7 h, n, C# S/ x5 R, t本文基于创龙科技TLK7-EVM开发板,是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。  m* y: C2 Z+ `0 P2 F: L
评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。" B+ o2 M( ^* |4 ~' K
0 _" z& w& G6 U3 E& Y. h) E
1 C/ M2 e- J5 g5 b
/ b. C/ |( W9 j% Q  z4 l
* O) R! R* v  S/ l5 n
​
9 P; F' ]: h9 G+ K9 S* \7 O5 d. O+ [4 j) C( B; ]! u
  ]+ J) d1 g  ~7 _* o! l
图1  TLK7-EVM评估板
# o* ]  i8 G9 p
( g0 l3 M6 Z! P4 z% c& P# i

( G( f2 Z5 c8 ~* t) ?开发案例主要包括:2 J2 {' m4 Q# u  x  @( s' z
l CameraLink、SDI、HDMI、PAL视频输入/输出案例
( L  E# N; Y- L! kl 高速AD(AD9613)采集+高速DA(AD9706)输出案例2 N8 V$ {  O8 b3 G0 q5 M' v( x2 ?
l AD9361软件无线电案例
9 N0 ?" y- U: I6 _, \: Zl UDP(10G)光口通信案例+ b" Y3 X# {5 [. F7 E* D
l UDP(1G)光口通信案例
# a$ M; i0 m) |4 @7 Q. t8 `l Aurora光口通信案例
( n/ p  {  N7 J. h( [0 I; R$ {  rl PCIe通信案例
7 ]: }  n- J+ l4 ~  x: g8 Tl 案例源码、产品资料(用户手册、核心板硬件资料、产品规格书):site.tronlong.com/pfdownload. C" m" _9 y0 g5 M5 x
  p) g0 R$ v! D  k8 @6 R, u, x/ t
6 S0 Y5 @6 h+ P- ?/ Q
; i! f8 ~) N6 `2 V( U7 }

0 `7 Z0 G% u. M* \本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。
/ @, Z  K% Z: |3 h% nXilinx Vivado HLS(High-Level Synthesis,高层次综合)工具支持将C、C++等语言转化成硬件描述语言,同时支持基于OpenCL等框架对Xilinx可编程逻辑器件进行开发,可加速算法开发的进程,缩短产品上市时间。2 L$ p8 I* X$ [1 A% ]9 Q
! M, E& d% }; d  z$ x( G3 p

1 K8 q: C* v5 Q* W' n2 t2 J% ^' eHLS基本开发流程如下:
9 o! ]- i/ z! b* B; A1 i2 g(1) HLS工程新建/工程导入
2 q% k% N( _9 T9 v! x  h% O(2) 编译与仿真
' f+ X* C- ?5 s- b1 V- f(3) 综合
2 Q# X0 l/ V& M# f' Y$ W  a% v(4) IP核封装
9 D4 i/ {, |# Z: L' o(5) IP核测试" D" b+ v9 n4 l4 A. W

% I( y5 R) f8 P4 D3 ]. y
3 F$ U2 m/ N) t! L# b2 {
HLS案例位于产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下,案例目录详细说明如下表。
" l' J. h! C) _( v3 n6 z# G+ _7 m- n) e# I+ [# t& H1 I$ T

4 e4 i- _0 t, W, a1 `0 `表1- N  ^$ {1 T; I6 k) ^8 A8 ^) Y
hls_ip_demo
8 e+ }. d5 A) n3 N# p
bin( s& r4 V; d' A/ e, c
IP核测试程序可执行文件
& e2 ?5 _( S9 n; V( A4 V* |
project
9 i; G4 K% |- [5 x
IP核测试程序Vivado工程
4 N2 V' a  n1 g5 @2 @( z8 Q( _' y, ~
vivado_hls8 R; p0 O  T0 y+ D6 C8 K
ip_package
9 f& o; e& {! B, O
IP核& A$ @9 \, ]3 C' j; U1 m3 H  l
poject
( {" y9 F6 a& l! f
solution1, T. y% d$ m3 w; ]
仿真方案4 n+ h5 Q# [2 Z" a1 y; G3 ^
src/ `% t' P9 Y$ ^4 U$ D6 T: s
HLS工程源码
- q1 X0 G; y. g* s, {' i% Y
test_bench' m6 ~, ~& _+ V
HLS工程仿真程序或测试文件% Q! ]4 f! F8 z5 n1 n8 O
vivado_hls.app" O1 k  k' S" j- I- I& _" h2 |( x; {, Z  a
HLS工程文件% K) u, j! U+ g+ r
HLS详细开发说明可参考产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。; T9 A9 v- y# A7 L6 g0 g/ I
7 K- T# ]) M* r# w' _5 Q

: k, ~( R. Q7 p, \7 @/ D, P1 m5 A( l. M/ @0 p
4 ~: y# b- A. e! g7 V2 m5 t* n
HLS工程导入
9 x0 S8 [: ^1 W  m1 V; V

0 T' O) x  ~- S双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project”选择案例“vivado_hls\project\”目录,然后点击“确定”导入HLS工程。
5 ?1 c) U7 C5 S. D. O8 g* I! Q% z# k: W2 M
. o6 m/ q: X2 A3 h
​
/ s* R$ L; p" o* F- ?图2
& @  p% Y* k! Y) X6 q) _# o3 x
/ X' L9 A+ s( L5 J# r5 L: ?

- S# X4 S3 {1 S​
6 |" Y4 ^. m7 s( t! ^图3
) K6 A* n, U3 Y9 [& c8 F1 u' N+ o* E7 `) I$ W7 y/ U9 X8 I
% p5 L( X  s& e
​
9 i% N4 O* P5 F# [图4% w% I, U1 b5 B! a, A% a
亦可新建HLS工程,并使用C/C++等语言进行程序编写。, R- y+ n4 _7 d
+ \  K+ Q+ j% P! @7 p" ^( L% K
# ~6 Z5 W6 |  _6 K6 ~0 i3 I
' w9 s6 D7 |/ g; V% V8 E: c
5 R/ O! u9 J7 ~, D, `
综合. `, {- \& m$ c
0 Q$ q3 @) b' l1 h6 _& W2 O
本小节演示将C/C++等程序综合成为RTL设计,并生成综合报告。
' v7 D8 j: `6 B, \$ U点击界面右上角Synthesis返回至工程界面,然后点击进行综合。5 r1 Y, N$ h+ m% ]# C  |

2 G; A: H) {& y2 `( H+ f# [5 }& |) d
) s  }# E2 N9 P, r& \$ Q
​+ D: _# s# q, b, b1 B/ N
图8
4 y$ Q* Z) R/ h' u3 B) f4 q# o$ d; @' o' Z5 i

5 H. J# D- `) [: q! p​/ u% b! B! I/ \3 v3 E
" }: e) S3 d! X# D+ A, H
  ?0 z% {9 c. j, C, Q
图9; Y- w9 T* F: g+ y

! D- a4 U  G, w

% a+ ~. z! s7 I0 w9 n综合完成后,报表文件将自动打开。' G& ~" l" k) s! W1 ?9 M; J9 j

1 t( t7 {" J4 w, V: u

" ~3 a! e* ~7 L, k: i" Z​
) |% \3 i2 |8 n3 `2 D图10
7 m% j7 g! ^" b9 {* k
/ H+ F8 s( X) ?, Q+ k
! l. U4 G: D+ K
通过报表文件可查看本设计的时延、资源占用等信息。, D" _+ K& q2 V2 V, H7 `5 O
. G+ @* i' n9 c  ^9 Z, }# g; s% J
/ u2 \7 p) S4 t8 Y' y- g  x- u! X
​
4 B- @, Z! t, x7 M6 N1 J6 L1 z7 K1 H; M# {/ }* K/ P/ ~
/ r& h( W1 c$ U& N  p
图11% N" x$ R& X3 `
; c5 B# _  K+ ^) A* D

. C1 I  p6 a% \- X3 y编译和仿真C代码& a7 t- {" r/ w7 L: J! h2 ~% v
* N( H. \3 v$ |/ z' I, H
仿真程序位于工程的test_bench目录下,用于验证src目录下的HLS工程源码。
9 ^# e+ R$ Y; l0 u  Z导入HLS工程后,点击(Run C Simulation)进行编译与仿真。
3 ]" Q. T2 ]. r" ]6 P8 z* Y1 L: w- O- e7 D- D- t1 x/ ?

3 v( K9 ~4 E  r" r4 u7 ]% o6 G​
# Z: X$ C- N% k2 C. U图51 }8 B6 n2 k! }1 b  x8 F

/ }3 n1 p2 A! b
- w+ g* G8 X, y) d- Q' N
弹出如下界面,勾选“Launch Debugger”,并点击OK。2 R/ {1 `! t: `6 F2 p  L0 D0 H
, F7 E9 w3 |8 ^# Y, H5 {

% i* f/ v; p0 B0 a1 e, e+ n7 v​
2 p5 R. N) {3 X5 c$ J1 J图69 q2 u8 h+ Z9 ?' q

; H6 G5 Y' l7 }! j) v  j# U# I6 i

0 ]& _2 X/ Y; m1 i- m- N编译完成后即可全速或单步运行仿真代码。* n' {8 X$ ]# Z  E" p9 Y
​5 b" i/ o5 ^$ C; T& f. R' g% u* c
图7- W7 S. _1 x/ ^# t

4 k+ B7 h) z; I- N8 G

8 O4 R; z; A9 Z: m& M( C+ q( \& [* I' {& _
IP核测试
. X# R- E8 D0 ?
0 o- ~" B$ Q* f3 U* S& o% [
进入案例“hls_ip_demo\project\”的IP核测试程序Vivado工程目录,双击.xpr文件打开工程,工程默认已添加待测试的IP核。* P# W( M1 m: Q5 j' y- Q

8 N3 P; U( }( H2 m0 V. S, t$ ]
+ {% n% \' s, u. L8 _( g
​& E1 j* a( H+ H: t% t6 d
( b9 [6 }& a, e5 u3 |

& S% R6 x* O' k: L  r% n+ @$ y图17( J# ^7 b- x* X0 [' H2 B! w
如需自行导入IP核,请参考如下步骤。
+ g0 a. }' a1 z% K' h) |
3 ~" Y( ^) a2 U5 ]

+ M( f0 U$ t- t7 \' h7 r6 O(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository…”,在弹出的界面中选择IP核后点击OK。
4 H# b% w# I* T. {( c​
' W- C' ]7 N/ Y  @- ]  @% |
& D% \2 R" T- Y% \+ j! Z

1 K" O& p: G6 I1 l# N图18, q5 A/ M9 @# w$ b. n: r; x
​
3 D5 P, i  L  s' }, W* K图199 T% S* G) N- K, `) H' h
(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的IP核。8 M" ?0 f- n! n+ O7 t& B, p  d
​9 u, Z1 G0 v8 o5 [, A3 N+ ^
- C$ u' R" Y2 y. `. v; C. k8 q
" V$ S! L0 v3 v* i* ?9 \; p
图20
7 B, m- I9 Y$ Y3 D# P8 R3 |​; w( T. F5 r; q& o6 n7 }) ?
图217 E! A- @: G3 Y* T

) |4 _8 `  W* F, b

& g5 _0 A2 ?6 |% S/ T(3) 如需添加Vivado自带的IP核,点击“Open Block Design”,在弹出的界面中点击,并选择所需IP核将其导入工程。
1 i2 o- L- n; P1 B1 A1 y: c/ E/ X0 Y* r
9 `  w! _) `- {' G5 `9 I' X
​
! y/ @# c5 D; O- y, X* H. z% r& L, D% p2 d* H

2 @4 G$ @" J# d7 T: r* E图22
$ i* f* o, G" S! ^6 H4 a0 K3 p​! n9 V, u6 z# C: T' G$ ?3 G; A3 |' o
图23
" ]1 h$ l- b: p点击Vivado界面左侧的“Generate Bitstream”选项,在弹出的界面中点击OK进行IP核测试程序Vivado工程编译。4 S6 |; m+ b% L8 Z
​
+ ^; c5 Y' G' N$ D, q8 D3 O& K4 D/ U% R
  p4 g, Q! {6 E* |3 V6 z1 `& u) y& [

5 @7 H5 V$ D: @2 @3 ?

: ]% L$ D* F- r2 {6 f" Y! B9 F图24
6 ?. u& Y. N! q# s1 B
4 j5 [" t1 c" O* g# ?" m# x9 R
2 P& f, x" z5 M
​; x  ?% r- a7 w2 \& K' T
图258 Y0 z" A+ W- m# P# s" o- u
/ r, ]3 S+ o& H* t

* `) M7 S* O# n# ~( R编译完成后,将会在工程“led_flash.runs\impl_1\”目录下生成.bit和.bin格式可执行文件。
8 C5 _' Q5 C, Z+ ~& Y; d1 j( \# p0 {/ ~: p0 Q
, G+ v0 `1 v1 D5 x) G) x
​
; U: X( E: d# Q- r- E* `/ z9 ^% ^: X/ C- c- H

+ O) S$ d: \& k1 z图26% p2 Z  M6 q1 f0 h3 V- ~0 k+ ]
8 r  l6 m$ Y. K% y) Z
6 O1 G5 ]) l. f
请参考基于Vivado的FPGA程序加载与固化手册加载.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。* D6 \0 z  |  Q; r8 p
IP核封装' i5 m0 g# V8 V# P) P. d6 j

* w( C5 g* J: C8 A7 T$ t: @综合完成后,点击生成IP核。8 A/ A/ h. N' P- Y+ n3 v* R
​, s( I1 X9 |: x9 Q; p

+ J! m, K! o7 O  }8 b; j" q

1 m8 y* T5 U/ l% o0 v图12  O3 f6 ~8 x0 P  x+ R7 x

3 K0 ^% ]$ \9 R2 F. D
% }4 Y& t. {8 N9 {/ m! B
​$ F9 v/ Q6 l+ c. G# _
图13, j2 i8 K% H; N6 s- r
​
( W. t9 c1 g1 \6 B# k+ Q) i图14
- J7 q! q; X7 C7 @0 \" s运行完成后,将会在案例“vivado_hls\project\solution1\impl\ip\”目录下生成IP核。% e5 \' V7 I+ g! q- B( l+ d5 ^/ q0 w
​% Z- D; H, A0 y6 h; n
, _, W( J- A9 U

( W# w+ k# N  X& [7 s( J* S图15
& l0 l9 P9 ?/ T4 r$ m​% n' A9 A9 @- _) Z" P3 z/ p  [
图16
5 W* m( w' z/ m( K
9 }: F- I3 q/ ?0 |! S' k8 u

' W% U* @) E, V9 }1 A' k; k0 gl 更多推荐: [, j( ]7 }/ |: G# Y
" V" T0 Z! ?6 U" i' J% @8 i+ x. b
​7 t! i  u& ~9 ^. K0 Z9 t

) E8 f" \2 {6 a1 s( U  ]

8 u$ e. d: k: J& Y( A图27
# l+ m) A: u  v, y
& \8 l0 \, i4 W% a
嵌入式DSP、ARM、FPGA多核技术开发,学习资料下载:http://site.tronlong.com/pfdownload
回复

使用道具 举报

0

主题

9

帖子

36

积分

一级会员

Rank: 1

积分
36
发表于 2021-8-30 14:53:56 | 显示全部楼层
HLS的开发对于底层写驱动的人的冲击挺大
回复 支持 反对

使用道具 举报

1

主题

31

帖子

103

积分

一级会员

Rank: 1

积分
103
发表于 2021-10-22 09:04:02 | 显示全部楼层
获取资料,谢谢!
$ _* q. S; ?/ x+ n+ E# n- I5 l5 T% M7 ~4 l
回复 支持 反对

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


联系客服 关注微信 下载APP 返回顶部 返回列表