【SoC FPGA学习】一、AC501-SOC硬件初探,基础扫盲

时间:2024-04-12 14:23:28

   少一些功利主义的追求,多一些不为什么的坚持。


  本系列学习笔记基于小梅哥SOC Cyclone V SoC开发板。年前朋友便把开发板寄给我玩了,可我手残的扔到了学校吃灰。没错,该系列可能是没有开发板的学习笔记,hhh…

一、什么是SoC FPGA

  随着信息技术的高速发展,各行各业趋向于通过资源整合,并购的方式来获得更强更稳固的竞争力,芯片架构亦是如此。单“芯”SoC方案(System on Chip)拥有的低功耗、低成本、低布线面积以及高整合、高性能、高带宽(内部互联)的优势正推动其引领电子系统设计潮流。
  在传统的芯片架构中,处理器、DSP、FPGA往往都各自独立,互不相干。当一个系统需要用到处理器、DSP、FPGA中的多个元件时,则采用板级继承的方式,在一个电路板上设计复杂的电路,将他们通过PCB板走线连接到一起。此种方式设计的系统,不仅设计生成成本高,而且受限于PCB走线和I/O管脚性能的影响,无法实现高带宽的数据通信。设计师们都期待着有那么一种芯片,能同时拥有处理器、DSP、FPGA的特点,各个架构的优势强强联合,提升电子系统设计的便利性。
  顺应时代的发展,亦如当年麻雀虽小,功能俱全的“单”片机出世,各大传统FPGA厂家都顺势推出了带有嵌入式硬核处理器的SoC FPGA。如Intel FPGA部门基于不同应用推出的带有Cortex-A9、Cortex-A53、志强CPU等一系列涵盖低、中、高端的SoC FPGA器件,Xilinx推出的带有Cortex-A9、Cortex-A53处理器的ZYNQ系列FPGA。
  同时集成处理器和FPGA的器件具划时代意义。自此ARM和FPGA的优势共存一体,ARM的顺序控制、丰富外设、开源驱动,FPGA的并行运算、高速接口、灵活定制的特性交错相融,相得益彰。再加上其内部多条告诉桥接总线,使其数据交互链路畅行无阻。
  无论是Xilinx的ZYNQ全可编程系列FPGA,还是Intel的SoC FPGA,其基本架构都是在同一个硅片上集成FPGA和CPU,并通过高速、高带宽的互联架构连接起来。本质相同,架构和性能也都非常相似。熟悉一种器件的使用和开发思路,掌握其开发流程,即可很快速的过渡到另一种器件上。

二、关于小梅哥SOC Cyclone V SoC开发板

【SoC FPGA学习】一、AC501-SOC硬件初探,基础扫盲

概述

  AC501-SOC是一款高性能SOC FPGA开发平台,也是国内为数不多的基于Intel Cyclone V SoC FPGA器件的开发平台。
  开发板使用了Intel Cyclone V SoC FPGA 器件,该器件是一款在同一晶片上高度整合了ARM Cortex-A9双硬核处理器和现场可编程逻辑门阵列(FPGA)的新型异构计算芯片。
  Cortex-A9处理器可以运行嵌入式Linux操作系统,FPGA可以设计专用硬件逻辑加速电路,并与A9处理器使用偏上总带宽高达128Gbps的总线进行数据交互

要知道,我们之间学习的IMX6ULL不过是Cortex-A7架构!

硬件资源
  • 主控:Intel CycloneV SoC FPGA芯片,型号为5CSEBA2U19I7
  • 内存:镁光512MB DDR3内存
  • 网络:千兆以太网接口
  • FLASH:128Mbit QSPI FLASH
  • 电源:Intel原厂FPGA专用电源系列
  • USB:USB2.0 OTG
配套例程说明

【SoC FPGA学习】一、AC501-SOC硬件初探,基础扫盲
【SoC FPGA学习】一、AC501-SOC硬件初探,基础扫盲

三、Intel SoC FPGA产品线

  针对不同的应用领域,Intel PSG部门设计开发了各种逻辑资源容量和性能的SoC FPGA器件,如下图所示。

【SoC FPGA学习】一、AC501-SOC硬件初探,基础扫盲

