首页> 中国专利> 硬件仿真程序执行时间调整方法及该仿真程序的记录媒体

硬件仿真程序执行时间调整方法及该仿真程序的记录媒体

摘要

本发明公开了一种硬件仿真程序执行时间调整方法及该仿真程序的记录媒体,该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,其调整方法包含下列步骤:当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,开始参考一参考时间值;以及当所参考的该参考时间值小于一预设参考时间门坎值时,暂停这些硬件仿真组件的运行,直到该参考时间值变化至等于该预设参考时间门坎值时,再重新开始这些硬件仿真组件的运行。

著录项

  • 公开/公告号CN1558328A

    专利类型发明专利

  • 公开/公告日2004-12-29

    原文格式PDF

  • 申请/专利权人 绿创科技股份有限公司;

    申请/专利号CN200410039276.7

  • 发明设计人 王家俊;陈慕一;林永杰;

    申请日2004-02-11

  • 分类号G06F9/455;

  • 代理机构隆天国际知识产权代理有限公司;

  • 代理人陈晨

  • 地址 台湾省台北市

  • 入库时间 2023-12-17 15:43:15

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2006-10-04

    授权

    授权

  • 2005-03-02

    实质审查的生效

    实质审查的生效

  • 2004-12-29

    公开

    公开

说明书

技术领域

本发明涉及一种程序执行时间调整方法及该仿真程序的记录媒体,尤其涉及应用于一硬件仿真程序中的执行时间调整方法。

背景技术

在可编程的集成电路(Programmable IC)的范畴中,最广为人知的便是大量应用于个人计算机架构中的中央处理单元(CPU),但由于此类中央处理单元(CPU)的功能强大且构造复杂,约需耗费数年的时间来进行研发与制造,因此价格居高不下。而在消费性集成电路产业的应用中,由于具有弹性且价格低廉为其重要考量,因此另一种可编程的集成电路-微控制器(Microcontroller Unit,简称MCU)便在此单芯片系统中扮演一重要角色,而价格相对低廉的微控制器被大量运用于影音设备、家电、玩具、手表、个人数字助理以及移动电话中。

请参见图1,其是一微控制器10与其所控制的周边组件的功能方框示意图,常见的周边组件有显示器11、扬声器12以及输入键盘13等,而微控制器10中的只读存储器101内储存着操作这些周边组件的控制程序码,也就是说,通过不同控制程序码的撰写,该微控制器10将可表现出不同的控制行为。

而为能提供订购微控制器的客户预先进行控制程序码撰写、测试及除错的便利,制造微控制器芯片的厂商通常提供构造庞杂且价格昂贵的一硬件测试平台给客户使用,但由于消费型电子产品推陈出新的速度惊人且产品多样化,导致运用其上的微控制器的产品周期亦随之缩短,因此硬件测试平台必须随之重新制造而经常更换,造成耗费的成本与设计过程的延宕,因此以一仿真程序取代上述硬件测试平台提供给客户进行控制程序码的撰写、测试及除错,便为适应此一特殊产业环境的较佳解决方案。

而目前常见的仿真程序属电子设计自动化(electronic design automation;简称EDA)领域中所发展的模拟技术,因其是计算每一集成电路中各逻辑闸组件的“理论”效能而模拟一集成电路设计的行为模式,因此仿真所耗费的时间相当惊人,故在真实微控制器集成电路上只要花费数秒执行的动作,即使利用最快速的超级计算机可能也要耗上数天去进行模拟。由于在微控制器的研发过程中,硬件的真实时间反应特性决定了该设计的优劣,是绝对不能被忽视的,而上述的模拟技术又无法真实呈现此特性,所以此领域中的模拟技术并无法应用于上述微控制器的产业架构中。

于是,仿真微控制器于机器语言指令层(instruction-set level)的运行状态,为目前最可行的硬件仿真技术,由于此方法在计算上较为简单,一般的个人计算机就可以进行这项实时模拟,因此大大降低了目前专业设备所需的成本。

