原创:纳兰公子 明德扬FPGA科教
本文为明德扬原创文章,转载请注明出处!
本工程实现PCIE的8通道速率2.2GBps通信,并验证数据的正确性。
本工程里已经把PCIE部分做成一个封装的模块,对外提供的是fifo_wr(数据发送fifo)接口和fufi_rd(数据接收的fifo接口),用户只要操作fifo接口,无需关心PCIE的内部驱动。为了便于读者更加明白,可以深入了解PCIE,我们将会制作一个PCIE的连载系列。
今天,首先说一下自定义AXI4的IP核,至于AXI4和PCIE之间有什么联系,敬请关注我们的连载系列文章。
在本篇文章中暂时先不讲解AXI4协议,先来分享例化AXI4的自定义IP核详细步骤。
一、 新建工程
为了节省篇幅,新建工程部分就不详细讲解,以下为我们新建好的工程:
![f97a45372862236f70aec0a306b1a5d7.png](https://i-blog.csdnimg.cn/blog_migrate/7cf365960fb125b8bd64a98c846e5d32.jpeg)
二、 创建自定义IP
点击"Tools"菜单下的"Create and Package New IP",如下图所示:
![55d30d20bd5c1a0f4e44eda49727019c.png](https://i-blog.csdnimg.cn/blog_migrate/a091a0ce36d85baec50d565aaaaa9bfb.jpeg)
按照指引,点击"next":
![9757e41d3bf9a9dc22ebb447ce94c58b.png](https://i-blog.csdnimg.cn/blog_migrate/be1a60b586d663f375eaf3d18ea33b7d.jpeg)
选择AXI4的IP核:
![eb39f7bb4a7fd3782acc8e4338c1bf17.png](https://i-blog.csdnimg.cn/blog_migrate/0bb93d1f3b21c7d4010f15ce419d127b.jpeg)
输入IP核的名称:
![65ee820fef7e361226c0fcc5cb50a7ec.png](https://i-blog.csdnimg.cn/blog_migrate/3fb1838b41d598a9a52bb492586907a7.jpeg)
点击"next":
![f74168267f35fb35c4fdb1ffe4acee9c.png](https://i-blog.csdnimg.cn/blog_migrate/147a90d289f71b41a5060a4e52bdcb64.jpeg)
创建和使用AXI4的IP核
![0238b73e2a29ed5175938ba27ef2d542.png](https://i-blog.csdnimg.cn/blog_migrate/97231c6ae799c63f4957deb573853989.jpeg)
三、 生成BD文件
创建AXI4完毕之后系统会自动生成一个bd文件,如下图所示:
![7175b845ff75ee36df2f84c8a60bfd8d.png](https://i-blog.csdnimg.cn/blog_migrate/1d4894ef55a921720e2cff2097d2f7f4.jpeg)
四、 修改IP
![3b50ecb191e9d86338fc2988a0f4a516.png](https://i-blog.csdnimg.cn/blog_migrate/2f729bc91a62412c9be67cb66126bc7b.jpeg)
五、 修改需求
在修改IP核之后系统会自定的给我们打开另一个工程,我修改为我们自己的需求,打开的工程如下所示:
![3647354c8547fd32b3bb62e5cc633692.png](https://i-blog.csdnimg.cn/blog_migrate/d72115fbe3109ea548e0414c511f5c71.jpeg)
修改自己的逻辑,添加自己的逻辑端口:
![c1b85f1614424be1bae7e65b3e53e714.png](https://i-blog.csdnimg.cn/blog_migrate/422cdbd682436810710343d57d072d9f.jpeg)
![bd39716b8e728cd2039a313aaf54065c.png](https://i-blog.csdnimg.cn/blog_migrate/813e3f46bb94b5ba04420886b19d2329.jpeg)
![7e538eafb67cd8feb236d03b4f6cf2c7.png](https://i-blog.csdnimg.cn/blog_migrate/5385e2912a694fed0448e7ec9b958639.jpeg)
![940366aa4407c571acca186dd4dc4c68.png](https://i-blog.csdnimg.cn/blog_migrate/1787d2b71e9cc231fd24366aa4f231f4.jpeg)
六、 封装IP
![521f50115f632901c17b07ca8deb6e43.png](https://i-blog.csdnimg.cn/blog_migrate/8f2903467a60f6a16acf672d276ba6f5.jpeg)
七、 验证IP
在bd文件空白的地方右键验证IP:
![cff770ef2e68faa3aa7a1576209b7b56.png](https://i-blog.csdnimg.cn/blog_migrate/34e1c44c070814e20914928c618ab8cb.jpeg)
八、 编译程
![e15be1cd5dbf63d97e9fb08e1125b3b3.png](https://i-blog.csdnimg.cn/blog_migrate/42bdf4d676145ac70ef92ae41d34025d.jpeg)
九、 调用自定义IP
![3ea79082366743a6e4e36c498ad671a7.png](https://i-blog.csdnimg.cn/blog_migrate/205a5f92c8882d2d72a3006f55ac6fb2.jpeg)
![c32a02866291c3928d1f39e534735a9b.png](https://i-blog.csdnimg.cn/blog_migrate/12534742f943e4e1aa9e3656175c1a2a.jpeg)
![f473eb7d3a5063f8314c595e41c9a428.png](https://i-blog.csdnimg.cn/blog_migrate/1c873b7746676dc88907a0b9c88a48d2.jpeg)
以上就是我们自行定义IP和调用IP的全过程,对此操作有不懂的朋友可以在下方留言与我进行交流,当然也可以联系明德扬进行更多讨论!