Cyclone V SoC FPGA产品介绍

   Cyclone V SoC FPGA基于台积电28纳米工艺,可提供非常低的系统成本和功耗,其性能和成本优势适合大批量应用。FPGA部分和前几代相比,其总功耗降低了40%。具有高效的逻辑集成功能,提供可选的集成收发器。并且支持经度可调的DSP模块,数字信号处理性能高达150GMACS和100GFLOPS(什么概念?戳这里)。
   Cyclone V SoC FPGA提供3大类可选的类型,分别是:

  • 具有基于ARM的HPS的Cyclone V SE SoC FPGA
  • 具有基于ARM的HSP和3.125-Gbps收发器的Cyclone V SX SoC FPGA
  • 具有基于ARM的HSP和5-Gbps收发器的Cyclone V ST SoC FPGA
关于SoC FPGA芯片中的ARM

双核Cortex-A9处理器,高达925MHz运行频率。

  • 看起来是ARM - 标准的ARM Cortex-A9架构
  • 用起来是ARM - 可运行标准的ARM Linux系统
  • 开发起来是ARM - 使用标准的ARM开发工具链开发
关于SoC FPGA芯片中的FPGA

Cyclone V E FPGA标准架构,基于SRAM的查找表典型架构。

  • 看起来是FPGA - LUT、触发器、PLL、RAM、乘法器、IO
  • 用起来是FPGA - 使用Quartus 软件直接编程,流程不变
  • 开发起来是FPGA - HDL编程,Qsys系统,时序约束分析
ARM和FPGA的独立和关联

独立性:

  • FPGA和ARM均可独立启动,独立运行、独立开发
  • Xilinx的AYNQ7000系列芯片,仅支持ARM先启动,而后FPGA才能启动
  • Intel SoC FPGA,ARM和FPGA均可独立启动,互不干涉
  • Intel SoC FPGA,甚至一方不上电,另一方都能正常工作
    • 该特性对于工控系统中一些对可靠性要求比较高的应用具有非凡的意义,将一些重要的功能配置在FPGA侧,即使ARM部分工作异常,FPGA也能继续运行,保证系统的安全。

关联性:

  • FPGA和ARM可以通过偏上告诉总线联合工作,高速数据交互
  • FPGA可以通过标准的AXI总线连接到ARM上,与ARM进行高速数据交互
  • ARM可以通过标准的AXI总线控制FPGA侧的IP,并进行高速数据交互
  • ARM可以直接对FPGA进行配置(相当于下载器下载sof文件到FPGA)

四、小梅哥寄语

1、这是一款集合了FPGA和ARM-Linux嵌入式处理器架构的SoC FPGA混合型器件,合理高效的使用它需要较为扎实的FPGA编程功底、一定的QSYS/SOPC使用经验、扎实的C语言基础功底。FPGA还没入门,没有使用过Qsys、C语言水平在2级以下的,不建议贸然尝试。

2、开发SoC FPGA器件对电脑性能要求较高,需要安装Quartus 17.1版本软件,需要安装Ubuntu虚拟机,根据经验,i5的2.6G CPU,8G内存,固态系统盘的情况下,完成一次Quartus工程分析和综合需要7分钟,全编译需要约22分钟,i7-4核2.8G主频CPU、16G内存,全固态硬盘的情况下,完成一次分析和综合需要4分钟,全编译需要10分钟。内存太小,CPU主频太低、低压版CPU可能开发较为吃力。

3、开发SoC FPGA需要有较强的心理承受能力,很多问题和知识点都是第一次接触,各种报错可能之前见所未见。如无较强的心理承受能力,很可能第一步就跨不出去。

4、开发SoC FPGA需要有踏实的学习态度,例如跟着推荐的教材仔细的学习,勤动手练习。
对于IntelCyclone V SoC,由于发布时正值Altera被Intel收购,各方面调整,因此导致并未在市场上获得广泛的应用。现如今市场占有率相对于友商Xilinx的Zynq系列,也并不十分高,所以学习这个可能并不能帮你找到好工作。学习之后也不一定能够投入公司项目应用。
本产品当前主要适合科研院校进行创新项目的开发。请各位网友认清自己的心态,确实有兴趣的,再考虑学习。
AC501-SoC开发板初期提供的资料多为实验例程加视频讲解,讲解内容也主要是操作和开发过程,并不会非常系统的去讲解每一个细节,虽然这些在以后会做,但是等做了再说,当前计划仅依靠两个综合性项目展开,将该项目涉及到的知识点做重点讲解。两个项目,一个是基于SoC图像采集显示的,一个是数字示波器的。这两个项目里面几乎包含了大部分的SoC开发知识:Qsys搭建,HPS配置,UBOOT生成更新,内核编译更新,驱动编写编译,应用编写,程序调试等。所以,暂时不要对教程有太高的期望。
以上是小梅哥总结的学习和开发SoC技术的必备条件。作为指导是否有必要选择学习和使用SoC FPGA的一个衡量标尺。