《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > S698P4 SoC芯片存储器控制器的设计与实现
S698P4 SoC芯片存储器控制器的设计与实现
来源:微型机与应用2011年第21期
陈炳成,唐芳福,蒋晓华,颜 军
(珠海欧比特控制工程股份有限公司,广东 珠海 519080)
摘要: 详细分析了S698P4 SoC芯片存储器控制器的控制原理,并给出相应设计方案和仿真结果。该控制器可在32 bit位宽模式下对存储器进行读写控制。目前该处理器已实现了量产,实际硬件测试验证了S698P4 SoC芯片存储器控制器的高效性能。
Abstract:
Key words :

摘  要: 详细分析了S698P4 SoC芯片存储器控制器的控制原理,并给出相应设计方案和仿真结果。该控制器可在32 bit位宽模式下对存储器进行读写控制。目前该处理器已实现了量产,实际硬件测试验证了S698P4 SoC芯片存储器控制器的高效性能。
关键词: 存储器控制器;S698P4;位宽模式;SPARC V8

 随着半导体技术的快速发展以其设计工艺的不断改进提高,集成电路的设计规模越来越大,特别是进入0.18 μm以下后,已经可以在一个芯片上实现几亿个晶体管的设计规模。这样规模的电路完全可以将一个完整的电子系统在单个芯片上实现[1],于是便出现了所谓系统芯片SoC(System-on-Chip)。系统芯片把多种功能的系统(模块)集成到一个芯片上,包括CPU、DSP、逻辑电路、模拟电路、内存及其他电路模块等,并相互构成完整系统。同时,由于设计工艺的不断提高,处理器可达到的工作频率也越来越高,为了协调好外部存储器(包括外部SRAM、ROM)和I/O等设备以及内部存储器(如片内SRAM)与处理器的关系,必须要有高效的存储器控制器对存储器和CPU的工作进行协调控制。高效的存储器控制器对于处理器的整体性能发挥起着越来越重要的作用。
1 S698P4简介
 S698P4是基于SPARCV8架构[2]的高性能的32 bit RISC嵌入式4核处理器,采用对称多处理(SMP)技术,在一个内核里集成4个功能一样的处理器核心,各CPU之间共享内存子系统及总线结构,总线竞争核仲裁由硬件自动完成,不需要用户进行设置。它专为嵌入式应用而设计,具有高性能、低复杂度和低功耗的特点。
S698P4支持多核并行处理机制,采用eCos实时嵌入式操作系统。eCos将任务队列对称地分布于多个CPU之上,从而极大地提高了整个系统的数据处理能力。所有的处理器都可以平等地访问内存、I/O和外部中断。系统资源被系统中所有CPU共享,工作负载能够均匀地分配到所有可用处理器之上,其运算速度快,数据处理量大、功耗低,性能和可靠性远高于单核处理器。
 图1为S698P4结构图,由图可知,S698P4处理器内部集成了CPU0、CPU1、CPU2和CPU3 4个S698P核,每个S698P CPU内部又分别集成32 bit整形数处理单元、32/64 bit浮点数处理单元及8 KB数据缓存(Data Cache)和指令缓存(Instruction Cache)。针对实时应用的嵌入式领域,S698P4提供了内部看门狗、定时器、中断控制器、通用I/O口以及串行通信接口;针对航空航天领域,S698P4提供了CAN总线接口、以太网接口以及1553B总线;同时,为了芯片调试,芯片内部还集成了硬件调试专用接口DSU,用户通过DSU,可以访问CPU内部所有寄存器和存储器资源,也可访问外部所有存储器和I/O外设,为基于S698P4的硬件/软件调试提供方便[3]。

 S698P4处理器可广泛应用于航空航天、海量数据处理、大规模网络应用、复杂科学计算及大型图形建模等领域。
