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


【SoC FPGA开发常见问题合集】SoC FPGA开发过程中常见问题


  本系列学习笔记基于小梅哥SOC Cyclone V SoC开发板。

一、什么是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开发板

概述

  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
配套例程说明


三、Intel SoC FPGA产品线

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

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


【SoC FPGA学习】一、AC501-SOC FPGA开发板介绍相关推荐

  1. RISC-V开发与应用学习系列——Tang Nano 9K FPGA开发板介绍

    Tang Nano 9K FPGA开发板介绍 简介 开发板资源.IDE及实例演示 简介 Tang Nano 9K 是基于高云半导体 GW1NR-9 FPGA芯片设计的精简型开发板.它搭载的HDMI连接 ...

  2. 基于vivado(语言Verilog)的FPGA学习(3)——FPGA理论知识

    基于vivado(语言Verilog)的FPGA学习(3)--FPGA理论知识 文章目录 基于vivado(语言Verilog)的FPGA学习(3)--FPGA理论知识 1. FPGA介绍 1.1.F ...

  3. FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程

    FPGA学习笔记之Altera FPGA使用JIC文件配置固化教程 很多做过单片机的朋友都知 道,我们在对MCU烧写完程序固件后,那么该程序固件就存储在了该MCU内部.即使MCU断电了再重新上电,程序 ...

  4. FPGA基础入门【12】开发板USB鼠标控制

    上一篇教程介绍了NEXYS4 开发板中UART串口通信的使用方式,这一篇介绍USB接口接收鼠标和键盘信号 FPGA基础入门[12]开发板USB鼠标控制 开发板USB芯片 信号时序图 鼠标初始化 逻辑设 ...

  5. FPGA基础入门【8】开发板外部存储器SPI flash访问

    前两篇教程利用数码管project介绍了chipscope和各种烧写开发板的方式,这篇开始继续探索开发板,这次关注外置存储器的控制,外置指的是芯片外部,不是开发板外部.板子上的外置存储器有DDR2和S ...

  6. 2021物联网开发学习——基于小熊派IoT开发板Bear-Pi-IOT、E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link

    2021物联网开发学习--基于小熊派IoT开发板Bear-Pi-IOT.E53_IA1_智慧农业拓展板与小熊派-鸿蒙·季Bear-Pi-HM Nano并接入Hi-Link 目录 作者介绍 目的 用到的 ...

  7. 学习嵌入式linux与ARM开发板入门方法(一)

    嵌入式开发板(Embedded development board)就是半导体行业分工合作的载体之一,它为开发产品的厂商提供基本的底层硬件.系统和驱动等资源,使得用户不需要再投入人力和时间来完成这些底 ...

  8. 新手学习嵌入式Linux和Android开发板推荐

    一,确定目标,linux是一个非常非常大的概念.想全部吃透是不可能的.理想的说,搞懂linux,就可以做所有工作.个人更倾向于说想做什么样工作,需要侧重学linux的哪部分. 二,选择开发板 学习嵌入 ...

  9. STM32F407霸天虎FreeRTOS学习笔记——移植FreeRTOS到开发板上

    STM32F407霸天虎FreeRTOS学习笔记--移植FreeRTOS到开发板上 FreeRTOS源码获取 移植第一步:创建文件夹 Keil main.c 实验效果 FreeRTOS源码获取 在移植 ...

  10. 【AXU3EG】UltraScale+ MPSoC以及开发板介绍

    Copyright © 2012-2020 芯驿电子科技(上海)有限公司 UltraScale+ MPSoC Zynq UltraScale+ MPSoC 系列是 Xilinx 第二代平台,其在 FP ...

最新文章

  1. 高压放电与防静电塑料包装
  2. Exception in thread main java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
  3. Fedora配置网络DHCP
  4. 【Python学习系列十一】Python实现决策树实现C4.5(信息增益率)
  5. 41、Power Query-Text.Combine函数进阶2
  6. java servlet 部署到tomcat_如何把spring boot项目部署到tomcat容器中
  7. mysql手动安装配置,mysql8.0.11 winx64手动安装配置教程
  8. 在组策略中用户策略仅对特定计算机生效,将组策略应用到满足条件的计算机---配置组策略筛选...
  9. 人脸检测-MTCNN算法笔记和代码解读
  10. Android 测试入门之---Monkey test
  11. mysql数据库详细设计实例_MYSQL数据库设计和数据库设计实例(二)
  12. mysql酒店客房管理系统的设计_《酒店客房管理系统设计》总结
  13. 火山伪原创视频软件 短视频md5修改过检测工具
  14. MYSQL-JDBC数据库实战-宠物商店
  15. Vue-5 路由参数的传递和获取(query 和 params),导航守卫和路由元信息,History模式
  16. Android数字证书
  17. HEVC学习(二十八) —— 量化之二
  18. 使用PySide2创建图形化Python程序时:Available platform plugins are: direct2d, minimal, offscreen, windows
  19. html不同板块点击切换,板块快速切换的操作策略
  20. 深入理解Java虚拟机-高效并发

热门文章

  1. Mac office Run-time error ‘53
  2. Unity3d连接SQLServer数据库
  3. 【MATLAB教程案例80】matlab在大学数学中的应用——高等数学
  4. Word处理控件Aspose.Words功能演示:使用 C++ 以编程方式将 Word 转换为 HTML 、MHTML
  5. 微机保护算法matlab编程,微机继电保护matlab算法仿真(有源程序).doc
  6. 使用JavaScript实现自己的代码生成平台----概览
  7. pyecharts本地文件,pyEcharts安装及详细使用指南(最新)
  8. 看国外高速公路如何收费(电视台播的新闻,真的。优酷还不让上传!气人)
  9. Prerender.io
  10. 【转载】System_Verilog打印格式