首先启动PlanAhead,选择Create New Project
中间省略一万字。。。。。。(跟前一篇HelloWorld步骤差不多,直到添加IP部分)
1、点击Hardware进入CIP向导
2、
3、
4、
5、
6、
7、选择SW寄存器(其实相当于一个中间变量,用来控制IP,这里我们选择两个,一个用来读取SW,
一个用来写入LED)
8、IPIC(系统已经帮你弄好了的AXI总线与IP之间的连接,这里选择默认)
9、Next完之后,IP创建完成。工程目录下会生成 drivers文件夹(里面有IP的驱动模板程序,主要看那个***.h)
而pcores文件夹(里面是所创建IP的所有信息)
10、进入如下devl目录,打开ISE工程文件,修改自定义IP,如定义用户逻辑,IP接口等。
11、打开USER_LOGIC文件,做一下修改
修改1:
修改2:
修改3:
修改4:
修改5:(不屏蔽的话会报错--multipy drivers,再两个Always块中分别连接了不同的FF)
12、修改VHL接口文件
修改1:
修改2:
修改3:
13、修改完后,保存,综合一下,没错则退出。
14、回到XPS中,修改IP的MPD文件,添加PORT
15、修改完后,更新一下Rescan User Repositories
16、之后添加IP到XPS工程中,弹窗选默认
17、之后可以在图形设计界面看到IP核加了进来
18、之后再Ports窗口,把IP的端口映射到External Ports
19、再生成一下地址,那么硬件设计就差不多完成了。
20、关闭XPS,回到PlanAhead。为工程生成顶层HDL。
21、添加ucf约束文件。
22、点击综合-----------》综合后,Open Synthesis Design------------》打开IO Port窗口
23、如下图修改引脚映射,Ctrl+S保存,会提示你覆盖到创建的ucf中。
24、之后点击Implementation实现-----------》产生位流bitgen
24、导出到SDK中,编辑软件
25、在SDK中创建ApplicationProject,并利用Hello World模板
26、成功打开后,SDK主界面如下
27、修改HelloWorld.c文件,首先将之前系统生成的IP驱动文件拖进SDK工程中
之后会发现.h文件报错,这里是由于工程无法找到xbasic_types头文件
28、在下图位置,添加Include文件路径,重新编译
29、在添加进来的H文件中可以看到,系统帮你封装好的AXI总线函数
这里的BaseAddress可以在xml文件中看到
30、修改Helloworld文件,为了功能测试,代码有点简单
31、下载位流
32、修改Debug Configuration,一般默认就行,如果用到printf函数可以设置STDIO Connection
在Run As。。。中Run
33、这样开发板中SW和LED就搞上了。然后,就没有然后了。ENJOY IT。