片上可编程系统(System On a Programmable Chip,SOPC)是Altera公司提出来的一种灵活、高效的SoC解决方案。SOPC是一种特殊的嵌入式系统:首先,它是系统芯片SoC,即由单个芯片完成整个系统的主要逻辑功能;其次,它是可编程系统,具有灵活的设计方式,可裁剪、可升级、可扩充,并具备软硬件在系统可编程的功能。它结合了SoC和FPGA的优点,具有以下基本特征:至少包含一个以上的嵌入式处理器IP(Intellectual Property,知识产权)核,具有小容量片内高速RAM资源,丰富的IP核资源可供灵活选择,有足够的片上可编程逻辑资源,处理器高速接口和FPGA编程接口共用或并存,可能包含部分可编程模拟电路,单芯片、低功耗。
本文主要研究的是应用嵌入式系统开发的软硬件协同设计方法来实现一个集软核处理器的嵌入式设计平台,在此基础上,如有必要还可集成嵌入式 *** 作系统。
1 基于SOPC软硬件协同设计方法
SOPC设计技术实际上涵盖了嵌入式系统设计技术的全部内容,除了以处理器和实时多任务 *** 作系统RTOS为中心的软件设计、以PCB和信号完整性分析为基础的高速电路设计技术以外,SOPC还涉及目前已经引起普遍关注的软硬件协同技术。
1.1 软硬件协同设计模型
目前的软硬件协同设计是指软硬件的设计同时进行,在系统的初期阶段两者就紧密相连。软硬件协同设计不仅是一种设计技术,同时也是一种新的设计方法和思想,它的核心问题是沟通软件设计和硬件设计,避免系统中关系密切的两部分设计过早独立。同传统设计方法相比,软硬件协同设计提高了设计抽象的层次,并拓展了设计的覆盖范围。采用软硬件协同设计技术可以使嵌入式系统设计更好和更快。
软硬件协同设计在其研究和生产实践过程中,提出了很多的设计模型。这些模型都是把系统功能转换成组织结构,将抽象的功能描述模型转换成组织结构模型。由于针对一个系统可以建立多种模型,因此应根据系统的仿真和先前的经验来选择模型。
软硬件协同设计流程从目标系统构思开始。对一个给定的目标系统,经过构思,完成该系统的规范描述,然后是模块的行为描述、对模块的有效性检查、软硬件划分、性能评估、硬件综合、软件编译、软硬件集成、软硬件协同仿真与验证等各个阶段。其中软硬件划分后产生硬件部分、软件部分和软硬件接口3个部分。硬件部分遵循软件描述、软件生成和参数化的步骤,生成软件模块,最后把生成的软硬件模块和软硬件接口集成,并进行软硬件协同仿真,以进行系统评估和设计验证。图1给出了一个软硬件协同设计流程。
图中对软硬件设计流程中每个子过程进行了简单的描述。确定说明文档之后,先建立高级算法模型,然后再考虑软硬件的划分,这样可以更好地分析算法的实现方法,比如是用硬件实现还是用软件实现等。
1.2 软硬件任务划分和软硬件接口
系统模型是对系统初步的粗粒度划分。依据这个粗粒度的划分,有助于第一次软硬件任务分配。在进行软硬件划分时,需要将系统需求根据设计目标和设计约束,分解出硬件的功能需求和非功能需求,以及软件的功能需求和非功能需求,并进一步细化硬件需求及软件需求。
进行软硬件划分是协同设计的重心,划分的合理与否,将直接影响到后续的设计与开发。设计者要从系统的角度,将软硬件完成的功能作均衡,以想要达到的目标为设计标准。在系统的复杂度一定时,使软硬件结合,达到更高的性能。软硬件划分好以后,软件和硬件的设计一直是保持并行的,在设计过程中两者交织在一起,互相支持,互相提供开发的平台。
软硬件的划分不是简单地将功能分解,在进行软硬件任务分配时已经在进行系统的架构设计。其中,非常重要的部分是软硬件的接口设计。嵌入式系统的软硬件接口,从基本的寄存器到高级的系统接口都非常重要。在软硬件任务分配时,主要考虑系统的软件与硬件之间的接口,以及那些影响最终软硬件集成、调试的软硬件接口。
2 系统硬件设计
整个系统的设计可以分为两个部分:第一部分是硬件平台的设计,即可用以运行整个系统的硬件部分,包含了主芯片、外设芯片以及它们之间的互联;第二部分是根据系统设计需求来定制硬件系统,即设计处理器软核和相关外设的控制逻辑,完成系统的定制。第一部分的工作是后面工作的基础。
本设计中的SOPC开发平台系统结构如图2所示,开发板的PCB版图设计利用AlTIum Designer工具完成。软硬件接口设计的主要任务是基于基本指令集完成驱动程序的编写工作。驱动程序是硬件组件与软件组件之间的桥梁。软硬件接口的另一个重要工作是进行硬件初始化。初始化代码是处理器从复位状态进入 *** 作系统能够运行的状态,也就是在把控制权交给 *** 作系统或应用程序之前硬件和底层软件(驱动)必须做的一些工作。
下面详细说明平台中重要的电源电路、Flash接口电路、SDRAM接口电路设计,其他部分电路可参考相应资料。
2.1 FPGA EP1C6Q
2.2 电源电路设计
本设计采用了可调三端稳压器LM1117T-ADJ,可以将电压进行线性转换,电流为800 mA,3引脚的T0200封装。Cyclone系列FPGA上电的最大电流为300mA,该芯片可以满足要求。LM1117需要在输出与地之间接入电容以维持内部电路的稳定,输入与地之间也需要接入电容对输入信号进行滤波。具体的连接如图3所示。
2.3 Flash接口电路设计
Flash即闪速存储器,是一种在系统可电擦写的存储器。作为一种非易失性存储器,Flash主要有两个功能,一部分用来存储数据,另一部分存储专用程序。
由于不同厂家的Flash的擦写时序往往不同,Niosll只支持部分常用的Flash,对于不支持的Flash类型,需要NiosII系统设计人员自己完成相关Flash擦写子程序的编写。本平台采用的AM29LV065 Flash存储器。采用48脚TSOP封装,8位数据宽度,工作电压为2.7~3.6V,读写 *** 作都较一般Flash省电,仅需要单3 V电压即可完成在系统编程与擦除 *** 作。
Flash选用的是22×8,即地址总线为22位,数据总线为8位,其连接关系如图4所示。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)