FPGA ZYBO vivado使用MicroBlaze软核控制GPIO(按键加LED)

从创建工程开始写吧。在这里插入图片描述点击Create Project创建一个工程。文件名啥的就不说了,直接选择板子型号在这里插入图片描述
选择的板子是ZYBO,如果没有找到板子的话,则需要到vivado的安装mulxia替换下面的文件,使之包括该型号的板子在这里插入图片描述
下面开始正式工程的配置。
在这里插入图片描述
点击Create Block Design创建一个IP,然后出现下面的界面
在这里插入图片描述
点击图中的加号,然后出现Search搜索框,双击MicroBlaze添加一个软核。
在这里插入图片描述
点击蓝色的 Run Block Automation,然后在弹出来的选择框中可以把Local Memory设置的大一点比如(64KB),其他的配置使用默认即可。然后会自动加入很多的必要的模块:
在这里插入图片描述
此时我们要加入时钟模块,还有两个GPIO模块,一个用来控制LED,一个用来控制按键。首先加入时钟模块:
在这里插入图片描述
直接手动将System Clock向右拖动即可,然后添加两个GPIO控制模块
在这里插入图片描述
首先添加按键的GPIO,双击进入之后选择btns 4bits
在这里插入图片描述
然后添加LED的GPIO,设置为leds 4bits,并将三态输出设置为0,表示为输出状态。
在这里插入图片描述
在这里插入图片描述
还有要注意的一点就是刚才我们添加的时钟模块,要将复位方式设置成低电平使能(Active Low):
在这里插入图片描述
然后我们需要设置一个复位按键,在这里我们选择板子上的SW0作为复位开关。右键空白处选择Create Port:
在这里插入图片描述
出现SW0,然后将复位端连接过来:
在这里插入图片描述
现在我们点击 Run Block Automation。在弹出的框中全部选择:在这里插入图片描述然后点击下图的按键进行Validate Design验证是否正确。
在这里插入图片描述
然后生成HDL Wrapper。
在这里插入图片描述
然后进行Run Synthesis,这个过程有点慢。
在这里插入图片描述
执行完成我们还要对刚才设置的复位键SW0进行端口绑定,查看原理图可以看到对应的引脚是G15。
在这里插入图片描述
点击open Synthesized Design,对端口进行绑定。在这里插入图片描述
设置为下图的配置,电压设置成LVCMOS33。
在这里插入图片描述
保存一下,创建一个新的约束文件。
在这里插入图片描述
然后我们再进行Run Synthesis。完成之后生成bit流,点击generate bitstream。继续等待。。。
在这里插入图片描述
完成之后我们导出hardware。
在这里插入图片描述
比较关键的一步,进行hardware manager,确保板子已经连接好,如果缺少这一步的话在SDK中编程时会显示找不到PS。
在这里插入图片描述
open target->auto connect。
在这里插入图片描述
Program device。最后launch SDK。

下面转入SDK编程。
在这里插入图片描述
在SDK中可以看到我们添加的模块都已经生效。然后我们创建一个工程。
在这里插入图片描述
点finish即可。在工程中***_bsp中的include包含了很多头文件,可以在xparameters.h中看到我们添加的两个GPIO控制模块的地址分配情况,在xgpio.h中有着我们使用到的一些库函数。
在src中创建c文件。
在这里插入图片描述
代码如下:
在这里插入图片描述
然后烧到板子上。右击工程名称,然后run as->launch hardware。需要注意的一点是我们的开发板设置的sw0为复位键,并且是低电平复位,所以程序要正常运行需要将开关推上去设置为高电平程序才可运行。

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值