电子产业一站式赋能平台

PCB联盟网

搜索
查看: 3046|回复: 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开发板( s! u! k4 n0 }% S' G2 o6 e) p

. t( C! N+ l7 @8 P4 w1 E7 r3 b  v* o9 }% H; Z7 ?/ ^; e9 X

. F' W/ G# H* T; Y. T0 Y前 言; e  A9 x9 \9 Q) v& K1 T8 k

! F1 E$ \1 }9 M本文基于创龙科技TLK7-EVM开发板,是一款基于Xilinx Kintex-7系列FPGA设计的高端评估板,由核心板和评估底板组成。核心板经过专业的PCB layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。. ^1 p, p7 _1 H8 _( z/ m
评估板接口资源丰富,引出FMC、SFP+、PCIe、SATA、HDMI等接口,方便用户快速进行产品方案评估与技术预研。' H' S+ H+ s3 H; ]2 B5 R
! c8 u* O6 f) ~" d$ T! `1 G
2 {1 K5 b+ \$ h5 ^0 g0 \$ b3 z
# z$ \2 _% C) A* O, B3 ^- m
+ w3 `- P, ~. e: [. V7 ~
​
) ?0 Z4 ]& p7 d+ G
/ g- r' V' ]6 |) F8 ]+ k+ p
) t4 T" r  b) S1 K9 w* d
图1  TLK7-EVM评估板7 \0 t6 N# d# i+ T
; N7 C1 {' a  i7 R) B! F
" {# }+ _1 H1 I2 w" w
开发案例主要包括:( s/ a2 Z- O: P! p7 t
l CameraLink、SDI、HDMI、PAL视频输入/输出案例/ @" e. o$ g" ~" O, L) R& j
l 高速AD(AD9613)采集+高速DA(AD9706)输出案例$ X4 l2 \, @& x  @& N
l AD9361软件无线电案例8 ^" Z4 w# a; W/ T0 S- u
l UDP(10G)光口通信案例
; [, c* d& f4 q9 Q) V2 Ol UDP(1G)光口通信案例
0 m5 z3 d- _5 W5 Ul Aurora光口通信案例7 y5 V' k! H) ~8 k
l PCIe通信案例9 y' g+ `& W# _" X) B9 m6 d
l 案例源码、产品资料(用户手册、核心板硬件资料、产品规格书):site.tronlong.com/pfdownload" h3 ^1 l; f' e- Z

6 u4 ]3 T$ ?* F6 W

# O; k& W' x  ^0 r. A" ~3 M
  p) O0 Y1 X3 `4 s' a5 Y6 n& R; {* j; V% K

7 y; U& W. P5 O, o0 C本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx VivadoHLS 2017.4、Xilinx SDK 2017.4。0 |- C' u1 e  }* n0 a& z- E8 C7 a
Xilinx Vivado HLS(High-Level Synthesis,高层次综合)工具支持将C、C++等语言转化成硬件描述语言,同时支持基于OpenCL等框架对Xilinx可编程逻辑器件进行开发,可加速算法开发的进程,缩短产品上市时间。, _$ z2 k8 Y  m5 v; E# G; v
8 n8 \6 P- C0 T

. {  k  H4 Y, g( xHLS基本开发流程如下:. t6 |/ `- I% Q. Q+ Q' J
(1) HLS工程新建/工程导入1 F4 |' K0 a9 j' B
(2) 编译与仿真
, W( O0 f$ K# K$ q" P. p8 S(3) 综合
5 O2 X# \' @+ a9 `(4) IP核封装
: ]2 [8 {3 s' w2 q' c6 N" u8 P  X(5) IP核测试5 z% }0 c6 |0 E1 q, o( O
9 y' c0 S' A) ^5 Z7 Q: G3 q) ?

8 y, a; b# z. T$ \HLS案例位于产品资料“4-软件资料\Demo\FPGA-HLS-demos\”目录下,案例目录详细说明如下表。; g2 F8 U- ]" h3 o! I

