vivado2014.2 zedboard 自制IP注意事项

硬件平台:ZedBoard

软件平台:vivado2014.2



首先新建一个工程之后,出现如下界面~~

image

next

image

next,创建一个AXI4总线的IP:

image

image

image

image

至此,一个AXI4总线的模型的框架就建好了,不过既然是自制,当然是需要加入自己东西咯~~

不急,继续,新建一个Block,用来放置IP核们,GO!GO!GO!

image

image

首先添加一个zynq核:

image

再,双击zynqIP:

告诉大家一个小技巧,如下这样可以为我们的zedboard添加约束,嘿嘿~~

image

通过同样的方法添加自己的IP:

添加了之后,是时候我我们自己的IP“添油加醋”了:

编辑我的IP

image

点击OK:(之后会弹出一个新的工程,专门针对IP的)

image

接下来,我们要修改的就是这两个文件:

image

一个个来,先修改第一个:(空都给你留好了了只等,自己去填啊)

image

image

在来修改第二个:

image

再添加,自己的用户逻辑:

image

修改结束保存下,接着干:

image

image

好了,我们的IP编辑完毕了~~

最后 把引脚弄出来,如下~~

image

那么接下,为自己IP添加引脚约束,(不用管其他的?只用负责自己的?。。。对,是的哦!)

image

如果不为自己的IP添加引脚约束会如何呢?好吧,我就告诉吧,我悲剧的没有添加的结果(编译好久的好不好==!)

这个是没有分配LED引脚的结果~~

image

具体,代码我也贴出来吧~~


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
set_property PACKAGE_PIN T22 [get_ports {LED[0]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[0]}]
#NET LD0           LOC = T22  | IOSTANDARD=LVCMOS33;  # "LD0"
set_property PACKAGE_PIN T21 [get_ports {LED[1]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[1]}]
#NET LD1           LOC = T21  | IOSTANDARD=LVCMOS33;  # "LD1"
set_property PACKAGE_PIN U22 [get_ports {LED[2]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[2]}]
#NET LD2           LOC = U22  | IOSTANDARD=LVCMOS33;  # "LD2"
set_property PACKAGE_PIN U21 [get_ports {LED[3]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[3]}]
#NET LD3           LOC = U21  | IOSTANDARD=LVCMOS33;  # "LD3"
set_property PACKAGE_PIN V22 [get_ports {LED[4]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[4]}]
#NET LD4           LOC = V22  | IOSTANDARD=LVCMOS33;  # "LD4"
set_property IOSTANDARD LVCMOS33 [get_ports {LED[5]}]
set_property PACKAGE_PIN W22 [get_ports {LED[5]}]
#NET LD5           LOC = W22  | IOSTANDARD=LVCMOS33;  # "LD5"
set_property PACKAGE_PIN U19 [get_ports {LED[6]}]
set_property IOSTANDARD LVCMOS33 [get_ports {LED[6]}]
#NET LD6           LOC = U19  | IOSTANDARD=LVCMOS33;  # "LD6"
set_property IOSTANDARD LVCMOS33 [get_ports {LED[7]}]
set_property PACKAGE_PIN U14 [get_ports {LED[7]}]
#NET LD7           LOC = U14  | IOSTANDARD=LVCMOS33;  # "LD7"


好了IP都添加完了,开始连线吧~~~

image

好了,点两个确定之后就连接好了:如下

image

 

OK还有很重要的一步,接下来Generate Output Products: 这一操作会生成 Block的对应的HDL文件。

image

image

最后,为我们的Block创建一个顶层文件:

image

这么麻烦的事情当然是交给Vivado,让她帮我们,一键搞定:

image

生成的顶层文件如下:(这时Block之上就出现了顶层文件,话说真是方便啊~~)

image

好了,可以产生bit文件了:

image

顺利的话,应该是编译成功啦!

接下了,开始SDK的了,好戏开始了~~(累了就休息会)

//--------------------------------华丽分割线-------------------------------------

我们继续~~将我们刚刚弄好了硬件信息,导入到SDK,他会为我们产生一些头文件

image

进入SDK!!

image

SDK已经打开(打不开?那去看我前一篇博客~~),新建一个工程:

image

image

新建一个空的工程,点击Finish

image

再创建一个C文件:

image

添加代码如下:



你要问,“XPAR_MYIP_0_S00_AXI_BASEADDR”这个长长的是个啥啊?

我们去"xparameters.h"头文件里看看:(正是我们自己IP的基地址啊)

image

好了,Ctlr + B,编译一下,(我去,还有一个警告!!)

image

莫慌~~~右击工程,Clean一下,该警告可除也~~

image

接下来,就是下载,调试了,上篇博客( [vivado]SDK那些事儿——初试),已经说了,就不再重复了~~


总结:

       这次虽说是自定义IP,但是基本和vivado自带的IO IP没什么分别。

当然,这个过程是描述清楚了。自己想添加什么复杂的逻辑,就自己发挥了~~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值