CN101231589B - 用于原位开发嵌入式软件的系统和方法 - Google Patents

用于原位开发嵌入式软件的系统和方法 Download PDF

Info

Publication number
CN101231589B
CN101231589B CN2008100088197A CN200810008819A CN101231589B CN 101231589 B CN101231589 B CN 101231589B CN 2008100088197 A CN2008100088197 A CN 2008100088197A CN 200810008819 A CN200810008819 A CN 200810008819A CN 101231589 B CN101231589 B CN 101231589B
Authority
CN
China
Prior art keywords
model
code
new peripheral
new
hardware
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
Application number
CN2008100088197A
Other languages
English (en)
Other versions
CN101231589A (zh
Inventor
R·J·德维斯
N·R·达瓦达
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Core Usa Second LLC
GlobalFoundries Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN101231589A publication Critical patent/CN101231589A/zh
Application granted granted Critical
Publication of CN101231589B publication Critical patent/CN101231589B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Abstract

一种用于原位开发嵌入式软件的系统和方法。其中,一种用于开发将被用于新集成系统中的新外围硬件的新外围软件代码的开发系统包括基本与所述新集成系统相同的传统或已存在集成系统。所述新外围硬件的模型被构成。所述模型的每个I/O寄存器被映射到存储器映射的I/O空间中。对应于所述新外围软件代码的开发代码在所述已存在硬件上被执行从而经由所述存储器映射的I/O空间与所述模型交互。在一个实施例中,所述模型作为嵌入式模型在所述已存在集成系统上被执行。在另一实施例中,所述模型作为非嵌入式模型在硬件描述语言仿真器上被执行。

Description

用于原位开发嵌入式软件的系统和方法
技术领域
本发明一般涉及集成系统领域。特别地,本发明涉及用于原位(in-situ)开发嵌入式软件系统和方法。
背景技术
现在的片上系统(SoC)设计的开发管理人员和工程师可以从广阔范围的开发工具和方法中选择来达到硬件/软件联合发展空间中的发展目标。如所熟知的,SoC是构成自含式系统的单一芯片,其中,所述自含式系统一般包括一个或更多微控制器、微处理器和/或数字信号处理器核心、一个或更多存储器、一个或更多输入/输出(I/O)设备以及用于控制包括所述I/O设备的所述系统的软件。例如用于SoC中的嵌入式软件的开发者关注的是达到对在其上运行代码的目标硬件的及时访问。因为产品上市时间压力高,所以所述情形在SoC应用的情况下尤其切实。
因为所述高上市时间压力,软件开发者被迫与将组成最终SoC产品的硬件并行地开发软件。这意味着软件将运行所在的实际硬件在开发期间不可用。因此,当前技术的SoC软件开发通常依赖于用于提供针对新软件代码的开发环境的硬件仿真或软件联合仿真。在仿真或联合仿真中,硬件被映射到模拟整个SoC的行为的仿真/联合仿真平台上。一旦被编程,则所述仿真/联合仿真平台使得SoC的硬件和软件能够被测试和调试。软件联合仿真平台的主要要素是用产业标准语言(例如SystemC、VHDL、Verilog)编写的不同抽象级(例如事务级、周期精确、行为的等等)的硬件块的模型。在所述硬件仿真/软件联合仿真平台上开发嵌入式软件的过程相比于该软件将最终运行所在的实际SoC硬件的速度可以是非常缓慢的。
例如,在仿真/联合仿真上引导例如操作系统代码的复杂代码花费很长时间,并且因此是不实际的。因此,该过程的缺点是开发代码必须以小段在仿真器上被执行。将开发代码分割为这些小段是非常耗时和低效的。另外,经由仿真软件调试开发代码不允许其以完全或甚至接近完全的系统操作速度执行。
发明内容
本公开的一个实施例涉及一种开发用于与拥有第一基础操作环境的新集成系统一起使用的新外围硬件的新外围代码的方法。所述方法包括提供拥有第二基础操作环境的已存在集成系统,其中,所述第二基础操作环境与第一基础操作环境相比具有相同的硬件主要部分以及相同的操作系统。新外围代码被加载到所述已存在集成系统中,以及所述新外围硬件的模型被提供。所述模型被映射到存储器中的寄存器空间中。所述新外围代码在所述已存在集成系统中被执行,从而使得所述新外围代码经由所述寄存器空间与所述模型交互。
本公开的另一实施例涉及一种用于开发与具有至少一个核心寄存器的新外围硬件相结合使用的新外围代码的系统。所述系统包括中央处理单元(CPU)和存储器,其中,所述存储器在操作上与所述CPU通信并且包括对应于所述新外围硬件的所述至少一个核心寄存器的寄存器空间。被存储在所述存储器中的系统软件用于由所述CPU执行,从而提供现有操作环境。所述新外围硬件的模型被映射到所述寄存器空间。存储在所述存储器中并且可由所述CPU执行的新外围代码包括用于经由所述寄存器空间与所述模型功能上交互的指令。
本公开的又一实施例涉及一种开发新外围硬件的外围代码的方法,所述外围硬件被配置为在第一操作环境中运行。所述方法包括提供对应于所述外围代码的第一开发代码,以及提供所述新外围硬件的嵌入式模型。所述嵌入式模型被映射到存储器映射的输入/输出(MM I/O)空间。所述第一开发代码和所述嵌入式模型被执行,从而所述第一开发代码与所述嵌入式模型经由所述MM I/O空间相互交互。对应于所述外围代码的第二开发代码和所述新外围硬件的非嵌入式模型被分别提供。所述非嵌入式模型被映射到所述MM I/O空间。所述第二开发代码和所述非嵌入式模型被执行,从而所述第二开发代码与所述非嵌入式模型经由所述MM I/O空间相互交互。
附图说明
为说明本发明,附图示出了本发明的一个或更多实施例的各方面。然而,应当理解,本发明不限于附图中所示的精确安排和工具,在附图中:
图1示出了根据本发明的第一实施例的用于实施原位建模的开发系统的功能框图;以及
图2示出了根据本发明的第二实施例的用于实施原位建模的开发系统的功能框图。
具体实施方式
图1示出了根据本发明的第一实施例构成的开发系统100,其中,该系统用于实施例如片上系统(SoC)的被开发的集成系统(未示出)的原位建模。本领域的技术人员将理解,所述被开发的集成系统不一定是SoC,而可以是包括处理器和一个或更多外围(peripheral)的任意系统,特别地,其中,所述新系统的处理器和处理环境将很大程度上与现有或传统处理器系统相同,并且一个或更多新外围被添加。其它应用的示例包括新的基于Unix和PC的集成系统的设计。
在高层次,开发系统100允许软件开发者将原位建模技术用于例如SoC设备104的现有集成系统硬件,其类似于将最终是被开发的新集成系统的一部分的新硬件,,从而模拟所述新硬件的功能。更特别地,开发系统100允许软件开发者在非常类似于被开发硬件的实际硬件(例如,除一个或更多新外围(外围核心)外,新硬件的主要部分可以与开发硬件相同)上以及在如果不相同则非常类似于被开发系统的基础软件(或操作系统)环境(例如,相同操作系统可以在被开发系统中使用,以及,仅例如外围驱动程序、输入/输出驱动程序等(这里统称为“外围”)的运行在操作系统之上的软件可以是新的)中运行被开发系统的新软件代码(开发代码)。如下面讨论的,开发系统100经由将建模环境软件模块108与SoC设备104集成来提供所述开发环境。
更具体地转向开发系统100,SoC设备104可以例如是传统设备或被开发新系统的前身。SoC设备104可以包括中央处理单元(CPU)112(例如微控制器、微处理器或数字信号处理器)、存储器控制器114、中断控制器116和I/O外围118等等。本领域的技术人员将容易理解,适于用作SoC设备104的SoC设备可以包括多个CPU 112、存储器控制器114、中断控制器116和I/O外围118。为方便起见,仅示出了它们各自的一个。CPU 112可以包括非可屏蔽中断(NMI)120。I/O外围118与SoC设备104外部的真实I/O设备122交互从而产生合适的效应,其中,所述效应在所述真实I/O设备是音频扬声器的情况下例如是声音。
开发系统100还包括物理存储器124,其中,该物理存储器包含存储器映射输入/输出(MM I/O)空间126。CPU 112、存储器控制器114、中断控制器116和传统I/O外围118可以经由与去往SoC设备104的通信总线INTERNAL BUS(内部总线)的连接相互通信。用于构成SoC开发系统100的SoC设备104、真实I/O设备122和物理存储器124的组合的物理实例化例如可以经由SoC、印刷电路板或其它已知电子集成方法来实现。
在本实施例中,CPU 112是能够执行程序指令的微处理器,并且用于管理SoC设备104(以及因此开发系统100)的整体运转。在该示例中,存储器控制器114提供存储器124与CPU 112之间的接口,其处理去往和来自该存储器的数据传输。存储器控制器114管理存储器写/读协议,所述协议允许CPU 112访问存储器124以及可能的其它存储器(未示出)。
在图1的实施例中,中断控制器116是能够为到来的中断请求指派优先级并且例如经由从该中断控制器到CPU的电子中断信号(INTERRUPT(中断))将中断请求递送到CPU 112。INTERRUPT(中断)信号是来自提供允许设备从处理器(例如CPU 112)请求服务的机制的硬件或软件的同步或异步信号。特别在实时计算中,中断是用于计算机多任务的常用技术。例如来自传统I/O外围118的硬件中断使得CPU 112经由上下文开关(未示出)保存其执行状态,并且开始处理该中断条件。例如来自建模环境模块108的软件中断通常被实现为使得上下文开关以类似于硬件中断的方式切换到中断处理器的指令集中的指令。经由对比,CPU 112的NMI120是不能被标准中断屏蔽技术忽略的特定类型的中断。NMI典型用于针对非可恢复硬件错误的信号注意,其用于系统调试以及用于处理例如系统复位的特殊情况。
传统I/O外围118是经由真实I/O设备122在CPU 112与外部世界之间接合的SoC硬件。例如,如果真实I/O设备122是音频扬声器,则传统I/O外围118可以包括音频信号发生器。当然,真实I/O设备122可以是除音频扬声器之外的任意现有I/O设备,例如键盘、鼠标、图形控制器和/或打印机等等,从而传统I/O外围118将是用于在出现问题时驱动真实I/O设备的适当的相应各个外围。
物理存储器124可以是能够存储信息的任意机器可读媒体,其中,所述信息例如是关联于软件的数据和指令。机器可读媒体的示例如随机存取存储器(RAM)设备。尽管在图1中存储器124被示为在SoC设备104的外部,但物理存储器124可以可选地作为嵌入式存储器驻留在该SoC设备的内部。在其它实施例中,存储器124可以包括两种或更多机器可读媒体。
MM I/O空间126是物理存储器124的一部分,其在开发系统100的上下文中被分配给新外围(未示出)的寄存器空间,其中,所述新外围是正被开发的,以及新软件针对该新外围正被开发。在一个示例中,MM I/O空间126可以是物理存储器124中的任意100字节的块。在开发系统100的上下文中,MM I/O空间126模拟被开发外围的寄存器。存储器映射I/O是其中外围控制和状态寄存器被映射到存储器空间而非I/O空间中的通用硬件设计方法。从软件开发者的角度看,存储器映射I/O设备看起来非常像所述设备寄存器其自身。其寄存器甚至可以经由普通指针和数据结构来访问,这很大程度上简化了设备驱动实现。在开发系统100的上下文中,建模环境模块108被接合到MM I/O空间126。
建模环境模块108是这样的建模软件,其可以被嵌入SoC设备104中,例如在存储器124中或其它存储器(未示出)里或与SoC设备104通信,并且其用适于在CPU 112上执行的任意编程语言来实现,其中,所述编程语言例如但不限于高级编程语言(例如C/C++编程语言)和/或例如汇编语言的低级代码。建模环境模块108提供实施用于模拟新外围的功能的建模任务的模型环境代码。因为在所示实施例中建模环境模块108驻留在开发系统100的硬件中,所述开发系统的仿真操作可以以完全或接近完全的系统运转速度来执行。应当指出,被开发新外围硬件的模型可以处于不同的设计抽象级别,例如事务级、周期精确、行为、寄存器传输级,并且其用例如SystemC或其变型的体系结构化建模语言、或者例如VHDL或Verilog的硬件描述语言来编写。
根据本发明构成的开发系统(例如图1的开发系统100)的操作如下。至少三个高级操作结合使用所述开发系统来实施。这些操作是:
1)对应于在建模环境模块108中建模的新外围的一个或更多核心寄存器(core register)被映射到现有集成系统的系统存储器中的存储器位置(例如映射到开发系统100的物理存储器124的MM I/O空间126);
2)开发代码被存储到存储器中(例如存储到物理存储器124中),以用于经由所映射的I/O存储器位置与所述新外围交互;以及
3)开发代码在现有软件操作环境中的CPU上(例如在SoC设备104的操作环境中的CPU 112上)被执行。
结合图1的实施例更具体地说,新开发代码被输入到开发系统100中,以及在SoC设备104的基础软件操作环境中被CPU 112执行。在这样做时,关联于现有SoC设备104和被开发新系统的基础代码和新开发代码在开发系统100的现实环境中运行。在建模环境模块108中建模的新外围中的一个或更多寄存器被映射到物理存储器位置(由物理存储器124的MMI/O空间126代表),并且对于开发系统100的现有硬件端上的基础软件和新开发代码以及该开发系统的建模环境端上所建模的新核心可用。所述模型环境(即,建模环境模块108)作为来自操作系统的周期性线程或作为周期性非可屏蔽中断(由NMI 120处理)执行,以及因此能够轮询(poll)从被开发代码到MM I/O空间126的寄存器空间中的转储(deposit)。MM I/O空间126的寄存器转储在建模环境模块108的模型环境代码中被执行,以及响应在适当时被转储到MM I/O空间126的寄存器中。当中断从所建模外围被生成时,合适的响应值被建模环境模块108强制放入中断控制器116,其中,建模环境模块108仿真进入基础软件代码的中断,以及由此,新开发代码的中断处理器被训练。
另外,当可能时,建模环境模块108的建模环境代码可以利用现有的传统I/O外围(例如传统I/O外围118)来测试新核心I/O功能。这允许应用代码与真实设备交互,以及由此增强所述开发环境。例如,如果正在被建模的新外围是新的音频信号处理核心,则传统I/O外围118是用于驱动音频扬声器(真实I/O设备122)的音频信号发生器,因此,该传统音频信号发生器可以使用所建模信号处理核心的输出信号来驱动所述扬声器,从而允许开发者测试该新音频信号处理核心的运行和设计。
本公开的开发系统(例如图1的开发系统100)可以被如下利用。为方便起见,以下描述涉及开发系统100。然而,本领域的普通技术人员将容易理解如何实现不同于基于SoC设备的开发系统100的根据本发明的开发系统,其中,如以上所描述的,所述开发系统例如是基于Unix或PC的开发系统。
如果基础软件代码还未被加载到SoC设备104中,则其被与新外围开发代码和建模环境模块108(包括所建模的新外围)一起加载到该SoC设备中。作为建立开发系统100的一部分,所建模外围的每个寄存器被映射到物理存储器(在本示例中为MM I/O空间126)中,以及所述外围开发代码和/或基础软件代码被配置为对所述寄存器进行识别,用于允许外围开发代码与所建模外围通信。
一旦所有所述软件、建模环境108和外围模型的加载完成,则例如SoC设备104的CPU 112的物理CPU中的基础软件代码、外围开发代码和外围模型的执行被启动。当运行时,并且如上面所提到的,在一些实施例中,建模环境模块108可以经由SoC设备104的CPU 112上的一个或更多周期性线程中的基础软件环境执行。在可选实施例中,所述模型环境代码经由所述基础软件代码作为周期性非可屏蔽中断(例如由CPU 112的NMI120进行处理)执行。在所述建模环境运行的同时,所述新外围开发代码经由基础软件在CPU 112上运行。当所建模的新外围核心和新外围开发代码运行时,建模环境模块108和基础软件/新外围开发代码都轮询到MMI/O空间126的相应各个寄存器中的转储。这样,新外围开发代码与所建模的新外围之间的交互被仿真。
更特别地,所进行的从新外围开发代码到MM I/O空间126中的每个寄存器转储由建模环境模块108中的相应的各个所建模的新外围执行,以及作为响应,每个相应的各个新外围模型将在适当时转储到MM I/O空间126的寄存器中,其中,该新外围的响应用于由相应的新外围开发代码使用。通过与在MM I/O空间126中转储一个或更多响应相结合,相应的各个所建模的新外围核心可以用信号通知已进行所述响应转储的中断控制器116。一旦中断被中断控制器116挂起,则该中断控制器将适当地提供其典型的调度中断功能,以及向CPU 112发出一个或更多INTERRUPT(中断)信号以便用信号通知该CPU执行合适的新外围开发代码来处理所述中断。开发系统100只要被需要用于测试所有新外围开发代码就可以继续运行。
取决于被开发的新外围和相应的新外围代码,现有的传统I/O外围118和真实I/O设备122可以用于在物理世界的上下文中采样和评估所述新外围开发代码和所述新外围核心的性能,其中,所述被开发新外围和外围代码当用在产品中时将最终在所述物理世界中被使用。经由示例,如果所述新外围开发代码和新外围核心实现了一种音频数据压缩的改进方法,以及真实I/O设备122是音频扬声器,以及传统I/O外围118是音频信号发生器,则被开发的音频压缩算法由SoC设备104执行以便驱动所述音频信号发生器,该音频信号发生器接着驱动所述音频扬声器从而允许开发者听到由所述新外围开发代码生成的输出。
图2示出了用于实施原位逻辑建模的可选开发系统200。类似于图1的开发系统100,图2的开发系统200允许软件开发者使用原位建模技术来模拟被开发新硬件(外围)的功能。然而,取代如图1的开发系统100中那样利用嵌入式建模环境108来仿真被开发新外围,图2的开发系统200被配置为被与硬件描述语言(HDL)逻辑仿真器工作站204或类似外部设备接合,其中,所述硬件描述语言(HDL)逻辑仿真器工作站204或类似外部设备提供与所述新外围开发代码交互的新外围的模型。开发系统200的其它方面可以与图1的开发系统100的对应各个方面相同或类似。
在基本类似于图1的开发系统100的一个实施例中,图2的开发系统200包括SoC设备210,该SoC设备210包括一个或更多CPU 212、至少一个存储器控制器214、至少一个中断控制器216以及一个或更多传统I/O外围218。CPU 212可以包括NMI 220。开发系统200还可以包括一个或更多真实I/O设备222和至少一个存储器224。存储器224包括包含一个或更多寄存器的MM I/O空间226,其中,所述寄存器用于MM I/O空间的一端的被开发新外围代码与MM I/O空间的另一端的所建模新外围核心之间的通信。这些单元的每个可以如相对于图1的SoC开发系统100被描述的那样。
HDL逻辑仿真器工作站204可以包括HDL仿真器/加速器228。尽管HDL仿真器/加速器228被示为放置在单独的工作站204中,但在可选实施例中,该HDL仿真器/加速器可以不是基于工作站的。例如,HDL仿真器/加速器228可以被并入直接接合到开发系统200的物理模块或设备板中。为使能HDL仿真器/加速器228与开发系统200之间的通信,HDL逻辑仿真器工作站204可以包括交叉接口232,以及所述开发系统可以包括相应的各个HDL仿真器工作站接口236。HDL仿真器工作站接口236可以例如是允许SoC设备210与HDL仿真器工作站接口204之间的通信的程序代码。类似地,交叉接口232可以例如是允许SoC设备210的开发代码测试环境与例如HDL仿真器/加速器228的HDL仿真器之间的通信的程序代码。HDL仿真器工作站接口236与交叉接口232之间的连接可以是例如电缆连接的任意合适的高速连接,其中,所述电缆连接例如是以太网、USB或火线电缆。
HDL仿真器/加速器228可以是允许用户运行带加速的逻辑仿真的逻辑仿真器。示例逻辑仿真器/加速器包括但不限于IBM(Armonk,纽约)的AWAN仿真器和Synopsys公司(Mountain View,加利福尼亚)的VCS
Figure DEST_PATH_2008100088197_0
仿真器。HDL仿真器描述核心设计的体系结构框,并且是通过草稿设计框的传统方法。HDL仿真器典型使用允许设计者为其硬件设计编写必要规范的硬件描述语言(HDL)。现在使用的两种主要HDL语言是Verilog和VHDL,但其它语言也可以被使用。
与图1的开发系统100一样,图2的开发系统200保留传统外围设备(例如与真实I/O 222结合的传统I/O外围218)中的所有软件代码,但用与逻辑仿真器(HDL仿真器/加速器228)的连接代替所述建模环境(建模环境模块108)。在开发系统200中被执行的线程是开发系统200与HDL仿真器/加速器228之间的接口,而图1的SoC开发系统100正在执行建模环境模块108内部的实际功能。
在SoC开发系统200的环境中,开发代码以类似于图1的SoC开发系统100的原位方法的方式被执行。然而,在SoC开发系统200的情况下,MM I/O空间226的被捕获MM I/O操作被传输到HDL逻辑仿真器/加速器228。在这样做时,新硬件的建模使用基于HDL的模型执行来达到,其中,所述建模相比于图1的SoC开发系统100的嵌入式模型执行方法的使用而言,是所述新硬件的更精确表示。
开发系统100、200提供了在现有的传统系统(例如SoC设备)中分别利用先期嵌入式模型或基于HDL的模型来分别实现原位模型执行以及用于原位HDL仿真的桥接方法的机制。所述软件/硬件开发过程可以包括仅开发系统100的使用、仅开发系统200的使用、或SoC开发系统100和200二者的逐次使用。另外,传统(即现有)外围硬件当可能时用于提供伪真实I/O功能,其中,所述伪真实I/O功能对于设备驱动程序和应用开发可以是非常有用的。另外,SoC开发系统100和200在提供帮助优化嵌入式软件的可扩展和精确的软件开发平台的同时,提供以全速或接近全速并且在熟悉的调试环境中执行开发软件的好处。这些开发系统还允许所述软件开发上下文中的先期建模的再使用,由此使能一种实施并行开发的新方法。本公开的开发系统还使用现有物理外围来生成和模拟真实数据流,这对于软件系统开发和调试是至关重要的。开发系统200经由交叉适配器的使用提供HDL仿真和加速技术的透明使用的附加好处。
示例性实施例已在上面被公开并结合附图被说明。本领域的技术人员应当理解,在不脱离本发明的精神和范围的情况下,可以对这里特别公开的内容作出各种改变、省略和添加。

