vivado的SDK配置:
1.create block design(名字可以与工程名不同)--按“+”添加需要用到的IP,输入zynq选中ps端--配置自己需要的接口--run block automation--validate design--回到sources--右击刚刚的块工程--generate output products--工作线程选最大--右击块工程create HDL wrapper(生成顶层文件)
2.file--export--export hardware(用到PL端需要勾选include bitstream)
3.file--launch SDK(exported的位置一定要跟刚刚生成的相同,工作空间可以自定义)
4.在SDK中--file--new--application project--OS是操作系统平台--hardware是硬件平台--processor是处理器--board support是板级支持包--next(官方提供的模板,一般选empty或hello world)--finish
5.左边bsp目录--ps--include(头文件)--xparameters.h(一般是改这个里面的参数)
6.zynq test--右击src--new--source file--命名main.c--finish
7.编写好main.c文件后按下ctrl+s保存会自动编译,下面console栏可以看到状态结果
8.点击下面的SDK terminal--“+”--选择端口号(可通过设备管理器查看)
9.右击SDK下的工程目录--Run as--launch on hardware(system debugger)
10.若用到PL端时--右击SDK下的工程目录--Run as--run configuration..--system debugger using debug_--勾选program FPGA--勾选复位--apply--OK
去掉不需要用到的配置:
双击块--PS-PL configuration
去掉时钟复位--general--enable clock resets--取消勾选
去掉AXI接口--AXI Non--GP master--取消勾选
去掉时钟clock configuration--PL fabric clocks--取消勾选
添加需要用到的配置:
注意引脚所属的BANK对应的电压,MIO BANK0为3.3 BANK1为1.8
添加串口--peripheral I/O pins--选中UART
添加GPIO--peripheral I/O pins--勾选GPIO MIO
添加DDR--DDR configuration--memory part--选择型号(野火用的是MT41K256M16 RE-125)
找固件函数:
bsp--system.mss--import examples--勾选参考--CTRL+左键 可以跳转函数
PS通过EMIO控制PL端:
双击块--peripheral I/O Pins--勾选GPIO EMIO--左侧MIO configuration--GPIO里面把EMIO GPIO的位宽选择合适
引出接口--左键选中三根竖线--右键选择make external(CTRL+T)
然后生成块和顶层文件,编译一下,分析--open synthesized design--schematic--点击原理图上面的I/O来绑定引脚--选好引脚后会显示所在的bank--看核心板的原理图找到对应的bank--再看对应的bank用的是什么电压--再更改电压--保存--generate bitstream--引入硬件(注意这里要勾上include bitstream)--启动SDK
io_buffer可以把三根数据线转换成一根三态线
将.V文件放在块中设计:
右击.V文件--add module to block design--连线即可
自定义IP核:
打开vivado--manage IP-- tools--create and package New IP--选择创建AXI4--选择好配置--完成--在IP目录中找到刚刚自定义的IP--右击--edit in IP packager--OK--写好代码后--回到packaging steps--compatibility里面加入支持器件--file groups里面更新文件--四五也更新下--左侧GUI--可以配置显示--双击--可以选择是否勾选可见--也可以点击window--加号--增加一个页面来进行设置--选中某个页面的目录点+也可以新建分组--package IP
使用自定义IP:
把存放自定义IP的那个目录复制--在工程目录里面新建一个my_ip--粘贴到这个里面--setting--展开IP--repository--+--路径选为刚刚的自定义IP--识别到IP--OK
固化:
SD卡启动:双击块--外设IO-- 勾选SD0--bank1用1.8--MIO配置里勾选SD0下的CD选项(可有可无)--…(与上文操作一致)--左侧BSP目录右击--board support package setting--勾选xilffs--OK--file--new--application project--命名FSBL--下面的板级支持包选择use existing--next--选择zynq FSBL--完成--xilinx--create boot image--路径放在SDK目录下的FSBL目录里并新建一个名为image(镜像)的文件夹来存放路径--点击下面的add--文件路径选择FSBL下的debug下的.elf文件(类型为bootloader)--OK--如果有PL端需要放bit流文件--SDK目录下的硬件平台目录--选择.bit文件--类型改为datafile--OK(注意bit流必须要跟在elf文件的后面)--再添加PS端的程序--add--选择SDK目录下的跟工程命名一样的目录--debug--选择.elf文件--create image--此时image文件夹下会出现boot.bin--把SD卡插到电脑上--把这个boot.bin文件放入SD卡--把SD卡插到开发板上(最好断电操作)--拨码开关选择对应--上电即可--中途更换启动模式可以不断电--按复位即可
Flash启动:块中注意勾选QSPI flash--…--在SDK上端xilinx选项--program flash--image file选择image目录下的boot.bin(参考SD)--FSBL file选择FSBL下的debug下的.elf文件--program