Embedded 版 (精华区)
发信人: Thinkpad (船长), 信区: Embedded_system
标 题: 嵌入式软件仿真开发系统的研究
发信站: 哈工大紫丁香 (Sun Oct 21 09:40:59 2001) , 转信
嵌入式软件仿真开发系统的研究
陈定君,郭晓东,张应辉,余克清,刘积仁(东北大学计算机软件国家工程研究中
心,沈阳110006) 摘 要: 为了给嵌入式软件开发者提供一个调试与测试嵌入式软件运
行情况的“软”运行平台,我们开发了嵌入式软件仿真开发系统.本文在对嵌入式软件的开
发和仿真调试器两部分进行简述之后,重点介绍了嵌入式软件仿真运行环境的仿真技术.
关键词: 高层次仿真模型;基于进程的事件表驱动算法;“胚胎”电路;遗传程序设计中图
分类号:
TP311 文献标识码: A
文章编号: 0372 2112(2000)03 0137 03
1 引言 嵌入式软件的应用与开发是当今计算机软件发展的一个热点,然而嵌入式软件
开发周期长,是一个令开发者长期头痛的事.其主要原因是嵌入式软件赖以运行电路环境的
不确定性,为调试嵌入式软件而搭建的实验板开销较大.况且在电路规模较大、功能较复杂
的情况下,用试验板进入测试已越来越难了.因为开发者总要循环往复地对嵌入式软件和电
路实验板进行修改.在国外,日本NEC公司研究人员近几年试图实现嵌入式软件开发全过
程的仿真.目前,他们已成功地完成了运行于八位单片机上嵌入式软件的仿真开发软件SM
78K0.SM78K0是允许用户构造与调试嵌入式系统的基于PCWIN DOW软件,能够仿
真78K0系列所有的微控制器,周时允许虚拟硬件的仿真,对运行于十六位或更高位单片机上
嵌入式软件的仿真开发,还正处于研究之中.
经过近5年的研究,东北大学软件中心开发了类似SM78K0的嵌入式软件仿真开发系统
.它主要是为嵌入式软件开发者提供一种仿真开发与调试“软”平台.整个系统的开发主要
分为三大部分:嵌入式软件的开发、嵌入式软件运行环境的仿真和仿真调试器的开发.其中
嵌入式软件运行环境的仿真是系统实现的关键.本文在对其它两部分进行简述之后,重点介
绍了嵌入式软件仿真运行环境的仿真技术.
2 嵌入式软件的开发
目前,运行在单片机上的系统软件和嵌入式应用软件绝大多数都是用汇编语言编写的.
但随着计算机硬件的发展,国际上单片机的应用已从四位逐步过渡到八位、十六位甚至三十
二位,这使得单片机的内存和运行速度都有较大幅度的提高,同时其指令集日趋丰富,指令功
能日渐增强,这些有利的变化使得在单片机上使用高级语言开发软件成为可能,正是在这种
情形下,我们成功研制了面向单片机应用的高级语言ESDL(EmbeddedSoft
wareDescriptionLanguage)(主要针对日本NEC公司uPD78
k系列和751系列单片机).
作为高级语言,ESDL更接近和体现人的设计思想,使得用户能够较好地把握程序整
体结构和逻辑关系的设计.另外,ESDL不仅具备一般高级语言的特点,而且为程序设计者
提供了有关单片机硬件特性的部分接口,使得用户能够利用其完成某些特殊的控制功能.3
仿真调试器(内核)的实现 仿真调试器是为调试嵌入式软件而开发的一个开放式仿真级
调试器,是一个移植性极强的程序,它可以不作任何修改或只作少许改动就能被不同类型的
仿真器嵌入调用,从而达到一对多的开发目的.从开发的角度看,仿真调试器可以分为三大部
分,即:
(1)仿真调试器的用户界面部分.
(2)仿真调试器的命令识别部分,负责对用户输入的调试命令进行语法识别并形成调试器
内核能接受的中间表达形式.
(3)仿真调试器的命令解释及仿真器运行监控部分(内核),主要任务是接受从命令识别来
的中间形式进行命令的行为解释,以及对仿真器的指令执行的监控.
为了使仿真调试器具有通用性,能够适应不同类型单片机的调试要求,设计了一个很简洁
地用以描述中央处理机结构的系统文件结构.在这个结构文件中,用户需要填充诸如地址总
线宽度、寄存器个数、寄存器位长、内存块数、内存大小、端口状况等特性.
从系统的总体上看,仿真调试器实际上在整个系统中为用户提供接口部分.在系统运行中
,调试器的命令可以控制整个仿真环境的状态,用户可以根据需要确定要跟踪的程序位置,从
而在该位置设置跟踪断点或删除断点.为了监视程序中某个变量的状态,用户可以将所要监
视的变量动态地跟踪起来.
4 嵌入式软件运行环境的仿真
4 1 仿真模型及算法高层次仿真模型,是以行为算法和结构的混合描述为对象.主要着眼
于电路系统功能和内部运行过程.其基本元素是操作和过程.各操作之间主要考虑其数据传
输、时序配合、操作流程和状态转换.高层次仿真的方法一般是对描述的解释执行,或者将
硬件描述语言的描述编译成一般软件语言如C语言、C++、汇编语言,然后执行.高层次描
述和仿真也可以实现寄存器传输级的描述和仿真[1].
电路仿真算法采用的是一种基于进程的事件驱动算法[2],这是一个运行于单机系统的同
步仿真算法.对并发事件的处理是由一个中央控制时间机构来管理,只有在当前仿真时隙内
的所有并行事件处理完毕,仿真时间才前进一个时隙.通过在一个全局半有序的事件列表中
存贮事件,通常用首尾相连的循环堆栈来完成算法此部分的实现.
嵌入式软件仿真开发系统运行于一台SUN工作站,为了同步它们的仿真运行,把时间
划分为一个个细小时隙Δt,且认为在一个Δt时隙之内发生的事件都是并行事件,Δt一
般比较小,这个Δt即为仿真周期,本系统的仿真周期定为1纳秒.
4 2 硬件描述语言EHDL的开发
为了能够对硬件环境以及单片机作形式化描述,我们在硬件描述语言标准VHDL基础上
,结合C++语言的语法规则,设计并实现了嵌入式系统前端开发工具EHDL(Extens
ionHardwareDescriptionLanguage)语言[3].EHDL语
言主要用于描述数字硬件设备,允许用户从硬件的逻辑行为、逻辑组成和硬件延时等三个方
面对数字硬件设备进行描述.这种描述与硬件设备的设计方法、实现技术等因素无关.
在用EHDL语言进行硬件描述程序完成后,将这个描述文件进行翻译,生成仿真C++程
序,再经C++编译器编译和连接,生成可以在UNIX和OPENWINDOW下面运行的
仿真程序.设计EHDL语言主要目的之一是为了最终能够产生C++源代码,以便利用现有
的AT&TC++编译器.
4 3 单片机仿真的实现用仿真方式
实现单片机全部动作是本项研究的难点.基于上述设计思想,针对该单片机内部结构,用C
语言、C++完成了指令代码集、CPU微动作集等操作的仿真,用EHDL语言编程实现了
系统时钟动作、16位时钟计数器、8位时钟计数器、clock计时器、串行口1和串行口
2动作、CPU指令运行、端口、watchdog动作、A/D转换动作等部件的仿真[4
].
4 4 电路行为仿真编辑系统电路行为仿真编辑系统设计流程如图(1)所示:
图1 电路行为编辑系统设计流程
首先,用EHDL语言对每一个器件(诸如TTL库中74LS138)进行描述,并用器件编
辑器对分立的数字器件或具有某一功能的功能块元件进行编辑,并支持器件的图形描述转化
为用EHDL语言形式化描述.构造较为完备的元器件库或功能块元件库,是该系统功能能
否实现的前提,这也直接影响遗传优化机制运行.
然后,从已构造好的元器件库中选择元器件来搭建所需仿真的“胚胎”电路,再通过遗传
优化机制寻找最优仿真电路EHDL描述程序.
最后,将EHDL语言程序翻译成功能相同的C++程序及可执行代码.
4 5 电路EHDL描述程序遗传生成机制
电路程序可以看作为一棵有根的、结点带标记的且具有有序分支的树,遗传程序设计应
用于电路领域前提是需实现电路程序树与电路图之间映射.整个遗传程序设计起点是一个非
常简单的我们称之为“胚胎”电路程序树.“胚胎”电路程序树是“胚胎”电路图的中间表
示式.“胚胎”电路包含适合于问题的某些固定部分和某些后来可以修改的连线.通过应用
电路程序树中某些函数来修改器件连线和后继电路中元器件或功能块元件,从而完成电路的
设计,最终生成电路的描述程序[5,6].
将遗传程序设计应用于电路综合前,需做以下准备工作:
(1)确定适于特定问题的“胚胎”电路;(2)确定构造电路程序树的体系结构;
(3)确定特定问题的端点集;
(4)确定蕴藏于特定问题中基本函数集;
(5)建立适应值度量方法;
(6)选择用户控制参数(如群体规模、最大运行代等等);
(7)确定停止准则;在应用遗传程序设计时,必须提供适合于特定问题的端点集和基本函
数集.端点集和函数集的选择应该使其满足闭包性和充分性,以保证它们的某个组合可以表
示问题的一个解.
5 结束语
嵌入式软件仿真开发系统为嵌入式软件开发者提供了较为便利的开发“软”环境,目前这
项研究在国内处于领先地位.对高位单片机及其应用软件仿真开发还正处于研究阶段.在仿
真速度可容忍前提下,如果采用目前计算机硬件,那么我们到底能够实现多大规模的电路仿
真及进化电路仿真程序的描述?对一个较大规模系统的仿真能否从较小规模的系统的仿真直
接构造?这些都需要我们在将来的工作中作进一步研究.
参考文献
[1] 薛宏熙,边计年,苏明等.数字系统设计自动化.北京:清华大学出版社,1996:171~
185
[2] BakerW.L.,ManmoodA.andCarlsonB.S.Paral
lelevent drivenlogicsimulationalgorithms
:tutorialandcomparativeevaluation.IEEPro
cCircuitsDevicesSystem,August1996,143(4):177~185
[3] 陈定君,郭晓东,刘积仁等.嵌入式软件前端开发工具的设计与实现.东北大学学报
,1998,19(4):346~348
[4] 陈定君,郭晓东,刘积仁等.单片机仿真的设计与实现.微电子学与计算机,1998,5
:13~16
[5] Koza,JohnR.,Andre,David,BennettⅢ,Forre
stH.andKeane,Mar tinA.AutomatedWYWIWYGdes
ignofboththetopologyandcompo nentvalueso
fanalogelectricalcircuitsusinggeneticpr
ogramming.Ge neticProgramming1996:Proceedin
gsoftheFirstAnnualConference,StanfordUni
versity,Cambridge,MA:TheMITPress,July1996,28~
31
[6] Koza,JohnR.,BennettⅢ,ForrestH,Andre,Da
vid,andKeane,Mar tinA.Automateddesignofci
rcuitsusinggeneticprogramming.Artifi cia
lIntelligenceinDesign’96.Dordrecht,Kluwer
:151~170
陈定君 1969年生,东北大学计算机软件国家工程研究中心计算应用专业博士生,攻博期
间先后在《计算机研究与发展》、《计算机科学》、《微电子学与计算机》等学术期刊上
发表十多篇论文.主要研究方向:嵌入式软件仿真开发,进化计算.郭晓东 1968年生,东北大
学计算机软件国家工程研究中心计算机应用专业博士生,主要研究方向:嵌入式软件仿真开
发,分布式多媒体.
--
※ 来源:.哈工大紫丁香 http://bbs.hit.edu.cn [FROM: 202.118.239.147]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.910毫秒