SOC常见问题解答

1.SOC FPGA中的ARM是软核还是硬核?ARM核的外设是软核还是硬核?

SOC FPGA 中的ARM核是硬核。所以简称HPS,Hardware Processor System

2.ARM处理器核是包含于FPGA逻辑单元内部的吗?

如下图所示。刚开始接触SOC FPGA就可以认为,FPGA和ARM(HPS)处理器只是封装到同一个芯片中,JTAG接口、电源引脚和外设的接口引脚都是独立的。

3.ARM处理器和FPGA逻辑单元如何通信?

如下图所示,上面蓝色区域是ARM处理器部分,下面是FPGA逻辑单元部分。ARM和FPGA是通过他们之间的几个桥进行通信的。

4.FPGA和FPGA之间的带宽是如何计算的?

Cyclone V SOC  FPGA器件

H2F和F2H两个高速桥,每个桥128-bit位宽,128*2*200MHz=51200Mbps

1个FPGA到SDRAM桥,256bit位宽,256*200MHz=51200Mbps

不计算H2FLW桥的情况下,所有桥,单个方向的总带宽是>100Gbps

Arria V SOC  FPGA器件

H2F和F2H两个高速桥,每个桥128-bit位宽,128*2*250MHz=64000Mbps

1个FPGA到SDRAM桥,256bit位宽,256*250MHz=64000Mbps

不计算H2FLW桥的情况下,所有桥,单个方向的总带宽是>125Gbps

5.产品开发模式和传统FPGA、独立ARM处理器开发模式有什么不同?

开发SOC FPGA芯片需要使用Altera的Qsys软件。在Qsys中要将ARM和FPGA之间的各个桥总线信号引入到FPGA侧。需要在Qsys图形化界面中 使能ARM侧的各个外设,并选择相应的管教;设置DDR颗粒的配置参数。后续经过简单操作就可以直接产生ARM的bootloader源代码。该特性为 ARM开发人员提供了非常大的便利。

之后的驱动开发和操作系统的配置,用户应用程序的开发过程和传统嵌入式开发过程类似。

注:Qsys软件已经包含与QuartusII中,不需要单独安装。

6.推荐的ARM仿真器?

推荐使用USB Blaster。

7.推荐的ARM开发软件?

推荐使用Altera版本的DS-5开发软件。

8.Altera版本的DS5有什么特点?

支持使用USB Blaster ARM处理器

支持FPGA和ARM交叉触发联合调试

支持调试Linux内核和驱动模块

支持优化软件的profile特性,如下图所示

9.FPGA和ARM处理器加载模式,ARM支持几种加载源?

a. ARM先启动,由ARM加载FPGA运行loader代码进行加载。

b. FPGA逻辑先加载,ARM从FPGA运行loader代码进行加载。

c. ARM和FPGA独立加载。

ARM加载源可以选择:Nand Flash、SD卡flash、QSPI nor flash和FPGA。

10.ARM启动过程分为哪些阶段

典型的加载过程包括下图中boot rom、preloader、bootloader、OS、加载应用。

11.在DS5中如何新建工程

建议从DS5安装目录下直接导入示例工程,基于比较接近的工程进行修改。如果从头建立工程,并创建makefile、链接脚本和调试脚本的话,难度较大。

12.Altera SOC 支持网站

官方支持网站是:www.rocketboards.org ,在中文FPGA设计网站上也提供了一些在线培训课程www.FPGAdesign.cn

13.开发SOC FPGA,Qsys是否必须的?

是必须的,在Qsys中可以将ARM和FPGA之间的各个桥的接口引入到FPGA设计中。并且,可以通过Qsys图形化的界面配置ARM外设管脚复用,DDR控制器配置参数等。

14.ARM和FPGA之间的各个桥都是什么总线接口的?

如下图所示,ARM和FPGA之间的桥都是AXI总线接口。

15.如何将FPGA侧Avalon接口的从设备接到ARM到FPGA桥上?

如下图所示,在Qsys系统中,可以直接将Avalon总线的从设备直接挂接到AXI桥总线上。AXI和Avalon接口转换是由Qsys自动完成。