& N' h7 o4 c: G; J
, f& P0 B! W  _0 O$ e
表15 a- M& B( G0 @7 D6 T) R" P; c
hls_ip_demo  d! R1 Z4 t; H8 n% o% g& w* k, Y9 x
bin
9 i* N: O6 o2 ^, f
IP核测试程序可执行文件% Y9 J8 ]( R; U1 J
project
8 S% o5 M9 q: f* }" t7 y$ p0 o
IP核测试程序Vivado工程# Y5 N6 d7 L8 [+ X( j4 N% R; C
vivado_hls
0 c3 a; m4 N- \* U) s: |* v4 B
ip_package
1 F" M& w! }" H" h' g
IP核4 `7 l6 u' x/ [0 Q
poject
9 o( f5 k. H' z% D: X
solution1
6 N/ a! z0 N& p( S) F+ Z' y
仿真方案9 B9 [5 Y' o1 d" m# t( f% d
src
- z: e! d8 D" _0 F2 `
HLS工程源码$ a, _& W, E, [: Z$ ~4 h# g- B) n
test_bench
: ?; u" j# U. v" P, `$ x4 C3 a- ?5 t& D
HLS工程仿真程序或测试文件
1 Z9 Q( u( B5 ?9 r, X* k
vivado_hls.app
3 b" Z' X. Y3 D  V3 p# p
HLS工程文件
) _% S# A$ M0 {% K- p; |
HLS详细开发说明可参考产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《ug871-vivado-high-level-synthesis-tutorial.pdf》和《ug902-vivado-high-level-synthesis.pdf》。# x; I1 {  [' N7 b2 F- _) a) c

" r/ p0 M+ p) E6 e( b
. Z) p6 S, e- a) G4 x
! I, N2 \* }3 R9 e: H

; s; C% p9 O1 \3 ^ HLS工程导入
8 \% _0 {) Z7 N) H" [/ {/ `9 F/ m
2 _8 }5 k! E5 r$ T
双击桌面如下图标打开Xilinx Vivado HLS 2017.4,并在弹出的界面中点击“Open Project”选择案例“vivado_hls\project\”目录,然后点击“确定”导入HLS工程。
3 E" f- q6 P2 f- s8 \
: w4 c' A! i( s# f2 X  e. d

2 h! @; p2 T; N7 ~2 L  H​* S+ F( H7 H. s9 u/ c' y; Z
图2: O7 x4 W3 K! R: @: }4 _- P) G
) h4 K+ E* B! a. D5 R% D" A

