一种导航系统的微型处理器ip核设计方法

文档序号:6613626阅读:238来源:国知局
专利名称:一种导航系统的微型处理器ip核设计方法
技术领域
本发明属于导航系统领域,涉及一种IP核设计方法,具体涉及一种导航系 统的微型处理器IP核的设计方法。
技术背景在深空探测和导航系统领域中,为了更好的实现系统的便携、小功耗和高集成性等特点,深空探测和导航系统中越来越多地使用soc设计发案。SOC (System-on-chip——系统级芯片)可以将整个系统集成到一个芯片 上,SOC不仅包含了处理器内核、存储器等硬件系统,同时还涵盖了相应的嵌 入式软件,构成了一个真正的软、硬件均具备的完整体系。其中关键是核心处理 器技术,决定了整个系统的整体性能和应用范围。但对于深空探测和导航系统来说,一般的微处理器内核是无法满足其性能需 求的。深空探测和导航系统要求其SOC系统具有较高的安全性,尽可能使用自 行研发的各类部件,保证系统数据安全;较快的运算速度,在特定的时间内完成 数据的处理和传输;较强的容错能力,在恶劣的外界条件下可以正常工作。因此 要求SOC的内核处理器具有较微处理在高性能、高可靠性、可扩展性等特征。 目前在深空探测和导航系统上使用的微处理器IP核,均存在着某些缺陷1)以 IP核的形式购买,需要大量的资金,而且购买的IP核占用面积比较大,会大大 增加制造集成电路的和芯片生产的成本。2)在深空探测系统中,市场上现有的 IP核功耗比较大,不适合该领域的要尽可能的节约能源的要求。 发明 内 容本发明的目的在于提供一种导航系统的微型处理器IP核设计方法,该方法 通过采用只包含微处理器和AMBA (Advanced Microcontroller Bus Architecture)总线的最小系统来对微处理器结构进行优化,利用独特的软件固 化方式对软件进行固化,并使用ASIC (Application Specific Intergrated Circuits)专用集成电路设计的方式,得到了一个占用面积和功耗比较小,同时 又满足运算性能的微处理器IP核。本设计方法提出了最小微处理器系统设计方 式和软件固化方式,解决了深空探测和导航芯片设计中关于微处理设计的占用面 积和功耗问题,可有效降低集成电路的制造和芯片生产的成本。 一种导航系统的微型处理器IP核设计方法,其特征在于,本方法包括如下 步骤步骤l:在原微处理器的基础上,裁减出由微处理器和AMBA总线构成的 最小系统,使用VHDL语言完成系统设计;步骤2:将裁减好的系统在FPGA实现硬件调试;步骤3:将裁减好的系统在硬件调试完毕后选用linux操作系统进行软件调试;步骤4:在交叉编译环境中将设计好的源程序交叉编译、调试,并生成应用 程序,把应用程序放在linux目录下并挂载到linux原目录上,实现上电自启动;步骤5:将linux下的软件文件固化到芯片上,按ASIC设计流程进行集成 电路的设计。所述步骤1中的最小系统包括微处理器、AMBA总线、AHB控制器、 AHB/APB桥、存储器管理单元和PROM (可变程只读存储器);外围设备均通 过AMAB总线与系统通信;AHB控制器对AHB总线进行控制;微处理器通过 AHB (Advanced High performance Bus)总线与存储器控制器一起进行 PROM的分配和调度;AHB/APB桥将AHB总线信号转换为APB总线信号; APB接口供低速外设使用。所述步骤l中,微处理器的结构包括实数运箅单元,内部存储器控制单元, 寄存器,跟踪缓存器、中断端口,指令存储器和数据存储器,并独立添加由乘/ 除法器构成的浮点处理单元,用于浮点数据的处理。实数运算单元釆用流水线结 构或超流水线结构实现数据的快速处理,并由指令高速缓冲存储器和数据高速缓 冲存储器对指令和数据进行缓冲,使实数运算单元与内部存储控制单元进行数据 的交互处理,处理结果通过AHB总线与外设通信。中断端口是输出DMA信号,控制中断控制器用来处理中断信息。跟踪缓存器用于保存指令和指令执行的结果。所述步骤4中,首先将交叉编译过的应用程序拷贝到linux内核的目录下, 在自启动文件/ete/rc.d/init.d里添加应用程序到自启动目录。接着在虚拟机上 编译linux内核得到包含应用程序的镜像文件image.dsu。然后在cygwin的环 境下选择编译器GCC编译Image.dsu文件。最后将得到的文件下载到ROM 里,调试FPGA,验证功能的正确性。一种最小系统芯片结构,包括AMBA总线、AHB控制器、AHB/APB桥、外围设备均通过AMAB总线与系统通信,AHB控 制器对AHB总线进行控制,AHB/APB桥将AHB总线信号转换为APB总线信 号,APB接口供低速外设使用;还包括微处理器,微处理器通过AHB总线与存 储器控制器一起进行PROM的分配和调度。微处理器包括实数运算单元,内部存储器控制单元,寄存器,跟踪缓存器、 中断端口,指令存储器和数据存储器,并独立添加由乘/除法器构成的浮点处理 单元,用于浮点数据的处理。实数运算单元采用流水线结构或超流水线结构实现数据的快速处理,并由指令高速缓冲存储器和数据高速缓冲存储器对指令和数据进行缓冲,使实数运算单 元与内部存储控制单元进行数据的交互处理,处理结果通过AHB总线与外设通 信。中断端口是输出DMA信号,控制中断控制器用来处理中断信息。跟踪缓存 器用于保存指令和指令执行的结果。一种linux下源程序的编译固化方法,其特征在于,本方法包含如下步骤A、 交叉编译源程序;B、 修改控制自启动文件/etc/rc.d/initd,添加交叉编译得到的应用程序到自启动目录;C、 编译linux内核得到文件image.dsu;D、 将编译linux内核得到的image.dsu移植到仿真环境下,选择编译器 GCC编译,得到二进制文件;E、 用软件把二进制文件下载到flash里。 本发明一种导航系统的微型处理器IP核设计方法的优点在于(1) 由于优化了系统的结构和微处理器的结构,使根据本方法设计出的 微型处理器IP核,占用面积小,制造芯片和集成电路的费用低,有较好的经济 价值。(2) 本方法中提出的经优化后的系统结构中,优化后的系统结构想对简 单,RAM使用比较少,使系统运行系统更加稳定。(3) 本方法在优化原有IP处理系统的基础上,在微处理器中进行优化, 得到新的微处理器结构,并在这种微处理结构中整合独立的由乘法器和除法器构 成的浮点处理单元,使微处理器可以处理浮点运算,加快了运算速度。由各种浮 点处理单元和微处理器结构可以分别相互独立整合,得到的微处理器结构可移植 性强。


