SoC-FPGA设计指南
实时嵌入式系统
LAP-IC-EPFL
1.05版
Sahand Kashani-Akhavan
Reneacute; Beuchat
引言
嵌入式系统的开发基于芯片包含一个或多个微处理器和硬核外围设备,而且FPGA部分变得越来越重要。这项技术给了设计人员极大的自由和强大的能力。微控制器的经典设计流程强调FPGA的全功率。
混合设计正在成为现实。现在人们可以设计专用加速器,大大提高了算法,或者与外部世界创建特定的可编程接口。
两个主要的HDL(硬件设计语言)语言可用于FPGA部分的设计:VHDL和Verilog。此外,还有执行从C自动转换到HDL的其他工具。像OpenCL这样的新技术允许高级软件设计和底层硬件实现之间的兼容性,如:
·编译单个或多核心处理器
·编译GPUs(图形处理单元)
·为FPGA翻译和编译。最新的型号使用PCIe接口或其他方式在主处理器和FPGA之间传递参数
本指南假定用户知道如何使用Quartus II,NIOS II,QSYS和ModelSim-ALTERA。
本指南所用的硬件和软件的例子使用的Quartus II,SoC EDS和Nios II软件设计工具,版本为14.1。
本指南中的一些图片,用的Quartus II,SoC的EDS和Nios II软件设计工具,版本为14.0。
我们将介绍并使用友晶的DE1-SoC开发板,还有ARM DS-5 IDE。
6 Cyclone V概述
本章介绍了Cyclone V系列器件的某些功能。我们没有列出所有功能,只列出了那些对我们很重要的功能。下面的所有信息,以及关于这个系列中最完整的文档可以在Cyclone V器件手册中找到。
6.1 Cyclone V硬件处理系统简介
Cyclone V器件是一个片上的单芯片系统,该系统包括两个不同的部分:硬处理器系统(HPS)部分和FPGA部分。
图6-1 Altera SoC FPGA器件框图
HPS包含一个微处理器单元(MPU)子系统,该子系统带有单或双ARM Cortex-A9 MPCore处理器,闪存控制器,SDRAM L3互连,片上存储器,支持外设,外设接口,调试功能和锁相环(PLLs)。双处理器HPS支持对称(SMP)和非对称多处理(AMP)。DE1-SoC具有双处理器HPS。
该器件的FPGA部分包含FPGA结构,一个控制块(CB),锁相环(PLLs),和根据器件类型不同有高速串行接口(HSSI)收发器,硬总线接口控制器和内存控制器。DE1-SoC不包含任何HSSI接收器,或硬PCIe控制器。
该器件的HPS和FPGA部分是截然不同的。HPS通过以下途径启动
·FPGA架构
·外部flash,或
·JTAG
相比之下,配置FPGA必须通过
·HPS,或者
·外部支持的设备,如Quartus II编程。
该MPU子系统可以用以下方式启动
·连接到HPS引脚的闪存设备,或
·从器件上FPGA部分的可用内存(当FPGA部分预先由外部源配置)。
器件的HPS和FPGA部分都具有自己的引脚。引脚不能在HPS与FPGA之间自由共享。 FPGA的I/ O引脚通过HPS或器件支持的任何外部源的FPGA配置映像进行配置。HPS 的I / O引脚通过软件在HPS执行配置。在HPS上执行软件访问 Cyclone V系统管理的控制寄存器来将HPS 的I / O引脚分配到可用的HPS模块。该配置HPS I/O引脚的软件叫做 PRELOADER。
设备的HPS和FPGA部分有不同的外部电源和独立电源。你可以单独对HPS
部分供电而不需要对器件的FPGA部分供电。然而,为了对FPGA部分供电,
HPS部分必需已经或者与FPGA部分同时上电。表6-1总结了可能的配置。
表6-1 可能的HPS和FPGA电源配置
6.2 HPS的功能
图6-2 HPS框图
下面的列表包含HPS的主要模块:
·主要组件
◎具有两片ARM Cortex-A9 MPCore的处理器的MPU子系统
◎通用直接存储器访问(DMA)控制器
◎两个以太网媒体访问控制器(Emacs)
◎两个USB2.0 On-The-Go(OTG)控制器
◎NAND闪存控制器
◎安全数字(SD)/多媒体卡(MMC)控制器
◎两个串行外设接口(SPI)主控制器
◎ARM CoreSight调试组件
·附加组件
◎四SPI闪存控制器
◎两个SPI从控制器
◎四内部集成电路总线(I 2 C)控制器
◎64 KB的片上RAM
◎64 KB的片上引导ROM
◎两个UART
◎四个时钟源
◎两个看门狗定时器
◎三个通用IO(GPIO)接口
◎两个控制器区域网络(CAN)控制器
◎系统管理器
◎时钟管理器
◎复位管理器
◎扫描管理器
◎FPGA管理器
6.3 系统集成概述
在这一部分中,我们简要体验一下最重要的HPS组件所提供的一些功能。
6.3.1 MPU子系统
下面是MPU子系统的几个重要特点:
·中断控制器
·一个通用定时器,每个处理器都有一个看门狗定时器
·每个处理器都有一个内存管理单元(MMU)
HPS控制L3互连和SDRAM控制器子系统。
6.3.2 SDRAM控制器子系统
SDRAM控制器子系统由HPS主控组件和FPGA结构主控组件来控制。它支持DDR2,DDR3和LPDDR2设备。它由两部分组成:
·SDRAM控制器
·HPS的单端口内存控制器I / O接口
DE1-SoC的HPS模块包含DDR3 SDRAM。
6.3.3 支持外设
6.3.3.1 系统管理器
这是最重要的HPS组件之一。它提供了一些重要的特性:
·引脚复用(由PRELOADER用于HPS I / O引脚的软件配置项)
·冻结控制器,则以I / O单元进入安全状态进行配置
·底层控制外设功能不能通过控制和状态寄存器(CSRs)
一些外设功能无法通过CSRs进行底层控制不是外部地记录。当你生成你的自定义预加载时你会看到这种类型的代码,但决不能在自己的代码中使用这种结构。
6.3.3.2 FPGA管理器
FPGA管理器提供了以下功能:
·管理器件的FPGA部分的结构
·监视FPGA配置相关的信号
·提供32个通用输入和32个通用输出到FPGA架构
6.3.4 接口设备
6.3.4.1 GPIO接口
HPS提供了三个GPIO接口,并有以下功能:
·支持数字防抖动
·配置中断模式
·支持多达71 个I / O引脚和14个仅输入引脚,基于设备型号
·支持多达67 个I / O引脚和14个仅输入引脚
DE1-SoC拥有67 个I / O引脚和14个仅输入引脚。
6.3.5 On-Chip Memory(片上存储器)
下面的片上存储器不同于FPGA结构上的片上存储器
6.3.5.1 On-Chip RAM(片上RAM)
片上RAM提供以下功能:
·64KB存储空间
·所有的突发长度高性能
6.3.5.2 Boot ROM(引导ROM)
引导ROM提供以下功能:
·64KB存储空间
·包含所需支持HPS从冷或热复位启动的代码
·专门用于引导HPS
在引导ROM的代码无法改变。
6.4 HPS-FPGA接口
HPS-FPGA接口提供了多种的HPS和FPGA结构之间的沟通渠道。HPS-FPGA接口包括:
·FPGA到HPS的桥——高性能总线具有32,64或128位的配置的数据宽度。它允许FPGA架构控制与HPS架构的从属组件的数据交互。该接口允许FPGA架构能全面访问HPS的地址空间。
·HPS到FPGA的桥——高性能总线具有32,64或128位的配置的数据宽度。它允许HPS架构控制与FPGA架构的从属组件的数据交互。我有时会称之为“重量级”HPS到FPGA桥辨别其“轻量级”对手(见下文)。
·轻量级HPS到FPGA桥——有32位固定数据宽度的总线。它允许HPS架构控制与FPGA架构的从属组件的数据交互。
·FPGA管理器接口——与FPGA架构的沟通和引导配置信号。
·中断——允许软IP直接提供MPU中断控制器的中断。
·HPS调试接口——一个允许HPS调试控制范围延伸到FPGA架构中的接口。
6.5 HPS地址映射
6.5.1 HPS地址空间
HPS指定从属组件的地址映射,如内存和外设的地址,由HPS控制器监视。
HPS有3个地址空间:
表6-2 HPS地址空间
下图显示了不同的HPS地址空间之间的关系。该图不是按比例的。
图6-3 HPS地址空间关系
窗口区域提供访问其他地址空间。黑箭头表示地址空间访问窗口区域(箭头指向访问的地址空间)。MPU中的SDRAM窗口可以生长,并以FPGA的从寄存器和引导寄存器收缩为代价向顶部和底部增长(短的蓝色垂直箭头)。所述ACP窗口可以被映射到在MCU地址空间中的任何1 GB区域(蓝色垂直双向箭头),
在字节边界对齐。
下表显示的基地址和每个区域的大小在L3和MPU地址空间中是通用的。
表6-3 通用地址空间区域
6.4.2 HPS外设区域地址表
下表列出了从属组件的标识符,从属组件的名称,基地址以及每个从属组件在HPS外设区域所占空间大小。
表6-4 HPS外围设备地址表
在表6-4中用于访问HPS外设的编程模型与FPGA架构创建外设是相同的。也就是说,每一个外设都有基地址可以访问一定数量的寄存器。你可以读和写一个特定的寄存器来修改外设的行为。
当使用表6-4中的HPS外围设备,你不需要在程序中硬编码基地址或者外设寄存器映射,因为Altera为每一个设备提供头文件。
两个目录包含所有HPS相关的头文件:
- “lt;altera_install_directorygt;/lt;versiongt;/embedded/ip/altera/hps/altera_hps/hwlib/include”
包含的高级头文件通常包含几个功能,方便对HPS组件的控制。这些功能是
Altera HWLIB的一部分,这是为了使对HPS编程更加容易。
- “lt;altera_install_directorygt;/lt;versiongt;/embedded/ip/altera/hps/altera_hps/hwlib/include/socal”
包含的低级头文件,提供了一个外设的位级寄存器的详细信息。例如,在一个外围寄存器对应于未定义行为中的任何位将指定在这些头文件中。
为了说明高级和低级头文件之间的差异,我们可以比较那些与FPGA管理外设相关的文件:
1.“hellip;/hwlib/include/alt_fpga_manager.h”
ALT_STATUS_CODE alt_fpga_reset_assert(void);
ALT_STATUS_CODE alt_fpga_configure(const void* cfg_buf, size_t cfg_buf_len);
2.“hellip;/hwlib/include/socal/alt_fpgamgr.h”
/* The width in bits of the ALT_FPGAMGR_CTL_EN register field. */
#define ALT_FPGAMGR_CTL_EN_WIDTH 1
/* The mask used to set the ALT_FPGAMGR_CTL_EN register field value. */
#define ALT_FPGAMGR_CTL_EN_SET_MSK 0x00000001
/* The mask used to clear the ALT_FPGAMGR_CTL_EN register field value. */
#define ALT_FPGAMGR_CTL_EN_CLR_MSK 0xfffffffe
一个重要的头文件是 “hellip;/hwlib/include/socal/hps.h”。它包含HPS组件的完整寄存器表,如表6-4所示。
但是请注意,不存在用于“重量级”HPS到FPGA桥无头文件,因为它不位于图6-3中的“
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[152995],资料为PDF文档或Word文档,PDF文档可免费转换为Word
课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。
您可能感兴趣的文章
- 基于极值优化的自适应分数阶BP神经网络在手写体数字识别中的应用外文翻译资料
- 大功率LED照明用DC-DC转换器中半导体开关温度的无线监测外文翻译资料
- 数据采集系统外文翻译资料
- 基于FPGA的智能无线传感器网络温度采集系统外文翻译资料
- 无线传感器网络作为基于Web的建筑环境监测系统的一部分外文翻译资料
- 学习用于音频分类的可分离时频滤波器组外文翻译资料
- 基于ARM处理器的自动施肥数据采集控制系统外文翻译资料
- 多路温度传感器外文翻译资料
- 太阳能蒸馏:有前景的供水替代技术,使用免费的能源,技术简单,清洁外文翻译资料
- 应用无人机喷洒消毒液抗击COVID-19大流行–考察影响效果的无人机相关参数外文翻译资料