Claims (20)

1.一种开发用于与具有第一基础操作环境的新集成系统一起使用的新外围硬件的新外围代码的方法,所述方法包括:
提供具有第二基础操作环境的已存在集成系统,其中,所述第二基础操作环境与第一基础操作环境相比除新外围硬件外具有相同的硬件主要部分以及相同的操作系统;
将新外围代码加载到所述已存在集成系统中;
提供所述新外围硬件的模型;
将所述模型映射到存储器中的寄存器空间中;以及
在所述已存在集成系统中执行所述新外围代码从而使得所述新外围代码经由所述寄存器空间与所述模型交互。
2.根据权利要求1所述的方法,进一步包括:
在建模环境中对所述新外围硬件建模以便创建所述模型;以及
在所述已存在集成系统上执行所述模型。
3.根据权利要求2所述的方法,其中,所述新外围代码包括用于进行到所述寄存器空间的转储的指令,所述执行所述模型的步骤包括对所述寄存器空间轮询所述转储。
4.根据权利要求2所述的方法,其中,所述提供所述外围硬件的所述模型的步骤包括从包括事务级、周期精确、行为的和寄存器传输级的组中选择设计抽象级别,以及从包括体系结构化建模语言和硬件描述语言的组中选择建模语言。
5.根据权利要求3所述的方法,其中,所述在所述已存在集成系统上执行所述模型的步骤包括将所述模型作为来自所述第二操作环境的周期性线程来执行。
6.根据权利要求3所述的方法,其中,所述在所述已存在集成系统上执行所述模型的步骤包括将所述模型作为周期性非可屏蔽中断来执行。
7.根据权利要求3所述的方法,其中,所述执行所述模型的步骤包括生成所述转储的响应,以及在所述寄存器空间中转储所述响应。
8.根据权利要求2所述的方法,其中,所述已存在集成系统进一步包括中断控制器,以及所述执行所述模型的步骤包括将响应信号推入所述中断控制器。
9.根据权利要求2所述的方法,其中,所述已存在集成系统进一步包括传统输入/输出外围,以及所述方法进一步包括根据所述模型驱动所述传统输入/输出外围。
10.根据权利要求1所述的方法,进一步包括:
在寄存器传输级仿真器中建模所述新外围硬件;以及
将所述寄存器传输级仿真器与所述寄存器空间接合。
11.一种用于开发与具有至少一个核心寄存器的新外围硬件相结合使用的新外围代码的系统,包括:
中央处理单元;
存储器,其在操作上与所述中央处理单元通信,并且包括对应于所述新外围硬件的所述至少一个核心寄存器的寄存器空间;
被映射到所述寄存器空间的所述新外围硬件的模型;
其中,在所述存储器中存储有系统软件,其用于由所述中央处理单元执行从而提供现有操作环境;以及
在所述存储器中存储有新外围代码,所述新外围代码由所述中央处理单元执行,并包括用于经由所述寄存器空间与所述模型在功能上交互的指令。
12.根据权利要求11所述的系统,其中,所述新外围硬件的所述模型被存储在所述存储器中,所述模型在所述中央处理单元上与所述开发代码相结合执行从而仿真所述新外围硬件。
13.根据权利要求11所述的系统,其中,所述开发代码包括用于进行到所述寄存器空间的转储的指令,以及所述模型包括用于对所述寄存器空间轮询所述转储的指令。
14.根据权利要求12所述的系统,其中,所述模型作为周期性线程执行。
15.根据权利要求12所述的系统,其中,所述模型作为周期性非可屏蔽中断执行。
16.根据权利要求13所述的系统,其中,所述模型包括用于生成所述转储的响应以及用于将所述响应转储在所述寄存器空间中的指令。
17.根据权利要求11所述的系统,进一步包括中断控制器,以及其中,所述模型包括用于将响应信号推入所述中断控制器的指令。
18.根据权利要求11所述的系统,进一步包括传统输入/输出外围,以及其中,所述传统输入/输出外围根据所述模型被驱动。
19.根据权利要求11所述的系统,进一步包括硬件描述语言仿真器,其中,该仿真器包含与所述寄存器空间接合的新硬件核心的硬件描述语言仿真。
20.一种开发新外围硬件的外围代码的方法,其中所述外围代码被配置为在第一操作环境中运行,所述方法包括:
提供对应于所述外围代码的第一开发代码;
提供所述新外围硬件的嵌入式模型;
将所述嵌入式模型映射到存储器映射的输入/输出空间;
执行所述第一开发代码和所述嵌入式模型,从而所述第一开发代码与所述嵌入式模型经由所述存储器映射的输入/输出空间相互交互;
提供对应于所述外围代码的第二开发代码;
提供所述新外围硬件的非嵌入式模型;
将所述非嵌入式模型映射到所述存储器映射的输入/输出空间;以及
执行所述第二开发代码和所述非嵌入式模型,从而所述第二开发代码和所述非嵌入式模型经由所述存储器映射的输入/输出空间相互交互。
CN2008100088197A 2007-01-25 2008-01-24 用于原位开发嵌入式软件的系统和方法 Expired - Fee Related CN101231589B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/626,967 2007-01-25
US11/626,967 US8234624B2 (en) 2007-01-25 2007-01-25 System and method for developing embedded software in-situ