图1为一种导航系统的微型处理器IP核设计方法的设计流程图;图2为一种导航系统的微型处理器IP核设计方法中步骤l的一种最小系统 芯片结构的组成结构图;图3为一种导航系统的微型处理器IP核设计方法的微处理器组成结构图;图4为一种导航系统的微型处理器IP核设计方法中步骤4的一种linux下 源程序的编译固化方法设计流程图。
具体实施方式
本发明的目的在于提供一种导航系统的微型处理器IP核设计方法,本方法 在原微处理器的基础上,裁减出由微处理器和AMBA总线构成的最小系统,并 提出一种新微处理器结构,来优化以提高系统性能;选用GCC或RCC的交叉 编译环境交叉编译应用程序,把应用程序放置到linux的目录下,并挂载到linux 上,以便能够实现上电自启动。解决了深空探测和导航芯片设计中关于微处理设 计的占用面积和功耗问题,有良好的应用价值。本实施例用于"北斗二代"导航系统之中,用于处理接受数据。根据系统需 求和整体性能,对处理器IP核的性能要求如下U)数据处理能力每秒进行50 次双字节的浮点运算。(2)运行lirmx操作系统和算法相对复杂的应用程序。(3) 使用尽可能少的逻辑资源和存储器资源以减小芯片的面积,节约资金。(4)太空 环境恶劣,系统应具有较强的容错能力,保证数据传输的正确性和可靠。依据本设计方法,设计中选用Leon3微处理器。Leon CPU是Gaisler Research公司提出的一款32位、符合IEEE1754(SPARCV8)结构的开源微处 理器,有很强的可配置性,允许设计进行各方面的优化包括处理器的性能,功 率消耗,1/0的扩展,片上的面积和消耗。如图1所示, 一种导航系统的微型处理器IP核设计方法,本方法包括如下 步骤步骤l:在原微处理器的基础上,根据最小系统原则,裁减出由微处理器和 AMBA总线构成的最小系统,其它的一切外围设备均通过AMAB总线与系统通 信。使用VHDL语言完成系统设计。如图2所示,所述最小系统包括微处理器、AMBA总线、AHB控制器、 AHB/APB桥、APB(Advanced Peripheral Bus)接口 、存储器控制器和PROM (可变程只读存储器);外围设备均通过AMAB总线与系统通信;AHB控制器
包含AHB主模块、AHB仲裁器、AHB状态寄存器和AHBram控制模块,对 AHB总线进行控制;微处理器通过AHB (Advanced High performance Bus) 总线与存储器控制器一起进行PROM的分配和调度;AHB/APB桥将AHB总 线信号转换为APB总线信号;APB接口供外设使用。AMBA总线有AHB总线和APB总线两种,系统中的AHB控制器在系统 中用于DMA控制与前端的数据交换。端口信号包含使能信号、时钟、ahbmi、 ahbmo、 tbi和tbo等。AHB控制器选择固定优先的仲裁运算法则,即总线请 求优先和master的总线索引相等,作为最低的优先的索引。如果没有master 请求总线,带总线索引和将会被执行。在逐渐增加的脉冲期间,AHB master 保持总线请求未定直到最后的访问,否则它可能释放总线所有权。对于固定长度 的脉冲,AHB master将会在完全的脉冲期间被授权给总线,而且能在第一次访 问开始后。AHB slave是用即插即用的方法实现的。 一个slave能占任何的二 进制排列的地址空间,大小是从1~4096MB。 一个特定的输入/输出区域也被 解码,将会占领256B 1MB。输入/输出区域的缺省地址是OxFFFOOOOO,对 不用的地址进行访问将会引起一个AHB错误回应。而master的数据被放置在 区段0xFFFFF000 0xFFFFF800的第一个2KB上,而同时slave的数据放 置在第二个2KB区段上。总线索引定义了即插即用数据的地址,作为一个特定 的单元。master的地址是0xFFFFF000+n X 32,而且对于slave则是的 0xFFFFF800+nX32。同时根据已有的AMBA 2.0总线标准,定义四种数据 类型AHB—Mst—In_Type 、 AHB—Mst—Out_Type、 AHB—Slv—In—Type和 AHB—Slv_Out_Type,便于模块之间的信号传递和调用。存储器管理单元通过 AMBA总线管理SDRAM (同步动态随机存储器)和PROM (可变程只读存储 器),进行数据的读写。同时执行所有的SPARC V8 MMU的规范,实现了 32 位的虚拟地址和36位物理存储器的映射。如图3所示,微处理器的结构包括实数运算单元,内部存储器控制单元,寄 存器,跟踪缓存器、中断端口,指令存储器和数据存储器,并添加由乘/除法器 构成的浮点处理单元,用于浮点数据的处理。实数运算单元采用流水线结构或超 流水线结构实现数据的快速处理,并由指令高速缓冲存储器和数据高速缓冲存储 器对指令和数据进行缓冲,使实数运算单元与内部存储控制单元进行数据的交互 处理,处理结果通过AHB总线与外设通信,这样就达到了一种高速处理数据的 方案。中断端口是输出DMA信号,控制中断控制器用来处理中断信息。跟踪缓
存器用于保存指令和指令执行的结果。Leon3总共有15个中断端口 13个可以 供设计者使用,应用程序通过这种中断信号与微处理器进行数据处理。指令存储 器、数据存储器和缓冲器均暂时存储指令和数据。在深空探测和导航系统中使用,则需要使用硬件浮点运算单元(FPU)这一 结构,用于浮点数据的处理。以实现单字节和双字节精度的操作数运算,并执行 所有的SPARC V8 FPU指令,达到每秒50万次的双字节运算。FPU模块通过 时钟,数据输入,数据输出,指令扫描模式,扫描输入和扫描输出等信号与实数 单元进行数据和指令的交换,大多数的浮点数运算指令可以在3个时钟周期内完 成。步骤2:将裁减好的系统在FPGA实现硬件调试;在50M时钟下使用Cyclone II的EP2C35系列,占用FPGA资源是9000 个LE。同时为了固化操作系统和应用程序,在FPGA的设计阶段,选用2片 HY57V561620作为SDRAM ,连接成32位的数据宽度,同时选用1片 EPM7256AETC100作为EPROM。步骤3:将裁减好的系统在硬件调试完毕后选用linux操作系统进行软件调试;釆取分步的设计思想,先设计调试应用程序,再编译含有应用程序的操作系 统内核,成功移植操作系统后,再移植包含应用程序的操作系统。软件调试平台 是虚拟机的Redhat9。操作系统为linux,内核版本为2.6.11。设计中,操作系统的移植关键是使 用最少的资源实现操作系统的功能。linux内核的配置与VHDL硬件配置是相 互匹配的,linux内核配置包含两个部分,LEON3微处理器自身配置和外围设 备驱动程序的配置。微处理器主要进行以下配置设置系统时钟为50MHz,选 择LEON3的MMU,包含硬件乘/除法器和浮点运算单元,设置闪存Flash为 32Mbyte。步骤4:在交叉编译环境中将设计好的源程序交叉编译、调试,并生成应用 程序,把应用程序放在linux目录下并挂载到linux原目录上,实现上电自启动; 如图4所示,具体步骤如下 A、交叉编译源程序。选择适于LEON3交叉编译的工具链RCC,版本为RCC-1.0.12。使用下 列编译选项完成浮点运算程序的编译。
(D-msoft-float:在没有硬件FPU的系统中软件模拟FPU,用于编译测试 系统类的源程序。② -mv8:生成SPARC V8的乘/除指令;加上改变编译选项以后,在编 译含有乘/除的源程序时,处理器直接调用硬件乘/除法,加快程序的运行速度。③ -o3:优化程序代码;该选项对应用程序主要起到优化的作用,使程序 使用尽量少的硬件资源,以最快的运行速度完成任务。B、 选择适合IP核的linux内核linux-2.6.11 ,把交叉编译过的应用程序 挂载到/home/user下面;同时修改控制自启动文件/etc/rc.d/init.d,添加应用程序到自启动目录。C、 编译包含步骤B中已编译过的应用程序的linux内核,得到镜像文件 image.dsu。D、 image.dsii文件在cygwin 1.0.2-1的环境下,选择编译器GCC编译。 命令如下sparc-elf-mkprom -freq 50 -baud 38400-rmw -romsize 131072 -nosram -sdrambanks 1 image.dsuspare-elf-objcopy -O binary prom.out prom.bin 得到的prom.bin 二进制文件。E、 根据已有方法,首先使用quatus II 5.1里的自带工具SOPC Builder 建立目标版,分配下载地址,而后使用NiosII建立工程,编译把二进制文件下 载到flash里。而后采用GRMON软件调试FPGA,验证系统功能的正确性。步骤5:将linux下的软件文件固化到芯片上,按ASIC设计流程进行集成 电路的设计。由于集成电路设计有多种工艺库,而不同的工艺库设计方法和系统性能会略 有不同。本设计使用UMC0.13ium的工艺技术下,首先进行综合,设置约束条件是面积选择最小,环境条件选择最差,时序默认设置即可。而后进入后端设计。 由于设计对系统频率有一定的要求,因此要设计时钟数,根本意义在于调整时钟 信号到达各终端的时间,使其尽量趋于一致。具体做法是将带大负载的buffer 中的负载分担给多个buffer,以大大减小延时。时钟树的约束包括最大延迟、 最小延迟、最大上升时间以及最大转换时间等。设定约束后,时钟树的组建过程 实际上就是在最大延迟到最小延迟范围内选用最大差值为最大上升时间的若干 延时作为从rootpin到各leafcell的延时。
最后综合得到的结果最高工作频率可达400MHz,在ASIC设计中,得到了一个占用较少的面积和较少的功耗,而又能满足深空探测和导航系统需求的IP 核。而且可以根据不同的工艺技术得到不同的性能。在UMC 0.18jLim的工艺下, 最高工作频率是250MHz,占用13000gates;在UMC0.13Mtn的工艺技术下, 最高工作频率可达400MHz,占用13000个gates 。
权利要求
1、一种导航系统的微型处理器IP核设计方法,其特征在于,本方法包括如下步骤步骤一在原微处理器的基础上,裁减出由微处理器和AMBA总线构成的最小系统,使用VHDL语言完成系统设计;步骤二将裁减好的系统在FPGA实现硬件调试;步骤三将裁减好的系统在硬件调试完毕后选用linux操作系统进行软件调试;步骤四在交叉编译环境中将设计好的源程序交叉编译、调试,并生成应用程序,把应用程序放在linux目录下并挂载到linux原目录上,实现上电自启动;步骤五将linux下的软件文件固化到芯片上,按ASIC设计流程进行集成电路的设计。
2、 根据权利要求1所述的一种导航系统的微型处理器IP核设计方法,其特征在于 所述步骤一中的最小系统包括微处理器、AMBA总线、AHB控制器、AHB/APB桥、 存储器管理单元和PROM;外围设备均通过AMAB总线与系统通信;AHB控制器 对AHB总线进行控制;微处理器通过AHB总线与存储器控制器一起进行PROM的 分配和调度;AHB/APB桥将AHB总线信号转换为APB总线信号;APB接口供低 速外设使用。
3、 根据权利要求1和2所述的一种导航系统的微型处理器IP核设计方法,其特征 在于所述步骤一中,微处理器的结构包括实数运算单元,内部存储器控制单元,寄 存器,跟踪缓存器、中断端口,指令存储器和数据存储器,并独立添加由乘/除法器 构成的浮点处理单元,用于浮点数据的处理;实数运算单元采用流水线结构或超流水 线结构实现数据的快速处理,并由指令高速缓冲存储器和数据高速缓冲存储器对指令 和数据进行缓冲,使实数运算单元与内部存储控制单元进行数据的交互处理,处理结 果通过AHB总线与外设通信;中断端口是输出DMA信号,控制中断控制器用来处理中断信息;跟踪缓存器用于保存指令和指令执行的结果。
4、 根据权利要求1所述的一种导航系统的微型处理器IP核设计方法,其特征在于 所述步骤四中,首先将交叉编译过的应用程序拷贝到linux内核的目录下,在自启动 文件/etc/rc.d/init.d里添加应用程序到自启动目录;接着在虚拟机上编译linux内 核得到包含应用程序的镜像文件image.dsu;然后在cygwin的环境下选择编译器 GCC编译Image.dsu文件;最后将得到的文件下载到ROM里,调试FPGA,验证 功能的正确^k。
5、 一种最小系统芯片结构,包括AMBA总线、AHB控制器、AHB/APB桥、存储器管理单元和PROM,外围设备均通过AMAB总线与系统通信,AHB控制器对AHB 总线进行控制,AHB/APB桥将AHB总线信号转换为APB总线信号,APB接口供 低速外设使用;其特征在于,还包括微处理器,微处理器通过AHB总线与存储器控 制器一起进行PROM的分配和调度;微处理器包括实数运算单元,内部存储器控制单元,寄存器,跟踪缓存器、中断 端口,指令存储器和数据存储器,并独立添加由乘/除法器构成的浮点处理单元,用 于浮点数据的处理;实数运算单元釆用流水线结构或超流水线结构实现数据的快速处理,并由指令高速缓冲存储器和数据高速缓冲存储器对指令和数据进行缓冲,使实数运算单元与内部 存储控制单元进行数据的交互处理,处理结果通过AHB总线与外设通信;中断端口 是输出DMA信号,控制中断控制器用来处理中断信息;跟踪缓存器用于保存指令和 指令执行的结果。
6、 一种linux下源程序的编译固化方法,其特征在于,本方法包含如下步骤A、 交叉编译源程序;B、 修改控制自启动文件/etc/rc.d/init.d,添加交叉编译得到的应用程序到自启动 目录;C、 编译linux内核得到文件image.dsu;D、 将编译linux内核得到的image.dsu移植到仿真环境下,选择编译器GCC编译, 得到二进制文件;E、 用软件把二进制文件下载到flash里。
全文摘要
本发明提供了一种专用导航系统的微型处理器IP核设计方法。应用本发明的设计方法不仅可以设计出使用于导航系统的FPGA系统装置,还可以设计出导航芯片中的处理器IP核。本方法具有设计周期短、投资资金少和设计效果好的特点。设计出的装置和IP核功耗小,占用面积小,外围设备少,占用的存储资源少。首先,在原有微处理器的基础上裁减出一个由处理器内核、硬件浮点运算单元和通信端口组成的硬件最小系统;其次,编译Linux内核和应用程序,并把应用程序固化到Linux内核,下载到硬件系统中,最后使用专业集成电路设计工具进行综合和布局布线,完成IP核的设计。
文档编号G06F15/76GK101131715SQ20071017587
公开日2008年2月27日 申请日期2007年10月15日 优先权日2007年10月15日
发明者展 张, 张学慧, 张晓林 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1