CN100576186C - 软仿真器的制作方法 - Google Patents
软仿真器的制作方法 Download PDFInfo
- Publication number
- CN100576186C CN100576186C CN200610023295A CN200610023295A CN100576186C CN 100576186 C CN100576186 C CN 100576186C CN 200610023295 A CN200610023295 A CN 200610023295A CN 200610023295 A CN200610023295 A CN 200610023295A CN 100576186 C CN100576186 C CN 100576186C
- Authority
- CN
- China
- Prior art keywords
- emulator
- special function
- soft
- function register
- soft emulator
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种软仿真器的制作方法,当目标芯片中的特殊功能寄存器与基本软仿真器中的特殊功能寄存器地址或功能有冲突时,在软仿真器中增加一个特殊功能寄存器仿真功能模块,在这个模块中把有冲突的特殊功能寄存器功能扩展出来。在软件操作到这些地址的特殊功能寄存器时,该模块在基本软仿真器之前把操作截获下来并重新映射、连接到扩展出来的特殊功能寄存器上。本发明可减少针对目标芯片的软仿真器的开发成本、时间和风险。适用于微处理器芯片的片上软件开发前期的功能级仿真、开发和调试。
Description
技术领域
本发明涉及一种用于微处理器芯片仿真、调试的软仿真器的制作方法,具体而言是涉及一种软仿真器开发过程中特殊功能寄存器(SFR)仿真功能的实现方法。
背景技术
在微处理器芯片的片上软件开发过程中,需要使用与芯片配套的仿真器。随着微处理器技术的不断推广,制造厂商和微处理器的品种也在不断增加。为了能以最快的速度抢占市场,需要适时地开发出与芯片配套的仿真器。目前针对微处理器芯片的片上软件开发所用的仿真器包括硬件仿真器和软仿真器。设计、制作硬件仿真器需要花费一定的时间,周期较长;而软仿真器不牵涉到硬件、仿真芯片等的设计、制作,其开发工作在微处理器芯片规格确定后即可开始,相对于硬件仿真器而言,开发周期和风险要小得多。软仿真器虽然在性能、仿真真实性等方面与硬件仿真器有较大差距,无法替代硬件仿真器用于软件性能仿真、调试、测试和考核,但对于软件开发前期的功能级仿真、开发和调试仍旧是非常有用的。因此,微处理器制造厂商们往往在微处理器芯片规格制定后,在投入资源和时间设计、制作硬件仿真器的同时,先花较短的时间开发出一套针对该款芯片的软仿真器以进行市场推广工作,供用户熟悉该处理器芯片功能,以及调试软件的功能部分。
虽然软仿真器一般仅用于软件的功能级仿真、调试,但为了保证开发出来的程序功能符合要求,开发过程对软仿真器的针对性仍旧有一定的要求。这些针对性主要表现在软仿真器模拟的处理器核功能、特殊功能寄存器(SFR)地址配置和功能、协处理器功能等都必须与微处理器芯片一致。
软仿真器需要配合汇编编译器或C编译器使用,而目前世界上被广泛认可和使用的只有KEIL、IAR等若干家公司的编译器产品。它们分别基于自己的编译器产品制作了针对若干种处理器核的基本软仿真器,并提供了存储器配置功能、SFR扩展功能和协处理器的扩展接口。由于,牵涉到自己的核心技术,这些厂商都没有提供其基本软仿真器的源代码以及与编译器的接口。同时,由于这些编译器在业界的主导地位,微处理器制造厂商即使有能力自行开发出全套的编译器和软仿真器也难以被市场所接受。因此,目前一般的软仿真器制作方法,都是选择其中一种编译器产品,基于其配套的基本软仿真器和相应的扩展方法,在基本软仿真器上再增加一层针对目标芯片的软仿真功能层,共同构成一个与目标芯片规格匹配的软仿真器。
由于牵涉到基本软仿真器的核心技术部分,这些基本软仿真器中已包含了的SFR地址和功能普遍都不允许编辑和修改,且这些编译器厂商都只针对处理器核提供了非常有限的若干种基本软仿真器,例如占有率最高的KEIL编译器工具中就只提供了针对通用8051和Turbo 51的两种基本软仿真器,相应的也只有两种标准的SFR配置。但是,随着微处理器产品的多样化,有很多微处理器中的SFR地址分配和功能,与已有的基本软仿真器中的标准SFR地址分配和功能发生冲突。导致微处理器制造商基于基本软仿真器开发出来的,针对目标芯片的软仿真器中的SFR地址和功能与目标芯片的规格不符,而不能用于片上软件的功能仿真和调试。
目前解决这个问题的方法是,微处理器制造商把目标芯片的规格提供给编译器开发商请他们针对该款目标芯片定制软仿真器。但是,这些编译器厂商对这项服务普遍收费高昂,花费的时间也较长,是国内微处理器制造厂商无法承受的。
发明内容
本发明要解决的技术问题是提供一种软仿真器的制作方法,在目标芯片的SFR地址或功能与基本软仿真器中的SFR地址和功能有冲突时,仍旧可以基于基本软仿真器实现一个与目标芯片规格定义匹配的软仿真器。
为解决上述技术问题,本发明软仿真器的制作方法是通过以下技术方案实现的,所述软仿真器包括基本软仿真器和针对目标芯片的软仿真功能层,其中,在该软仿真功能层中包括一个特殊功能寄存器仿真功能模块,当目标芯片中的特殊功能寄存器与基本软仿真器中的特殊功能寄存器功能有冲突时,在特殊功能寄存器仿真功能模块中把有冲突的特殊功能寄存器功能扩展出来;在软件操作到有冲突的特殊功能寄存器地址时,所述特殊功能寄存器仿真功能模块在基本软仿真器之前把操作截获下来并重新映射、连接到扩展出来的特殊功能寄存器上。
由于采用本发明的方法,在目标芯片的SFR地址和/或功能与基本软仿真器中的SFR地址和/或功能有冲突时,仍旧能采用基于基本软仿真器的方法开发出与目标芯片SFR特性一致的软仿真器。不仅可以提供与目标芯片功能特性一致的软仿真器,所需要投入的成本、时间都较少,风险也较小,有利于目标芯片能更快的推向市场。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细的说明:
图1是采用本发明的方法制作的软仿真器的软件结构示意图;
图2是采用本发明的方法制作的软仿真器中SFR与目标芯片中SFR的关系示意图。
具体实施方式
如图1所示,本发明软仿真器的制作方法是,首先选择一个与目标芯片处理器核特性相同且SFR配置最接近的基本软仿真器1,在基本软仿真器1上增加一个针对目标芯片的软仿真功能层2。基本软仿真器1和针对目标芯片的软仿真功能层2共同构成针对目标芯片的软仿真器6。所述针对目标芯片的软仿真功能层2中有与目标芯片规格对应的存储器配置模块3、协处理器仿真功能模块4和SFR仿真功能模块5。
当目标芯片中的特殊功能寄存器与基本软仿真器1中的特殊功能寄存器功能有冲突时,在SFR仿真功能模块5中利用基本软仿真器1提供的SFR扩展功能,把有冲突的SFR按照目标芯片规格中的功能定义扩展出来。在软件操作到有冲突的特殊功能寄存器地址时,SFR仿真功能模块5在基本软仿真器1之前把操作截获下来并重新把这些SFR地址映射、连接到扩展出来的对应SFR上。由于操作已经被SFR仿真功能模块5预先截获,软件不会操作到基本软仿真器1中对应地址的SFR,基本软仿真器1中的这些有冲突的SFR对软件而言就是不可见的了。由于重新映射和连接的工作由SFR仿真功能模块5自动完成,用户仍旧可以按照目标芯片规格中的SFR地址的定义编写软件。
下面结合一个实施例对本发明作进一步的描述。
如图2所示,假设目标芯片规格定义中的地址ADD2和ADD3上的SFR2’和SFR3’与基本软仿真器1中对应地址ADD2和ADD3上的SFR2和SFR3功能不一致、有冲突,如果直接使用基本软仿真器1,当软件操作地址ADD2和ADD3上的SFR时,实现的功能就与目标芯片规格定义中的不一致了。在采用本发明制作的软仿真器6中,SFR仿真功能模块5利用基本软仿真器1提供的SFR扩展功能把目标芯片规格中定义的ADD2和ADD3地址上的SFR2’和SFR3’扩展、放置到软仿真器的ADD2’和ADD3’地址上,当软件操作地址ADD2和ADD3上的SFR时,SFR仿真功能模块5在基本软仿真器1之前把操作截获下来并把这两个SFR重新映射、连接到ADD2’和ADD3’地址的SFR2’和SFR3’上。
这样,由于操作预先被SFR仿真功能模块5所截获,软件不会操作到基本软仿真器1中对应地址ADD2和ADD3上的SFR2和SFR3,也就是说,基本软仿真器1中的SFR2和SFR3对软件而言是不可见的。另外,由于SFR的重新映射和连接,完全由SFR仿真功能模块5自动完成,对用户的软件而言操作的仍旧是ADD2和ADD3地址上的SFR,而不是ADD2’和ADD3’地址上的SFR,完全符合目标芯片规格中的定义。
采用本发明的方法,在目标芯片的SFR地址和/或功能与所使用的基本软仿真器1中已存在的SFR地址和/或功能有冲突时,仍旧能基于基本软仿真器1开发出与目标芯片SFR特性一致的软仿真器,而不会增加额外的成本和时间的投入。
Claims (2)
1、一种软仿真器的制作方法,所述软仿真器包括基本软仿真器和针对目标芯片的软仿真功能层,其特征在于:在该软仿真功能层中包括一个特殊功能寄存器仿真功能模块,当目标芯片中的特殊功能寄存器与基本软仿真器中的特殊功能寄存器功能有冲突时,在特殊功能寄存器仿真功能模块中把有冲突的特殊功能寄存器功能扩展出来;在软件操作到有冲突的特殊功能寄存器地址时,所述特殊功能寄存器仿真功能模块在基本软仿真器之前把操作截获下来并重新映射、连接到扩展出来的特殊功能寄存器上。
2、如权利要求1所述的软仿真器的制作方法,其特征在于:所述重新映射和连接的工作由特殊功能寄存器仿真功能模块自动完成,用户仍旧可以按照目标芯片中的特殊功能寄存器地址的定义来编写软件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610023295A CN100576186C (zh) | 2006-01-13 | 2006-01-13 | 软仿真器的制作方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200610023295A CN100576186C (zh) | 2006-01-13 | 2006-01-13 | 软仿真器的制作方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101000577A CN101000577A (zh) | 2007-07-18 |
CN100576186C true CN100576186C (zh) | 2009-12-30 |
Family
ID=38692557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610023295A Expired - Fee Related CN100576186C (zh) | 2006-01-13 | 2006-01-13 | 软仿真器的制作方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100576186C (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101751480B (zh) * | 2008-11-28 | 2011-07-20 | 上海华虹集成电路有限责任公司 | 软仿真器及其实现方法 |
CN103077073B (zh) * | 2013-01-15 | 2016-12-28 | 华为技术有限公司 | 即时功能级仿真器的实现方法和装置及仿真处理器 |
-
2006
- 2006-01-13 CN CN200610023295A patent/CN100576186C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101000577A (zh) | 2007-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7533246B2 (en) | Application program execution enhancing instruction set generation for coprocessor and code conversion with marking for function call translation | |
CN100555218C (zh) | 用于改善片上仿真系统中高级语言的仿真速度的装置和方法 | |
US20050039174A1 (en) | Apparatus and method for co-simulating processors and DUT modules | |
US8336036B2 (en) | System and method for translating high programming level languages code into hardware description language code | |
US6212625B1 (en) | General purpose dynamically programmable state engine for executing finite state machines | |
US20080294411A1 (en) | Systems and Methods for Logic Verification | |
US7231627B2 (en) | Merging a hardware design language source file with a separate assertion file | |
JP2002244881A (ja) | 順序外データのトレーシング | |
CN101339581A (zh) | 基于中断通讯的嵌入式系统的在线调试仿真方法 | |
CN103793208B (zh) | 矢量dsp处理器和协处理器协同运作的数据处理系统 | |
CN100576186C (zh) | 软仿真器的制作方法 | |
CN115017845A (zh) | 用于ip单元级别验证的总线驱动式芯片仿真激励模型 | |
JP2007310565A (ja) | システムlsi検証装置及びシステムlsi検証プログラム | |
CN100474266C (zh) | 一种用于数字信号处理器的调试系统及其调试方法 | |
US11651130B2 (en) | Method, device, and storage medium for simulating a design | |
CN100492299C (zh) | 一种嵌入式软件开发的方法及系统 | |
Fummi et al. | ISS-centric modular HW/SW co-simulation | |
CN100392591C (zh) | Pc架构嵌入式系统中上电自检的设计方法 | |
JP2004021907A (ja) | 性能評価用シミュレーションシステム | |
JP5545054B2 (ja) | デバッグ回路及びデバッグシステム | |
CN100498716C (zh) | 一种用于处理器仿真模型中的系统调用转换直通通道方法 | |
KR100638476B1 (ko) | 버추얼 플랫폼 기반의 시스템 온 칩 개발 환경 및 개발 방법 | |
CN117271236B (zh) | 复用jtag调试通道调试cpu核的处理器及应用方法 | |
CN101320401B (zh) | 一种电子硬件芯片的获得方法和装置 | |
Schirner et al. | High-Level development, modeling and automatic generation of hardware-dependent software |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091230 Termination date: 20170113 |
|
CF01 | Termination of patent right due to non-payment of annual fee |