16.在ARM侧如何访问挂接到H2F bridge和H2F LW bridge的设备?

在ARM侧需要使能H2F bridge和H2FLW bridge。之后,ARM通过桥访问FPGA侧的设备就像访问自己的内存一样的方便。

17.挂接到H2F bridge和H2F LW bridge上设备的地址空间是什么关系?

在ARM侧给H2Fbridge分配的地址空间是从0Xc0000000开始的960MB;给H2FLW bridge分配的地址空间是从0Xff200000开始的2MB地址空间。

18.ARM和FPGA两侧时钟独立,他们之间通信是如何保证不丢失数据的

ARM和FPGA直接有双口buffer。当buffer满时,写端将会被挂起。

19.ARM侧不用的GPIO引脚是否可以借给FPGA逻辑单元用作GPIO?ARM侧的设备是否可以使用ARM侧不用的GPIO引脚?

可以,需要在Qsys中设置。

20.编译Qsys和Quartus工程后,产生的交付文件(handoff文件夹下的)有什么作用?

根据Qsys中的配置直接产生头文件源码文件和C源码文件,如:ARM侧设备管脚复用的宏定义,DDR控制器配置参数等,后续操作中可以直接基于这些交付文件产生preloader和uboot代码,整个过程不需要手工修改代码。

21.如何编译preloader和uboot代码?

运行D:altera13.1embeddedEmbedded_Command_Shell.bat脚本软件,输入bsp-editor后弹出图形界面,选择交付文件目录,如下preloadersettings directory:所示目录。在CommandShell中切换到BSP target directory目录。执行make all命令编译preloader,执行make uboot命令编译uboot。

22.只跑baremetal代码,至少需要什么代码

如下图所示,只跑裸跑代码的话,典型应用是需要preloader和bare metal应用代码。Boot rom中的代码是固化到芯片中的。

23.只跑像UCOS这样小的实时操作系统,至少需要什么代码?

如下图所示,和裸跑类似,典型应用是需要preloader和ucos OS和应用代码。Boot rom中的代码是固化到芯片中的。

24.运行Linux操作系统,至少需要什么代码

如下图所示,只跑裸跑代码的话,典型应用是需要preloader、uboot、linuxOS和linux应用。Boot rom中的代码是固化到芯片中的。

25.如何获取Linux各个版本内核代码

下载linux版本树主干代码:gitclonegit://git.rocketboards.org/linux-socfpga.git

进入代码路径:cd u-boot-socfpga

查看本地分支:$ git branch

查看远程分支:$ git branch -r

获取Linux3.10代码:gitcheckout -t-b socfpga-3.10 origin/socfpga-3.10

获取Linux3.11代码:gitcheckout -t-b socfpga-3.11 origin/socfpga-3.11

获取Linux3.12代码:gitcheckout -t-b socfpga-3.12 origin/socfpga-3.12

获取Linux3.9代码:gitcheckout -t-b socfpga-3.9 origin/socfpga-3.9

