电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3022|回复: 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开发板- J: i3 s. r7 F
9 G: W* ?; x) z$ b$ k$ z
' U, I, w- `' t' i6 g0 H

1 W# V# G, b- I2 ?) Z3 u前 言
5 p6 a# F8 O. f  {/ G# y

& u* a% O( T8 x9 e2 s本文基于创龙科技TLK7-EVM开发板,是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。/ L2 ?3 i9 V; h7 O) Z; p" f
评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。
. ~3 y# j0 w" d; v' \
6 k, }/ g" N8 H  X3 k/ Y! v

) P6 m: |# j7 a# Y
6 J+ D7 j0 F/ @' T6 G

7 o. a5 Y! `0 @6 x) L9 Y/ I8 t​+ m- c  {3 [3 U, A& `- B- e
2 D. x- J2 N0 h2 U: A

0 i7 w5 |* S1 b/ O图1  TLK7-EVM评估板
% ~, r/ N7 H1 i% Y2 @1 ?% E2 s# a* W0 s0 t2 a+ ~

% N: P, i/ [0 z+ J0 Z& u# g" w7 }, ~开发案例主要包括:
+ Q- e9 d9 R1 M, O/ {3 \l CameraLink、SDI、HDMI、PAL视频输入/输出案例7 a9 c* A* n9 x4 ?4 A5 z" @
l 高速AD(AD9613)采集+高速DA(AD9706)输出案例
- R2 [9 q9 B& I% ^2 nl AD9361软件无线电案例
9 M. U9 H: V$ l" G4 V. ?l UDP(10G)光口通信案例
. A; w8 U, x) Kl UDP(1G)光口通信案例( r$ _  |0 n* d4 @
l Aurora光口通信案例" D# `" ?0 Y( H! R/ b8 p  |$ a" U5 o
l PCIe通信案例# ~0 Y) {" R7 u8 z- E
l 案例源码、产品资料(用户手册、核心板硬件资料、产品规格书):site.tronlong.com/pfdownload
! a- Q" `1 @1 T# L5 O6 _$ N& w
- w) K+ R* w$ O

% y7 n% O- C2 w9 {+ v( ~
# ]9 s/ ]  C7 `$ e+ i7 {! k

3 N/ f3 v8 k+ P7 R( t$ ]/ y0 z本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。. ~* r7 e+ A' E, m( k. X. o( h
Xilinx Vivado HLS(High-Level Synthesis,高层次综合)工具支持将C、C++等语言转化成硬件描述语言,同时支持基于OpenCL等框架对Xilinx可编程逻辑器件进行开发,可加速算法开发的进程,缩短产品上市时间。! ]' N% f! W0 J+ P  W' B& Y6 @

" {6 ?+ A' {  [& z& g0 B3 Q) o
& `% n* ^% z0 ^; Z
HLS基本开发流程如下:
+ P$ W- n2 C/ m- c4 c) H! {/ {- c: i/ i(1) HLS工程新建/工程导入
. x% [  m) J1 x(2) 编译与仿真
$ M- U# T1 a. h. x$ N$ `9 r(3) 综合" o# w* ]( ^5 l8 T
(4) IP核封装
& d& l9 f: i7 O* w  T7 i! I(5) IP核测试" b) r- b* F# o
7 A$ c* Z. ~" I( S. \# A$ s# \3 N/ s
" H' H; c& B& N7 b% o' C
HLS案例位于产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下,案例目录详细说明如下表。
5 b  O/ d/ ?; w+ I. ]% `  G! I4 J1 f- V* o, b  j
" w9 m  t! l( e/ @
表1
! C$ @) Q: o# p/ S0 i# D# U1 o  V
hls_ip_demo3 Z% h. U! c+ b/ L9 W- y( r9 v6 u
bin
0 M) o6 H, ~2 a
IP核测试程序可执行文件
2 Z( ^. I6 z- S/ `( b
project
  _0 A) S1 F- e* }/ C) R, ^: V+ \/ V
IP核测试程序Vivado工程
3 A' ~$ i! J% d* p4 ^7 g" z
vivado_hls
9 s4 M# j1 _2 ]' x1 k
ip_package
% r  x9 i7 r5 E! O& a$ w. Y# ~
IP核  y2 \9 N. E& M3 H
poject
) m5 D+ H3 U) n: t
solution1
5 h& m. g3 F; t2 T# L
仿真方案
& y) g3 d6 Z1 I* r; s
src# }4 W6 D  a3 \/ ~" s
HLS工程源码
8 a: `& U3 z" W/ ~8 Q7 @0 @0 _* p( @, h
test_bench
. @( @6 q, D' M( w8 X  C, e  `( ~
HLS工程仿真程序或测试文件
$ X& d+ C5 m& q& n7 S+ m6 Z8 R0 m: K
vivado_hls.app
6 P# i$ i2 {' `" W
HLS工程文件% i5 E; V0 u3 R% g! y
HLS详细开发说明可参考产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。  g4 r/ T) s- ^! I
$ x& i; k7 f. J4 p: l/ b

