zoukankan      html  css  js  c++  java
  • Soc常见问题

    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

  • 相关阅读:
    c语言排序算法
    冒泡 选择排序
    冒泡排序算法
    Pandas数据预处理
    Mongodb的安装和配置
    Mysql练习题
    5 根据过去的行为能否预测当下
    Sklearn逻辑回归
    4 如何通过各种广告组合获取更多的用户
    Sklearn多元线性回归
  • 原文地址:https://www.cnblogs.com/FZLGYZ/p/11161748.html
Copyright © 2011-2022 走看看