当下最火的是AI,Machine Learning, Embedded Vision。FPGA老酒新装,在这个圈子里也可以掺和掺和。而谈到linux,这里从事传统嵌入式开发的朋友不在少数,八成都在谋求转型,寻个风口。急人所求,本篇软文以一个简单的实例来介绍一下FPGA的嵌入式linux里应用。隐去过多设计细节,重过程体验。新客们可以看个热闹,FPGA老玩家可以就此贵安。
本实验工程利用Xilinx Zynq UtralScale+(MPSoC)ZCU102嵌入式评估板上实现多个UIO,借助Xilinx的工具完成硬件工程和linux BSP的开发,最后通过测试应用程序完成测试。
ZCU102上的MPSOC集成固化了四核ARMCortex-A53,双核Cortex-R5以及Mali-400 MP2 GPU,这部分官方称为PS(processor system)。另外一部分就是FPGA,即PL(programming logical)。PS端实现控制,PL用来实现应用加速,两者通过AXI连接。跑这个小实验,呵呵,大材小用。只是本人手头正好有这个板子不得不装。筒子们可以去买了个ZYBO, ZED的板子试试身手。
实验报告
实验人员:
实验时间:
实验材料:
Xilinx Vivado 2017.2
硬件工程设计工具
有免费版本
Petalinux 2017.2
Linux BSP开发工具(基于yocto)
免费
ZCU102 EVB final v1.0
高端开发板一枚
收费,贵
PC
电脑一台
要快一点,空间大一点
硬件设计
建立Vivado工程,适配ZCU102 EVB。通过IP Integrator加入PS,在PL侧加入5个UIO输入,其中1个是GPIO模块(包含中断输出和设备内存),另外4个是PIN连接到ZCU102 EVB上的DIP开关,作为中断输入通过一个concat IP连接到PS的ps_pl_irq管脚。
板级细节请参考[1]UG1182,芯片资料参考[2]UG1085
IRQ source
Trigger type
IRQ number
Board Info
pl_irq_er
edge rising
121
SW13.8, DIP0
pl_irq_ef
edge falling
122
SW13.7, DIP1
pl_irq_lh
level high
123
SW13.6, DIP2
pl_irq_ll
level low
124
SW13.5, DIP3
axi_gpio_1
N/A
125
写好约束文件,
set_property PACKAGE_PIN AN13 [get_ports pl_irq_ll]
set_property IOSTANDARD LVCMOS33 [get_portspl_irq_ll]
set_property PACKAGE_PIN AM14 [get_ports pl_irq_lh]
set_property IOSTANDARD LVCMOS33 [get_portspl_irq_lh]
set_property PACKAGE_PIN AP14 [get_ports pl_irq_ef]
set_property IOSTANDARD LVCMOS33 [get_portspl_irq_ef]
set_property PACKAGE_PIN AN14 [get_ports pl_irq_er]
set_propertyIOSTANDARD LVCMOS33 [get_ports pl_irq_er]
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)