% \! o3 j7 k. |& [- O
, X; X2 }9 m, Y) A
! @& Z! L+ I& k9 v" U# v, G7 S! @2 `
HLS工程导入( Y& K; E' b! z0 f

+ M9 a, A- Y& C双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project”选择案例“vivado_hls\project\”目录,然后点击“确定”导入HLS工程。
% T* B' D. l# p9 N& ~: {1 x
. s' c, b, A! |& S5 b2 x; V+ z6 j
3 e8 j, w5 ^# ^6 L9 J& ?4 h3 v
​
. |" c  C8 t3 [/ t/ y6 L图2
- E/ y" \5 D7 q/ D
$ M$ M+ G6 i) }

" m. G8 H8 d$ t/ {​- J( Q) f! ]& q/ j' c" H0 L& y- n
图3& a' \6 g. g3 {: ~
1 }+ N# i- I5 F3 U6 u( Y

) H8 D5 }  k7 ~5 m8 X​
/ F9 x" x( ?. p- L: v图4
  ?: l9 {/ M. b1 h& G' Z6 z& r. F8 p亦可新建HLS工程,并使用C/C++等语言进行程序编写。- b2 T( k8 }8 \$ a5 m/ n

, B. T8 F1 ~1 M

  ]- f# Z( z& H; ], I; J; V5 S1 k" ]4 N2 z  l
% |: z5 K8 s7 @: L" Q/ a  [
综合
( v" S8 D& u( q/ g' W! a, |

0 M: B7 {8 {0 f+ W; a% V本小节演示将C/C++等程序综合成为RTL设计,并生成综合报告。8 o" F9 m( b6 |4 F
点击界面右上角Synthesis返回至工程界面,然后点击进行综合。6 j! I: F% X$ y% K) q
! Y" j0 y* N- R: b5 N
) E8 v& ^9 ?1 O: [; F# @
​
+ b( \5 }% T- F6 n, B, q8 B图8
* V2 c/ r* t$ W, l4 f, @# u" ?. [4 d# K

: _6 `! b% h7 q​
5 ~+ \; H! f8 d( e+ _$ `9 Q
+ W* C& f/ M! J
7 Y7 `: y3 ~+ o% C
图9
/ L1 q& c+ I- t9 \7 J8 D! Q0 H7 S; G8 S, ~& g. ^

9 r7 q, D5 K, ~! I7 }$ t综合完成后,报表文件将自动打开。2 p! K  [2 O! A$ g8 c

4 _0 o0 p, C, b, e& z

/ |  U- X! o/ Z​
( x9 C" E2 _" ~图10
* V5 \' u2 H3 Y2 U2 e; d( V$ T$ w: @$ [
' q7 \) B0 g) M' p- q3 N
通过报表文件可查看本设计的时延、资源占用等信息。7 Q4 q2 P' ^) C

4 L5 A  Q1 ]' o; v% O' s$ T2 X9 ]. k

; t6 c* D0 r, e, |# B$ g! ~​5 H6 Y, |6 {3 T7 R3 T
. `6 B! M/ f: P: F

% |- T1 @) m5 K+ _) H. A: g# U图11; [2 O8 ?! f9 }% V' \3 W! J

