基于FPGA的SOC设计与实现

发布者:Quail最新更新时间:2014-09-18 来源: dzsc关键字:ARM7  FPGA  SOC 手机看文章 扫描二维码
随时随地手机看文章

  为减少在印制电路板(PCB)设计中的面积开销,介绍一种Flash结构的现 场可编程门阵列(FPGA)器件,进而介绍采用该器件搭建基于先进精简指令集机器(ARM)的片上系统(SOC)电路的设计方法,该方法按照高级微控制器总线架构(AMBA),设计ARM7处理器微系统及其外设电路,通过用搭建的系统对片外存储器进行擦写,以及通过编写软硬件代码定制符合ARM7外围低速总线协议的用户逻辑外设,验证了系统的准确性,该系统可用于验证SOC设计系统。

  近年来,SOC技术得到了快速的发展,逐渐 成为微电子行业的主流。SOC称为系统级芯片,是一个有专用目标的集成电路,能集成数字电路、硬件专用电路、存储器、微处理器等多种异构模块,实现多个复杂的应用功能,具有速度快、集成度高、功耗低、开发周期短等优点。

  随着集成电路速度的加快和设计复杂性提高,新的技术不断被引进,国内外相继开展了SOC技术及器件的研究,其中一个显着的特点就是将SOC的可靠性和低成本与FPGA的灵活性等优势结合起来,在业界中知名的FPGA芯片公司中,如Ahera公司的Cyclone V和A1Tia V系列引,Xilinx公司的Zynp系列,Actel公司的M7A3P1000,其都内嵌了ARM微处理器,在逻辑设计、片上系统中都有广泛的应用。

  本文选用Actel公司的FPGA器件,型号为M7A3P1000,采用该器件对SOC进行设计验证。该器件采用Flash结构,相比于采用静态随机存储器(SRAM)结构的Ahera和Xilinx公司的FPGA器件,其下载的程序在掉电后不丢失,因此不需专用的配置芯片,故在PCB设计中可降低设计的复杂度,减少面积的开销。此外,该器件所具有的的 加密功能,可有效的保护知识产权。设计中,首先在该芯片中搭建基于ARM7的SOC系统,最后用两种方法验证该SOC系统的正确性:一是用该系统对片外存储器进行擦写操作;二是用该系统测试用户定制逻辑外设。

  1 系统原理

  在SOC设计中,常见的架构都是以微处理器或数字信号处理器(DSP)为中心,加上存储器,外设等,再通过片上总线把处理器和外设进行互连,本设计采用的FPGA型号为M7A3P1000芯片,因其内嵌一个基于AMBA总线架构、且完全兼容ARM7微处理器,故可以在非常低的功耗下安全、可靠地运行。上述的AMBA总线架构,是ARM公司设计的一种高性能嵌入式系统总线的标准,因其具有的高速度、低功耗等特点,故其在SOC设计中已被广泛采用,典型的基于AMBA架构的SOC核心部分如图1。

  由图1中可看出,AMBA规范中定义了两种不同类型的总线:先进的高速总线(AHB)、先进的系统总线 (ASB)和先进的外围总线(APB)。其中AHB适用于高性能和高时钟频率的系统模块,主要用于高性能和高吞吐量设备之间的连接,如片上存储器、DSP、直接存储器访问(OMA)、高速片外存储器控制器(该部件用于连接片外存储器Flash和SRAM)等设备;ASB和AHB属同一功能类型总线,只不过AHB总线是ASB总线的升级版,增强了对性能、综合及时序验证的支持;APB总线主要用于连接低速、低带宽的外围器件,如集成电路总线(IIC)接口、计数器(Timer),通用输入输出(GPIO)、通用异步收发器(UART)等。下文将以此架构,进行SOC设计。

  图1 AMBA架构的SOC核心部分

  2 系统设计

  2.1 SOC设计流程

  采用Aetel公司的Libero IDE 8.6集成开发环境,设计基于ARM7的SOC.SOC包括硬件和软件设计两部分,在硬件设计中,一般将系统经行分模块设计,之后针对各模块功能,逐个进行功能验证,待各模块功能准确后,依据总线架构,组成要设计的目标系统,最后通过软硬件协同调试,证明系统功能的完备性。其SOC设计的主要流程如图2。

  在图2显示的SOC设计流程中,若要设计一个模块或系统,首先对其进行功能/需求分析,下来针对虚线 框内的步骤, 其中步骤HDL-Editor,User-Testbeneh.ModelsimSimulator,可用于模块的设计、功能仿真,若再增加步骤Synthesis,Compile,Layout,Programming Genetation,可对所设计的模块进行实际验证,待各模块功能验证准确后,就可以依据指定的互连结构组成系统,然后结合相应的软件代码,进行系统功能调试、验证。

  图2 SOC设计的主要流程

  2.2 SoC设计搭建

  本文采用在Libero IDE 8.6集成开发环境中内嵌的Coreconsole软件8,搭建基于ARM7的SOC系统,搭建的系统如图3所示。

  图3 基于ARM7的SOC系统

  如图3所示,在Coreeonsole环境中搭建的系统,包括总线,微处理器,外围器件,以及驱动和顶层端口,其中1)CoreMP7:32/16位精简指令集架构处理器、支持32位ARM指令和16位Thumb指令、三级流水线,32位即4G寻址范围等;2)CoreMP7Bridge:桥接器,连接CoreMP7 和CoreAHB,它将CoreMP7处理器发出的信号转换成一个适合AHB总线连接的信号,且包含一组联合测试行动小组(JTAG)信号接口,JTAG接口用于下载程序和软件调试。3)CoreAHBLite:先进的高速总线,一般连接DMA、DSP、SRAM等设备。包含16个AHB从器件节点,每个从器件依次占有256MB地址空间,在本设计中,片外的Flash和SRAM分别连接在节点0和节点1上。2.1部分中用到的片外Flash就是通过外部存储器接口连接在节点0上,故其基地址是Ox00000000;4)CoreMemCtrl:外部存储器控制器,用于连接片上系统与外部寄存器,如对片外Flash、SRAM进行读写访问;5)CoreAHBtoAPB:桥接器。连接CoreAHB和CoreAPB;6)CoreAPB:先进的外围总线,一般连接UART、GPIO、IIC等外设。包含16个APB从器件节点,每个从器件依次占有16MB地址空间,地址计算公式是:物理地址=基地址+偏移地址。7)驱动和顶层端口包括:16 MHz系统时钟SYSCLK;系统低电平复位端口NSYSRESET,程序下载和调试端口JTAG,外部存储器连接端口ExtemalMomopyInterthce,串口通信接口等,图中底色为灰色的是一般的输入输出(PIO)模块,该模块的设计和验证将在3.2部分详细说明。至此,文中介绍了基于AMBA总线架构的SOC中涉及到的时钟、复位、总线、微处理器、外部存储器及外围输入输出端口,即最小系统框架,在图3中清晰地确定了SOC系统的互连结构,实现了各模块之间的通信功能。[page]

  3 实际验证

  下面将对所搭建的SOC系统进行验证,通过对系统翻译、编译、综合、分配管脚、生成下载文件,最后将下载文件烧写到FPGA片中。为验证该系统的准确性,本设计采用两种方法对其进行测试验证,详细过程见3.1和3.2部分。

  3.1 搭建的系统对片外Flash的擦写操作

  本测试主要是在已经搭建好的SOC系统的基础上,在外部存储器控制器接口连接外部存储器Flash,通过能否对Flash进行正常的擦写操作来验证系统的准确性,测试选用的片外Flash芯片型号Numonyx公司是28F640J3D,它是64M的16位只读存储器,分配的基地址是Ox00000000,由于该芯片16位模式的访问特性,地址线0位拉低不予链接,其余地址线管脚依次连接到顶层外部寄存器控制器的地址端口。

  FS2是一款集合了大量指令和可用软件、用以调试基于ARM的SOC系统内核的工具,利用该工具对片外Flash进行配置和擦写操作,来验证系统的准确性。测试首先对片外Flash进行配置,进而对指定存储空间进行擦除操作,然后对该存储空间进行写操作,最后观察此存储空间中的数据,具体过程如图4所示。

  在图4中显示的是FS2工具的用户界面,设计中用到的八条指令,分别是:1>、2>、3>……8>,其中指令1>、2>用来配置片外Flash芯片;指令3>用来选择将要擦写的存储空间,由图中可知,本设计中要进行的读写操作 的存储空间是Ox00000000-0x003FFFFF;指令4>用来对Flash指定的存储空间进行擦除操作;指令5>用来把已经准备好的二进制文件写到上述存储空间中,设计中使用的二进制文件名是QUICK.HEX;指令6>是用来显示指定存储空间中的内容,从图中可看出,写到存储空间Ox00000000-0x0000003F的内容是18、FO、9F……、12、E3;指令7>执行对上述存储空间写入的数据的擦除操作;指令8>显示上述存储单元擦除后的内容。

  图4 片外Flash的擦写演示过程

  通过对上述过程的分析可知,所搭建的SOC系统可准确实现片外Flash的擦写操作,进而说明了该系统的准确性。

  3.2 搭建的系统对外设接口的读写操作

  本测试在遵循ARM7先进外围总线APB的读写时序的前提下,定制用户逻辑外设PIO,通过该系统对PIO接口进行读写操作来进一步验证设计的准确,验证中的用到的APB总线的读写时序如图5。

  图5 APB总线的读写时序

  下面将主要遵循系统中先进的外围总线APB的读写时序,首先采用硬件描述语言和C代码,定制八位的用户逻辑外设PIO,然后将PIO的输入端口接到开关Switch0一Switch7,输出端口接到八个发光二极管Led0一Led7,通过软硬件调试,使八位开关的输入电平显示到八个发光二极管上,以此来进一步验证设计中搭建的SOC系统的准确,针对上述过程及要求,为了更直观地展示验证结果,制作了简单的实验板,当开关键在高电平时,发光二极管变亮,否则,发光二极管不亮。其中定制用户逻辑外设的主要步骤如下:

  1)规划元件的硬件功能;

  2)使用硬件描述来描述硬件逻辑;

  3)单独验证元件的硬件功能;

  4)描述寄存器的C头文件来为软件定义硬件寄存器映像;

  5)将元件集成到ARM7系统中,使用ARM7来测试寄存器的访问是否正确,并为该元件编写软件驱动;

  6)执行系统级的验证等。

  图6是在Aetel公司的调试软件Sofleonsole和实验板上的实际调试结果。

  图6 调试结果

  由图6显示的调试结果可知,八位开关Switeh0-Switeh7的输入分别是11001011和11100101,这个和八个发光二极管Led0-Led7的输出结果一致,由此进一步验证了设计的准确性。

  4 结束语

  本文通过对基于ARM7的SOC系统的设计,介绍了一种Flash结构的FPGA器件及其片上系统的设计方法,进而给出了两种验证该片上系统准确性的方法,通过实际验证,该系统不仅能准确进行片外存储器的擦写,而且可以准确进行外设接口的读写的操作,由此验证了设计的准确性。文中所搭建SOC系统,可以与符合ARM公司的AHB2.0协议的北斗基带芯片无缝连接,在北斗接收机的设计、测试中有重要的参考价值。