0 Q+ e0 {2 k6 P, j/ d​
: n! \7 D+ y$ r* {( u图38 Y- A+ f7 `" R. N. W$ n

6 q$ z0 Q. }0 `

$ G* G$ ^! T7 J​
9 w8 ]; S. D* E# L  Y0 }图4" `+ @3 e" H. V! b$ D# j
亦可新建HLS工程,并使用C/C++等语言进行程序编写。
" @& N5 d( \6 U5 ~# `0 |
  N/ f+ f7 b9 M! Z; D# q! j% M
- [; T) Q7 Q+ U

2 [: p4 N3 e7 ~: n# T4 J( {
* ]0 r* }! |% Z
综合9 l. J& B# e* L

# n" [  o2 B4 \  }, d本小节演示将C/C++等程序综合成为RTL设计,并生成综合报告。( }7 w9 U& K: d, r5 I
点击界面右上角Synthesis返回至工程界面,然后点击进行综合。
. D& P$ D$ e5 ]4 p* K  F7 L
0 ~/ f1 X  t5 y0 j- E
, O% ~) A) Z# Z- z( K, {
​' v4 K* }: m' S0 q6 G! C: q. V
图8
: Y$ s* W6 W: {, q/ v" D
' `! |9 H- k  ~! j: A
, s/ P4 R& \) W' b/ q
​- L( Q0 \1 _" m* N4 i" c5 Q

. H  T8 h" z" L% l
" N6 @8 _# l7 f2 R
图90 u: ~( A, I, b( h% u2 C
. y- }  q3 x5 v0 E/ x- K" B6 Y* }

, j- P# f7 X& H综合完成后,报表文件将自动打开。( K4 y) }: M# _3 h3 v

. [) s1 ^' c0 t0 V2 T. u( g

8 m! ]! l/ w4 O) b* P0 T6 f​
1 K. E* q# v% m! g+ ^& {6 ^6 s图10- J" J) e5 ^0 B, Q1 b1 r
/ o3 s5 \  m6 A1 k+ r) n
: |, M8 Y4 ^" T  ?2 M% }$ w7 M" A
通过报表文件可查看本设计的时延、资源占用等信息。. W- j1 v4 `, O1 u

% c9 E- k3 b, E! g

) g- L( x0 J  s: _  s1 f8 F* m​3 E/ \2 `% o: {& G: I7 r! J7 `
6 ]) k5 @  _; p8 {

) @/ |& \' H9 U$ `5 O图118 z6 r; `/ r5 S9 C6 Q

, u4 I: f; f1 P) Y; g; {. Q
1 Z" I: o" @. v9 b0 m0 D4 r
编译和仿真C代码0 o( k5 {% t6 P# Z1 `6 _8 y
+ @( q5 ?: r3 ]- d! I, u( k
仿真程序位于工程的test_bench目录下,用于验证src目录下的HLS工程源码。; a# H8 N1 `1 `% i
导入HLS工程后,点击(Run C Simulation)进行编译与仿真。
6 Y: }! I4 @" I5 u% a' H& I3 j( k; W6 V9 o2 s! R) e  F' H# T

. W( s0 H3 G5 Q& }' D0 \+ Y​
/ t  X9 R. B4 {- |" |  f图5
  v/ t. I: q- x3 r  t. C1 z5 b# ]5 q% N4 }5 `7 p

" J. h: E$ b- |: F" \6 i弹出如下界面,勾选“Launch Debugger”,并点击OK。
, |( d, _# ?4 m  H/ m  [3 |; }2 w6 H9 y: n

$ s, t* h8 I2 r2 I' `​
' ?$ m1 ~) m8 m! I4 E# F/ b图63 p6 X" |6 Y) E: x" ^% N
. p/ U4 ~% H% j; i5 s
" O# M; K* F( ]
编译完成后即可全速或单步运行仿真代码。
7 V* Z* F$ u7 t! F" |​
& _+ c( j+ E" |图7
- r7 ]' P5 |0 n& B( P7 n; Q) k, X% X2 v: p# U& u

1 Y) x1 E3 Q6 M% i2 @2 w2 I7 E) D1 V; E
IP核测试
5 c/ ?; o/ j1 _* `. b
' @$ J* ^, z# z! J) p2 O  l! a8 m
进入案例“hls_ip_demo\project\”的IP核测试程序Vivado工程目录,双击.xpr文件打开工程,工程默认已添加待测试的IP核。
  q) A% z% T& l; m
0 p" _5 ~- D; P1 v

1 \. d4 c, S+ F* [  p5 S1 \2 d% G​
; G5 l% y9 y3 e! `# s3 ]. @1 t/ a+ t3 n5 o. Y2 y
* }* J) Y+ g; W+ D2 B' p
图17
/ G6 X9 a+ B5 B! T6 _如需自行导入IP核,请参考如下步骤。$ o7 O# N, X( x0 K5 R6 Y
; t$ p5 }5 J% x5 L4 c& J

" c3 b0 ]! V9 R/ }; ~) \3 m(1) 请点击“IP Catalog -> User Repository -> Add IP to Repository…”,在弹出的界面中选择IP核后点击OK。
; y, z8 C& ~' _" \2 D- H​
8 E" h$ o+ C; z' _0 c- Y& r; T& v0 z5 G4 e

$ F2 P  U5 }7 G图18
4 k) y' J+ N  G$ r  C3 I​, G8 L/ {: {  H+ _  l
图19
" {; I' d3 Z% Y/ l8 C$ o& c# H(2) 右击“User Repository”后点击“Refresh Repository”,即可看到添加的IP核。
; ]4 q4 c! o. q5 v5 L1 ?' r​
8 ^* N$ G& J. \5 h  n
3 ]/ M* i% x4 _9 l! \, \

4 \3 l4 R# K, z0 l& p图20
9 W! j9 j4 E8 b% d. N1 u​
6 d3 s' U# f- w图21. x0 D+ C8 M) R' d
) j7 y5 e8 A/ u* V" b8 @; B