2 S698P4存储器控制器设计方案
2.1 存储器地址分配

 存储器控制器控制一个连有PROM、I/O设备,静态存储器(SRAM)和动态随机存储器(SDRAM)的存储器总线,如图2所示。存储器控制器作为从属设备挂在AHB总线上,存储器控制器的运作可通过软件配置“存储器配置寄存器1,2&3”(MCFG1,MCFG2 & MCFG3)来控制,表1为存储器配置寄存器地址分配表。“存储器配置寄存器1,2&3”的配置通过APB总线进行。存储器总线支持四种类型的设备,包括PROM、SRAM、SDRAM和I/O。PROM、SRAM和SDRAM总线只支持32 bit模式,而I/O可以根据需求配置为8、16、32 bit模式。存储器控制器包括2 GB空间,分成如表2所列的几个部分。

 

 


2.2 PROM
 处理器提供两个PROM片选信号ROMSN[1:0]。PROM的访问和存储器的访问基本相似,其读/写周期时序如图3和图4所示。
2.3 静态存储器(SRAM)
 SRAM区最高可达512 MB,具有5个存储块,每块的大小在存储器配置寄存器2的MCFG2[12:9]中设定,按照二进制步进算法,MCFG2[12:9]可设定为8 KB~256 MB。静态存储器读访问包括两个数据周期和0~15个等待周期。在非连贯的访问中,在一个读周期后增加一个前导输出的周期,可以阻止由于存储器或者I/O设备的关闭时间引起的总线竞争。图5和图6为基本的读/写周期波形(0等待周期)。
2.4 动态随机存储器(SDRAM)
 动态随机存储器访问支持两块PC100/PC133兼容的设备。动态随机存储器控制器带有8~12个列地址位,并且有最高13行的动态随机存储器。通过MCFG2和MCFG3控制动态随机存储器的操作。S698P4只支持32  bit的数据总线宽度,每个块的大小可以编程在512 B~4 MB之间。为了对不同的动态随机存储器(在不同的频率)提供最优的访问周期,一些动态随机存储器的参数可以在MCFG2中设定。可设定的动态随机存储器参数如表3所示。

3 S698P4存储器控制器的实现与验证
 S698P4采用VHDL语言进行编写,其编码风格同传统以并发执行[4-5]的并发进程(或开发语句)作为模块,即所谓的“数据流”编码风格不一样,采用的是“二进制”的设计方法。这种编码风格克服了“数据流”编码方式的可读性差、抽象级低、仿真时间长等缺点。“二进制”编码风格的具体措施是:(1)所有的端口和信号声明采用记录的形式进行说明,如按输入输出分类进行记录说明;(2)每个实体只有两个进程,即组合进程和时序进程;(3)在组合进程中全部采用变量(而不是信号),以使用结构化的顺序编码方式;(4)在时序进程中通过时钟同步进行状态的转换。
 S698P4存储器控制器代码在Modelsim 6.2b上能够通过功能仿真(其中外部SRAM读写控制仿真波形如图9和图10所示),并且在Quartus II以及ISE EDA平台上成功综合布线,烧写到FPGA后能够通过硬件测试。
图9和图10为S698P4外部SRAM读/写控制波形图。由图9或图10可知,S698P4存储器控制器实现了对应RAM片选ramsn、ROM片选romsn及I/O片选iosn输出,sa为公用地址总线,此处没有进行配置,只用到单独的address地址总线,对应图2的地址总线A。Data为数据总线,对应图2的数据总线D。ramoen为RAM输出使能,oen为读使能,其为低时,读出数据。

 目前,S698P4处理器已经成功实现了量产,在航空航天、工业控制等领域中得到广泛应用。实践证明,S698P4存储器控制器能够高效地对存储器和CPU的工作进行协调控制,并在发挥处理器整体性能上起到很关键的作用。
参考文献
[1] 虞希清.专用集成电路设计实用教程[M].杭州:浙江大学出版社,2006.
[2] 珠海欧比特控制工程股份有限公司.S698P4芯片用户手册(V2.0)[K].2011.
[3] 蒋晓华,李付海,祁波.SPARC体系的S698系列SOC及其应用[J].单片机与嵌入式系统应用,2007(8):84-85.
[4] 边计年,薛宏熙.用VHDL设计电子线路[M].北京:清华大学出版社,2000.
[5] PEDRONI V A.VHDL数字电路设计教程[M].乔庐峰,等,译.北京:电子工业出版社,2005.

此内容为AET网站原创,未经授权禁止转载。