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

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

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

你可能感兴趣的:(FPGA)