ZYNQ定制开发
# ZYNQ定制开发
ZYNQ 的全称是 Zynq-7000 All Programmable SoC。Zynq-7000 系列是 Xilinx 公司推出的全可编程片上系统(All Programmable SoC),包含 PS(Processing System,处理器系统)和 PL(Programmable Logic,可编程逻辑)两部分。
ZYNQ兼备ARM和FPGA的双重能力,常应用于信号、图像处理、机器学习等计算密集的领域。功能强大的同时带来了研发成本高、周期长等问题,我在尝试提供ZYNQ定制化的服务(软件方面)来解决该问题。
借用PYNQ的架构图来说明我要做的事和愿景,PYNQ 作为一个开源框架,其设计初衷是通过高层次的封装,将底层硬件 FPGA 实现细节与上层应用层的使用脱耦,对软件开发者来说,PYNQ 框架已经提供了完整的访问 FPGA 资源的 library,让上层应用开发者通过 Python 编程就可以调用 FPGA 模块,不需要懂 Verilog/VHDL 硬件编程就可以享受 FPGA 可并行计算、接口可方便扩展和可灵活配置带来的诸多好处。
PYNQ 系统架构分为三层,分别是以 FPGA 设计为主的硬件层、以 linux 内核加 Python 为主的软件层,以及以 Jupyter Notebook 为主的应用层。用户只需关心上层的业务,用高级的语言去调用封装好的FPGA IP就好了,但对用户定制化的需求,还是无法绕开需要开发FPGA和Linux驱动,也就回到了我要讲的ZYNQ定制开发的主体。
嵌入式开发大类分驱动和应用开发,嵌入式应用开发和PC端的开发没本质的区别;嵌入式驱动开发,更多的是和datasheet、寄存器打交道。ZYNQ除嵌入式开发外还多了一项FPGA的开发,如下图所示,外设A、外设B、外设C的实现都是在PL(FPGA)端实现的,他们统称IP,这些IP可通过AXI总线与PS(ARM)ARM端通信。
# 服务项目
- FPGA端逻辑开发,定制IP
- Linux端驱动开发,基于Petalinux
- 非对称多处理器(AMP)框架搭建
- ZYNQ的Python开发环境搭建
- IP的python接口函数开发
# 欢迎技术交流与合作
👋🤝