% }1 d* s8 z- }& z% u" R
1 V* X( p$ V0 L( O/ n4 T. r
编译和仿真C代码% q/ x) r4 ^3 x  q0 Y4 s. [# O, C

+ _# w& w) D5 a2 J; U3 F仿真程序位于工程的test_bench目录下,用于验证src目录下的HLS工程源码。+ H5 K9 A+ B/ e0 K# t
导入HLS工程后,点击(Run C Simulation)进行编译与仿真。
% ~. Z5 \& F9 }+ S! q6 ^- W6 F9 \- g9 c! f" B- Q! D

1 k7 P! N, E8 r5 y7 \2 j​) {: F5 {& ]5 e
图5
3 `9 u. Y+ y% b. h1 q' r' X4 I$ x6 r" o
- V4 v1 k3 i7 }- I% Y2 I; c
弹出如下界面,勾选“Launch Debugger”,并点击OK。! r6 U- P8 w5 Q0 z- C% o
) u" @  \$ \# s( n" a
+ E: t' V& p) w) \' e8 i
​
+ J0 _# C! P6 f' r( h图6
- U! p& A7 U3 K9 R6 K4 q0 I% m
3 {2 P: g8 l0 X' y2 z8 e

$ w" Z) O: E0 E! ~' T7 g7 z编译完成后即可全速或单步运行仿真代码。
1 o2 M+ K6 d' m​6 K" b$ w. K( D4 z5 j$ q! U
图7
1 c. I$ F9 U1 W% B) x
" m6 i7 x: _; |) r2 S: V
* o! _0 s% @# G4 c

  P2 B7 J) a5 ]) p
IP核测试
8 a6 r) [, o8 {( x7 g: F8 }

4 L; V7 s1 e( J' [进入案例“hls_ip_demo\project\”的IP核测试程序Vivado工程目录,双击.xpr文件打开工程,工程默认已添加待测试的IP核。
9 D+ s  u+ O: P( m3 Y0 K+ B% \7 T1 I+ {' `" w
& w7 M# I/ \  [$ _" ?
​7 L- M" n9 F1 [9 D" I
" s! _9 F. I8 |  S4 s& C) O  `
) _0 H( N6 Y) Z6 j4 X
图177 u: {2 Q; p$ s1 A8 M8 J% p9 Y5 J
如需自行导入IP核,请参考如下步骤。
3 Z8 j( c; `- b% w  m$ w) p  i7 }; _3 `2 W" ]$ ^- }' N4 k1 p

: N5 I- o# `0 \(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository…”,在弹出的界面中选择IP核后点击OK。- s6 H: B% \" y6 O5 L, a" z4 f: a& c
​
* d4 h4 x& J  P4 y3 e+ h6 F( Y% u, B8 H' B; e/ ?

1 T& D: D$ \# q' N% T图18
! p  P0 x2 A; m9 U6 j6 g% S​& K$ ^) X" H+ f" \8 Y, x! h
图19
6 z( ~+ v: D) W, `; @(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的IP核。
3 ]" ?/ b  Y  [' c  |: h8 Q( b0 I​; y4 E* c5 J2 H* k; j; ?+ P
  v# ]4 n, T* n) k
& E7 ~# |3 }! v- @' J! G5 O* @
图204 g: m2 h$ G- |# p9 s% t
​
3 q: t. B+ {# ~# l6 t0 C图21
# M* w; J' t' J- K& h5 @
! A# S- |. m# j7 F$ ~

: c2 K8 u: M, W# H1 e(3) 如需添加Vivado自带的IP核,点击“Open Block Design”,在弹出的界面中点击,并选择所需IP核将其导入工程。
/ {" @9 Y& s5 G# G! F" J- y1 t! ^9 E3 E& h  z! L
9 Z7 J) ~# ]4 }1 u- ^
​
! Z. a  _1 `  o4 }
, Q7 {: s. _3 A, u5 h! j6 l3 r
7 Z) G; ^1 [* c
图22
# y" z1 k/ [( g8 T6 N1 x​
2 n: z5 i1 z. U) Q图23
1 x; w: B+ A6 M: U8 z点击Vivado界面左侧的“Generate Bitstream”选项,在弹出的界面中点击OK进行IP核测试程序Vivado工程编译。% q0 ~: D0 v  v2 u! Q; A+ {, k7 r
​5 }4 N/ n) k; r% g9 D
" v+ ?; r; j6 U# E: a9 [

