vivado生成IP核及使用
利用vivado生成一个IP
1. 新建一个工程(注意:要保证所选FPGA型号正确)
2. 添加要封装成IP的文件
3. 将代码进行综合
4. 综合完成后,选择ToolsCreate and Packge New IP
5. 选择后,会弹出如下界面,单击Next
6. 选择Packge your current project,Next
7. 选择生成IP保存的路径和是否要包含代码中使用的IP的源码,例子中没有使用Xilinx的官方IP,这里选择的默认包含.xci文件,Next(选择保存IP的路径最好是单独创建一个文件夹,方便移植使用)
8. 选择OK
9. Finish
10. 等待
11. 弹出如下界面
12. 找到Ports and Interface,选中时钟信号,右键唤出菜单,然后选择Auto Infer Single Bit Interface Clock,这一步的目的是赋予端口属性,因为在block design中会用到。
13. 同样的操作,将复位信号也赋予属性
14. 生成中断信号,选择需要作为中断的信号,选择Auto Infer Single Bit Interface Interrupt
15. 中断信号生成后,可以通过右键中断信号,选择Edit Interface对中断信号进行定义
可以定义中断触发的形式:LEVEL_HIGH(高电平), LEVEL_LOW(低电平), EDGE_RISING(上升沿), EDGE_FALLING(下降沿)
16. 给总线约束时钟
17. 在Addressing and Memery 中,右击,选择IP Addressing and Memery Wizard
18. 选择一个信号,Next
Next
Finish
19. 重复上述第18步
20. 打包IP
以上是一个IP生成的完整步骤,之后,就可以在block design或其他工程中使用了。
生成IP的使用
1. 在工程中选择ToolsProject Settings
2. 将我们生成的IP添加到工程中
列表中出现我们生成的IP后,Apply -->OK
之后,就可以在IP中搜索到我们添加的IP了
Block design 中使用生成的IP
创建一个Block design
添加IP
添加我们生成的IP
选择我们之前定义的中断信号,可以看到信号的类型为intr,说明我们定义的中断信号是正确的,在导出SDK生成PL的设备树时,如果连接中断的信号类型不对,那么在设备树中就会没有中断的信息