& _& i/ ~; I) F& g1 }, h; \(3) 如需添加Vivado自带的IP核,点击“Open Block Design”,在弹出的界面中点击,并选择所需IP核将其导入工程。
# q( l2 l4 G1 G
% M" |1 U" r; m$ P, U: @+ q: `9 G

4 U9 @3 |3 q( i. v4 s9 Z​1 u8 @1 w$ |4 q6 `" y5 F
% h* S0 j+ b3 g4 F. c
8 F% J, X; B7 E& Z* v7 X" G, {
图22
6 n* ~7 Z1 `7 M* Y  V+ d- L0 F1 @, V​2 n* O) G3 O/ y9 S, _
图235 U* A* B7 _6 R3 K0 |- L  [
点击Vivado界面左侧的“Generate Bitstream”选项,在弹出的界面中点击OK进行IP核测试程序Vivado工程编译。
) h6 o6 ]9 k) l- u​+ U9 n) c0 S. O& i- G2 B

- q; r; s4 d; _0 Z

# w8 _7 x& _( Z- r. {" k& m9 }5 T, ]/ s4 s0 r# Z
8 S( [& V# ?! d' l6 e, j
图24) v# V* l# E" A" Y

" ^% V. R0 N7 o+ z

3 d: N' J8 W7 \​! r$ p" P- ~) M, K; C' K* n
图25
$ \3 y4 T0 o& X8 H. g" m+ A
0 z/ g1 ?! p9 w1 ~1 g  _
$ u& I! {& a2 h- S( X
编译完成后,将会在工程“led_flash.runs\impl_1\”目录下生成.bit和.bin格式可执行文件。
3 F1 E& A/ C3 k' i8 ?/ h
2 s2 B/ Z  Q4 R9 c+ L, [
; J4 U0 U  z$ @" j# |6 t
​
6 x, N5 J. S; Q; x
% P2 ?5 p# C" l1 D3 p* X2 z1 n
' L3 W& f1 p: t5 J; e3 T% A
图262 {4 v3 i; W4 H  }

6 ?; G! E# u6 W" q( h% m/ a& d
7 }- b6 N8 f" ^0 N' K+ I" c
请参考基于Vivado的FPGA程序加载与固化手册加载.bit格式可执行文件,即可看到评估底板的LED2进行闪烁。4 X$ i8 r1 X: ]( }3 @: p
IP核封装
( |2 w5 G) w" I3 \  w

! V+ _. L0 f! q0 M: j综合完成后,点击生成IP核。
( y, h" I" \: N- W( _  E​. e. V" ?' [' h
6 [! i2 Y! N3 r

) K, U1 w/ f& X图12
/ b1 x, r7 l, |# R, E4 }! c& P0 g4 {5 X
) H7 w3 P7 K+ b8 u
​
* c7 b: c# w& g9 ^图13! @& ^+ G" I, d4 V7 x' P
​
% b. y. F# A2 h) v" D/ @9 U, f- `图14) h& c6 E3 ^6 ^6 @$ Y" `$ O
运行完成后,将会在案例“vivado_hls\project\solution1\impl\ip\”目录下生成IP核。
) @: I# G1 x2 I$ G% Y( v​
; O& q8 I7 ~- j2 V/ U& _
( L8 W: i& T0 A* N  @# T9 a

9 {" s4 w, J( F; O% _  ]( k: W图15
# K( u5 H- C$ R: c​* A# n  T  Y0 d  {' {
图16
, w, H- N: d4 c/ a! x
5 u, z' J5 O; Z: L& M

! ~, m6 |- P& b# x0 {! V6 jl 更多推荐
; |7 a, u; w2 P: p2 ]# |1 m& N
, Q& {; Z7 l* |; j
​
( r" X- L5 n* q* f# M% D* Y4 ^1 c8 W) ~( }/ Y
' d9 V5 Y1 r  X
图279 B! q9 L6 s4 w8 _1 K# y6 T- W

- y: ?4 J6 }  n& D7 T
嵌入式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 | 显示全部楼层
获取资料,谢谢!
% ]% ]4 a& W* C- {6 T2 c; C6 i( U
; m* s. o$ d& B/ C7 c9 G$ A
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则


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