Soc常见问题的更多相关文章

  1. ESP8266常见问题汇总——转载自官网

    ESP8266 常见问题 本页面收集esp8266常见问题 概述 本文档主要介绍开发者在ESP8266开发中常见的一些问题. 这些问题主要包括以下几大类: 基本概念相关 ESP8266 相关 AiCl ...

  2. C++常见笔试面试要点以及常见问题

    1. C++常见笔试面试要点: C++语言相关: (1) 虚函数(多态)的内部实现 (2) 智能指针用过哪些?shared_ptr和unique_ptr用的时候需要注意什么?shared_ptr的实现 ...

  3. SQL Server常见问题介绍及快速解决建议

    前言 本文旨在帮助SQL Server数据库的使用人员了解常见的问题,及快速解决这些问题.这些问题是数据库的常规管理问题,对于很多对数据库没有深入了解的朋友提供一个大概的常见问题框架. 下面一些问题是 ...

  4. 【腾讯优测干货分享】如何降低App的待机内存(二)——规范测试流程及常见问题

    本文来自于腾讯优测公众号(wxutest),未经作者同意,请勿转载,原文地址:https://mp.weixin.qq.com/s/806TiugiSJvFI7fH6eVA5w 作者:腾讯TMQ专项测 ...

  5. mysql数据库开发常见问题及优化

    mysql 数据库是被广泛应用的关系型数据库,其体积小.支持多处理器.开源并免费的特性使其在 Internet 中小型网站中的使用率尤其高.在使用 mysql 的过程中不规范的 SQL 编写.非最优的 ...

  6. 《PDF.NE数据框架常见问题及解决方案-初》

    <PDF.NE数据框架常见问题及解决方案-初> 1.新增数据库后,获取标识列的值: 解决方案:    PDF.NET数据框架,已经为我们考略了很多,因为用PDF.NET进行数据的添加操作时 ...

  7. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  8. JMeter常见问题集合

    前言 本文内容仅仅是针对Jmeter的部分功能名词的介绍和解释,以及初学者不易理解的问题的整理.部分内容来自别人做的整理,为了更好地整理自己的思路,所以可耻的整理一下发到博客上. 标题[1-6]和[参 ...

  9. NHibernate常见问题及解决方法

    NHibernate常见问题及解决方法 曾经学过NHibernate的,但是自从工作到现在快一年了却从未用到过,近来要巩固一下却发现忘记了许多,一个"in expected: <end ...

随机推荐

  1. 用 GitBook 创建一本书

    用 GitBook 创建一本书 Gitbook 首先是一个软件,它使用 Git 和 Markdown 来编排书本,如果你没有听过 Git 和 Markdown,那么 gitbook 可能不适合你直接入 ...

  2. 【algo&ds】8.最小生成树

    1.最小生成树介绍 什么是最小生成树? 最小生成树(Minimum spanning tree,MST)是在一个给定的无向图G(V,E)中求一棵树T,使得这棵树拥有图G中的所有顶点,且所有边都是来自图 ...

  3. 2018.3.7java 学习第二天

    java 学习的第二天,首先我们要学习的是声明变量,在程序中,我们必须先声明变量,然后才可以去使用之,那么变量究竟是什么呢? 在很多课本上,有很多的定义诸如:“变量来源于数学,是计算机语言中能储存计算 ...

  4. js数组合并以及对象的遍历

    这是很基础的知识,but,对于一只未系统学习过js,只略懂搬砖的跨界狗,还是经常犯错: 场景:移动端上拉加载更多. 初始数组合并后来请求的数组. 使用concat方法,不过要主要: 使用concat, ...

  5. 2019-11-19:无返回的盲型xxe,使用带外读取数据

    文章资料来源于网络,仅供参考,学习使用 复现盲型xxe 实验环境:bwapp,xxe关,注释掉了返回值 准备读取的flag.txt文件为 通过利用服务器外带数据方法步骤 1,攻击机服务器新建两个文件, ...

  6. Java中的Calendar 类和SimpleDateFormat 类

    1.Calendar 类:import java.util.Calendar;               Calendar cal = Calendar.getInstance();        ...

  7. 个人收藏--未整理—C# http/https 上传下载文件

    c# HTTP/HTTPS 文件上传. 分类: .net 2015-02-03 08:36 541人阅读 评论(0) 收藏 举报 方法主体 [csharp] view plaincopy public ...

  8. 最小生成树(Kruskal)

    题目描述 如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入输出格式 输入格式: 第一行包含两个整数N.M,表示该图共有N个结点和M条无向边.(N<=5000,M<= ...

  9. usermod命令、用户密码管理、mkpasswd命令 使用介绍

    第3周第2次课(4月3日) 课程内容:3.4 usermod命令3.5 用户密码管理3.6 mkpasswd命令 3.4 usermod命令 usermod可以修改用户的UID和GID 命令使用格式: ...

  10. KNN学习笔记

    简单地说,KNN算法就是通过测量不同特征值之间的距离来对特征进行分类的一种算法. 优点:精度高.对异常值不敏感.无数据输入假定. 缺点:计算复杂度高.空间复杂度高. 适用数据范围:数值型和标称型. 工 ...