FPGA+AI数字世界

标题: [米联客-XILINX-H3_CZ08_7100] LINUX应用篇连载-01 基于AXI的多路网口实现 [打印本页]

作者: LINUX课程    时间: 2024-9-10 18:02
标题: [米联客-XILINX-H3_CZ08_7100] LINUX应用篇连载-01 基于AXI的多路网口实现
软件版本:vitis2021.1(vivado2021.1)
操作系统:WIN10 64bit
硬件平台:适用XILINX Z7/ZU系列FPGA
登录“米联客”FPGA社区-www.uisrc.com视频课程、答疑解惑!

1 简介
首先先确认底板有PL端的网口,本章节仅针对有PL网口的底板,实验前务必先继续确认底板包含PL网口。
对应PL端的资源,Linux是无法直接访问到的,所以需要通过AXI总线来进行有效的沟通,由于FPGA等同于硬件电路,所以通过AXI沟通的网口并不会损失多少性能。
2 通过TCL搭建工程
本工程提供了TCL文件方便搭建自己的工程,如果觉得麻烦可以选择直接使用工程构建,打开附带的zu_prj文件夹即可跳过本节。
首先通过菜单新建一个工程,展开File-Project-New,新建一个工程。
(, 下载次数: 503)
(, 下载次数: 496)
选择工程路径并命名工程:
(, 下载次数: 496)
选择工程类型,注意勾选的子选项:
(, 下载次数: 492)
选择芯片的型号:
(, 下载次数: 478)
米联客所采用的芯片型号有如下:
7010:xc7z010clg400-1
7015:xc7z015clg485-2
7020:xc7z020clg400-2(milianke 7x、7XA/B)、xc7z020clg484-2(702P)
7030:xc7z030ffg676-2
7035:xc7z035ffg676-2
7045:xc7z045ffg900-2(7100FC)、xc7z045ffg676-2(7035FA/B/C/D)
7100:xc7z100ffg900-2
检查所选的型号是否正确:
(, 下载次数: 518)
将{demo位置}/soc_tcl/uisrc放到新建工程目录下
(, 下载次数: 527)
为工程添加IP库,打开settings,选择IP下的Repository,使用加号添加上一步中的路径内的IP文件夹:
(, 下载次数: 460)
通过source {demo位置}/soc_tcl/system.tcl导入BD文件,注意路径要输入正确。TCL文件在demo中已经提供。
(, 下载次数: 509)
导入完成后:
(, 下载次数: 504)
在BD文件上右击,找到如下选项,创建顶层文件。
(, 下载次数: 513)
选择自动生成:
(, 下载次数: 522)
找到添加源的按钮,添加管脚约束:
(, 下载次数: 505)
选择第一个:
(, 下载次数: 458)
点击创建文件:
(, 下载次数: 535)
为约束文件创建名称:
(, 下载次数: 478)
创建完成后看到已经添加到列表里的,这时候就完成了。
(, 下载次数: 491)
打开刚刚新建的文件,将{demo位置}/soc_tcl/fpga_pin.xdc中的内容拷贝进来,按Ctrl+S保存。
(, 下载次数: 504)
可以看下关键参数的设置,这里需要注意不是每个板卡设置都一样
[attach]18733[/attach]
(, 下载次数: 487)
(, 下载次数: 520)
(, 下载次数: 513)
(, 下载次数: 505)
3 通过vivado导出硬件文件
FPGA需要自行开发生成自己想要的硬件电路,出厂配有一些简单的案例来帮助验证,详见附件第四章。
首先,对工程进行编译,点击生成比特按钮。
(, 下载次数: 466)
打开已经设计好的FPGA工程,依次展开File - Export - Export Hardware…
(, 下载次数: 504)
打开后为下图界面,点击Next>下一步:
(, 下载次数: 531)
选择包括比特文件这一选项,然后点击下一步:
(, 下载次数: 511)
这里是提醒在导出硬件文件前刷新比特文件,点击Yes:
(, 下载次数: 507)
选择导出位置,选择好后点击Finish开始导出:
(, 下载次数: 474)
打开导出文件夹,就能看到如下的硬件文件,以.xsa结尾:
(, 下载次数: 504)
4 从xsa构建Vitis工程
通过桌面快捷方式打开Vitis软件:
(, 下载次数: 516)
打开第一步就是选择工作路径,设置好合适的路径后点击Launch启动:
(, 下载次数: 472)
打开后是不是感觉很熟悉?没错其实这个就是我们熟悉的Eclipse IDE,写过Java的应该对这个IDE不陌生,但是我们这次不是拿它来写Java了,而是用它来编译c。点击左侧栏的小按键,打开编辑模式:
(, 下载次数: 526)
打开后的第一步并非创建工程,而是先给这个工程添加一个设备树模板,依次展开Xilinx - Repositories:
(, 下载次数: 548)
设备树模板可以使用Xilinx官方的,我们在附件中也提供了设备树,另外附上官方设备树模板的地址:https://github.com/Xilinx/device-tree-xlnx/releases
点击如图所示的New按键,找到设备树模板的目录,添加一个新的设备树模板:
(, 下载次数: 474)
选择好后,先Apply再Apply and Close:
(, 下载次数: 511)
添加好后,开始新建工程,依次展开File – New – Platform Project:
(, 下载次数: 504)
输入工程的名称,注意命名规范,然后点击下一步:
(, 下载次数: 502)
点击Browse找到刚刚生成的xsa文件,再如图设置其他参数,点击Finish完成设置:
(, 下载次数: 475)
稍等片刻等待工程初始化完成,在工程上右击选择Build Project开始编译:
(, 下载次数: 482)
等待控制台弹出完成的信息时,则代表我们需要的文件已经编译完毕:
(, 下载次数: 470)
打开工程所在目录,找到以下对应的三个文件,也就是我们之前说的所需文件:
文件的位置:
(, 下载次数: 498)
system_wrapper.bit:         {工程位置}\zu_sdk\zu_base\hw\
fsbl.elf:                                {工程位置}\zu_sdk\zu_base\export\zu_base\sw\zu_base\boot\
还记得我们上面所说的吗,这两个文件分别是PS和PL端的配置文件、FSBL启动文件。这样我们就得到了大部分的移植系统所需要的文件。
当然有了这些文件并不够,我们还差一个设备树文件,附件中已经提供了一个写好的设备树文件,或者也可以参照下图位置中Vitis给出的设备树进行一些小修改,注意此处不建议初学者自行修改,只需会使用即可:
(, 下载次数: 494)
5 使用工具包制作烧写系统
首先将system_wrapper.bit、fsbl.elf两个文件分别改名为system.bit、zynq_fsbl.elf,打开配置好的虚拟机,然后将system.bit、zynq_fsbl.elf两个文件拷贝到{解压目录}/uisrc-lab-xlnx/boards/mz7x/ubuntu/output/target,选择覆盖(第一次使用不会提示覆盖):
(, 下载次数: 518)
然后将soc_dts文件夹中的设备树文件,分别复制到:
{解压目录}/uisrc-lab-xlnx/sources/uboot/arch/arm/dts
{解压目录}/uisrc-lab-xlnx/sources/kernel/arch/arm/boot/dts
同样选择覆盖:
(, 下载次数: 508)
在scripts文件夹内右击,选择Open in Terminal:
(, 下载次数: 489)
然后我们就要开始使用脚本制作系统了,首先在/uisrc-lab-xlnx/scripts目录内打开终端,然后source配置一些环境变量:
(, 下载次数: 503)
分别输入:
make_uboot.sh                        用来制作uboot
make_kernel.sh                        用来制作Linux内核
create_image.sh                        用来制作镜像
然后插入TF卡准备烧写,分别执行:
make_parted.sh                        格式化并分区u盘,先输入盘符,再输入确认
deploy_image.sh                        烧写启动文件与系统文件,输入盘符
最后弹出TF卡后插入开发板:
(, 下载次数: 522)
7100FC 的SD卡启动是通过qspi进行引导的,而qspi则是通过JTAG进行烧录的。因此,第一步是对开发板的flash进行烧录。
将 SD 卡中的 BOOT 目录下的 BOOT.bin 文件和之前vitis生成的fsbl.elf(fsbl.elf 文件见4.4部分)也保存至“soc_sdk/soc_qspi”文件夹内。
(, 下载次数: 517)
连接硬件,拔卡在断电状态下插入jtag、串口,将核心板上拨码开关两位拨到on,插入电源准备开机。
拨码开关在板上的位置如下:
(, 下载次数: 506)
JTAG如下连接。
(, 下载次数: 496)
打开vitis,选择附件中准备好的第四章的soc_sdk。该项目中已经设置好可以烧录的配置了。
(, 下载次数: 506)
在菜单栏找到Xilinx,选择烧录qspi:
(, 下载次数: 475)
烧录使用如下配置,其中BOOT.bin和fsbl.elf为之前保存在“{工程位置}/soc_sdk/soc_qspi”中的文件。
(, 下载次数: 509)
给板卡上电,点击program烧写:
(, 下载次数: 494)
(, 下载次数: 540)
板卡断电,先拔下jtag的usb数据线,再从板卡拔下jtag,插入sd卡,将核心板的拨码开关拨为qspi启动(ON-OFF),使用putty串口登录板卡。
启动界面。
(, 下载次数: 516)
输入run sdboot,启动sd卡内系统。
(, 下载次数: 486)
用户名:uisrc
密码:root
登录成功,页面如下。
(, 下载次数: 509)





欢迎光临 FPGA+AI数字世界 (https://www.uisrc.com/) Powered by Discuz! X3.5