电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3675|回复: 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开发板
% O8 V3 W7 k2 o3 @* n! u: e; E

3 J: W+ B9 j8 f4 C! ~( D
% g9 F" \3 ~; x& N5 \
" x0 q9 Z8 Z  h& d
前 言2 d  [# Z+ j; z6 H) W

  W6 p5 y% i! c# F" T9 ]本文基于创龙科技TLK7-EVM开发板,是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。% X1 [# W( c; q4 k3 w/ e
评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。! @5 P% z7 K* r8 }

  x; d$ r1 V% W! T& b- M

' E2 Z0 l- A% |' Z2 z' e/ @  [, D

/ U" Y, A1 `9 \! m' K​
; v6 [2 }* O* `/ Q8 ~1 h' F% g7 x4 c( o: N/ p# Z; L2 ?' e
9 D* I5 s$ ?. z) O' ]: K6 H
图1  TLK7-EVM评估板8 O& L+ x" E$ D8 r& ~6 Y% M0 l

' U0 R" u( J: B& \8 u  R2 @5 g
/ p/ C% ^5 J" b$ ^
开发案例主要包括:
+ u5 q! G/ r4 ?2 M- R) kl CameraLink、SDI、HDMI、PAL视频输入/输出案例
, ]: H+ G& G) D8 S, El 高速AD(AD9613)采集+高速DA(AD9706)输出案例
, v! S% m2 a, Hl AD9361软件无线电案例- s7 H. X& Y+ O$ f; t: e% }9 c
l UDP(10G)光口通信案例
1 L  m* D% B& K4 [l UDP(1G)光口通信案例, o' P. B& K$ e
l Aurora光口通信案例
. P" w0 }% n6 g( t. V- T5 {' _l PCIe通信案例
8 Z( M% a0 {& Y7 @l 案例源码、产品资料(用户手册、核心板硬件资料、产品规格书):site.tronlong.com/pfdownload
5 V% q( N- v6 S0 l; p3 d- J* B* {# e# b

8 e* E  Z3 [2 L$ G* W- m7 k- }" D0 E' u, T2 I( ~- M; e2 {9 i

! z8 V$ r& z: E4 g9 ]* H8 O& i本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。- m8 S0 ]$ e* h! F2 `& k7 }
Xilinx Vivado HLS(High-Level Synthesis,高层次综合)工具支持将C、C++等语言转化成硬件描述语言,同时支持基于OpenCL等框架对Xilinx可编程逻辑器件进行开发,可加速算法开发的进程,缩短产品上市时间。! d  N' l9 B" X( d, I" j: p
( z& @/ t- K2 h& A
# O  {; f& a6 F+ y
HLS基本开发流程如下:
5 |2 c2 p6 ]* T6 Y9 E3 r$ u% P(1) HLS工程新建/工程导入
( K3 X4 v- V& \+ s, P/ }3 v: a(2) 编译与仿真
% u- S; V$ u* E0 I' G3 |(3) 综合' {6 w1 u3 _: W
(4) IP核封装
" e' C0 M1 `5 X(5) IP核测试; f3 o# t  p5 h; b9 I, P6 i
8 \$ x& w# m; v: ?
2 [1 u+ S: T6 k. h5 }
HLS案例位于产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下,案例目录详细说明如下表。% \! @. J2 t7 ^0 ^( D+ _
5 y: P" H6 H+ C0 K) c  @2 q$ b2 {
) k# ~- a* j. [- F
表1# F5 D1 @/ {, C; s
hls_ip_demo: Z/ V; m# L" f
bin4 l" B$ I6 J* _( m6 A* L, ]
IP核测试程序可执行文件( u; U3 {/ M" r  ^2 n5 J3 ]9 j$ i
project9 i0 Q( ]& d9 n& Q
IP核测试程序Vivado工程  H; R; m1 ^' \' a
vivado_hls
0 ]) T+ [$ v2 a- ?' N
ip_package! b2 f& @1 K# b3 j( \
IP核9 h7 p4 m" _9 r2 U: F! {2 x
poject
  e3 W. z5 l! K$ d% E
solution11 o3 c+ {" ^3 ~
仿真方案
" t4 h: K, _8 W- m7 D
src
, d& P# V6 ?& _% s5 L
HLS工程源码
+ v5 K. |. D5 I  X1 ?
test_bench3 s9 Q+ N# ^8 n1 B$ S9 h) x6 T# O
HLS工程仿真程序或测试文件0 P. O4 }  n7 P" f+ l5 |# u/ c
vivado_hls.app& r' o! J+ g2 X8 ^! p
HLS工程文件
. j! p; b8 \3 n2 ^/ V3 O
HLS详细开发说明可参考产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。
' G; p1 A8 G6 o  h3 Q5 G8 P
7 }; `, h) U, C

1 r4 u8 g  L& U  E) l
. Y7 O: y/ s: @3 y  N

* e. q( a7 ]4 q% y/ I HLS工程导入
/ f( Z% l6 L9 {4 z) g- ^

& G' _4 v" J7 r% H3 i3 F双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project”选择案例“vivado_hls\project\”目录,然后点击“确定”导入HLS工程。
% d7 n; N- ?) ~) Q! \& x9 r. r7 i. _8 g. M% E0 N3 a7 V6 y/ }
; v% [, f1 D. O, E
​1 r" g3 N0 P: j+ r
图2
) V- l  W' w- Q( h8 d$ n% K4 L. C* ^' K+ O
% F  |5 S- u9 F7 e  L% ]2 s
​" L4 f2 ~! {' @: y
图3
# ]2 K, `2 U. E( X4 @
& l+ O1 u# M/ C; D$ D5 q- k( ?

6 h" \4 n. N; X# E" U2 O​3 x) L4 c$ E5 |+ R
图4
" E+ E' E" Y6 \! J8 ~: [亦可新建HLS工程,并使用C/C++等语言进行程序编写。3 T8 X+ O# n% g

# q& u4 i! Q1 ?7 i0 }' e' \

/ B  W# P1 X. d0 B2 K
  c0 v$ b* J  Q

( Z$ e  N; b8 T  w. a, J 综合
& Y1 j8 j8 E" ]2 Q! k' c7 j

# R" G( U+ }7 b" s0 u7 F1 P本小节演示将C/C++等程序综合成为RTL设计,并生成综合报告。
8 [: F4 \/ Z7 C2 M: b点击界面右上角Synthesis返回至工程界面,然后点击进行综合。0 k- O2 a( ]2 g, a; k

3 r9 X- L3 R# }$ {2 J- I
/ e- j! }  D: D- j  M  X
​$ C  H/ J' k: o+ P
图8
( g5 E, {& @" k. m+ T$ {/ ]( J& E; x
: |" }% Z$ Z2 f+ f) N* l
​1 \, J3 s- O$ z% |0 u# S

+ T2 F# r4 f$ _+ B- _2 V) l

% U8 v2 D, b4 ^( D6 j6 s& M2 y$ q图9
( v1 |5 {' C3 y. K/ w, _6 [4 H% o' t! [; A- u

0 g7 d5 F9 `# ]/ x" z/ z, E综合完成后,报表文件将自动打开。2 m% I- l; O9 P  t: Y# P

; n9 J+ `( U- s. ^4 l1 [' \3 H3 C

0 c2 m8 E( ?; y9 T6 [& \# C​
$ E& e) f; M' {$ j图105 v) g8 ?5 R" F% {4 f' q% W- {
% u8 b2 Y; _/ F( O# I

5 n* s$ \6 {: K通过报表文件可查看本设计的时延、资源占用等信息。
: s7 O8 a% O* _" D* o9 g/ e4 |" ~6 `# s7 y7 @
% Z. D7 H# \! b" [' n
​
( R1 U) i/ ~$ x5 [" _7 [5 e8 C& a1 a& t
1 T! {3 U) A6 x5 F+ y& {' o! Y' W" }4 \
图11& F' Y5 w' z# U/ c* F$ h& ^
5 I/ a  D9 K. z
3 u9 C* c; y1 q6 W
编译和仿真C代码' g* D2 `& N6 _6 s/ O0 N7 R; G9 B
; {6 V7 W) l2 B8 r# _, L
仿真程序位于工程的test_bench目录下,用于验证src目录下的HLS工程源码。# O# E2 o* H1 X: \
导入HLS工程后,点击(Run C Simulation)进行编译与仿真。
5 d! O# }1 H) f2 V6 T9 w# x' Z) e9 T0 `

( e! I* b& I1 k. ~) C. Q' Z​4 s5 u: l$ H/ B1 F
图5
2 X* k, i" {6 _+ L' s7 V
  a, t# X3 b! H+ e9 J

) x2 a5 N! H4 ~0 R6 y$ \# E3 M5 F弹出如下界面,勾选“Launch Debugger”,并点击OK。, b- k" a3 A* ?- W& `  D
9 \3 q/ g; {" Y  E+ |4 ]1 l

1 t/ P2 S. O& ]) ]" h​
1 ]2 W0 |! C4 w图64 u% K: Z# o2 C! n

/ z" U& [/ x4 b

1 M0 {* h% o' a$ z1 A编译完成后即可全速或单步运行仿真代码。; f2 [, a9 y: _2 n' Q% t4 b
​' s4 k) A8 `3 k8 t' m6 {( ^7 O  i
图70 c: N( r0 S; Z7 D3 X( K6 d# D

* k8 U0 s0 ?/ V8 {

0 [" P6 n$ ~: G" _4 o" T$ \, l5 R& i5 c
IP核测试6 Z. K7 s+ l0 Y6 t# _$ V$ `
! p/ M2 x* ^- U
进入案例“hls_ip_demo\project\”的IP核测试程序Vivado工程目录,双击.xpr文件打开工程,工程默认已添加待测试的IP核。* ?7 M+ x9 N0 q7 e# f! Y! T9 V6 D
3 t9 F$ D3 B$ f/ j5 A1 B

; h6 ]. J! [1 ^​
/ d" j. R% m+ q8 M. {8 B: A9 }$ z4 ~0 U

' B6 d" D4 D& f2 }图17/ N8 Q8 X, l$ x% }$ r" [
如需自行导入IP核,请参考如下步骤。4 M/ j" v# B3 q9 ]
* q5 n# M; I( O5 Q0 H
- b# H, T5 F1 X7 W: d( i$ s; |
(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository…”,在弹出的界面中选择IP核后点击OK。# A- K* B# Z% r/ U# }
​
5 s0 q$ |5 P, q$ y: y+ r8 e( |
0 [, e5 L0 C* {/ ~2 J
; j: _! j3 P  C& V6 ^
图180 H# J$ t8 j4 J" v
​
) i& e- F9 H1 r/ {/ k0 c* ^图19
! `( ?& A8 A$ B4 ]$ p(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的IP核。
" F& b0 |4 Z# I" Q. P​
6 `) ^" v5 d7 f- R& A7 k; Q: B, t) I3 L$ `7 F# k( y: s4 h8 d
# t' Q7 F5 H9 |/ @8 q
图201 X; o5 {  }: @! e
​9 r0 C+ z# s) ]$ L( U8 w
图21
, v5 \- e- C9 r
4 N' A% y4 [+ x- J9 c
# u( u( g* e6 U) V
(3) 如需添加Vivado自带的IP核,点击“Open Block Design”,在弹出的界面中点击,并选择所需IP核将其导入工程。! \0 g5 U, I- A1 J
- N2 c( e/ y( ~/ N8 j
# c( j8 t6 X/ |; O4 g. |2 v
​
7 |7 l3 ~* \; c0 N5 w0 T( F$ @3 h3 t
- E  J8 J  {& V2 d! A2 |0 {
图223 k1 q# R( D4 Q$ G% e3 Q
​3 V7 |* B; H, [  |& ~$ F
图23# y, Y) \8 o5 z: H4 s
点击Vivado界面左侧的“Generate Bitstream”选项,在弹出的界面中点击OK进行IP核测试程序Vivado工程编译。
: p: {, x- A5 W8 \4 {" U​
' U* j7 X( t5 F7 u( _8 U+ [& m& V2 n9 H$ k& A" W# Z1 _& r
( N3 p) A8 l* ^

1 D) Z2 l" ~( @2 U/ f3 @

9 ~( S) }5 e2 }+ W5 Y) k/ p) K3 ?图24
7 S+ _: H9 h- @  s6 R3 Q1 U+ r/ f8 L# K+ w; t

5 v4 j# F/ q7 u: _​
, N' [3 M! H- o4 k' ~" X图25( W6 h1 }9 R" Q# U1 ?% g
& b. |9 p0 r* f/ k4 X8 U; e2 }
9 z6 ?! O) ]9 p; H, z( L( T' S
编译完成后,将会在工程“led_flash.runs\impl_1\”目录下生成.bit和.bin格式可执行文件。  b6 ?! y4 V& Z, U, l# d4 p

8 t/ P1 \& |$ Y5 P) B, M
8 E" p4 E% I9 a
​7 z+ C, V: z2 }; N0 H0 M
( J7 n+ k& W' B1 O5 F# ^& E2 f0 j
4 C: w' k) m6 K
图26
1 f6 Q9 D: i9 r* a- h) D. s2 a- D. b: ^" }( t+ i8 R, Z

0 f' V! U4 M$ Q2 |& \; L请参考基于Vivado的FPGA程序加载与固化手册加载.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。
' ], x+ N( g5 [9 W$ y0 fIP核封装, ?+ s) x4 e. [6 w1 _) `# {
0 g/ f9 ?6 c: J- g# S
综合完成后,点击生成IP核。# u+ o% D* ~* ]+ y/ D
​3 s1 f3 ^6 w: _4 m$ p' a
" w; v, L- z9 h, p2 |
! s8 A+ h6 s# s6 S- k4 z3 K
图12" `- c8 }) Q' H; g
( L' Y! V* o, M7 [8 Q: {
, D# w4 l- e7 D
​' _: G1 J& c0 V, d% {3 z8 \  `* V
图13
" T6 i4 {3 r% c! E( |( H​! l# y; [  i& s: J) x9 E  ^
图141 E& q' n5 |: R/ ?
运行完成后,将会在案例“vivado_hls\project\solution1\impl\ip\”目录下生成IP核。
, p' q3 S) x4 v$ ?4 n' E! B​3 i( ^: K9 [6 V+ g6 W

4 y4 v  Y5 M: i8 z# m1 M

( E: b, _8 E6 x图155 R) @0 [" @7 j5 H) @
​8 R7 ^+ h1 r8 i5 R% u
图16( n& x) C- T, w! B
9 P. O6 |8 L! {

" L4 E# l4 r3 wl 更多推荐
; \2 x# A3 V1 b8 n% s

+ R4 [- d& ~: u# q, v​
; x6 X( z( a  [1 \5 I8 d# V+ D9 P" Y2 d4 w; A- j; L. q/ C0 N

  G: R9 E! y) w9 B- Y) e图27# P; p8 \( j$ s6 o7 f. T% N

4 q9 m! b+ D& ]( x$ C4 W9 p
嵌入式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 | 显示全部楼层
获取资料,谢谢!7 l3 b1 ^( D; d; U8 w
7 [2 a4 c6 @; y: a7 U3 [" |! c' T
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


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