EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
本篇只有目录的第三、四部分,其他部分请查看上、中篇
$ [" ~* Y2 {* j' O- m& X7 d
' F; Q* G$ d+ g! T8 p7 |5 N2 BFPGA实践(六)用AXI-Lite实现PS与PL通信(下)
1 k+ f7 z' A" p8 Q; I背景:PS与PL的通信方式有AXI4,AXI-Lite,AXI-Stream。之前实现的为AXI-Stream s(side channel),并且编译环境为linux编译环境。现在改为基础的AXI-Lite的通信方式,编译环境变为SDK环境。2 f5 X9 m3 h; D( q5 \" Q
7 y. |7 L. d( ]8 z X' ~% m
目的:实现AXI-Lite的通信。- H/ F( y: d1 X1 k! k1 w/ z* a
( D* |3 z' o' B$ A6 IAXI-lite的实现过程中,设计流程中三点至关重要,一是编写什么样的c程序并如何用HLS综合,二是系统如何搭建,三是PS端的SDK的c程序如何编写。
& [* A( Q+ j* T' g5 _& Y( @, u/ d; w" ^8 F% V |
目录
0 l, Y0 R: Z: Z6 B4 O4 h1 Z
5 g$ D6 I3 t" }4 t0 x
+ q* O& E' y% F q' A( c$ @一、C程序HLS为IPcore
8 x5 Z2 s* V/ K1 q- K {* w& l$ s: i2 B) h4 P0 K/ H% d
& o) F+ T+ n6 W1 ` 1.1 接口
$ [- D' l Z2 o2 f' X! j
' W7 k( o) \% R! B% S7 t' M4 t9 P4 U7 X& Y; A
1.2 HLS test Bench编写( P) `/ e! B3 s. \3 @8 j- Z
7 d5 v1 A1 {0 T/ M
. p$ p! k0 F4 J$ Q8 k X e- G: {二、系统搭建4 j. c. ^% X4 V. ~8 E+ i
( Y, Z. a0 g3 I* ]" c
8 S- f( t8 d* ]: }4 U/ n6 C 系统生成的驱动' D9 j1 K4 ^+ Z4 _. ]5 N. [
) }) i% D8 Z# y
7 z1 m3 x" D4 p1 k8 s三、SDK单片机程序3 {& C3 p i- P2 h
2 e+ a3 m& \! a. s
& o1 o4 Y i0 N! o- D6 f
四、运行与测试% |! l8 o7 ^8 s
/ P2 l( T. _1 S
+ w" ]6 p5 |' I9 W2 j6 {8 d" u2 S" R; x2 N, }/ n
8 O G/ W( d/ V7 N! [
+ l, z T/ V! H. V( P9 u5 n三、SDK单片机程序
9 l( y; M( ?. A9 C2 Q
! R. e; r7 k2 V# y9 X: R" K-------------------------------------------------+ }3 s* I& k$ G0 Y# F* D' x
5 w$ w- O3 o/ l" S3 T//axi-lite SDK testBench & e, p# h* b; ]7 m( p
7 t/ M1 d: p J, M" e, X5 h3 [5 t1 k
#include <stdio.h>
! Q5 ^$ c2 p4 l
5 f. @# }' Q: x- m( c* F$ G l9 m#include <xaxilitetest.h> n6 R+ D$ R5 ~
2 Y6 [5 Z& E- k% G( Z
#include <xparameters.h>
n. x2 Y+ Q# ~8 Q$ [$ m- h1 h- f% J3 @& E7 K% h* S# @
#include <xil_cache.h>; z# K8 L Z T, G. b
, v, I+ F0 K! O4 h. o
$ _: |; {) e2 H
) u- q6 _8 N9 G& lXAxilitetest XAxilitetestCore;$ d5 D1 T+ z! @( F
3 Y: o. m. |) R+ e
" B& n! ?6 h" u& L- Q
1 q( o" ~' N1 ^
int main()
$ _6 |. s4 P& u: T. S% x! t( S5 a5 S- |2 x; J! K7 o3 f
{
2 K( i( a7 ~7 k$ r) O
- J+ }- C$ W4 X7 R( q' Q; s9 H: O3 A
7 t/ J# d1 y( S, ` {! x# R# n. h
(依然存在疑问:IPcore开始运算的标志是什么?是否为每次Get_outnum时就开始IPcore?然后用vld来标志其是否有效?). K/ S8 n7 j3 ^7 U' |. S! T
1 M. V* J$ e8 B$ m5 [$ y
! x: o& w3 x; B- \7 M) J |