Zedboard自定义AXI总线IP详解(多图)

首先启动PlanAhead,选择Create New Project

Zedboard自定义AXI总线IP详解(多图)_第1张图片

中间省略一万字。。。。。。(跟前一篇HelloWorld步骤差不多,直到添加IP部分)

 

1、点击Hardware进入CIP向导

Zedboard自定义AXI总线IP详解(多图)_第2张图片

2

Zedboard自定义AXI总线IP详解(多图)_第3张图片

3

Zedboard自定义AXI总线IP详解(多图)_第4张图片

4

Zedboard自定义AXI总线IP详解(多图)_第5张图片

5

Zedboard自定义AXI总线IP详解(多图)_第6张图片

6

Zedboard自定义AXI总线IP详解(多图)_第7张图片

7、选择SW寄存器(其实相当于一个中间变量,用来控制IP,这里我们选择两个,一个用来读取SW

一个用来写入LED

Zedboard自定义AXI总线IP详解(多图)_第8张图片

8IPIC(系统已经帮你弄好了的AXI总线与IP之间的连接,这里选择默认)

Zedboard自定义AXI总线IP详解(多图)_第9张图片

9Next完之后,IP创建完成。工程目录下会生成 drivers文件夹(里面有IP的驱动模板程序,主要看那个***.h

pcores文件夹(里面是所创建IP的所有信息)

Zedboard自定义AXI总线IP详解(多图)_第10张图片

Zedboard自定义AXI总线IP详解(多图)_第11张图片

10、进入如下devl目录,打开ISE工程文件,修改自定义IP,如定义用户逻辑,IP接口等。

Zedboard自定义AXI总线IP详解(多图)_第12张图片

 

Zedboard自定义AXI总线IP详解(多图)_第13张图片

11、打开USER_LOGIC文件,做一下修改

修改1

Zedboard自定义AXI总线IP详解(多图)_第14张图片

修改2

Zedboard自定义AXI总线IP详解(多图)_第15张图片

修改3


 

修改4

Zedboard自定义AXI总线IP详解(多图)_第16张图片

 

修改5:(不屏蔽的话会报错--multipy drivers,再两个Always块中分别连接了不同的FF

Zedboard自定义AXI总线IP详解(多图)_第17张图片

 

12、修改VHL接口文件

Zedboard自定义AXI总线IP详解(多图)_第18张图片

修改1

Zedboard自定义AXI总线IP详解(多图)_第19张图片

修改2

Zedboard自定义AXI总线IP详解(多图)_第20张图片

修改3

Zedboard自定义AXI总线IP详解(多图)_第21张图片

13、修改完后,保存,综合一下,没错则退出。

Zedboard自定义AXI总线IP详解(多图)_第22张图片

 

14、回到XPS中,修改IPMPD文件,添加PORT

Zedboard自定义AXI总线IP详解(多图)_第23张图片

15、修改完后,更新一下Rescan User Repositories

Zedboard自定义AXI总线IP详解(多图)_第24张图片

16、之后添加IPXPS工程中,弹窗选默认

Zedboard自定义AXI总线IP详解(多图)_第25张图片

 

Zedboard自定义AXI总线IP详解(多图)_第26张图片

17、之后可以在图形设计界面看到IP核加了进来

Zedboard自定义AXI总线IP详解(多图)_第27张图片

 

Zedboard自定义AXI总线IP详解(多图)_第28张图片

 

 

18、之后再Ports窗口,把IP的端口映射到External Ports

Zedboard自定义AXI总线IP详解(多图)_第29张图片

19、再生成一下地址,那么硬件设计就差不多完成了。

Zedboard自定义AXI总线IP详解(多图)_第30张图片

 

20、关闭XPS,回到PlanAhead。为工程生成顶层HDL

Zedboard自定义AXI总线IP详解(多图)_第31张图片

21、添加ucf约束文件。

Zedboard自定义AXI总线IP详解(多图)_第32张图片

 

Zedboard自定义AXI总线IP详解(多图)_第33张图片

22、点击综合-----------》综合后,Open Synthesis Design------------》打开IO Port窗口

Zedboard自定义AXI总线IP详解(多图)_第34张图片

 


 

Zedboard自定义AXI总线IP详解(多图)_第35张图片

23、如下图修改引脚映射,Ctrl+S保存,会提示你覆盖到创建的ucf中。

Zedboard自定义AXI总线IP详解(多图)_第36张图片

24、之后点击Implementation实现-----------》产生位流bitgen

Zedboard自定义AXI总线IP详解(多图)_第37张图片

24、导出到SDK中,编辑软件

Zedboard自定义AXI总线IP详解(多图)_第38张图片

Zedboard自定义AXI总线IP详解(多图)_第39张图片

25、在SDK中创建ApplicationProject,并利用Hello World模板

Zedboard自定义AXI总线IP详解(多图)_第40张图片

 

Zedboard自定义AXI总线IP详解(多图)_第41张图片

 

Zedboard自定义AXI总线IP详解(多图)_第42张图片

26、成功打开后,SDK主界面如下

Zedboard自定义AXI总线IP详解(多图)_第43张图片

27、修改HelloWorld.c文件,首先将之前系统生成的IP驱动文件拖进SDK工程中

Zedboard自定义AXI总线IP详解(多图)_第44张图片

之后会发现.h文件报错,这里是由于工程无法找到xbasic_types头文件

Zedboard自定义AXI总线IP详解(多图)_第45张图片

28、在下图位置,添加Include文件路径,重新编译

Zedboard自定义AXI总线IP详解(多图)_第46张图片

29、在添加进来的H文件中可以看到,系统帮你封装好的AXI总线函数

Zedboard自定义AXI总线IP详解(多图)_第47张图片

这里的BaseAddress可以在xml文件中看到

Zedboard自定义AXI总线IP详解(多图)_第48张图片

30、修改Helloworld文件,为了功能测试,代码有点简单

Zedboard自定义AXI总线IP详解(多图)_第49张图片

31、下载位流

Zedboard自定义AXI总线IP详解(多图)_第50张图片

 

Zedboard自定义AXI总线IP详解(多图)_第51张图片

32、修改Debug Configuration,一般默认就行,如果用到printf函数可以设置STDIO Connection

Zedboard自定义AXI总线IP详解(多图)_第52张图片

Run As。。。中Run

Zedboard自定义AXI总线IP详解(多图)_第53张图片

33、这样开发板中SWLED就搞上了。然后,就没有然后了。ENJOY IT

 

 

你可能感兴趣的:(Zynq)