EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇只有目录的第三、四部分,其他部分请查看上、中篇
1 O5 C3 Z+ t0 I, O- [; ?' \
% ^/ x+ q* l3 w8 d! ]( N* ]; N* x) {FPGA实践(六)用AXI-Lite实现PS与PL通信(下) % [0 S5 X6 d; S+ G
背景:PS与PL的通信方式有AXI4,AXI-Lite,AXI-Stream。之前实现的为AXI-Stream s(side channel),并且编译环境为linux编译环境。现在改为基础的AXI-Lite的通信方式,编译环境变为SDK环境。5 |( j2 e0 N+ J7 ~# M) Q
1 r. ]+ n4 U9 I2 `
目的:实现AXI-Lite的通信。
w* J) h3 K# G$ m. } p# M- c! j
+ q3 Z& g+ U' V% O* _AXI-lite的实现过程中,设计流程中三点至关重要,一是编写什么样的c程序并如何用HLS综合,二是系统如何搭建,三是PS端的SDK的c程序如何编写。
7 W7 S0 e2 H) N4 o0 @# ^# m" a$ M! C: n! D; m# I% s
目录
, a- I* I" j( m4 r+ X$ I
2 L( y4 L, P K D% v" v) H7 f5 Q% ]: E7 y ]9 i# g* `" `3 u
一、C程序HLS为IPcore
- y4 F8 s6 _8 x3 i
4 v0 F) b# Y( K: t" L6 X# g) \
* h) f9 c5 J, ?$ P( W 1.1 接口+ K7 t( Q8 F' g. Q: Z) L1 ~8 j
) C2 Z- e! |$ j/ u+ D2 D
! w9 r& e' x- R4 N4 R1 y' O' A7 ~& T 1.2 HLS test Bench编写
7 v5 O# d: K1 L6 {5 l- u/ Z3 U9 N
5 V9 p" Q d6 f3 X C
二、系统搭建
6 k/ H8 o$ }3 x6 y; s6 X! d
6 o' f: C8 N0 o5 t3 C) j
9 D p6 ]% p& R4 u/ h5 Q- N, X 系统生成的驱动 u0 N% @( n O. A2 N/ A
, D+ d- N& P0 n* P# j( c1 k* @( I! \3 S8 h# K
三、SDK单片机程序, G; d0 A: m4 J4 R0 x
' d4 z9 p* \: d4 y2 v7 t& W
/ c' W5 P1 o. ^0 r! Q5 q3 M0 ^4 N四、运行与测试
- D+ S4 E, [4 B$ S2 I& B- _
5 D2 { u1 ]4 U3 w U- J+ O2 ]- v
* u. j# ~) }3 z* w/ m; l
5 l# _, w: D) p
, i1 p1 T1 Z/ ?- u& j
' T/ x) j, Q5 Q, b; W三、SDK单片机程序1 ?; N! t8 `+ W. y8 T6 w2 w
. k: e: O$ K0 j* v% j5 ?-------------------------------------------------. V# K: b. w2 C; @3 d* k
3 F" p# t1 ^5 u- u# }//axi-lite SDK testBench
/ `! u3 f* @+ B0 A0 ^* t2 M' B3 Q# D/ p3 m# D8 T
#include <stdio.h>
% a( u' T' l% M
) T1 a6 x N' F4 M# `5 y( e#include <xaxilitetest.h>7 h5 @/ E1 @$ Q& b' r. j; L
0 Z! Z/ _$ I G3 f& c( X
#include <xparameters.h>
4 j4 X. i, S! c/ e3 |% B5 O. {8 b# i9 Z) I0 @1 ?/ ^" d
#include <xil_cache.h>% s' g; `# I9 H/ u# n
! p. B( P" I( {6 q! E5 t# C" d- m
# G# a3 @( P, ?( x l) j; S
. ^! j% u# F, X
XAxilitetest XAxilitetestCore;
' x! E, r1 e q( P3 j1 f! z" ~4 G1 T) }+ ?% w4 g: ^1 q
# k+ Z2 _/ C) X' t. X( W( @6 U
. o8 k7 T( q. C6 {1 Hint main()
' C8 N. i4 C9 i W: M; j; d) e4 H/ v; i0 _
{
5 I- H& @/ a0 c6 Z0 U1 e1 S5 x
9 V: c2 ]4 i+ W8 z/ x8 p$ R3 Q' n7 m1 D( \
* T; u! i, x1 z8 t3 w6 ?, P( Y$ \(依然存在疑问:IPcore开始运算的标志是什么?是否为每次Get_outnum时就开始IPcore?然后用vld来标志其是否有效?)
, t7 f) u6 A d, v) D1 K" D
8 |2 s' s2 {3 M/ Y5 x: r \, B/ f- L3 A* D/ h. |
|