arty a7是基于Artix-7 FPGA设计的开发平台,具有丰富的Pmod接口,扩展性较强,搭建microblaze软核易于开发
FPGA是可编程的硬件逻辑电路,microblaze是一种处理器CPU电路,使用microblaze,相当于在FPGA内部做了一个CPU,可以在这个CPU上跑C语言的软件程序,FPGA偏向逻辑,但是做控制比较麻烦,用CPU跑C程序控制比较方便
Arty A7开发板基本外设:LED灯、UART串口、KEY按键、SW拨码开关
以下是官网提供的资料链接:
arty a7开发板资料
Pmod DA4资料
vivado安装说明
board files添加
基于microblaze的vivado开发流程
另一篇博文写了怎样申请license并激活vivado
以下是在vivado2017.4_MicroBlaze_ArtyA735t上的关于串口开发验证的基础流程(目前使用的是2019.2版本+vitis)2019.2版本与2017.4流在BD面板设计的流程基本一致,不过2017.4使用的是SDK,2019.2使用的是vitis
新建工程
注:路径不要有中文名,电脑用户名也不能有中文!
选择RTL工程
在board中找到arty a735,如果没有找到,原因是board files没有添加,board files添加
finish
选择左侧creat block design,可修改design name,点击ok
打开BD设计界面后,先添加microblaze软核,点击右侧digram面板“+”,搜索microblaze双击添加
点击上方绿底蓝色字run block automation,将local memory 改大到64KB(这里不清楚修改依据,没有外部存储的话不能选太小),点击ok
可以看到系统自动生成了一些相应的模块
其中时钟模块clk需要进行修改,双击打开,按图所示修改管脚信息
完成时钟模块设计后,再继续添加基础外设模块UART,在board窗口中找到UART并将其拖到面板,点击ok,会自动进行连接
双击打开axi uartlite,会看到在board里面自动帮我们把引脚配置成usb_uart
打开IP configuration,修改波特率为115200(此处不清楚修改依据)
采用类似的方法将board上的LED和Switches拖拽到面板中,当拖拽switches时,会看到面板上的的axi_gpio变成绿色,是系统提示可以连接
这样一个基础的microblaze系统就搭建完成了,点击自动连接
选择all automation,ok
系统搭建完成,可以用旋转功能改变系统布局
点击validation design按钮对BD设计进行检查,提示successful说明设计正确
如果提示错误就要根据提示看看管脚连接和高低电平等是否有问题
切换到sources,右键BD设计文件,选择creat hdl wrapper,点击下方选项,让vivado自动生成wrapper封装
双击打开生成的wrapper封装,打开.v文件,能够看到代码,与BD面板上的组件是一一对应的
至此,已添加板卡信息文件,ip配置时选择了预设的管脚,可以直接进行综合布线,生成比特流文件
点击generator beatstream,工作数量根据电脑cpu线程选择,越多就越快,此处选择了8
点击ok,生成比特流文件需要较长时间,生成完毕并没有错误会出现以下提示
选择cancel
点击File-export-export hardware,勾选include bitstream ,ok,导出硬件信息
点击File-lanch sdk,ok,进入sdk软件设计,如果使用的是2019.2及之后版本vivado,转到vitis开发
打开SDK后,会自动导入我们刚才设计的硬件信息文件
新建application project
设置工程名称,点击next
SDK提供了一些模板,例如helloworld,可以利用串口发送字符串
打开左侧项目文件夹下的HelloWorld.c,可以打开.c文件并进行编程
使用USB数据线连接开发板与电脑,在SDK中,将比特流文件下载到FPGA上,点击program fpga,点击program
烧写完成后,打开SDK自带的串口工具接收
打开SDK terminal,点击+,在port栏中填写fpga与电脑连接的端口,打开设备管理器,找到端口
右键运行工程
可以看到terminal窗口已经接收到了“hello world”文字
至此,串口开发功能已验证。