关键字:ARM7  FPGA  SOC 引用地址:基于FPGA的SOC设计与实现

上一篇:ARM工控核心板在免疫荧光检测仪中的应用
下一篇:基于ARM Cortex-M3的小型化远程监控智能电源系统

推荐阅读最新更新时间:2024-03-16 13:41

高速突发模式误码测试仪的FPGA实现方案
引言 无源光网络PON以其独特的优势在网络中已经规模化地应用。由于GPON系统在现有PON系统中带宽利用率最高,系统成本最低,且具有全业务支持能力,因此其前景被普遍看好,成为众多电信运营商和设备制造商推崇的宽带接入技术。 在GPON中,下行数据是以广播形式发送的,上行数据由多个用户终端按时分多址的方式发送的数据包组成。因传输路径不同,各数据包有不同衰减,不同数据包相位间存在跳变,数据包中存在长连“1”、“0”,这些因素的影响使得OLT突发接收模块接收的信号是特殊的突发光信号。对于上行的突发信号,OLT突发接收模块不仅要从中恢复出幅值相等的信号,而且要消除相位突变,即完成时钟和相位的对齐,因此OLT输出的信号应该为幅值相等且时钟
[测试测量]
高速突发模式误码测试仪的<font color='red'>FPGA</font>实现方案
OpenCV答题卡识别模拟-测评米尔ARM+FPGA异构开发板
前言 米尔基于ARM+FPGA异构开发板的SDK发布说明 米尔基于ARM+FPGA异构开发板,根据下图文件内容可以知道myir-image-full系统支持的功能,其支持OpenCV,也就不用在格外安装相关驱动包等,省了很多事情。 02. 米尔基于ARM+FPGA异构开发板软件评估指南 本文介绍了Python的基本操作,在文档中10.1开发语言支持。 03.米尔基于ARM+FPGA开发板历程路径 /usr/share/OpenCV/samples//usr/share/opencv4/samples/python/ 文件目录中有一些python程序。 04.米尔基于ARM+FPGA开
[嵌入式]
OpenCV答题卡识别模拟-测评米尔ARM+<font color='red'>FPGA</font>异构开发板
Atmel基于ARM的闪存微控制器获USB-IF认证
Atmel日前宣布其ARM基础32位闪存微控制器AT91SAM7S64已获USB实施者论坛(USB Implementers Forum, USB-IF)认证,确认嵌入在AT91SAM7S64的USB 2.0全速设备接口完全符合相关USB标准。 AT91SAM7S是一系列基于ARM的32位闪存微控制器系统级芯片(system-on-chip)产品,包括一个可提高实时性能的先进中断控制器(interrupt controller),一个能加快外设和内存之间数据传输速度的外围直接内存存取 (DMA) 控制器,能简化外设编程的寄存器位操作,一个可以在任何工作模式下优化功率利用率的功率管理控制器,以及一个用于上电、断电和节电控制的系统控
[焦点新闻]
推出XA 汽车 ECU开发套件
赛灵思公司推出赛灵思汽车(XA)电子控制单元(ECU)开发套件。该套件基于赛灵思公司满足汽车应用标准的低成本 Xilinx® XA Spartan™-3E 现场可编程门阵列( FPGA )器件。 XA 汽车 ECU 套件为快速开发车内网络、信息娱乐、辅助驾驶以及驾驶信息系统提供了一个平台。 赛灵思公司与汽车电子解决方案主要供应商 Si-Gate GmbH 合作开发了这一 XA 汽车 ECU 开发套件。该套件包括一个带有预工程化硬件接口的开发板,支持众多汽车应用IP。利用这一完整的开发环境,汽车设计人员可快速完成器件评估,迅速完成设计并开始运行。 “FPGA内在的灵活性和可编程能力改
[应用]
基于Virtex UltraScale+FPGA的可配置的HES-HPC-HFT-XCVU9P PCIe 卡
高频交易,这个名词可能对你并不陌生,它是指那些人们无法利用的,极为短暂的市场变化中寻求获利的自动化程序交易,高频交易瞬息万变,而决胜的关键就在于快。今天小编就给大家介绍一款Aldec最新的专门用于高频交易的PCIe卡,由小编前面的介绍,大家一定也只知道这款卡的主打性能就是速度快,没错,这也就不难理解为什么Aldec的新型的面向高频交易的HES-HPC-HET-XCVU9P PCIe卡采用Xilinx Virtex UltraScale + VU9P FPGA 的结构。 这款PCIe卡在速度上与任何可重编程或重配置的技术所能达到的速度一样快。Virtex UltraScale + FPGA直接链接到主板上所有的关键的高速接口
[嵌入式]
掉电保护在嵌入式系统中的设计应用
    在嵌入式系统设计过程中,系统的掉电保护越来越受到重视。本文介绍的方法是在用ARM7系列芯片S3C4510B和μClinux构建的嵌入式平台上实现的。整个掉电保护实现的基本思路是:产生掉电信号,捕捉掉电信号和处理掉电信号。重点介绍这个过程的具体实现。     系统防掉电设计的目的是:采用一种机制,使得系统在意外失去供电的情况下,可以保证系统运行状态的确定性以及记录数据的完整性;当系统供电恢复后,现场数据可以及时恢复,避免应用系统产生混乱。我们知道,在嵌入式系统设计与开发中越来越多地应用嵌入式操作系统。由于操作系统的引入,数据的读写往往是通过文件的方式完成,而不是直接对存储单元地址操作。用文件读写方式操作数据,在程序的运行
