从创建工程开始写吧。点击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为复位键,并且是低电平复位,所以程序要正常运行需要将开关推上去设置为高电平程序才可运行。
从创建工程开始写吧。点击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为复位键,并且是低电平复位,所以程序要正常运行需要将开关推上去设置为高电平程序才可运行。