现行的机器语言指令层仿真技术一般运用在教学用途的单芯片软件仿真(如非real-time的8051软件仿真器),以及运用在个人计算机上的游戏机仿真器(如任天堂、索尼Playstation等的仿真器)。由于传统模拟的基础技术缺陷,此类的模拟技术无法用于辅助消费性电子设计。举例来说,上述游戏机的模拟技术所提供的时间精确度大约是三十分之一秒(约33毫秒)到十分之一秒(100毫秒),而上述单芯片软件仿真器(如8051仿真器)的准确性更差,运行速度忽快忽慢且无法预期,与使用者所预期的真实状态相去太远。在消费性电子设计的需求方面,尤其是发出音波的时间准确性,常常需要精确度到万分之一秒(即0.1毫秒),才能正确仿真硬件的实际运行特性。

现有的模拟技术缺乏时间精确性,使得使用者无法确实得知微控制器的真实反应而难以进行控制程序码的撰写、测试及除错,完全无法用在实际的设计流程上。

发明内容

本发明的主要目的便在于提供一种方法来提升集成电路模拟技术,借此使用者与被仿真集成电路模型间可以实时(real-time)互动,进而能远在制造之前便能确知集成电路的动作。

本发明为一种硬件仿真程序执行时间调整方法,该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,其调整方法包含下列步骤:当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,开始参考一参考时间值;以及当所参考的该参考时间值小于一预设参考时间门坎值时,暂停这些硬件仿真组件的运行,直到该参考时间值变化至等于该预设参考时间门坎值时,再重新开始这些硬件仿真组件的运行。

本发明的第二方面可为一种记录媒体,其上记录有一硬件仿真程序可供读取与执行,该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,而该硬件仿真程序具有一执行时间调整方法,该调整方法包含下列步骤:当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,开始参考一参考时间值;以及当所参考的该参考时间值小于一预设参考时间门坎值时,暂停这些硬件仿真组件的运行,直到该参考时间值变化至等于该预设参考时间门坎值时,再重新开始这些硬件仿真组件的运行。

本发明的第三方面可为一种硬件仿真程序执行时间调整方法,该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,其调整方法包含下列步骤:当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,检视最后达到大于或等于该预设模拟时间门坎值的该模拟时间值映像至一参考时间轴上的位置;以及当该仿真时间值映像至该参考时间轴上的位置与一期望位置不符时,进行一时间补偿动作。

本发明的第四方面可为一种记录媒体,其上记录有一硬件仿真程序可供读取与执行,该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,而该硬件仿真程序具有一执行时间调整方法,该调整方法包含下列步骤:当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,检视最后达到大于或等于该预设模拟时间门坎值的该模拟时间值映像至一参考时间轴上的位置;以及当该仿真时间值映像至该参考时间轴上的位置与一期望位置不符时,进行一时间补偿动作。

本发明的第五方面可为一种硬件仿真程序开发平台,提供使用者完成一硬件仿真程序,而该硬件仿真程序中设定有多个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,而该硬件仿真程序每隔一预设参考时间门坎值,自动参考一参考时间并因应参考结果进行一时间补偿动作。

根据上述构想,其中该硬件仿真程序可运行于一计算机系统,而该计算机系统可为一个人计算机,而该个人计算机可包含有一主机;一输入键盘;一扬声器;以及一显示器。

根据上述构想,其中该硬件仿真程序可仿真一微控制器控制多个周边装置时的机器指令执行状态。

根据上述构想,其中该模拟时间值可由执行过的机器指令所对应出的机器周期(Machine Cycle)累计而得。

根据上述构想,其中该参考时间值可由一系统时钟所产生。

根据上述构想,其中该参考时间值可由计算真实时间的特定倍数所产生,藉以加快或减慢仿真的速度。

根据上述构想,其中当一第一硬件仿真组件运行后产生欲传送至一第二硬件仿真组件进行处理的一笔数据时,将该笔数据附上一时间卷标后储存至相对应该第二硬件仿真组件的一数据队列中,进而于轮到该第二硬件仿真组件运行时,再由该数据队列中将该笔数据读入并因应该时间标签所载的时间点予以执行。

根据上述构想,其中该第一硬件仿真组件代表一输入键盘,而该第二硬件仿真组件代表一扬声器,当该输入键盘被按下后便产生欲传送至该扬声器进行处理的一笔声音数据,该笔声音数据附上一时间卷标后被储存至相对应该扬声器的一数据队列中,进而于轮到该扬声器运行时,再由该数据队列中将该笔声音数据读入并因应该时间标签所载的时间点予以播放。

根据上述构想,其中该笔声音资料由时间间隔相等的一声音取样值序列填入扬声器的暂存内存所构成。

根据上述构想,其中该声音取样值序列由一原始声音数据经一内插法处理后所形成。

