CN1229721C - 利用高级编程语言的电路内仿真的设备和方法 - Google Patents

利用高级编程语言的电路内仿真的设备和方法 Download PDF

Info

Publication number
CN1229721C
CN1229721C CNB011409185A CN01140918A CN1229721C CN 1229721 C CN1229721 C CN 1229721C CN B011409185 A CNB011409185 A CN B011409185A CN 01140918 A CN01140918 A CN 01140918A CN 1229721 C CN1229721 C CN 1229721C
Authority
CN
China
Prior art keywords
interface
design
leg signal
signal generator
equipment
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
CNB011409185A
Other languages
English (en)
Other versions
CN1372193A (zh
Inventor
庆宗旻
朴仁哲
李承钟
奇安度
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.)
DYNALITH SYSTEMS Co Ltd
Korea Advanced Institute of Science and Technology KAIST
Original Assignee
DYNALITH SYSTEMS Co Ltd
Korea Advanced Institute of Science and Technology KAIST
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 DYNALITH SYSTEMS Co Ltd, Korea Advanced Institute of Science and Technology KAIST filed Critical DYNALITH SYSTEMS Co Ltd
Publication of CN1372193A publication Critical patent/CN1372193A/zh
Application granted granted Critical
Publication of CN1229721C publication Critical patent/CN1229721C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation
    • 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/33Design verification, e.g. functional simulation or model checking
    • 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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • Quality & Reliability (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

提供一种电路内仿真方法,它包括仿真器、主机和目标系统,其中该主机将目标芯片的软件模型编译成下载到该仿真器的编译代码,该仿真器通过执行该编译代码与该目标系统交互作用。具体地说,目标芯片的软件模型一高级编程语言描述。该仿真器包括两个功能模块:处理引擎和引脚信号发生器。该处理引擎执行该编译代码,而该引脚信号发生器在其配置成多个功能模块之后,与目标系统交互作用。具体地说,至少一个功能模块按照外部接口模型配置,以便与目标系统交互作用。还提供软件转换方法,它包括识别I/O变量的步骤,以及将它们翻译成对应的I/O功能的步骤。

Description

利用高级编程语言的电路内仿真的设备和方法
技术领域
总的来说,本发明涉及通过仿真验证逻辑电路函数。更具体地说,本发明涉及通过以高级编程语言描述芯片设计中的逻辑电路函数,来仿真它们。
背景技术
包含在集成电路中的半导体芯片的成功设计越来越需要付出更艰辛的努力和更多的时间,原因是这种芯片和集成这种芯片的那些系统的复杂度急剧增长。由于希望在制造这样的芯片之前消除设计过程中的设计错误,广泛地采用验证芯片设计中的逻辑电路设计。在各种验证方法中,仿真方法是设法验证设计用于目标系统的芯片的逻辑电路函数的函数正确性的方法。
常规逻辑电路函数验证通过软件或硬件模型化或该两者结合来实现。软件模型化通过软件,以诸如C/C++这样的高级编程语言或诸如VHDL(极高速集成电路硬件描述语言)和Verilog这样的硬件描述语言(HDL)来描述了逻辑电路行为。美国专利第6,009,256公开了一种“仿真系统”,它允许以HDL指定电路的结构和函数,并产生电路的软件模型和硬件模型。美国专利第6,058,592公开了一种类似的基于HDL的仿真器。
但是,由于逻辑电路设计变得越来越复杂,特别是随着单片系统(system-on-a-chip)的增长,降低设计所需的时间量和该逻辑电路的系统内验证成了至关紧要的的问题。在逻辑电路设计的早期阶段的逻辑电路仿真最好使用诸如C或C++这样的软件编程语言,它们更容易编码和调试,并且比HDL运行得更快。
在当连接到环境硬件系统或目标系统时,进行逻辑电路的函数行为验证之后,可以手动或有可能用某种自动手段将该逻辑电路分割成分别作为软件和硬件实现的部分。这种方法与常规的、基于HDL的仿真方法比较,显著地节省设计和验证时间。
美国专利第4,901,259号公开了一种“ASIC仿真器”,它能够使软件编程语言以及HDL描述的模块运行在经由接口连接到目标系统的通用计算机。基本上可以说它是一种接收由软件模型化所产生的所有引脚信号的广义引脚输入/输出同步装置,而与外部电路的接口全部由软件模型化执行。ASIC仿真器系统计算包含在模型化中的引脚信号值,然后将该引脚信号值转换成电信号,以便将该值发送到目标系统的插口。主机和ASIC仿真器之间的通信由全部引脚信号需要的大量引脚信号值构成。
然而,当需要快速仿真时,美国专利第4,901,259所描述的“ASIC仿真器”出现一些问题。首先,主机使用的软件执行有相关于外部接口部分的引脚信号的产生的整个过程很慢。第二,与处理器速度相比,经过一完整的主机的输入/输出端口的通信速度一般很低。第三,该主机运行逻辑算法很慢,原因是该主机使用不能将其计算资源专用于运行该算法的通用操作系统。
已经有一些开发出来的工具,它们自动将C语言所描述的芯片设计转换成寄存器传送级(RTL)描述。不管怎样,这种工具已经用于隔离地测试诸如特定用途集成电路(ASIC)这样的复杂芯片。换句话说,不可能验证像安装在目标系统中的C语言所描述的芯片,因为芯片连同其目标系统的验证需要与大量依赖于该目标系统的外部装置的接口。
因此,仍然存在对这样一种仿真器的需求,该仿真器可以提供适合于用诸如C或C++这样的高级编程语言描述的芯片设计的快速而有效的仿真,并且与其目标系统(电路内)环境结合起来提供。
发明内容
本发明提供一种设备和方法,用于在芯片设计的很早的阶段,与所希望的目标系统结合起来高速验证芯片设计中的逻辑电路函数。为了实现上述目标,逻辑电路函数的算法行为以诸如C或C++这样的高级编程语言进行描述。然后将该逻辑电路函数的算法编译到主机,并且下载到本发明的仿真器中。
本发明的仿真器包括:处理引擎模块,具有至少一个处理器;和引脚信号发生器模块,具有至少一个可编程的逻辑电路装置,诸如现场可编程门阵列或可编程逻辑电路装置。该处理引擎模块执行高级编程语言描述的算法的编译代码,而引脚信号发生器模块产生兼容于目标逻辑电路的外部接口的引脚信号。该设备还包括监视或调试模块,以便于观察用于调试或监视目的的引脚信号的波形。
本发明的方法包括一芯片设计流程(flow),在其中使用输入/输出(I/O)变量,以便将它们翻译成I/O功能。I/O变量在由需要和目标系统交互作用的芯片所执行的算法中,代表那些软件变量。这些I/O变量可以翻译成对应的I/O功能,因而允许该算法调用引脚信号发生器中的外部接口。
根据本发明的一个方面,提供了一种用于验证芯片设计的电路内仿真设备,该芯片设计划分为内部逻辑电路设计和外部接口设计、以便根据至少一种接口协议与目标系统通信,包括:处理引擎,用于处理根据内部逻辑电路设计的核心算法;引脚信号发生器,用于根据外部接口设计产生引脚信号。
根据本发明的另一个方面,提供了一种通过电路内仿真验证芯片设计的方法,包括步骤:将芯片设计划分为适合于核心算法的内部逻辑电路设计和适合于接口协议的外部接口设计;利用硬件描述语言指定接口协议;利用高级编程语言指定核心算法;根据指定的接口协议对可编程的逻辑电路装置编程,以产生适当的引脚信号;以及对微处理器编程,以运行核心算法。
根据本发明的另一个方面,提供了一种验证芯片设计的方法,该芯片设计结合目标系统划分为内部逻辑电路设计和外部接口设计,包括步骤:利用高级编程语言模型化该内部逻辑电路设计;利用硬件描述语言模型化外部接口设计;利用有限态机器编辑器模型化一外部接口协议;在接口库管理器程序的控制下管理所述外部接口协议的接口库;确定作为软件变量的输入和输出变量,以便从所述目标系统读取或写入目标系统;以及将所述输入和输出变量转换成从所述目标系统读取或写入目标系统的对应的输入和输出函数。
根据本发明的另一个方面,提供了一种用于验证芯片设计的方法,所述芯片设计划分为适合于运行核心算法的内部逻辑电路设计和适合于与目标系统通信的外部接口设计,其中该方法包括步骤:利用应用编程接口编制器插入一段接口代码到核心算法;利用驱动程序编制器使用能够根据核心算法独立地执行的线程产生该接口代码;以及利用引脚信号发生器编制器来产生用来配置可重新配置的硬件的代码,以便为该外部接口设计产生所需的引脚信号。
附图说明
图1是包括本发明的电路内仿真器的电路仿真系统的整体方框图;
图2是用于执行内部逻辑电路函数的处理引擎的方框图;
图3是用于产生适合于外部接口的引脚信号的引脚信号发生器(PSG)的方框图;
图4是作为PSG的一部分的解码模块的方框图;
图5是作为PSG的一部分的中断处理器的方框图;
图6是作为PSG的一部分的调试模块的方框图;
图7是作为PSG的一部分的接口库模块的方框图;
图8是翻译、编译和逻辑电路同步处理的流程图,它包括产生所编译代码和连接表(net-list)。
具体实施方式
图1示出了本发明的仿真环境的总体视图。该环境包括一仿真器10,它具有一处理引擎(PE)101和引脚信号发生器(PSG)102。该仿真器与主机11通信,它将以诸如C或C++这样的高级语言编写的算法编译成编译代码。然后该编译代码经由通信端口14被传送到仿真器10的存储器(未明确地示出于图1)。任何通信协议或方式都可以用来将该编译代码传送到仿真器10。
该环境还包括一目标系统,所设计的芯片将最终安装在其上。该目标系统12一般将包括:插口121,用于和仿真器10通信;另一插口122,用于分别和另一仿真器13、IC124以及分立逻辑电路123通信。仿真器13是附加的,它可以是包括本发明的同样类型在内的任何类型的仿真器。
该处理引擎101执行目标逻辑电路的内部逻辑电路函数,诸如依赖于目标芯片的应用的信号处理、调制/解调或加密/解密。引脚信号发生器(PSG)102具有一个或多个可编程装置,诸如现场可编程门阵列(FPGA)或可编程逻辑电路装置(PLD),它们可以配置成与目标系统12中的其他IC124和分立逻辑电路123连接。一旦配置成这样,它们就产生针对目标系统的读/写/控制信号。处理引擎101和PSG102通过基于诸如PCI总线或AGP(加速图形端口)这样的常规或专用通信信道15相互通信。处理引擎101和PSG102的通信可以依靠控制信息包。
由PSG102产生的引脚信号施加到目标系统12的插口121。由于插口121的引脚配置由目标系统规定,所以插口适配器16(图1中未明确示出)可以用于将PSG102的引脚连接到插口121的对应引脚。
图2是本发明的处理引擎(PE)101的一个优选实施例的详细框图。该PE包括:一个或多个处理器201、202,用于执行编译代码;一个或多个存储器203、204,用于在执行编译代码时存储下载的编译代码和临时数据。该PE还包括一主总线205,用于连接这些处理器和存储器。编译代码通过通信端口14从主机11下载到存储器203、204。
该PE101进一步包括PSG初始化器214,它配置PSG102的各个FPGA或PLD,使得它们能够象至少一个针对目标系统12的外部接口那样起作用。该PE进一步包括中断控制器213,它接收处理引擎中的其他模块的中断请求,包括PSG102,以分析该请求的内容。PCI总线206连接到包括PSG初始化器和中断处理器的PCI模块。该PE进一步包括杂用逻辑电路212,它包括时钟发生器、功率调节器等。
主桥接器208将主总线205连接到处理器201、202、存储器203、204和PCI总线206。X总线桥接器209将PCI总线206连接到X总线207,其中X总线可以是诸如ISA总线之类的工业标准总线。系统ROM存储适合于PE101中的所有硬件元件的启动或引导代码。配备通信端口14的通信装置210使得PE101能够和主机11通信。该通信装置可以是任何常规装置,例如通用异步收发器(UART),通用串行总线(USB)或并行通信装置。
图3说明了引脚信号发生器(PSG)102的一种实施方案,其中处理引擎101和PSG102之间的信道15是PCI总线,用于交换接口控制信息包。一旦由PSG初始化器214配置,PSG102就会由PCI控制器模块300、解码器模块301、中断处理器模块302、调试模块303和一个或多个接口库模块304、305组成。PCI控制器模块300控制PCI总线206,通过PCI总线206在处理引擎101和PSG模块301、302、303、304、305之间交换数据,PCI控制器模块300连接到地址/数据总线306和控制总线307。
当处理引擎101需要从PSG102读取数据/将数据存储到PSG102时,它使用标准的PCI协议寻址PSG模块301、302、303、304、305。PCI控制器模块300监视PCI总线206上的一地址是否是针对PSG模块之一的。如果是,则由解码器模块301基于预定的地址映射实施寻址哪一个模块的进一步决定。一旦通过该地址选定了一模块,那么就将来自处理引擎101的数据通过PCI总线206发送到所选定的模块。
调试模块303存储接口库模块304、305的输入/输出(I/O)信号,用于调试写成C/C++的芯片的软件模型和/或目标系统的硬件的目的。中断处理器模块302用于PSG102中的多个竞争模块303、304、305,以有效地与处理引擎101通信。接口库模块304、305按照至少一个外部接口模型配置,并产生与目标系统12连接的实际引脚信号。
图4示出解码器模块301的一种实施方案,它包括一地址解码器40和一控制逻辑电路41。地址解码器40通过地址/数据总线306接收地址输入信号,并针对PSG102的对应模块产生控制信号42。控制逻辑电路41通过控制总线307接收控制信号(示出成地址选通43、数据请求44),控制该地址解码器40并产生数据确认信号45。
图5示出中断处理器模块302的一种实施方案,它从调试模块303和接口库304、305接收状态信息57。在选定中断向量之一之后,该中断处理器通过PCI控制器模块300(如图3中所示),产生针对位于处理引擎101中的中断控制器213(图2所示)的中断请求53和中断向量52。
该示例示出了使用优先编码器50的简单实施例,优先编码器50从多个请求57中选择高级优先中断向量。虽然该示例示出了固定的优先机制,但本领域的熟练技术人员会认识到,可以采用任何优先选择机制,诸如循环或基于公平的优先。控制逻辑电路51控制优先编码器50并产生中断请求53和接收中断确认54。
图6是调试模块303的一个示例,它对接口库304、305的I/O信号进行采样,并将采样存储到采用可以作为存储器实现的数据贮存器62、循环队列型贮存器或任何类型的贮存器。引脚信号获取控制器60分别通过连接线路66、67控制触发事件控制器61和采样数据贮存器62。触发事件控制器61由引脚信号获取控制器60配置,以便由处理器201、202控制来在出现多个预定信号模式或这些信号的组合之一时,产生触发事件信号。一旦产生了触发事件信号,引脚信号获取控制器60就停止采样数据贮存器62保存采样的数据,并将其状态通过状态信号63报告给中断处理器模块302。最后,存储在采样数据贮存器62中的采样数据由监视I/O信号和软件变量的引脚信号分析器使用。
图7说明了接口库304、305的一个实现,其每一个都是与目标系统12中的引脚的接口。该接口控制命令和通过PCI总线15和PCI控制器模块300从PE101输出的数据,分别存储在CmdQueue71和OutQueue72。根据一系列控制信号由控制逻辑电路70产生引脚信号78。来自目标系统12的输入信号存储在InQueue73中,最后传输到处理引擎101。InQueue状态74和OutQueue状态75表示对应的缓冲器的状态,并经由控制总线307连接到中断处理器模块302。
图8是说明导致结束根据本发明的优选实施例的编译过的仿真模型的步骤的流程图。
对于描述被设计成与目标系统中的真实硬件交互作用的芯片的逻辑电路函数的程序,需要一组适当的接口功能。这些接口功能与该程序通信,并且按照预定的规范与该硬件交互作用,这些规范阐述怎样产生针对该目标系统的硬件的引脚信号以及怎样从该硬件中接收引脚信号。代表针对硬件的网关的程序中的那些变量称为输入/输出(I/O)变量。与接口功能通信的硬件实现称为接口库。
以高级编程语言描述的、由芯片实施的算法模型化(modeling)不区分所处理的数据是否是从外部装置输入/输出到外部装置的,原因是算法本身不关心它处理的数据的源或目的地。此外,该接口规范(也就是与外部装置/电路交互作用的方式)实际上独立于代表芯片的内部函数的算法。因此,本发明允许用户指定该高级编程语言程序的相关部分,这部分涉及依据I/O变量与外部装置通信。这个步骤称为应用程序接口的插入(API)。
依据I/O变量的接口信息包括一个或多个I/O协议、读总线周期、写总线周期和在该协议需要地址总线时指示存储器位置的基址。利用这些信息,将I/O变量转换成最后要连接到接口库的对应的I/O功能。为芯片的每个接口产生一I/O功能。
例如,如果I/O变量“a”需要读取,则使用分配给“a”的协议从目标系统读取数据如下:将“data=a+b”转换成“data=io_read(PORT_A)+b”,而“a=data”转换成“io_write(PORT_A,data)”。这里“a”是I/O变量,io_read()和io_write()是I/O功能。按照这种转换方案,对变量的存取就变成了执行对应的函数。
当API程序用I/O功能替代I/O变量时,驱动程序编制器产生I/O功能代码并预备诸如用于支持I/O功能的并发特征的多线程这样的附加函数。
每个I/O变量是指定对PSG102(如上所述的“PORT_A”)唯一的端口(也称为接口库),以便通知PSG102后面跟着协议。换句话说,存取I/O变量导致激活仿真芯片的一个或多个引脚。I/O变量的存取模式确定了I/O的方向,即读存取意味着该数据需要由一输入接口协议传输,而一写存取指示要输出到目标系统中的元件的数据。
接口模型被变换成基于HDL的硬件模型,它按上述联系PSG102的结构所进行的解释,依次合成或映射到PSG102中的PLD。
首先,将在目标芯片中实施的逻辑电路函数的算法801通过以诸如C/C++或等效的高级编程语言利用常规文本编辑器800描述它来开发。该高级编程语言也可以是C语言的变种,诸如SystemC或SpecC。如果外部接口是用于标准的外部装置的,则接口库通过以硬件描述语言(HDL)代码813描述它们来预备。对于用户限定的标准,将利用常规文本编辑器812或FSM编辑器414的有限态机器(FSM)模型815用于描述接口的行为。由于一旦目标芯片安装在目标系统12上,目标芯片与目标系统12的可能很多个其他部分就会交换数据或信号,所以需要很多接口库允许以相互认可的协议进行数据交换。一旦完成这些接口库,就通过接口库管理器816将它们登记到接口库数据库817。
第二,I/O变量和它们的对应接口库在步骤802中指定和决定。
第三,翻译器803将C代码801描述的算法转换成改进的C代码804,使得它包括在步骤802中指定的接口功能。
第四,改进的C代码804由主计算机11中的C编译器805编译成编译代码806,它将由仿真器100中的处理引擎102执行。
与这些步骤并行,步骤802中选定的、以HDL代码808指定的接口库由PSG编制器807产生。HDL代码808依次利用要映射到PSG102中的PLD或FPGA的逻辑合成器809合成到连接表810。
如上所述,本发明能够通过产生由外部接口所需的适当的引脚信号,快速有效地仿真芯片设计。本发明通过允许在该设计的最初阶段期间实施芯片设计的仿真,明显地降低了芯片设计和系统开发时间。本发明已经成功地用于验证各种应用中的几种芯片,诸如MPEG2视频解码器、MP3解码器和无线调制解调器。
虽然本发明已经参考优选实施例进行了描述,但它并不限于这些实施例。本领域的熟练技术人员应该容易理解,在不脱离本发明的思想和范围的前提下,可以对所述实施例的结构进行很多种修改。

Claims (22)

1.一种用于验证芯片设计的电路内仿真设备,该芯片设计划分为内部逻辑电路设计和外部接口设计、以便根据至少一种接口协议与目标系统通信,包括:
处理引擎,用于处理根据内部逻辑电路设计的核心算法;
引脚信号发生器,用于根据外部接口设计产生引脚信号。
2.根据权利要求1的设备,其中所述处理引擎包括至少一个微型处理器。
3.根据权利要求1的设备,其中所述处理引擎进一步包括与主机通信的部件。
4.根据权利要求1的设备,其中所述处理引擎包括引脚信号发生器初始化器,用于配置该引脚信号发生器。
5.根据权利要求1的设备,其中所述引脚信号发生器利用现场可编程门阵列实现。
6.根据权利要求1的设备,其中所述引脚信号发生器利用可编程逻辑电路装置实现。
7.根据权利要求1的设备,其中所述至少一个接口协议包括一标准接口协议。
8.根据权利要求1的设备,其中所述至少一个接口协议包括一用户定义的协议。
9.根据权利要求8的设备,其中所述引脚信号发生器包括有限态机器,用于登记该用户定义的协议。
10.根据权利要求1的设备,其中该处理引擎和该引脚信号发生器之间的通信依靠控制信息包。
11.根据权利要求1的设备,还包括该处理引擎和该引脚信号发生器之间的总线,用于交换接口控制信息包。
12.根据权利要求1的设备,其中所述引脚信号发生器包括:
PCI控制器模块,用于与所述处理引擎通信;
解码器模块,用于基于预定的地址映射在所述引脚信号发生器中选择模块之一;
适合于每个所请求的所述外部接口设计的一个或多个接口库模块,用于将引脚信号发送到所述目标系统的外部电路并从所述外部电路接收引脚信号;
调试模块,用于存储所述引脚信号发生器的内部和外部信号;以及
中断处理器模块,用于从来自所述引脚信号发生器的所述接口库模块和所述调试模块的多个中断请求中选出一个。
13.一种通过电路内仿真验证芯片设计的方法,包括步骤:
将芯片设计划分为适合于核心算法的内部逻辑电路设计和适合于接口协议的外部接口设计;
利用硬件描述语言指定接口协议;
利用高级编程语言指定核心算法;
根据指定的接口协议对可编程的逻辑电路装置编程,以产生适当的引脚信号;以及
对微处理器编程,以运行该核心算法。
14.根据权利要求13的方法,其中该硬件描述语言是VHDL。
15.根据权利要求13的方法,其中该硬件描述语言是Verilog。
16.根据权利要求13的方法,其中该高级编程语言是C。
17.根据权利要求13的方法,其中该高级编程语言是C++。
18.根据权利要求13的方法,其中该高级编程语言是SystemC。
19.根据权利要求13的方法,其中该高级编程语言是SpecC。
20.一种验证芯片设计的方法,该芯片设计结合目标系统划分为内部逻辑电路设计和外部接口设计,包括步骤:
利用高级编程语言模型化该内部逻辑电路设计;
利用硬件描述语言模型化该外部接口设计;
利用有限态机器编辑器模型化一外部接口协议;
在接口库管理器程序的控制下管理所述外部接口协议的接口库;
确定作为软件变量的输入和输出变量,以便从所述目标系统读取或写入目标系统;以及
将所述输入和输出变量转换成从所述目标系统读取或写入目标系统的对应的输入和输出函数。
21.一种用于验证芯片设计的方法,所述芯片设计划分为适合于运行核心算法的内部逻辑电路设计和适合于与目标系统通信的外部接口设计,其中该方法包括步骤:
利用应用编程接口编制器插入一段接口代码到该核心算法;
利用驱动程序编制器来使用能够根据该核心算法独立执行的线程以产生该接口代码;以及
利用引脚信号发生器编制器产生用来配置可重新配置的硬件的代码,以便为该外部接口设计产生所需的引脚信号。
22.根据权利要求21的方法,其中该应用编程接口编制器使用I/O变量以将它们翻译成I/O功能。
CNB011409185A 2001-02-27 2001-09-26 利用高级编程语言的电路内仿真的设备和方法 Expired - Fee Related CN1229721C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR9918/01 2001-02-27
KR10-2001-0009918A KR100434240B1 (ko) 2001-02-27 2001-02-27 고수준 프로그래밍 언어를 이용한 회로내 에뮬레이션을위한 장치 및 방법

Publications (2)

Publication Number Publication Date
CN1372193A CN1372193A (zh) 2002-10-02
CN1229721C true CN1229721C (zh) 2005-11-30

Family

ID=19706298

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011409185A Expired - Fee Related CN1229721C (zh) 2001-02-27 2001-09-26 利用高级编程语言的电路内仿真的设备和方法

Country Status (5)

Country Link
EP (1) EP1235152A2 (zh)
JP (1) JP2002259157A (zh)
KR (1) KR100434240B1 (zh)
CN (1) CN1229721C (zh)
TW (1) TW594513B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100384495C (zh) * 2002-12-19 2008-04-30 皇家飞利浦电子股份有限公司 控制机器人的系统和方法
CN100450041C (zh) * 2004-02-21 2009-01-07 华为技术有限公司 一种信息传输的方法和装置
CN100367228C (zh) * 2004-07-31 2008-02-06 华为技术有限公司 一种集成电路的仿真方法
CN100412874C (zh) * 2004-11-26 2008-08-20 鸿富锦精密工业(深圳)有限公司 延时器仿真模型设计装置及方法
JP5119902B2 (ja) 2007-12-19 2013-01-16 富士通セミコンダクター株式会社 動的再構成支援プログラム、動的再構成支援方法、動的再構成回路、動的再構成支援装置および動的再構成システム
US8001505B2 (en) 2008-09-15 2011-08-16 Synopsys, Inc. Method and apparatus for merging EDA coverage logs of coverage data
DE102009048746B4 (de) * 2009-10-08 2013-10-24 Netstal-Maschinen Ag Verfahren zur Steuerung und Bedienung einer Produktionszelle sowie eine Steuereinrichtung
CN102377655A (zh) * 2010-08-19 2012-03-14 盛科网络(苏州)有限公司 软件仿真asic转发的系统和方法
KR101678480B1 (ko) * 2015-07-08 2016-11-22 주식회사 유비콤테크놀로지 R 언어 기반 빅데이터 처리용 fpga 시스템 및 방법
CN105070127A (zh) * 2015-08-11 2015-11-18 武汉美 一种交互式实训教学系统以及方法
US10552190B2 (en) 2017-01-16 2020-02-04 International Business Machines Corporation Precise error injection for driver testing
TWI670617B (zh) * 2018-10-31 2019-09-01 財團法人工業技術研究院 模擬系統與方法
US20220128980A1 (en) * 2019-02-18 2022-04-28 Siemens Aktiengesellschaft Automation code generator for interoperability across industrial ecosystems
KR20200139525A (ko) 2019-06-04 2020-12-14 삼성전자주식회사 Fpga를 포함하는 전자 시스템 및 이의 동작 방법
CN110851516B (zh) * 2019-11-07 2022-04-19 中国银行股份有限公司 主机运控系统及方法
CN112329369B (zh) * 2020-11-09 2024-04-12 安徽芯纪元科技有限公司 一种在芯片仿真模型上进行软件调试的方法
CN113219853A (zh) * 2021-04-09 2021-08-06 北京国电思达科技有限公司 Plc控制器的半物理仿真平台搭建方法及装置
CN112949234A (zh) * 2021-04-14 2021-06-11 山东高云半导体科技有限公司 Fpga物理模型的软件建模方法及装置
CN113742280B (zh) * 2021-07-14 2023-07-28 江西昌河航空工业有限公司 能够自定义通信协议的双arm系统
CN114861581B (zh) * 2022-04-26 2024-03-08 河南科技大学 基于图像识别的可编程逻辑器件的辅助编程设计方法
CN116090403B (zh) * 2023-02-13 2023-12-26 上海合见工业软件集团有限公司 支持多仿真器的命令处理系统
CN116562203B (zh) * 2023-04-10 2023-10-20 合芯科技有限公司 一种调试系统中数据的处理方法、装置、设备及存储介质
CN116384305B (zh) * 2023-06-05 2023-08-01 英诺达(成都)电子科技有限公司 数据通信方法、装置、系统、设备及计算机存储介质
CN117194276B (zh) * 2023-11-06 2024-01-23 沐曦集成电路(上海)有限公司 芯片软硬件联合仿真调试系统
CN117852486A (zh) * 2024-03-04 2024-04-09 上海楷领科技有限公司 一种芯片二维模型线上交互方法、装置和存储介质

Also Published As

Publication number Publication date
KR100434240B1 (ko) 2004-06-04
JP2002259157A (ja) 2002-09-13
CN1372193A (zh) 2002-10-02
EP1235152A2 (en) 2002-08-28
TW594513B (en) 2004-06-21
KR20020069631A (ko) 2002-09-05
EP1235152A8 (en) 2003-01-22

Similar Documents

Publication Publication Date Title
CN1229721C (zh) 利用高级编程语言的电路内仿真的设备和方法
CN112580295B (zh) 多核SoC芯片的自动化验证方法、系统及装置
EP1489511B1 (en) Hierarchical, Network-Based emulation System
US7124376B2 (en) Design tool for systems-on-a-chip
US5600579A (en) Hardware simulation and design verification system and method
CN102508753B (zh) Ip核验证系统
US8532975B2 (en) System and method implementing a simulation acceleration capture buffer
CN100337212C (zh) 逻辑验证系统及方法
US7437282B2 (en) Method and apparatus to provide alternative stimulus to signals internal to a model actively running on a logic simulation hardware emulator
CN115496034B (zh) 多模式gpu联合仿真系统
CN115686655B (zh) 用于gpu ip验证的联合仿真系统
CN115719047A (zh) 基于波形gpu联合仿真系统
CN115688676A (zh) 基于tlm的gpu联合仿真系统
Garavel et al. Verification of an industrial SystemC/TLM model using LOTOS and CADP
JP2013211046A (ja) オンチップデータプロセッサのトレースおよびタイミング情報の獲得と出力
US20200371843A1 (en) Framework for application driven exploration and optimization of hardware engines
US7747423B1 (en) Systems and methods of co-simulation utilizing multiple PLDs in a boundary scan chain
US7711535B1 (en) Simulation of hardware and software
Amory et al. A heterogeneous and distributed co-simulation environment [hardware/software]
CN111338761B (zh) 一种51单片机虚拟中断控制器及实现方法
EP1367489A1 (en) A microprocessor development system
Mooney et al. Synthesis from mixed specifications
CN113496108A (zh) 一种应用于仿真的cpu模型
CN113496107B (zh) 一种可综合的cpu模型
US20230289500A1 (en) Method and system for building hardware images from heterogeneous designs for eletronic systems

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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
C19 Lapse of patent right due to non-payment of the annual fee
CF01 Termination of patent right due to non-payment of annual fee