Publications (2)

Publication Number Publication Date
CN101231589A CN101231589A (zh) 2008-07-30
CN101231589B true CN101231589B (zh) 2010-11-10

Family

ID=39669403

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100088197A Expired - Fee Related CN101231589B (zh) 2007-01-25 2008-01-24 用于原位开发嵌入式软件的系统和方法

Country Status (2)

Country Link
US (1) US8234624B2 (zh)
CN (1) CN101231589B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4888272B2 (ja) * 2007-07-30 2012-02-29 富士通セミコンダクター株式会社 ソフトウェアのシミュレーション方法、ソフトウェアのシミュレーションのためのプログラム、及びソフトウェアのシミュレーション装置
US8352231B2 (en) * 2007-08-30 2013-01-08 International Business Machines Corporation System for performing a co-simulation and/or emulation of hardware and software
US8265918B1 (en) * 2009-10-15 2012-09-11 Xilinx, Inc. Simulation and emulation of a circuit design
KR20110097447A (ko) * 2010-02-25 2011-08-31 삼성전자주식회사 인터럽트 프록시 기능을 구비한 시스템 온 칩 및 그에 따른 인터럽트 프록시 처리방법
US9015649B2 (en) 2010-07-19 2015-04-21 Taiwan Semiconductor Manufacturing Co., Ltd. Method and apparatus for electronic system model generation
KR101444408B1 (ko) 2010-11-16 2014-10-07 한국전자통신연구원 임베디드 소프트웨어 개발 환경 재구성 장치 및 방법
US8966478B2 (en) * 2011-06-28 2015-02-24 The Boeing Company Methods and systems for executing software applications using hardware abstraction
CN103258067B (zh) * 2012-02-20 2016-05-25 京微雅格(北京)科技有限公司 一种可配置片上系统中保持架构、软件及硬件一致性的方法
KR20140083530A (ko) * 2012-12-26 2014-07-04 삼성전자주식회사 하드웨어를 디버깅하는 부트 쉘을 포함하는 시스템온칩 및 이의 구동 방법
CN103927219A (zh) * 2014-05-04 2014-07-16 南京大学 可重构专用处理器核的周期精确的仿真模型及其硬件架构
US10409321B2 (en) 2017-02-03 2019-09-10 Raytheon Company Simulation system with clock and messaging synchronization
CN112329369B (zh) * 2020-11-09 2024-04-12 安徽芯纪元科技有限公司 一种在芯片仿真模型上进行软件调试的方法
CN114401306B (zh) * 2022-01-14 2024-03-12 中航机载系统共性技术有限公司 一种异地协同嵌入式开发系统及方法

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4306286A (en) 1979-06-29 1981-12-15 International Business Machines Corporation Logic simulation machine
US4527249A (en) 1982-10-22 1985-07-02 Control Data Corporation Simulator system for logic design validation
US4862347A (en) 1986-04-22 1989-08-29 International Business Machine Corporation System for simulating memory arrays in a logic simulation machine
US5081608A (en) 1988-04-18 1992-01-14 Matsushita Electric Industrial Co., Ltd. Apparatus for processing record-structured data by inserting replacement data of arbitrary length into selected data fields
US4985860A (en) 1989-06-21 1991-01-15 Martin Vlach Mixed-mode-simulator interface
US5247651A (en) * 1990-04-17 1993-09-21 At&T Bell Laboratories Interactive computer program specification and simulation system
FR2691817B1 (fr) * 1992-05-27 1997-01-31 Sgs Thomson Microelectronics Procede et carte electronique pour le developpement d'un circuit integre.
US6179488B1 (en) * 1994-03-23 2001-01-30 Synopsys, Inc. Software execution systems
US5673418A (en) 1994-10-07 1997-09-30 Bull Hn Information Systems Inc. Method and apparatus for emulating the operations of an emulated system terminal driver on a host system
US5870588A (en) * 1995-10-23 1999-02-09 Interuniversitair Micro-Elektronica Centrum(Imec Vzw) Design environment and a design method for hardware/software co-design
DE69840972D1 (de) * 1997-02-14 2009-08-27 Canon Kk Vorrichtung, System und Verfahren zur Datenübertragung und Vorrichtung zur Bildverarbeitung
US5943490A (en) 1997-05-30 1999-08-24 Quickturn Design Systems, Inc. Distributed logic analyzer for use in a hardware logic emulation system
GB2319100B (en) 1997-11-15 1998-09-16 Ibm Hardware simulator for a transaction processing system
JPH11237980A (ja) * 1998-02-20 1999-08-31 Hitachi Ltd オブジェクト指向最適化コード生成装置及び方法
US6052524A (en) * 1998-05-14 2000-04-18 Software Development Systems, Inc. System and method for simulation of integrated hardware and software components
GB2338573B (en) * 1998-06-15 2002-11-06 Advanced Risc Mach Ltd Modeling integrated circuits
US6466898B1 (en) 1999-01-12 2002-10-15 Terence Chan Multithreaded, mixed hardware description languages logic simulation on engineering workstations
US6671857B1 (en) * 1999-08-18 2003-12-30 Matsushita Electric Industrial Co., Ltd. Method of designing integrated circuit device using common parameter at different design levels, and database thereof
US7047176B2 (en) * 2000-05-05 2006-05-16 Fujitsu Limited Method and system for hardware simulation
US7159223B1 (en) * 2000-05-12 2007-01-02 Zw Company, Llc Methods and systems for applications to interact with hardware
GB2406416A (en) * 2000-10-31 2005-03-30 Advanced Risc Mach Ltd Describing an integrated circuit configuration
JP3907398B2 (ja) * 2000-11-16 2007-04-18 松下電器産業株式会社 半導体集積回路装置の設計方法
US6691301B2 (en) * 2001-01-29 2004-02-10 Celoxica Ltd. System, method and article of manufacture for signal constructs in a programming language capable of programming hardware architectures
US6792580B2 (en) * 2001-01-31 2004-09-14 Kabushiki Kaisha Toshiba Method and computer program product for software/hardware language model conversion
JP2002230065A (ja) * 2001-02-02 2002-08-16 Toshiba Corp システムlsi開発装置およびシステムlsi開発方法
US7353156B2 (en) * 2002-02-01 2008-04-01 International Business Machines Corporation Method of switching external models in an automated system-on-chip integrated circuit design verification system
US7660998B2 (en) * 2002-12-02 2010-02-09 Silverbrook Research Pty Ltd Relatively unique ID in integrated circuit
US7051299B2 (en) * 2003-07-31 2006-05-23 International Business Machines Corporation Method for generating reusable behavioral code
JP4500308B2 (ja) * 2004-03-10 2010-07-14 富士通株式会社 電子パッケージ信頼性予測装置および電子パッケージ信頼性予測プログラム
US7584465B1 (en) * 2004-09-20 2009-09-01 The Mathworks, Inc. Memory mapping for single and multi-processing implementations of code generated from a block diagram model
US7424687B2 (en) * 2005-11-16 2008-09-09 Lsi Corporation Method and apparatus for mapping design memories to integrated circuit layout