本发明的第六方面为一种开发控制程序的软件平台,其仿真一硬件而提供使用者来完成可控制该硬件的一控制程序,而该软件平台中设定有复数个硬件仿真组件,这些硬件仿真组件依据一执行序列而运行,而该软件平台每隔一段执行动作后,自动参考一参考时间值并因应参考结果进行一时间补偿动作。本发明得借助下列附图及详细说明,使得其被更深入的了解:

附图说明

图1是一微控制器与其所控制的周边组件的功能方框示意图。

图2是可用以执行本发明硬件仿真程序的一个人计算机系统方框示意图。

图3是本发明硬件仿真程序依据该执行序列来运行的状态转换示意图。

图4是本发明调整方法的较佳实施例步骤流程示意图。

其中,附图标记说明如下:

10微控制器                  101只读存储器

11显示器                    12扬声器

13输入键盘                  20主机

21输入键盘                  22扬声器

23显示器                    30程序执行方框

31程序执行方框

具体实施方式

本较佳实施例说明是于如图2所示的一个人计算机系统(该个人计算机可包含有主机20、输入键盘21、扬声器22以及显示器23)上所执行,用以模拟一微控制器控制多个周边装置(例如输入键盘、扬声器以及显示器)时该机器指令执行状态的一硬件仿真程序,而该硬件仿真程序的执行码可从一原始码(source code)通过一相对应该微控制器的汇编程序(assembler)与连结器(linker)来产生。

而该硬件仿真程序中设定有多个硬件仿真组件,并依据一执行序列来轮流运行,而为改善公用手段的缺失所发展出来的硬件仿真程序执行时间调整方法主要包含下列步骤:(1)分别记录各硬件仿真组件的仿真时间值;(2)当这些硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,检视最后达到大于或等于该预设模拟时间门坎值的该模拟时间值映像至一参考时间轴上的位置;以及(3)当该模拟时间值映像至该参考时间轴上的位置与一期望位置不符时,进行一时间补偿动作。以下试举一实例进行说明。

本实施例的硬件仿真程序中设定有代表该微控制器及多个受控的周边装置(例如输入键盘、扬声器以及显示器)的硬件仿真组件。当本实施例的硬件仿真程序开始于一个人计算机系统上执行时,首先模拟该微控制器的开机程序,微控制器根据仿真的程序计数器(program counter)所加载的启动向量(boot vector)所指向的第一条指令开始执行,然后根据一执行序列来轮流使各个硬件仿真组件运行。请参见图3,其是本发明硬件仿真程序依据该执行序列来运行的状态转换示意图,其中每一个方框间的转换代表这些硬件仿真组件依照该执行序列轮流运行一段模拟时间后进行转换的情形,例如,程序执行方框30转换至程序执行方框31为代表该微控制器的硬件仿真组件运行一段时间后,转为代表该输入键盘的硬件仿真组件运行一段时间,依此类推,这些硬件仿真组件便可轮流运行。而于同时,本实施例的硬件仿真程序亦由执行过的机器指令所对应出的机器周期(Machine Cycle)来换算得出一仿真时间值来代表仿真所花费的时间。举例而言,当所模拟的微控制器的机器周期(Machine Cycle)为0.5微秒(microsecond),则该模拟时间值便等于执行过的机器指令数乘上0.5微秒(microsecond)。而当上述硬件仿真组件于运行时所分别记录的仿真时间值皆大于或等于一预设模拟时间门坎值时,本实施例的硬件仿真程序便开始参考一参考时间值(可通过个人计算机上的操作系统对于一系统时钟进行的读取),而当程序执行够快而使得所参考的该参考时间值小于一预设参考时间门坎值时,本实施例的硬件仿真程序便暂停这些硬件仿真组件的运行,直到该参考时间值变化至等于该预设参考时间门坎值时,再重新开始这些硬件仿真组件的运行。如此一来,每隔一预设参考时间门坎值时,本实施例程序将自动把仿真时间轴与参考时间轴对齐一次,进而达到改善公用缺点的目的。

再请参见图4,其是本发明调整方法的较佳实施例步骤流程示意图,其主要使每一硬件仿真组件轮流运行一段时间,并于同时记录这些硬件仿真组件依据该执行序列运行所分别花费的模拟时间值。而当这些硬件仿真组件所分别花费的仿真时间值大于或等于一预设模拟时间门坎值时,便开始参考一参考时间值,而当所参考的该参考时间值小于一预设参考时间门坎值时,暂停所有硬件仿真组件的运行,直到该参考时间值变化至等于该预设参考时间门坎值时,再继续依据该执行序列而重新开始这些硬件仿真组件的运行。