; S; V; }! }9 u3 H) f! F3 M% B* [% ?$ v+ ~* F2 c5 A
$ n, v6 y. \* T$ r4 P3 j
图24
5 l' l/ H/ q/ s) }: T8 |" _
$ R) i" i" y: M1 \7 g
. `6 }: }! S* h1 w% j( s4 I5 _/ Q- |
​
3 L9 i8 C5 v5 D1 M4 T图25) m/ x2 L, `& T$ q2 A

7 \( \0 q. w  E+ X* R) B* p# t
/ \  Q  O3 |0 }2 @4 h/ s
编译完成后,将会在工程“led_flash.runs\impl_1\”目录下生成.bit和.bin格式可执行文件。% q* C) H  x0 \* \! W" Q

' l8 f- `9 g0 J8 N( ?: M
( {" V. o0 `% }% G. d8 ^+ z
​
) q) M& o& G+ A- t& @1 W( [. ?& _, V  ?7 C- [# `

( ^0 J3 G' S) T8 S1 j' d) g4 D图26! e+ L' U! N8 B) O
* s7 P' ~# O1 f; ^  Z6 B

' p5 B# Y: H& v! q) q& ~, i请参考基于Vivado的FPGA程序加载与固化手册加载.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。! l# J6 x+ @7 v- L4 ]5 K
IP核封装: P4 K3 S% c0 {0 |% J, Q
# {7 ^" \9 W: p' u  [$ U' ]
综合完成后,点击生成IP核。2 E) n! j: u: S3 U7 j& u
​
$ }* I. b7 x( ~9 _; I6 m2 @& [+ W. e- A0 L3 S
7 H$ L5 W6 J0 d) W  |3 T6 Z
图12
7 b0 g7 Y- s7 \- e1 _0 ~0 G
1 W# y# q6 m7 G  y( a

* h" U9 ]' @1 J" n1 d1 W) J​
5 J2 S" L( k# e+ N/ u9 W' N) G图13
7 J; B' T. F1 k& m8 v% z​" z, i! S. o: m  n% @: A, R0 b
图14
+ b3 g5 u/ ^: J运行完成后,将会在案例“vivado_hls\project\solution1\impl\ip\”目录下生成IP核。
* ?# t! P, ~! X3 e​
4 A8 P0 g4 L& w' g& b$ R" m( \; e( o$ u9 b8 c7 D
1 X8 D- N' X. d6 Z# f' q: _: |5 D
图15
/ g, }) k' B" W" w9 e% j​
% h( y( s, w) ~) u6 g1 U图16* c, ?) z) b9 y6 ^
  @& t# E5 i0 Q' n+ M# e
! B: L9 N7 g6 t' G% Z
l 更多推荐
. C4 `$ ~9 u  |3 c& U. A
" B" x- X7 Y8 w# q( C+ t" m
​) _4 w$ c* k5 t4 d) [8 i

; g( r; B9 V8 @$ Q; X( Q

- a* _' R2 Y/ w; f9 M图27
" o/ m  B% [3 Y; p2 Y: F, C! s: g4 x  z2 O
嵌入式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 | 显示全部楼层
获取资料,谢谢!
/ K  b& f! t5 ?* f. U5 |+ M& d
6 Q2 f" f$ R$ K5 ]: E6 m4 @
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


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