[电源管理]
掉电保护在嵌入式系统中的设计应用
华夏芯发布异构多核SoC芯片“北极星”
在CES2018消费电子展上,华夏芯向全球发布了领先的CPU/DSP处理器IP和AI专用处理器IP,以及基于前述IP、支持双目立体视觉与目标识别等功能的异构多核SoC芯片“北极星”,与同类产品相比,无论是安全性、可靠性、适用性,还是面积、功耗、成本都更适合于规模化、商业化应用。 华夏芯嵌入式CPU/DSP处理器IP作为嵌入式高端64位超标量处理器,实现了乱序多发射的超标量流水线,支持1~4个核心,单核主频最高达2~3GHZ频率(TSMC CMOS 28nm或者更先进工艺);新增的可变长向量单元可提供强大的并行计算能力;支持2D DMA引擎和加速器专用接口(PXI),能够实现CPU与AI处理器等外部模块之间的高速数据传输。
[嵌入式]
华夏芯发布异构多核<font color='red'>SoC</font>芯片“北极星”
基于FPGA的高速卷积的硬件设计实现
  在数字信号处理领域,离散时间系统的输出响应,可以直接由输入信号与系统单位冲激响应的离散卷积得到。离散卷积在电子通信领域应用广泛,是工程应用的基础。如果直接在时域进行卷积,卷积过程中所必须的大量乘法和加法运算,一定程度地限制了数据处理的实时性,不能满足时效性强的工程应用。本文从实际工程应用出发,使用快速傅里叶变换(FFT)技术,探讨卷积的高速硬件实现方法。    1 卷积算法的原理   设线性时不变系统的冲激响应为h(n),则冲激响应和输入δ(n)之间有关系   假设该系统的输入为x(n),输出为y(n),则根据线性时不变系统的定义,有   根据式(3),线性时不变系统的输出信号可以由输入信号与单位冲激响应的
[嵌入式]
基于<font color='red'>FPGA</font>的高速卷积的硬件设计实现
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved