下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、欢迎访问Freekaoyan论文站基于虚拟原型技术的ARM9SoC平台设计和性能测试分析欢迎访问Freekaoyan论文站 欢迎访问Freekaoyan论文站 摘 要:本文介绍了虚拟原型技术在当前SoC设计中的作用,ARM的虚拟原型工具Maxsim的使用和建模方法,以及如何使用Maxsim建立一个基本的ARM9嵌入式系统。文章最后给出了运行在模型上的testbench的编写、性能测试和分析。关键词:虚拟原型;SoC;Maxsim;ARM;SystemC 引
2、言随着SoC芯片复杂度的不断增加,在SoC设计的早期阶段,具有能够对系统建模、软硬件划分等进行设计验证的工具已成为业界的需求之一。为此,虚拟原型技术应运而生。它其实就是一个虚拟的硬件原型,用于在构建硬件系统之前虚拟其软件模型,在其上开发和运行应用软件,分析性能,并进行软硬件的划分权衡。ARM提供了虚拟原型工具Maxsim,利用它可以设计虚拟硬件平台,仿真硬件系统,并进行性能开销折衷方面的分析。本文使用Maxsim设计出一个简单的ARM9平台,在其上运行了进行大量内存、寄存器访问和中断控制的测试程序,并分析了性能。 虚拟原型的设计流程传统的嵌入式系统开发流程具有系统架构难以更改,软硬件
3、难以协同设计,软件滞后于硬件开发等缺点,不适合当今SoC系统的开发。基于虚拟原型的系统开发流程如图1所示,它在系统架构设计阶段就利用虚拟原型开发工具进行仿真分析,找到合适的系统架构,并构造出一个参考的虚拟原型供软、硬件开发使用。从而在真正的硬件构建出来之前,就能在此虚拟原型的基础上进行软件开发。这样加快了开发速度,避免了系统架构和应用软件不匹配的问题,更加适合复杂SoC系统的开发。 图1 基于虚拟原型的系统开发流程 图2 系统仿真流程 图3 仿真系统结构虚拟原型工具Ma
4、xsim的结构和特性当前国际上出现的虚拟原型工具包括ARM提供的Maxsim和Coware的ConvergenSC。Maxsim提供了对ARM系列微处理器核的最好支持,而ConvergenSC则提供了更加通用的SystemC模型,适合一般的非ARM嵌入式产品开发。Maxsim基于SystemC语言,提供了周期精确级和事件驱动事务级的两种仿真方法。Maxsim工具包括MaxSim Designer、MaxLib元件库和Maxsim Explorer三部分:MaxSim Designer用于创建元件模板和组建系统,可以将创建好的元件加入到MaxLib库中;Maxsim Explorer则对组建好的
5、系统进行仿真分析。MaxSim Designer的主要作用是探索系统的最佳架构,包括CPU内核、存储器、cache、总线结构、DMA等的最佳配置和组合;还可以通过向导生成一个元件框架,再往其中添加代码描述行为,生成一个自定义的部件。MaxSim Explorer可以对生成的系统进行仿真,仿真流程如图2所示。工具在创建阶段调用各对象的构造函数,初始化各数据结构;在配置阶段配置各对象运行时的参数;在初始化阶段根据配置阶段配置的参数为一些动态数据结构分配内存;在互联阶段建立对象间的连接,一旦开始运行仿真,这些连接就不能改变;在复位阶段将各对象复位为确知的状态,避免由于启动时状态不确定带来的错误;在通
6、信阶段执行对象间的通信,但不更新对象内部状态和共享资源的值;在更新阶段更新各对象的内部状态和共享资源的值,但不进行对象间的通信;在结束和析构阶段执行仿真结束和释放内存等操作。通信和更新阶段交替运行,仿真得以一拍一拍地运行,直到达到指定的仿真结束条件。将编译产生的动态链接库加入到MaxLib库中,就可以在以后的系统搭建中重复利用。 用MaxSim创建ARM9 的虚拟原型创建系统仿真模型为了测试一个ARM9通用系统的I/O性能,本文创建了一个仿真模型,结构如图3所示。图中clk(时钟)、irq(中断信号)、ahb(AHB总线)、mem(内存总线)、apb(APB总线)等均为信号名称,有的
7、是逻辑信号,有的是抽象信号接口。该模型通过Maxsim Designer创建,其中中断控制器为自定义的模块,其它都是MaxLib库中的现有模块。添加好各个模块后,将各模块的抽象端口连接起来,启动MaxSim Explorer来对该系统模型进行仿真,加载应用程序,分析系统性能。创建中断控制模块为了分析系统的中断性能,本文创建了一个中断控制器。该元件是个Cycle-based SystemC模块,具有四个端口:apb端口(transaction slave)是对ARM APB总线访问的抽象接口,isrc端口(signal slave)是中断源发出的中断信号接口,clk是时钟端口,irq端口(sig
8、nal master)是向CPU发出中断请求的信号接口,这些端口和其它元件的连接如图3所示。用Component Wizard生成元件的源代码框架,再往其中添加代码描述其行为,这里主要介绍一下向CPU发出中断的代码。isrc端口捕捉来自中断源APB Timer的溢出信号,在Update函数中对捕捉到的信号加以锁存。在Communicate函数中检查内部中断锁存信号,决定是否向CPU输出中断,代码如下:void MyIntCtrl:communicate()if (readyToDriveSignal) /分析在Update阶段接收到的信号,是否需要发出中断irq_SMaster->dri
9、veSignal(1, NULL); /通过irq端口输出到CPUif(readyToClearSignal) /是否需要清除中断readyToClearSignal = false;irq_SMaster->driveSignal(0, NULL); /清除对CPU的中断请求irq_SMaster是MaxSim提供的接口类,用于向别的元件输出信号(signal master),调用其driveSignal函数来输出指定值的信号。如果readyToDriveSignal为真,则输出中断信号;如果readyToClearSignal为真,则撤销中断信号,中断信号通过irq端口连到ARM9
10、CPU。代码在Unix或Windows环境下进行编译,这里使用,编译产生出文件,将此文件的路径添加到MaxSim的配置文件中。 仿真测试构建测试程序测试程序是由C和ARM 汇编混合的代码,C文件中实现了主函数和中断操作,汇编中实现了内存和寄存器操作。主要函数功能如下所述。RegisterToMemory函数实现寄存器和SDRAM之间的数据传输,它将r4、r5、r6 和r7四个寄存器的值写为 0xaa55aa55,然后将这四个寄存器的值写到地址从0x30000000到0x363fffff共100M大小的内存空间中。MemoryToMemory函数实现SDRAM块之间的数据传输,它从首址
11、为0x30000000的内存区域传输100M的数据到首址为0x60000000的内存区域中,从而令两个区域具有相同的内容。StartTimerInt函数的主要功能是使能中断,启动定时器。StopTimerInt函数清除中断。IRQ_Handle是中断ISR,当中断产生时会被调用,功能是将地址在0xa0000000的内存的值交替地在0和1间进行改变。最后通过使用armcc和armlink对testbench源代码进行编译和链接,产生,在仿真时加载到仿真模型中运行。测试结果分析本文中测试环境为、256M DDR SDRAM、Windows 2000 SP4。在执行RegisterToMemory功
12、能时,共花去91862726个节拍完成该任务,耗时分钟,功能正确,内存区域0x30000000 到0x363fffff被交替填充为0x55和0xaa。在执行MemoryToMemory功能时,共花去209750693个节拍完成该任务,耗时分钟,功能也正确,内存区域0x600000000x663fffff和0x300000000x363fffff具有完全一致的内容。IRQ_Handler执行也完全正确,每当定时器溢出,地址为0xa0000000的内存被交替的置位和清零。通过在MaxSim上建立虚拟原型,并运行ARM测试程序,分析了系统性能,这样的性能对于运行Mpeg4或等大型应用而言还是不够的,因此在改进系统的性能时可以从以下几个方面入手:将ARM9虚拟内核由现在的Cycle Approximate改为Cycle Accurate,增加内部SRAM,在其中存放中断向量表,增加Cache,扩展
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度物流运输安全培训合作协议范本3篇
- 2024版正规附带担保的借款协议
- 二零二五年度工程设备租赁与节能减排合作协议2篇
- 《北京市网络商品交易平台服务合同》
- 二零二五年度个人教育培训机构承包合同3篇
- 二零二五年度智能交通系统建设合同补充协议
- 2025浅论路桥工程项目合同管理
- 2025公司收购合同标准版
- 二零二五年度法律顾问合同-基础设施项目法律顾问服务2篇
- 二零二五年度ic销售合同范本:半导体材料买卖协议2篇
- 认识海洋生物
- 2023年金属技术监督上岗员真题模拟汇编(共1064题)
- 项目管理竞聘报告
- 数字美的智慧工业白皮书-2023.09
- 污水处理厂设备安装施工方案
- 百分数的认识说课稿(课堂)课件
- 老年人能力评估标准解读讲义课件
- 材料报价三家对比表
- 焊接工序首件检验记录表
- (通桥【2018】8370)《铁路桥梁快速更换型伸缩缝安装图》
- 针灸的作用原理和治疗原则
评论
0/150
提交评论