ZYNQ系列的实用奇葩操作(5)--PS-PL互联之实现一个简易AXI外设

   上一章节讲了CPU和外设的Memory Map,现在是时候实战AXI接口扩展外设。

    作为一个攻城狮可不能边看别人操作边流口水,喜欢的东西就要挽起袖子自己上。

   先从点个灯开始吧,接触硬件的人点个灯和编程界的hello world同样具有划时代的意义。一起来看一下操作步骤:

第一步选Create and Package New IP,快速创建AXI外设的机关就藏在这里面

图片

第二步 英语好的可以看下介绍,像砖头这种英语不好的就直接点NEXT。

图片

    第三步  看名字就知道选Create a new AXI4 peripheral,创建一个AXI4接口的外设。

图片

   第四步 选择创建的文件要保存位置,各位看客自便。

图片

    第五步 配置AXI接口参数

图片

第六步 选择Edit IP,接下来需要使用这里面的源码

图片

第七步 myip_v1_0_S00_AXI.v就是一个最基本的AXI-LITE接口外设。

图片

第8步 另外新建一个ZYNQ最小系统工程(详细步骤参考开发板教程,此处省略),然后将第七步的myip_v1_0_S00_AXI.v文件添加到此工程里。完成后如下图:

图片

第九步 打开myip_v1_0_S00_AXI.v文件,这个文件很容易理解,就是实现AXI总线读写slv_reg0-slv_reg3寄存器的功能。

图片

第十步   底层逻辑电路是连接软件和硬件的桥梁,FPGA最终和硬件的桥梁就是顶层Module定义的output/input信号,output对应的引脚输出高低电平,input获取对应引脚的高低电平(FPGA工程师:这我熟)。假设我现在有3个LED灯,要控制LED灯,那我们只需要把这3个LED灯对应的输出接口和reg寄存器的值关联起来即可。

图片

    别忘了在port部分导出接口:

图片

第十二步 在myip_v1_0_S00_AXI.v文件上右击,选择Add Module to Block Design

图片

第十三步 点击Run Connection Automation ,自动完成Block Design设计

图片

然后在myip_v1_0_S00_AXI_V1_0上右击并选择Make Extern导出led引脚,完成后如下图:

图片

 这样就给PS添加了一个自定义的外设,这个外设有3个输出接口(这个外设真是盖中盖)。后面生成顶层文件、bit文件等常规操作步骤省略。

   本章节描述了如何给PS添加一个自定义外设在PL端的实现步骤,下一节讲如何在PS端使用这个外设。

公众号:嵌入通信的砖 每周更新嵌入式技术

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值