此外,由于本实施例程序除了仿真微控制器之外,尚仿真如输入键盘、扬声器以及显示器等受控的周边装置,因此相对应这些硬件仿真组件更个别设有一数据队列来储存附有一时间卷标的待处理数据,举例而言,代表输入键盘的硬件仿真组件于计算机的输入键盘21被按下后便产生欲传送至该显示器进行显示的一笔影像数据,而该笔影像数据在被附上一时间标签后便被储存至代表显示器的硬件仿真组件的一相对应数据队列中,进而于轮到该代表显示器的硬件仿真组件运行时,再由该数据队列中将该笔数据读入并因应该时间标签所载的时间点予以显示出来。如此一来,通过每隔一段时间所进行的时间轴对齐动作以及根据时间标签所载的时间点,本发明的仿真程序将可相当准确地仿真出各硬件仿真组件的动作时间,并提供给使用者具有实时(real-time)互动的感觉。

但由于声音输出对于时间点的敏感程度远大于其它输出装置,因此在代表扬声器的硬件仿真组件上,现提供下列作法来达到模拟出真实声音的效果。当代表输入键盘的硬件仿真组件于计算机的输入键盘21被按下后便产生欲传送至该扬声器进行播放的一笔声音数据,该笔声音数据亦被附上时间标签后被储存至相对应该扬声器的一数据队列中,进而于轮到代表该扬声器的硬件仿真组件运行时,该硬件仿真组件再由该数据队列中将该笔声音数据读入以进行一数字模拟转换动作,并因应该时间标签所载的时间点填满计算机系统中对应于扬声器22的暂存内存(buffer)进行播放,而为能利用扬声器的控制硬件将准确性提升到44100分之一秒(约0.0227毫秒,或22.7微秒),播放出正确的音高与音色。构成该笔声音数据的声音取样数字值序列由一原始声音数据根据该时间卷标的信息经一内插法处理后所形成,如此一来,可使得声音取样值序列中每个取样点的时间间隔皆相等,符合一般扬声器暂存内存的规格,进而能于数字模拟转换动作后,驱动扬声器播放出正确的音高与音色。

再有,因为人类对于声光信号相对时间小于40毫秒(millisecond)的误差无法察觉,因此将上述各硬件仿真组件轮流运行的该段时间的长度设定为20毫秒(millisecond)是一个适当的选择。至于该预设模拟时间门坎值的大小,将严重影响该个人计算机系统所进行的运算量,越小的预设模拟时间门坎值可提升程序执行的同步准确性,但将大幅增加个人计算机系统所进行的运算量,因此以目前常见个人计算机的运算能力,可将此值设定为40毫秒,一般来说针对人机互动的需求可以达到足够的真实性。

另外,通过对于参考时间轴的刻度选择,可对于硬件仿真程序的执行速度进行调整,当参考时间轴与自然时间的刻度相同时,硬件仿真程序的执行速度将以等速度方式来进行仿真,而当参考时间轴的刻度为自然时间刻度的二分之一时,硬件仿真程序的执行速度将以二倍速的方式来进行快速模拟,至于当参考时间轴的刻度为自然时间刻度的两倍时,硬件仿真程序的执行速度将以1/2倍速的方式来进行慢速模拟,如此一来,可针对有兴趣的部份进行慢速模拟而能清楚地观察相关信号的变化,而于不感兴趣的部份则可快速略过而节省验证的时间。

综上所述,本发明创造出与使用者所预期的真实状态十分接近的模拟状态,使得使用者利用此仿真程序便可确实得知微控制器的真实反应而能方便地进行控制程序码的撰写、测试及除错,大幅降低制造微控制器芯片厂商提供测试平台的成本,并且可因应消费型电子产品推陈出新的速度而快速更新,有效避免设计过程的延宕。本发明确实已提供一种方法来提升集成电路模拟技术,藉此使用者与被仿真集成电路模型间可以实时(real-time)互动,进而能远在制造之前便能确知集成电路的动作。然而本发明得由本领域的普通技术人员凭思考而做的一些等同修饰,皆属于本发明的涵盖范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号