赵继彬,黄海生,李 鑫,朱振兴
GPS基带SoC中软硬协同设计
赵继彬,黄海生,李 鑫,朱振兴
(西安邮电大学 电子工程学院,西安 710121)
针对ARM公司的ARM926EJ-S型号硬核形式固化处理器构建的全球定位系统(GPS)L1波段(中心频率为 1575.42MHz)信号基带处理的片上系统(SoC)功耗高、成本高的问题,提出一种基于Cortex-M3开源软核处理器构建的GPS基带SoC系统,以实现处理器核的系统移植:针对软件实现和硬件实现的特点,完成基带处理的软硬件功能划分与协同设计;硬件部分选用Cortex-M3软核和高级微处理器总线架构2.0(AMBA2.0)片上总线为核心进行基带处理SoC架构设计,通过修改ARM公司提供的总线功能模块的软知识产权核(IP core),构建高级高性能总线(AHB)和外围总线(APB)的总体结构,设计若干符合AMBA2.0协议的IP核,并完成基带等相关IP核的挂接,实现SoC系统功能的扩充;软件部分通过C语言完成对系统的初始化、启动等相关配置,并编写卫星导航基带电路的特定测试信号,实现软件对基带IP的灵活配置。仿真结果表明,该系统能够实现对基带IP的灵活配置,满足对器件的低功耗、微集成要求。
Cortex-M3处理器;微处理器总线架构;片上系统;知识产权核;软硬件协调设计
实验室原有基带系统处理器使用高速精简处理器(advanced RISC machines,ARM;其中RISC是精简指令集计算机(reduced instruction-set computer)的简称)公司的ARM926EJ-S型号硬核处理器,系统结构采用ARM公司提供的基于高性能总线(advanced high performance bus, AHB)协议的功能模块体系结构,外加全球定位系统(global positioning system, GPS)基带知识产权核(intellectual property core, IP core)。仿真使用ARM公司高级微处理器总线架构开发套件中提供的通用模拟AHB总线功能模型模拟处理器的功能,通过使用特殊命令编写仿真文件,实现读写功能,完成对GPS基带IP寄存器相关配置。该设计原型验证是通过板级对片外总线进行连接,不利于片上系统(system on chip , SoC)小型化和功耗成本的降低[1]。
基于以上分析,研究提出一种处理器软核和总线功能模块软IP的集成方案[2-3]。硬件方面,在原有系统结构上实现处理器内核移植工作,重新构建基于Cortex-M3软核的GPS基带SoC,完成只读存储器(read only memory, ROM)、Cortex-M3软核等相关IP的系统集成;软件方面,通过编写C语言完成对系统的初始化、启动等相关配置,并编写卫星导航基带电路的特定测试信号,实现软件对基带IP的灵活配置,并进行调试仿真验证。
GPS基带SoC结构如图1所示,其仿真采用ARM公司提供的通用文件读取主机模型(file reader master, FRM)模拟处理器的功能。该模型提供32位和64位数据位宽处理模式。本系统使用了32位宽文件读取主机模型(32-bit file reader mster, FileRdMaster32),通过解译仿真文件中特定格式激励文件产生地址、数据、控制信息,直接控制总线活动。处理器功能模型外部通过AHB总线接口与外部AHB顶层总线系统(AHB Toplevel,是在ARM公司提供的总线架构上进行开发扩充的系统,其内部包含了基带等相关外设)进行连接。
图1 SoC系统结构
在整个系统中通过ARM公司提供的一个仿真模拟器(FRM)来读取测试文件,将测试的数据发送到总线上,以达到对寄存器控制的目的。该模型有助于模块和系统的验证,无论有没有处理器,FRM都可以在高级微处理器总线架构(advanced microprocessor bus architecture, AMBA)上运行。FRM使用寄存器传数据(register transfer level, RTL)代码来描述其逻辑。
FileRdMaster32模型包含3个部分:File reader core、AHB-Lite to AHB wrapper、Funnel。
File reader core是模拟处理器模型的内核,其对外接口符合AHB-Lite规范协议。通过File reader core读入仿真文件并将其解码产生相应的数据、地址、控制信号。该内核支持在数据宽度为8、16、32和64位时执行所有AHB突发类型,在突发传输类型模式下会插入忙碌状态,并且在收到数据后会比较和预期数据的差异,在仿真期间会对数据的差异进行报告。
AHB-Lite to AHB wrapper是AHB-Lite总线接口到AHB总线接口的转换桥路,实现与外部AHB总线系统连接。
Funnel是一个数据总线的多路复用器,用于将64位的总线连接到32位从机上,即将64位总线上的32位传输转换成32位总线上的32位传输,对于不同位宽数据的传输具有可扩展性。
GPS测试向量主要分为3个部分,即寄存器的扫描测试、IP的功能测试以及错误的检测测试。其初始输入的测试文件基于测试要求,严格按照一定的命令格式编写代码,并生成后缀名为.M2I的文件,该文件具有可视化性,可以编写代码配置验证所有模块寄存器读写的功能,配置AHB总线传输模式及控制信号,充分模拟软件,实现真实信号测试。该测试文件经过脚本文件Fm2conv.pl按其相关格式规则规范转换成FileRdMaster32可读取的十六进制后缀名为.M2D的文件,最后在行为模型中进行模拟仿真。转换流程如图2所示。
初始输入的仿真文件主要是由命令和文字域构成,命令格式描述如表1所示,其中命令包括W写操作命令、R读操作命令以及P轮询操作命令,文字域规定了字符顺序,其中包括地址、数据、掩码、传输数据大小、传输控制信号、传输反馈和注释。
表1 仿真文件命令格式描述
Fm2conv.pl将ASCII命令的文件转换成适合FRM读取的十六进制文件。Fm2conv.pl是通过Perl语言写的脚本文件,其功能主要检查指定的命令是否和FRM兼容,将检测到的可选字段按一定的格式进行输出。在仿真初始化时,内部存储器模块设置在指定的文件中加载数据,并通过FRM产生总线传输时序。
本文设计为了兼容ARM926EJ-S硬核处理器体系结构、指令集等相关特性,综合分析后选用ARM公司ARMv7架构的Cortex-M3开源软核处理器[4]。基带SoC如图3所示,其采用Cortex-M3处理器作为核心,控制整个系统运行。处理器和总线架构采用AHB协议简化版AHB-Lite协议到AHB转接口,总线系统采用AHB、外围总线(advanced peripheral bus,APB)协议作为系统的互连架构,将处理器核、片上ROM、随机存储器(random access memory, RAM)、译码器、选择器、通用异步收发器(universal asynchronous receiver transmitter,UART)接口、基带信号处理IP等相关外设系统集成,从而实现内部数据的交互应答[5-6]。
图3 Cortex-M3基带信号处理SoC
Cortex-M3处理器采用哈佛体系结构[7],有代码存储区总线(2条)、系统总线[8](如图4所示)。代码存储区总线负责对代码存储区的访问,分别是指令总线(instruction bus, I-Code)和数据总线(data bus, D-Code)。前者用于取指,后者用于查表等操作[9],系统总线用于访问内存和外设。独立的指令总线和数据总线使得Cortex-M3能同时取指令和访问内存,从而提升了性能。
相较于传统ARM处理器,指令和数据共用单一总线接口的处理器,它会把ROM中的数据搬移到RAM中处理,进而提升数据处理效率[10]。然而根据Cortex-M3的外部总线接口的特点,对于执行程序代码以及只读数据可以通过I-Code总线和D-Code总线挂接ROM,通过System总线接口挂接RAM来存储执行过程中产生的临时变量。同时,原有设计已经定义了整个系统的内存映射,并且与Cortex-M3规定的内存映射相互兼容。
图4 Cortex-M3处理器结构
综上考虑,该设计将片上ROM通过总线复用器与Cortex-M3的总线接口I-Code总线和D-Code总线相连(如图5所示)。总线复用器的作用是让指令和数据在同一个总线上传输,此复用器由总线控制信号完成对数据或指令总线的选断。
图5 总线连接
根据系统存储空间的应用需求,规定了相关外设的映射地址。存储器映射的地址范围在0x00000000~0x1FFFFFFF的512MB 空间为代码区。GPS基带的地址范围在0xC0000000~0xC1FFFFFF的32MB空间,AHB到APB连接桥、RAM模块等其他的相关地址范围在0x90000000~0x9FFFFFFF的256MB空间。
SoC架构设计如图6所示(片内接口信号说明请参考ARM公司AMBA Design Kit技术手册),在原有AHB系统结构之上进行基于Cortex-M3软核的处理器设计以及处理器和总线结构接口设计。在此基础上完成系统软件设计,其中包括系统的初始化引导程序及GPS基带测试信号软件程序。
片上AHB总线为系统各个IP核之间提供了一种互连以及读取访问的共享机制。Cortex-M3外部总线接口是基于AHB-Lite协议,对于外部AHB系统总线架构,采用AHB-Lite to AHB wrapper进行接口协议转换,设计目的是使任何AHB- Lite主机都能连接到标准的AHB总线。
AHBTopLevel是在ARM公司提供的总线架构上进行开发扩充的系统,其内部基于AHB规范,所有主总线的输出都是多路复用,因此只有被授予总线的主总线才能访问。类似地,所有从机的输出也是多路复用,因此只有被访问的从机才将其响应放在总线上。这种方法不适用于不同的主机和从机在不同的芯片甚至开发板上的模块化开发。因为系统中实现总线的连接需要大量的信号线来连接芯片和主板。为了解决这个问题,在基于Cortex-M3的基带SoC系统设计时,外部处理器接口与总线系统连接时使用了三态缓冲区来改善这一问题。
图6 SoC接口结构
软件系统具备测试GPS基带IP内部寄存器以及评估结果输出的功能,对于预期数据在编写软件程序中得以体现,若输出不一致,则会在仿真报告中或通过仿真波形中看到。基于上述搭建的硬件系统,针对测试要求编写测试验证程序,通过Keil uVision5软件开发工具编译调试,生成十六进制文件,加载到基于RTL的仿真验证环境中运行。
启动代码的开发。启动代码是提前烧写在ROM中,上电后整个基带系统首先要执行的一段程序代码。其作用是负责执行处理器从“复位”到开始执行“主函数”之间这段时间(称为启动过程)必须完成的向量表定义、初始化[11]等工作,这个启动过程正是启动代码执行的过程。
本次设计采用Cortex-M3软核进行开发,代码区内存寻址范围为512MB,开辟ROM起始地址内存大小为32kB来存放主程序。在跳转到main函数执行之前需要执行的启动过程如图7所示。
1)SoC系统上电后,程序默认从ROM可执行映像文件中的入口地址0开始启动。
2)初始化堆与栈的空间大小,并指定栈顶地址。
3)根据硬件结构相应外设初始化中断向量表。
4)加载复位处理函数Reset_Handler。
5)执行复位,处理器的工作状态切换为线程模式,开始正常工作。
图7 启动过程流程
系统启动后,首先要执行启动程序,完成一系列初始化工作,然后跳转到具体的用户主程序即main函数去执行操作[12]。
主程序设计,针对GPS基带IP的测试需求,软件系统能够对GPS基带IP的测试相关模式进行配置和信号控制,测试寄存器的读写、不同模式下信号扫描控制,设置GPS基带内部不同通道工作的相关参数,使其能够进行捕获、跟踪控制。图8描述了其运算、寄存器读取、计算和写入的详细过程。
通过编写仿真文件主函数控制程序,最终完成了以上测试,满足其功能、性能测试的要求。
图8 软件对基带IP顶层控制流程
该系统NC-Verilog对系统模块功能进行仿真验证。为了验证基带处理SoC架构及功能的正确性、合理性,该设计中选取Cortex-M3处理器和外部总线接口的信号以及基带外部接口信号2个关键点进行测试仿真,分析了TimeA时刻C014004C地址寄存器写入0000004C数据并读出的波形(如图9所示)。
图9 处理器输出接口信号仿真波形
从图9可以看出,TimeA时刻,在地址周期通过HADDRM1、HBURST、HWRITE等信号传输地址和控制信息,数据周期通过HDATAM1传输数据。当HREADYM1拉高,HWRITE拉高,在地址周期时钟上升沿,地址C014004C通过总线传输,下个时钟沿到来时(数据周期),数据0000004C通过总线写入寄存器。读操作时,等待HREADYM1信号拉高,地址周期传输相应的地址和控制信息,此时HWRITE拉低,在数据周期将C014004C地址中的数据读出。处理器在50MHz时钟下连续读写操作如图10波形所示,可以看出读写数据准确性以及执行效率,数据传输位宽为32bit,该系统架构吞吐量的最大理论带宽是 200MB/s,受总线传输授权、信号握手等环节影响,传输利用率可达到95%。
从图11基带接口信号仿真波形可以看出,当GPS_SEL拉高时,HREADYin拉高,总线开始传输相应的控制信息和地址信息,在数据周期将数据写入GPS基带模块。符合软件控制和时序要求。
图10 处理器输出接口仿真波形
图11 基带接口信号仿真波形
综上所述,处理器与外部总线系统接口信号及基带模块外部接口满足总线传输的时序要求,同时符合软件程序对基带系统的配置要求。对比原有系统信号,波形大体相同,可判定电路工作正常,达到预期要求。
本文介绍了SoC的系统总线架构设计,重点介绍了处理器移植过程中接口设计以及软硬件协同设计。该系统基于AMBA总线协议实现开源软核处理器和可复用IP核的集成,降低了购买处理器的成本。定制的专用SoC内部布线相较于原来硬核处理器和FPGA板级互连结构降低了互连功耗。系统最终通过软硬协同仿真验证,实现了卫星导航基带电路的特定测试信号对基带IP的灵活配置。
[1] 杨锐, 黄海生, 刘宇朝. 基于ARM软核的智能家居无线传感器网络设计[J]. 信息技术, 2020, 44(5): 6-9.
[2] 潘胜民. 基于AMBA总线协议的增强型DMA控制器的设计[D]. 南京: 东南大学, 2016.
[3] 蔡艳辉, 胡锐, 程鹏飞, 等. 一种基于FPGA+DSP的北斗兼容型高精度接收机系统设计[J]. 导航定位学报, 2013, 2(2): 1-6.
[4] 赵东升. 基于ARM Cortex-M3核MCU的设计与应用[D]. 济南: 山东大学, 2021.
[5] 唐守龙, 刘昊, 陆生礼. 浅谈SoC设计中的软硬件协同设计技术[J]. 电子器件, 2002, 25(2): 4.
[6] 颜伟成, 陈朝阳, 沈绪榜. AMBA-AHB总线接口的设计与实现[J]. 计算机与数字工程, 2005(10): 130-132.
[7] 严超. 全球定位基带处理SoC设计与关键技术研究[D]. 重庆: 重庆大学, 2014.
[8] 田泽, 张怡浩, 于敦山, 等. SoC片上总线综述[J]. 半导体技术, 2003(11): 11-15.
[9] 杨雪梅, 黄海生, 李鑫. 基于AMBA总线的SOC中UART电路的设计与实现[J]. 信息技术, 2019, 43(6): 149-152.
[10] 于乐, 王嘉良. 易于移植的FPGA在线更新控制器设计[J]. 航空电子技术, 2015, 46(4): 47-50.
[11] 王一楠, 林涛, 余宁梅. 基于AMBA的AHB总线矩阵设计[J]. 微电子学与计算机, 2019, 36(2): 73-77.
[12] 马秦生, 魏翠, 孙力军, 等. 嵌入式SoC总线分析与研究[J]. 中国集成电路, 2007(3): 45-49.
Software and hardware cooperative design in GPS baseband SoC
ZHAO Jibin, HUANG Haisheng, LI Xin, ZHU Zhenxing
(School of Electronic Engineering, Xi’an University of Post and Telecommunication, Xi’an 710121, China)
Aiming at the problems of high power consumption and high cost of the system on chip (SoC) of the global positioning system (GPS) L1 band (center frequency: 1575.42MHz) signal baseband processing constructed by the ARM926EJ-S hard core solid core processor, a GPS baseband SoC system based on the Cortex-M3 open-source soft core processor planned by ARM DesignStart was proposed to realize the system transplantation of the core: according to the characteristics of software and hardware implementation, the software and hardware function division and collaborative design of baseband processing were completed; in the hardware part, the Cortex-M3 soft core and the advanced microprocessor bus architecture 2.0 (AMBA2.0) on-chip bus as the core were selected to carry out the baseband processing SoC architecture design; by modifying the soft intellectual property (IP) core of the bus function module provided by ARM company, the overall structure of advanced high performance bus (AHB) and advanced peripheral bus (APB) bus was constructed, several IP cores conforming to AMBA2.0 protocol were designed, and the connection of baseband and other related IP cores was completed; then the function of SoC system was expanded; meanwhile, in the software part, the initialization and startup of the system were completed by C language, and the specific test signal of the satellite navigation baseband was written to realize the flexible configuration of the baseband IP by the software. Simulational result showed that the system could realize the flexible data configuration of baseband system, and meet the requirements of low power consumption and micro integration of devices.
Cortex-M3 processor; advanced microcontroller bus architecture; system on chip; intellectual property core; software and hardware cooperative design
P228
A
2095-4999(2023)01-0163-07
赵继彬,黄海生,李鑫,等. GPS基带SoC中软硬协同设计[J]. 导航定位学报, 2023, 11(1): 163-169.(ZHAO Jibin, HUANG Haisheng, LI Xin, et al. Software and hardware cooperative design in GPS baseband SoC[J]. Journal of Navigation and Positioning, 2023, 11(1): 163-169.)DOI:10.16547/j.cnki.10-1096.20230125.
2022-09-02
陕西省重点研发计划项目(2022GY-011)。
赵继彬(1997—),男,山东聊城人,硕士研究生,研究方向为数字集成电路设计。
黄海生(1964—),男,陕西榆林人,硕士,教授,研究方向为专用集成电路设计与系统研究。