Also Published As

Publication number Publication date
CN101231589A (zh) 2008-07-30
US8234624B2 (en) 2012-07-31
US20080184193A1 (en) 2008-07-31

Similar Documents

Publication Publication Date Title
CN101231589B (zh) 用于原位开发嵌入式软件的系统和方法
CN107436762B (zh) 一种寄存器代码文件生成方法、装置和电子设备
Rowson et al. Interface-based design
Dumas II Computer architecture: fundamentals and principles of computer design
CN102782651B (zh) 硬件设计的混合式并发及串行逻辑仿真
WO2007078915A2 (en) System and method for generating a plurality of models at different levels of abstraction from a single master model
Wain et al. An overview of FPGAs and FPGA programming-Initial experiences at Daresbury
US11366948B2 (en) Machine-learning enhanced compiler
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
US20230120227A1 (en) Method and apparatus having a scalable architecture for neural networks
JP2008140405A (ja) 電子回路と制御プログラムとのコバリデーション方法
US10430215B1 (en) Method and system to transfer data between hardware emulator and host workstation
US20200371843A1 (en) Framework for application driven exploration and optimization of hardware engines
Bunker et al. Formal hardware specification languages for protocol compliance verification
US8886512B2 (en) Simulation apparatus, computer-readable recording medium, and method
CN107688704A (zh) 基于Petri网模型的ASIP行为逻辑综合方法
Biancolin et al. Accessible, FPGA resource-optimized simulation of multiclock systems in firesim
Lantreibecq et al. Model checking and co-simulation of a dynamic task dispatcher circuit using CADP
Fummi et al. SystemC co-simulation for core-based embedded systems
Foster et al. Creating assertion-based IP
US20230114858A1 (en) Circuit design simulation and clock event reduction
TWI427496B (zh) 製造積體電路的模型的方法和系統
US20230267253A1 (en) Automated synthesis of virtual system-on-chip environments
Cadenas et al. Experiences applying OVM 2.0 to an 8B/10B RTL design
Niazi et al. An emulation solution for the segbus platform

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
TR01 Transfer of patent right

Effective date of registration: 20171101

Address after: Grand Cayman, Cayman Islands

Patentee after: GLOBALFOUNDRIES INC.

Address before: American New York

Patentee before: Core USA second LLC

Effective date of registration: 20171101

Address after: American New York

Patentee after: Core USA second LLC

Address before: American New York

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20101110

Termination date: 20190124

CF01 Termination of patent right due to non-payment of annual fee