(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf_第1页
(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf_第2页
(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf_第3页
(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf_第4页
(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机应用技术专业论文)嵌入式仿真开发平台soc仿真.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着嵌入式系统的深入发展,对开发工具提出了更高的要求。在传统软硬件 协同开发模式中,软件和硬件开发相互牵制,硬件干扰引起的异常行为严重影响 软件的调试和测试,延误开发进度,致使软件质量难以保证。仿真开发是摆脱困 境的一条有效途径。利用仿真技术模拟嵌入式硬件系统的真实运行,使软件开发 和系统集成在虚拟平台上进行,在硬件原型制造前就完成系统模型验证和运行行 为分析,避免软硬件开发相互等待,提高开发效率,降低风险和成本。 同时,嵌入式产品的广泛应用,导致目标硬件系统日益复杂和多样化,理想 的开发环境应该提供硬件平台的全面支持。而基于构件技术的软件系统具有很高 的重用性,因此在构造硬件平台的仿真系统时引入构件技术。构件模型的提取和 设计是实现构件化的关键。分离的构件按照一定方式组合在一起,才构成一个完 整的系统,动态集成方式将使系统具有良好的扩展性。 仿真技术也是实现仿真平台的关键。软件仿真技术的研究早己开始,系统仿 真包括基于电路级和基于行为描述两种仿真方式,事件驱动是最常用的仿真方法。 对于仿真的要求,有基于功能验证和周期精确两个层次,周期精确需要实现流水 线级系统结构仿真。 嵌入式系统的核心是微控制器,其逻辑复杂,软件仿真是个难题。文中提出 一种嵌入式微控制器仿真模型,研究了模型结构和工作原理。根据模型实现了基 于a r m 9 核的微控制器。 周期精确的软件仿真需要把硬件流水线的并行工作方式在仿真中串行化实 现,并且需要精确安排和系统中其它构件的同步时序。文中提出了一种基于流水 线的周期同步方式,通过运行环境的虚拟时钟使整个系统时间同步。 关键词: 仿真开发,软件仿真,仿真运行环境,嵌入式微控制器仿真 a b s t r a c t a b s t r a c t a l o n gw i t ht h ei n d e p t hd e v e l o p m e n to fe m b e d d e ds y s t e m ,ah i g h e rr e q u i r e m e n tt o t h ed e v e l o p m e n tt o o l sh a sb e e nr a i s e d i nt h et r a d i t i o n a ls o r w a r ea n dh a r d w a r e c o o p e r a t i v ed e v e l o p m e n tm o d e ,t h es o f t w a r ed e v e l o p m e n ta n dh a r d w a r ed e v e l o p m e n t c o n t a i n se a c ho t h e r t h eu n c o n v e n t i o n a la c t i v i t i e sc a u s e db yt h eh a r d w a r ei n t e r f e r eh a v e s e r i o u s l ye f f e c t e dt h ec o m m i s s i o na n dt e s to fs o f t w a r e ,w h i c hm a k et h eq u a l i t yo f s o f t w a r eb e i n gh a r dt ob eg u a r a n t e e dw i t ht h ed e l a yi nd e v e l o p m e n tp r o c e s s ,w h i l e s i m u l a t i o nd e v e l o p m e n ti sa ne f f e c t i v em e t h o dt ob r e a ka w a yf r o mt h em e s s s i m u l a t i o n t e c h n o l o g ys h a l lb eu t i l i z e dt os i m u l a t et h er e a lr u n n i n go fe m b e d d e dh a r d w a r es y s t e m t oe n a b l et h es o f t w a r ed e v e l o p m e n ta n ds y s t e mi n t e g r a t i o ni m p l e m e n t e do nav i r t u a l s t a g e ,s oa s t oc o m p l e t et h es y s t e mm o d e lv e r i f i c a t i o na n dr u n n i n ga c t i v i t ya n a l y s i s b e f o r et h em a n u f a c t u r eo fh a r d w a r ep r o t o t y p e ,a v o i d i n gt h em u t u a lw a i tb e t w e e nt h e s o f t w a r ed e v e l o p m e n ta n dh a r d w a r ed e v e l o p m e n t ,i no r d e rt oi m p r o v et h ed e v e l o p m e n t e f f i c i e n c ya n dl o w e rt h er i s k sa n d c o s t s c o n t e m p o r a r i l y , t h ew i d ea p p l i c a t i o no fe m b e d d e dp r o d u c t sh a sl e di n c r e a s i n g l y c o m p l e x i t ya n dd i v e r s i f i c a t i o no ft h eo b j e c th a r d w a r es y s t e m ,s ot h ei d e a ld e v e l o p m e n t e n v i r o n m e n ts h o u l db ep r o v i d e dw i t ht h ef u l l ys u p p o r tf r o mh a r d w a r ep l a t f o r m a n d s i n c et h es o f t w a r es y s t e mo nt h eb a s eo fs t r u c t u r a lt e c h n o l o g yh a sb e e np r o v i d e dw i t ha m o s ti m p o r t a n c e ,t h es t r u c t u r a lt e c h n o l o g ys h a l lb ei n t r o d u c e di nt h ec o n s t r u c t i o no f s i m u l a t i o ns y s t e mf o rh a r d w a r ep l a t f o r m t h ew i t h d r a w a la n dd e s i g no fs t r u c t u r em o d e l i s k e yf o rt h ea c h i e v e m e n to fs t r u c t u r a l i z a t i o n ,t h es e p a r a t es t r u c t u r es h a l lb e a s s e m b l e dt o g e t h e ra sp e rac e r t a i nt y p et oc o n s t r u c tac o m p l e t es y s t e m t h ed y n a m i c i n t e g r a t i o nm o d ei sa l s ot h ek e yp o i n tf o rt h ea c h i e v e m e n to f s i m u l a t i o np l a t f o r m t h es t u d yo fs o f t w a r es i m u l a t i o nt e c h n o l o g yh a sb e e nc o m m e n c e dl o n gb e f o r e t h e s y s t e ms i m u l a t i o ni n c l u d e st w om o d e sb a s e do nt h ec i r c u i ts i m u l a t i o na n db e h a v i o r a l d e s c r i p t i o ns i m u l a t i o n ,e v e n t d r i v e n i sac o m m o n l yu s e ds i m u l a t i o nm o d e t h e h i b e r a r c h y o fs o f t w a r es i m u l a t i o na r ef u n c t i o nv e r i f i c a t i o na n d c y c l e a c c u r a t e b e h a v i o r a ls i m u l a t i o n ,t h el a t t e ra r er e q u i r e df o rm a k eu pt h em o d e lo fp i p e l i n e d p r o c e s s o r t h ec o r eo fe m b e d d e ds y s t e mi st h em i c r o c o n t r o l l e r w i t hc o m p l e xl o g i co f w h i c h , t h es o f t w a r es i m u l a t i o ni sap r o b l e m i nt h i s a r t i c l e ,a d v a n t a g e so ft w os i m u l a t i o n i 】 a b s t r a c t m o d e ss h a l lb ei n t e g r a t e dt os u b m i tag e n e r a lm i c r o c o n t r o l l e rs i m u l a t i o nm o d e l w i t l l t h em o d e ls t r u c t u r ea n dw o r k i n gb a s i sb e i n gs t u d i e d a c c o r d i n gt ot h em o d e lw e i m p l e m e n tt h es i m u l a t i o no f m c u b a s e do na r m 9c o r e t or e a l i z e dt h er e q u i r e m e n to f c y c l e - a c c u r a t os i m u l a t i o nn e e dt oc h a n g et h ep a r a l l e l m o d eo fh a r d w a r ep i p e l i n et os e r i a lm o d ei ns o r w a r es i m u l a t i o n , a n dn e e dt os e t t l e s y n c h r o n i z a t i o no fs o ca n do t h e rc o m p o n e n t s n 圯a r t i c l ei s s u ea l l c y c l e s y n c h r o n i z a t i o nm o d eb a s eo np i p e l i n e ,i ti sm a k ca l lc o m p o n e n t sc o h e r e n c eo nt h e v i r t u a lt i m eo f r u nt i m ee n v i r o n m e n t k e y w o r d s :s i m u l a t i o nd e v e l o p m e n t s o f t w a r es i m u l a t i o n , e m b e d d e ds i m u l a t i o n m i c r o c o n t r o l l e rm o d e l i i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 签名:i 覃! 垫逸 日期洲年;月z 日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:恤导师签名受终 日期:口耐年岁月。日 第一章绪论 1 1 课题背景 第一章绪论 大多数嵌入式系统的开发,由于目标系统和开发主机使用的是不同体系结构 的处理器,因此无法在开发机上运行和测试目标程序,通常需要建立一个交叉编 译环境,将编译后的可执行代码下载到目标平台上运行。这样就使得只能在目标 系统设计完成之后,才能进行上层软件的调试和开发。 嵌入式软件仿真是在开发主机上通过软件仿真目标系统微处理器的体系结 构,提供一个指令集的模拟器,方便用户在目标硬件完成之前做好一部分软件工 作,进行简单代码的调试。由于它和真实的硬件环境还有相当的差别,因此并不 能完全地依赖于在仿真环境下的开发,最终的代码还需要在相应的硬件平台上测 试通过。 目前国内外广泛采用的嵌入式软件开发平台有三种类型: l 、采用仿真方式的开发平台 仿真开发又分为硬件仿真和软件仿真。比较高级的是实时在线仿真系统i c e ( i n c i r e u i te m u l a t o r ) ,这是一种硬件仿真的方式,成本高昂,不适合团队开发; 此外还有模拟器等硬件仿真工具。国内如深圳英蓓特公司开发出e m b e s ti d e 采用 主机一目标机交叉模型,国外知名嵌入式微控制器( m i c r o c o n t r o l l e r u n i t ,m c u ) 厂商一般都随同其产品提供了仿真工具,也有其合作伙伴为其开发的仿真开发环 境,如p & em i c r o c o m p u t e rs y s t e mi n c 为m o t o r a l a 公司提供的i c s 0 8 j l w 。软件仿 真产品方面,国内较知名的有南京伟福公司的i c e x p l o r e r ,国内的开源项目 s k y e y e 可以在l i n u x 下仿真一些开发板对软件进行功能性验证:国外方面,日 本n e c 公司研究人员在过去几年试图实现嵌入式软件开发全过程的仿真,其它的 如s i m p l e s c a l a r 则实现了处理器核结构级仿真。 2 、嵌入式实时多任务操作系统支持的开发平台 这是随着嵌入式技术发展而逐步完善起来的最新趋势,代表是w i n d r i v e r s y s t e m 公司的v x w o r k s 、p s o s + ,m e n t o rg r a p h i c s 公司的v r t x ,m i c r o s o f t 公司 支持w i n 3 2a p i 编程接口的w i n d o w sc e ,m i c r o w a r e 公司的o s 9 ,3 c o m 公司的 p a l mo s 等;国内方面,北京科银京成公司推出的d e l t a o s 。它们支持轻型网络和 电子科技大学硕士学位论文 图形界面开发,功能较完备,主要用于嵌入式系统中高端产品的开发,如网络 产品、医疗电子设备。 3 、基于程序设计语言的开发平台 早期采用汇编语言,现在还包括嵌入式程序设计语言,如引入嵌入式系统的 c c + + 愚c + + ,其功能简单,适合普通智能电器开发,如微波炉,电磁炉和空调等。 这些开发平台各有优缺点。国外产品功能强大、工具覆盖面广,但普遍存在不 开放、行业支持弱、价格昂贵、售后服务难以保证等问题。国内对嵌入式系统开 发技术的研究很多还停留在试验成果阶段,有待深入。 1 2 嵌入式仿真开发平台的提出 嵌入式系统本身是一个软硬件高度结合的产物,随着嵌入式应用的广泛发展, 硬件环境之间差异也逐渐增大。当前的开发系统大都以交叉开发为特征,对硬件 平台依赖性强。软件的开发与硬件环境的构造相互影响,错误难以定位,软件功 能调试和性能测试不能及时完成,极大影响开发进度,降低软件质量。虽然部分 开发系统加入了软件仿真支持,但大多针对某几个系列目标处理器和固定的操作 系统,专用性强,仿真覆盖面小,开发过程复杂,软件重用性差,缺少对行业功 能支持,开发效率不高。 在了解当前嵌入式产品的开发需求和技术现状,确定核心问题和关键技术之 后,本文综合研究软件仿真技术以及构件技术领域工程构架,提出了一种为嵌入 式软件快速设计验证提供支持的仿真运行环境,为嵌入式开发提供一系列的全套 支持。仿真开发平台采用纯软件的方式仿真嵌入式系统硬件平台,组合仿真的硬 件部件构成虚拟目标环境,实现运行环境的整体仿真。软件开发在这个虚拟的协 同环境中进行,脱离真实硬件,不仅使软件的设计错误在系统制造之前就被发现、 修改l l6 ,”】;还可以获得系统功能的真实描述,对硬件方案的设计进行验证和调整。 同时,再加上仿真平台提供的丰富的调试工具和逻辑分析仪,不仅可以跟踪调试 应用软件的执行过程,也可以对m c u 的运行状态了如指掌。 仿真平台采用了面向对象技术,而且整个仿真平台建立在本身就具有很强扩展 性和可以跨平台的e c l i p s e 插件机制上,因此,后期开发人员可以很方便的扩充 其它类型的m c u 和外设控制器。 2 第一章绪论 1 3 课题来源 本论文来源于国家科技部中小企业创新基金赞助项目,该项目的目标是为嵌入 式系统开发人员提供一个快捷,方便和高效的开发环境。这里的嵌入式系统是指 由高端的嵌入式处理器核如a 砌也m i p s ,p o w e r p c 等和外围设备控制器组成s o c ( s y s t e m o n c h i p ) 应用系统。本人在项目中担任项目联系人和构件小组负责人, 主要负责软件体系结构设计,m c u 仿真设计以及s o c 的部分构件设计。 本文首先探讨了当前主流的在线交叉开发方式及相关的硬件仿真技术,然后介 绍分析目前的一些仿真软件的优缺点以及他们采用的关键技术。针对嵌入式系统 软硬件协同开发的特殊性和复杂性的问题,引入了纯软件仿真开发方式。通过对 基于事件驱动的仿真技术和基于电路行为的仿真方式的研究,结合前期在嵌入式 系统开发平台中的研究实践,设计了嵌入式仿真开发平台。理论上研究了仿真开 发平台的体系结构及关键技术,并把研究成果应用于实际软件开发项目中。 为了使仿真开发平台具备良好的扩展性和通用性,对技术路线的选择与系统结 构的设计就变得尤为重要。在本课题的研究中引用了以下几方面技术: 嵌入式系统开发技术与相关理论; 以减轻嵌入式软件开发对硬件平台的依赖性为目标,研究软件仿真硬件的开发 技术: 针对嵌入式硬件系统的复杂性和相关性,研究构件技术构件集成体系结构: 针对嵌入式微控制器逻辑复杂、结构各异的问题,研究微控制器仿真技术: 针对嵌入式开发的时序要求,研究周期精确的流水线结构的软件仿真。 1 4 章节安排 本论文以嵌入式系统开发为出发点,研究和实现支持软件仿真开发的仿真运 行环境。引入计算机仿真、构件化等关键技术,研究嵌入式微控制器仿真模型和 软构件集成体系结构。 第一章概述嵌入式系统几种典型开发方式,提出利用软件仿真技术构造虚拟 目标硬件环境,支持嵌入式软件的虚拟开发与系统集成。 第二章分析典型嵌入式系统开发方式,提出纯软件仿真开发的设计需求,综 述了相关的仿真技术、构件技术和仿真软件,探讨实现仿真开发运行环境的可行 述了相关的仿真技术、构件技术和仿真软件,探讨实现仿真开发运行环境的可行 性。 电子科技人学硕十学何论文 第三章在总体上概述了a r m 处理器和$ 3 c 2 4 1 0 的结构。 第四章研究s o c 的仿真模型。 第五章具体实现一款s o c 芯片“s 3 c 2 4 1 0 ”的仿真。 第六章讨论仿真实现中的不足以及以后的发展方向 筇七章总结论文的工作,讨论仿真开发平台的技术特点。 4 第二章嵌入式系统软件仿真的相关技术 第二章嵌入式系统软件仿真的相关技术 2 1 嵌入式系统开发技术 嵌入式系统是以应用为中心,以计算机技术、半导体技术、控制技术和通讯技 术为基础,强调硬软件的协同性与整合性,软件与硬件可剪裁,适用于应用系统 对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。它是包括微 处理器、定时器、序列发生器、控制器、存储器、传感器等一系列微电子芯片与 器件,以及嵌入在r o m 、r a m 和f l a s h 存储器中的微型操作系统、控制与应 用软件来实现各种自动化处理任务的电子设备或装置。 2 1 1 开发平台分析 嵌入式系统是一个复杂的高技术系统,要在短时间内掌握并开发出所有功能很 不容易,而市场竞争需要产品能够快速上市,这一矛盾要求有容易掌握和使用的 开发工具平台,提高用户和程序员的时间投入回报率( r o t ) 。目前嵌入式系统的 主流开发平台包括下面几类: 1 、源程序模拟器s i m u l a t o r 源程序模拟器广泛使用在人机接口完备的工作平台上,如小型机和p c ,通过 软件手段模拟执行为某种嵌入式处理器内核编写的源程序测试工具。简单的模拟 器可以通过指令解释方式逐条执行源程序,分配虚拟存储空间和外设,供程序员 检查;高级的模拟器可以利用计算机的外部接口模拟出处理器的i o 电气信号。不 同档次和功能的模拟器价格相差悬殊。 模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境中,是一种有 效的源程序检验和测试工具。但值得注意的是,模拟器毕竟是以一种处理器模拟 另一种处理器的运行,在指令执行时间、中断响应等方面很可能与实际处理器有 相当的差别。另外它无法仿真嵌入式系统在应用系统中的实际执行情况。 2 、高级语言编译器c o m p i l e rt o o l s 将高级语言引入嵌入式系统,可以利用高级语言易于移植和维护的优点,同时 从事嵌入式软件开发也不必掌握汇编语言指令集。因此高级语言编译器也是一种 嵌入式开发工具。 电子科技大学硕士学位论文 c 语言作为一种通用的高级语言,大幅度提高了嵌入式系统工程师的工作效 率:此外,c 语言便于移植和修改,使产品的升级和继承更迅速。采用c 语言编 写的程序易于在不同的开发者之间进行交流,从而促进嵌入式系统开发的产业化。 嵌入式系统的高级语言编译器有别于通用的编译器,需要专门进行优化,以提高 编译效率。优秀的嵌入式c 编译器代码长度和执行时间仅比以汇编语言编写的同 样功能程序长5 - 2 0 ,这些少量的效率差别,完全可以由现代微控制器的高速度、 大存储器空间以及产品提前进入市场的优势来弥补。 新型的微控制器指令及s o c 速度不断提高,存储器空间也相应加大,已经达 到甚至超过了目前的通用计算机中的微处理器,为嵌入式系统工程师采用过去一 直不敢问津的c + + 语言创造了条件。c + + 语言强大的类、继承等功能更便于实现复 杂的程序逻辑。但是c + + 语言为了支持复杂的语法,在代码生成效率方面不免有 所下降。为此,1 9 9 5 年初在日本成立的e m b e d d e d c + + 技术委员会经过几年的研究, 针对嵌入式应用制订了减小代码尺寸的e c + + 标准。e c + + 保留了c h 的主要优点, 提供对c + + 的向上兼容性,并满足嵌入式系统设计的一些特殊要求。 c c h 侣c + + 引入嵌入式系统,使得嵌入式开发和个人计算机、小型机等之间 在开发上的差别逐渐消除,软件工程中的很多经验、方法乃至库函数可以移植到 嵌入式系统。 3 、实时多任务操作系统r t o s 实时多任务操作系统r t o s ( r e a lt i m em u l t i t a s k i n go p e r a t i o ns y s t e m ) 是嵌入 式应用软件的运行基础和开发平台。目前国内大多数嵌入式软件开发还是基于处 理器直接编写,没有采用商品化的r t o s ,不能将系统软件和应用软件分开处理。 r t o s 是一段嵌入在目标代码中的软件,用户的其它应用程序都建立在r 1 o s 之上。 不但如此,r t o s 还是一个可靠性和可信性很高的实时内核,将c p u 时间、中断、 u o 、定时器等资源都包装起来,留给用户一个标准的a p i ,并根据各个任务的优 先级,合理地在不同任务之间分配c p u 时间。 r t o s 是针对不同处理器优化设计的高效率实时多任务内核,优秀商品化的 r t o s 可以面对几十个系列的嵌入式处理器m p u 、m c u 、d s p 、s o c 等提供类同 的a p i 接口,这是r t o s 基于设备独立的应用程序开发基础。因此基于r t o s 上 的c 语言程序具有极大的可移植性。据专家测算,优秀r t o s 上跨处理器平台的 程序移植只需要修改1 5 的内容。在r t o s 基础上可以编写出各种硬件驱动程序、 专家库函数、行业库函数、产品库函数,和通用性的应用程序一起,可以作为产 第二章嵌入式系统软件仿真的相关技术 品销售,促进行业内知识产权交流,因此r t o s 又是一个软件开发平台。 4 、实时在线仿真系统i c e 直到计算机辅助设计非常发达的今天,实时在线仿真系统i c e 仍是进行嵌入式 应用系统调试非常有效的开发工具。i c e 首先可以通过实际执行,对应用程序进行 原理性检验,排除以人的思维难以发现的设计逻辑错误。i c e 的另一个主要功能是 在应用系统中仿真微控制器的实时执行,发现和排除由于硬件干扰等引起的异常 执行行为。此外,高级的i c e 带有完善的跟踪功能,可以将应用系统的实际状态 变化、微控制器对状态变化的反应、以及应用系统对控制的响应等以一种录像的 方式连续记录下来,以供分析,在分析中优化控制过程。很多机电系统难以建立 一个精确有效的数学模型,或是建立模型需要大量人力,这时采用i c e 的跟踪功 能对系统进行记录和分析是一个快而有效的方法。 i c e 不仅是软件硬件排错工具,同时也是提高和优化系统性能指标的工具。高 档i c e 工具,如美国n o h a u 公司的产品,是可根据用户投资裁剪功能的系统, 亦可根据需要选择配置各种档次的实时逻辑跟踪器t r a c e 、实时映象存储器s h a d o w r a m 及程序效率实时分析功能p p a 。 不论是高级语言编译器,还是实时操作系统,它们的开发都是建立在硬件环境 成熟稳定的基础上;而源程序模拟器只能完成简单的调试,难以保证应用运行时 序的真实性,更不能支持性能分析。从事嵌入式开发的往往是非计算机专业人士, 面对成百上千种处理器,熟悉硬件环境,掌握处理器结构及其应用需要很长时间, 因此好的开发工具除了开发出处理器的功能外,还应当减轻对硬件平台的依赖性, 使应用开发更独立。 2 1 2 开发方式比较 嵌入式系统的开发就是软硬件协同开发的过程,可分为4 个阶段:功能规格 描述与验证、软件硬件分解、软件,硬件设计以及集成测试。传统的开发方式是: 在系统软件硬件功能分解后,开发人员分别独立进行软件与硬件的设计开发,软 件完成编码后必须等待硬件原型制造出来才能在上面调试,进行整个系统的集成 与测试。由于软件与硬件设计是相互独立完成的,嵌入式系统行为模型的合理性、 软件硬件间接口的有效性等问题在集成测试阶段才能得以验证,早期设计阶段的 问题这时才可能发现,严重的情况下还要重新调整软件硬件功能分配,重复整个 开发流程,浪费极大的人力物力。 7 电子科技人学硕十学位论文 利用仿真技术构造嵌入式开发平台是新的发展趋势,仿真丌发可以给应用软件 提供一个虚拟的运行环境。下面将嵌入式系统传统开发方式和仿真开发方式作一 个比较: 上 i 软件,硬件独立开发 l 现问题 :软件h 爱僻功能分解卜 m 洲躺归一系统集成与测试 硬件开发制造 h - 软件,硬件独立开发 甲发 现问题 拄现问题 软件砸利硝能分解i 虚拟调试、集成与测试 l i 系统集f女上j j 9 1 试 ”厂7 1 ,1 ” 硬件开发 圈2 1嵌入式系统仿真开发流程图 从图中可看出,仿真开发可以先一步发现问题,软件的调试测试也不需要等待 硬件原型的制造完成,在真实系统集成前就对设计思想进行验证,使设计中的错 误在硬件实现前消除,两种方式在开发效率上的优劣显而易见。 2 1 3 仿真开发技术 计算机仿真技术是近3 0 年发展起来的一门综合新兴学科,它以控制论、系统 论、相似原理和信息技术为基础,以计算机和各种物理效应设备为工具,借助系 统模型对实际或设想的系统进行动态试验研究的一门综合性技术。仿真的基本思 想是利用物理的或数学的模型来类比模仿现实过程,以寻求对真实过程的认识, 占所遵循的基本原则是相似性原理。计算机仿真则是利用计算机模拟实际系统, 第二章嵌入式系统软件仿真的相关技术 对系统进行分析与研究,以此获得该系统的行为数据,也就是展示真实系统的动 态性能,用计算机对系统进行研究。当真实系统进行实验分析比较困难或代价昂 贵甚至没有可能时,计算机仿真就显示其无可替代的作用u 9 】。 计算机仿真包括三个基本要素:系统,即研究的对象t 模型,即系统的抽象; 计算机,即工具与手段。通过建立模型、进行仿真试验和分析仿真结果三个步骤 完成仿真过程,图2 2 展示了三者间的关系。 仿真实现 图2 - 2 仿真三要素关系图 对仿真技术的基本要求是精度、速度和费用。精度是说明仿真系统能力的最基 本指标。目前数字仿真技术日益成熟,仿真精度一般能达到要求。速度也是一个 重要指标,特别是在规模不断增大的集成电路仿真中,速度日益成为仿真的瓶颈。 另外,仿真的目的是用较少的费用来验证系统的设计是否达到预定的要求,尽早 发现问题,通过减少设计风险来降低产品的开发成本。因此,当仿真费用低于预 定的产品开发成本时,仿真才有价值。 一、仿真开发流程 仿真技术既可用于系统设计,例如新系统设计或系统改造,也可用于系统分析, 在系统中一部分采用实际部件,另一部分采用模型,以避免新的子系统的投入可 能造成对原系统的破坏或影响大大缩短开工周期,提高系统投入的一次成功率。 仿真技术还可用于产品开发及制造,对制造过程进行全方位仿真。在很多方面仿 真技术都有应用,例如u m l & s d l 的仿真,c 等高级语言的仿真,v h d l 等硬 件描述语言的仿真,机器指令的仿真,c p u 硬件逻辑的仿真等。 仿真技术可应用于系统开发的全方面,也分布于整个过程:验证系统可行性, 进行定量比较;在系统设计阶段,进行模型实验、模型简化并进行优化设计;在 实现层次,仿真代码的执行;在硬件集成阶段,处理系统的时间约束条件,通信 电子科技大学硕士学位论文 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ - _ _ _ _ _ _ - _ - _ _ _ _ _ _ _ _ _ _ _ - _ _ _ _ _ _ _ _ - - _ _ _ _ _ _ _ _ _ _ _ _ _ 一 机制和部件间协作。仿真开发流程一般概况为:阐述问题,建立模型,实现验证, 输出仿真结果 二、硬件仿真技术 硬件仿真是通过相应的硬件,实现被仿真电路的逻辑结构或实际运行系统功能 来进行仿真,因而其速度比计算机软件仿真要快得多。硬件仿真目前只限于进行 功能验证、故障模拟,以及部分的时序验证。集成电路的硬件仿真器目前有两种: 一种是以f p g a 为基础的硬件仿真器;另一种是以处理器为基础的硬件仿真器。 以处理器为基础的硬件仿真器对设计有一定的约束,如对异步逻辑的限制,同时 它对仿真的加速率不如基于f p g a 的高。 传统的硬件仿真方法是:按照逻辑图,在试验板上搭接电路,各输入端接入信 号发生器提供的激励波形,观察输出端或内部测点的波形。这种方法已不能满足 日益复杂的微处理器的设计验证需要。目前微控制器仿真的原理是指从电路的描 述( 语言描述或图形描述) 提取模型,然后将外部激励信号或数据施加于此模型, 通过观察该模型在外部激励信号作用下的反应来判断电路系统是否实现了预期的 功能。通过对电路的仿真、精确分析可有效地捕捉设计中地错误。由于在设计地 不同阶段对电路地描述级别不同,因此在仿真级别、描述方法、模型抽象和仿真 算法上也不同。h d l 语言( v h d l v c r i l o g ) 可以支持对不同抽象级别的电路的描 述,基于h d l 语言的仿真工具通常也支持对不同抽象级别的电路的仿真。仿真工 具有软件仿真器( 如v e r i l o g和硬件仿真器【20】。xl) 在线仿真器i c e 采用硬件仿真技术支持软件开发,它是一个相对昂贵的部件, 用于植入微处理器与总线之间的电路中,允许使用者监视和控制微处理器所有信 号的进出。在线仿真器提供了总线工作的清晰状况,免了许多对硬件软件底层工 作状况的猜测,但它是异体,可能会引起不稳定。 人们已经做了大量研究,推出了许多功能和性能良好的硬件仿真环境,如i c e p i c 2 模块式在电路仿真器,它支持采用m i c r o c h i p 的p i c l 2 1 6 1 7 微控制器的快速 开发,速度可达3 3 m h z ,可进行汇编或c 源代码级调试,并带有8 k b 的硬件追踪 缓冲区。可以在任何地址上或地址区段上进行无限度的硬件触发断点。以单步或 单步进程模式执行,集成特殊的硬件过滤器来控制多周期指令的捕捉。该仿真器 兼容w i n d o w s9 5 9 8 n t 2 0 0 0 和m i c r o e h i p 的m p l a b 。 第二章嵌入式系统软件仿真的相关技术 2 2 软件仿真技术 目前很多嵌入式开发平台提供在线仿真方式,采用这种开发方式在应用开发过 程中仍需与硬件打交道,软,硬件间敏感的交互影响会产生大量的麻烦和进度的延 误,很多不确定因素会引起错误。而纯软件的仿真开发方式可迸一步改善开发环 境,避免硬件干扰,集中精力开发软件。它是用计算机软件模拟实际硬件电路的 运行,构建应用软件运行所需的虚拟硬件环境,提供嵌入式软件开发和调试的真 正“软”平台。现在一些硬件模型已经相当精确,软件仿真可以真实地反映实际电路 的行为。 引入软件仿真开发相当于引入一种新的开发模式,为程序员提供了一个更便捷 高效低成本的开发平台,在仿真平台开发出的程序,具有较高的可移植性,一些 成熟的通用程序可以作为专家库函数产品推向社会。 2 2 1 基于事件驱动的仿真技术 在软件仿真中人们通常采用基于事件驱动的仿真技术,可分为连续事件仿真和 离散事件仿真,在一般情况下人们采用的是实现离散事件仿真的基本功能。离散 事件仿真有两种仿真类型:单个事件仿真和多重事件仿真,仿真算法采用高效的 事件推进法。仿真过程可概括为:( 1 ) 扫描存放当前等待的仿真事件列表,将最 先发生的事件推进到活动对象列表;( 2 ) 扫描活动对象列表,按模型流程图进行推 图2 - 3 基于事件驱动的仿真过程图 电子科技大学硕士学位论文 进;( 3 ) 推进仿真钟,处理相应的性能指标;( 4 ) 显示仿真结果。下图为其流程 图,其中生成起始事件序列有三种方法可选择:平均分布、随机分布和按统计样 本生成【2 “。 事件驱动算法是一个同步仿真算法,对并发事件的处理是由一个中央控制时间 机构来管理,把时间划分为一个个细小时隙t ,且认为在一个t 时隙之内发生的事 件都是并行事件,只有在当前仿真时隙内的所有并行事件处理完毕,仿真时间才 前进一个时隙,通过一个全局半有序的事件列表中存储事件,通常用首尾相连的 循环堆栈来完成算法此部分的实现。其中t 即为仿真周期,一般较小田】。 仿真过程中采用两个列表:一个是事件时间列表,它临时记录事件和事件发生 的时间,在这里不断地对事件按它发生的时间从小到大的顺序进行排序,以便知 道当前哪个事件最先发生;一个是活动对象列表,它记录当前的活动对象是谁, 仿真算法是基于事件驱动的仿真钟推进算法,先将从用户界面输入的开始事件进 行按时间从小到大的顺序进行排序,然后将开始事件直接推进活动对象列表,并 且将仿真钟推进到最先发生事件的时间,再判断活动对象列表中的下属的对象为 功能、事件、连线和规则。如果是连线,判断连线的下属对象是功能、事件还是 规则。是事件,直接将事件推进到活动对象列表中。以图表文字的形式输出是规 则,判断规则的类型并进行相应的处理;是功能,则计算相应的时间、成本、队列 长度、占用率等技术指标,再将功能的执行时间= 仿真钟的当前时间+ 功能的执行 时间+ 等待时间,并且将功能推进到事件列表中,再重新对事件时间列表进行排序, 然后不断地将事件时间列表中的最先发生的事件推进到活动对象列表中。如果是 功能,将功能的下属对象推进到活动对象列表中。如果是规则,依据规则的类型 进行相应的处理,并将规则推进到活动对象列表中。依此循环,直到仿真结束,对 仿真的结果进行分类和计算,统计相应的空闲时间、忙时间、成本、净增加价值 和每个功能的成本、等待时间、处理时间以及队列长度、各个功能所增加的价值 等一系列数据。 通过以上活动,对用户建立的流程模型进行动态仿真,计算性能等指标,为分析 评价和辅助决策提供信息。 2 2 2 基于电路行为的仿真方法 基于电路行为的仿真模型主要着眼于电路系统功能和内部运行过程进行仿真, 其基本元素是操作和过程,各操作之间主要考虑其数据传输、时序配合、操作流 第二章嵌入式系统软件仿真的相关技术 程和状态转换p 】。 高层次仿真的方法一般是对描述的解释执行,或者将硬件描述语言的描述编译 成一般软件语言如c 、c 抖、汇编语言,然后执行。高层次描述和仿真也可以实现 寄存器传输级的描述和仿真。常用做法是。在硬件描述语言标准v ) l 基础上, 结合高级语言的语法规则,设计实现了一种嵌入式系统前端开发工具语言,以完 成硬件环境以及单片机的形式化描述。该工具语言描述数字硬件设备,允许用户 从硬件的逻辑行为、逻辑组成和硬件延时等三方面对数字硬件设备进行描述,这 种描述与硬件设备的设计方法、实现技术等因素无关。 用工具语言对每个仿真器件进行描述,并用器件编辑器对分立的数字器件或具 有某一功能的功能块元件进行编辑,并支持器件的图形描述转化为用工具语言形 式化描述,最后将工具语言翻译成功能相同的高级语言程序及可执行代码。从通 过这种方式生成的仿真器件库中选择元器件搭建起所需的仿真胚胎电路,这样就 得到了仿真的硬件平台。 2 3 仿真软件 采用不同的硬件仿真方法来仿真单个c p u 或整个嵌入式开发板就形成了不同 类型的仿真软件。仿真软件的分类可以从软件的仿真功能,仿真范围,仿真精度 上分为不同的类型。一般而言,越逼进硬件电路级的仿真软件越复杂,速度也越 慢;而仅仅为验证应用程序功能的仿真软件则相对要简单的多。 下面介绍几种仿真软件:首先是两种基于a r m 处理器的嵌入式软件仿真环 境:a r m u l a t o r 和s k y e y e ,它们无需任何硬件就可以在p c 机上进行a r m 程 序的开发和调试,同时由于它们还仿真了部分外围设备,也可以进行操作系统级 的移植,例如u c o s i i 。 2 3 1a r m u l a t o r a r m u l a t o r 是一个在a r m 公司推出的集成开发环境a d s ( a r md e v e l o p e r s u i t e ) q b 提供的指令集模拟器。它与运行在通用计算机( 通常是x 8 6 体系结构) 上的 调试器相连接,模拟a r m 微处理器体系结构和指令集,提供了开发和调试a r m 程序的软件仿真环境。a r m u l a t o r 不仅可以仿真a r m 处理器的体系结构和指令 集,还可以仿真存储器和处理器外围设备,例如中断控制器和定时器等,这样就 模拟了一个进行嵌入式开发的最小子系统,另外使用者还可以扩展添加自己的外 电子科技大学硕士学位论文 设。a r m u l a t o r 同时支持全部的标准c 库蘧数,这样所有的c 程序都可以在仿真 器上运行。a r m u l a t o r 通过s e m i h o s t i n g 方式来实现程序中i o 功能。s e m i h o s t i n g 是指在a r m 程序开发调试的过程中,目标系统还不具备f o 的功能,通过调试 代理向调试器请求f o 。a r m u l a t o r 就是这里所说的调试代理之一,其他还有 a n g e l 、m 砌q c e 也通过类似的方式来实现i o 功能。 a r m u l a t o r 在w m d o w s 平台上实现为动态链接库文件( c u t ) ,在l i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论