单片系统的设计校验方法和装置的制作方法

文档序号:6860868阅读:124来源:国知局
专利名称:单片系统的设计校验方法和装置的制作方法
技术领域
本发明描述了一种方法和装置,它用来校验具有多个功能核芯的SoC (单片系统)IC的设计完整性。并且更特别的是,对于SoC设计校验方法和装置,其中依据每个核芯的预期功能、各核芯内的定时、核芯间的接口以及SoC IC整体系统的工作,可以对设计校验进行评估。
背景技术
近几年来,ASIC技术已经从多芯片系统理论发展到采用嵌入核芯的单芯片系统理论。这些单芯片系统是通过使用多功能预设计模型,所谓的具有多种用途的“核芯”(也就是所知的知识产权或IP)来制成的。这些核芯通常使用高级描述语言(HDL)如Verilog/HDL(称为软核),或以晶体管设计如GDSII(称为硬核)。单片系统由硬核和软核共同组成,来实现片上功能如微处理器、大存储器阵列、声音及图像控制器、调制解调器、互联网调谐器、二维和三维图形控制器、DSP功能等等。
常常,这些核芯可以从核芯供应公司那里购买,然后被集成起来形成一个SoC。当核芯从外面买来时,核芯供应商提供设计图表和核芯模拟测试台。因此,在把核芯集成进SoC中时,不必任何改动,就可以直接运用核芯测试台来校验核芯在集成SoC设计中的工作。
目前,以使用系级语言如Verilog/VHDL语言而成的块和子块来描述设计,并利用性能/门一级Verilog/VHEL模拟器来模拟设计。在设计成硅IC前,这样的模拟用于检查其实际功能。设计校验是SoC设计中最重要和最困难的一个任务,因为不进行全功能校验就不能发现和消除设计错误。由于模拟速度慢以及SoC设计规模大,SoC级设计校验使用现有工具和方法几乎是不可能的。
校验是指对实际存在的物体进行检查。对于系统设计,它是指就技术要求来检查设计。在系统设计中,进行校验是为了证明从一个抽象层次到另一个的转换是正确的。目的是看在实际情况下系统实现和制造出来后是否按预期的那样工作。单片系统是指一个具有多个嵌入核芯的硬件部分。因此,SoC设计校验包括核芯的校验,核芯间的互连校验以及组合系统工作的校验。
目前,随着SoC技术要求的提高,性能模型也在发展,以便能做出用于设计校验或系统工作校验的模拟测试台。系统级校验依据设计层来进行。首先,叶级块,通常在核芯一级,以独立方式进行正确性检查。然后,依据事务类型和数据内容检查核芯间的接口的正确性。下一步是在完全装配好的芯片上运行应用软件或进行相当的测试台试验。这包括硬件/软件共同校验(M、Keating and P.Bricaud“Reuse methodology manual”,Kluwer Academic Press,1998;J.Stcunstrub and W.Wolf,”Hardware-Software co-design”,KluwerAcademic Press,1997)。软件校验只能通过软代码的运行时间来进行,因此,必须进行软硬件共同模拟。通常,ASIC(专用集成电路)形式的或使用FPGA(现场可编程序门阵列)的硬件模型也研制,并用来对整体系统工作进行校验。
功能校验

图1描述了在不同的概念层次上的核芯设计和每一层次上目前使用什么类型的校验方法。从最高概念层次至最低概念层次,图1给出了性能HDL级21、RTL级(寄存器传送语言)23、门一级25和结构设计级27。对应于这些不同概念层次的校验方法列于图1的方框28中。校验试验的基本类型如下(1)一致性试验,用于测试与设计要求是否一致。
(2)象限检验,测试在如电压、温度和操作的最小和最大条件下的复杂情况和象限情况。
(3)随机试验,基本上是能发现很隐秘的错误的无目标测试。
(4)实码试验,通过运行实际设计应用程序来进行,以便更正不正确的功能。
(5)回归试验,在对设计做任意改动后,做一组测试。一般每个错误的确定在额外的测试条件下需要加入一个新的测试情况。
测试台的研制需要依据核芯的功能和目标SoC。例如,处理器测试台执行基于其指令组的测试程序,而总线控制器连接核芯(如PCI核芯)测试台使用总线功能模型和总线监视器来提供激励并检查模拟输出结果。本方法中存在的问题是性能测试台速度极其地慢。
在产生测试事件(激励或图形)后,需要检查输出的响应是否正确。现在,这是通过观察输出波形人工进行的,但是当设计改变时,这种人工检验法是不可能实现的。另一种校验响应输出的方法是运行实际应用软件,基本上是软硬件共同模拟。这种方法没有充分利用现有的计算资源,因而效率很低。而且在这种测试台上,核芯(core)和应用程序间的实际处理只占整个模拟周期的一小部分。因此,只有一小部分功能校验了。
接口校验SoC设计中,核芯间的接口需要校验。通常接口有正规的地址和数据结构,把核芯与核芯或核芯与片上总线相连。该接口也是具有某种形式的控制机构和信号,如请求/授权协议和总线控制器。这些接口的正规结构可以通过处理有限数量的数据和控制信号序列来确定。
接口校验需要各接口处的所有可能的事件,因而这是不可能完成的,因为不可能产生所有可能的测试事件。因此,进行的是有限校验。在做了有限的校验后,下一个任务是校验核芯对所有数据和每个核芯接收的所有数据序列有正确动作。这样的校验也是不可能的,因此,目前所做的校验整体体上说是不完全的,因为在一次处理中,所有不同的数据值是非常多的。
定时校验定时校验比功能校验更难。静态定时分析是目前应用最广的方法。静态定时分析是用于已采用各种技术综合处理的核芯的典型图表上。静态定时分析的使用前景是不容乐观的,因为采用该方法不能正确剔除错误的线路。剔除错误线路采用人工进行,因此,它无法消除错误。门一级的模拟为这些类型的错误提供了一种合理的检查,但它不是一个完整的解决办法,因为该模拟方法需要花费过多的时间来产生激励和模拟所有门一级定时线路。而且,在门一级模拟中没有做最坏情况的定时分析,因为这些分析太复杂、数量太大,以致于设计师不能正确鉴定。
整体SoC设计检验SoC设计校验的主要目标是采用终端用户使用的方法来校验整个系统。这需要所有核芯的所有的功能模型(即硬件模型)和一定数量的实际系统的应用。如果这是一个新系统,那么这些应用是没有的。主要问题是模拟速度。比如,即使是在RTL一级(寄存器传送语言级),在处理器上启动操作系统也需要数小时。为了提高模拟速度,可以使用两种方法a、概念层次越高,模拟速度越快;b、用硬件来模拟或作模型。
对于概念层次比较高的模型来说,RTL模型用作功能核芯,性能或ISA(指令组结构)模型用作存储器和处理器核芯,总线功能模型和监视器与通信块一起产生和检查事件。对于SoC如中间处理器,在模拟环境中产生的某种应用码用于SoC上。当采用应用软件时,几乎做不了什么,它只限于检查硅起作用或完全不起作用,以及发现根本的问题。目前,通过在通信接口上使用序列检查器/监视器或总线监视器的方法来人工发现错误。然而,模拟速度非常慢,大约每秒10个周期,这太慢以致于无法作任何应用。
当同时模拟硬件和软件时,这就是所谓的共同模拟。用一个C语言函数来模拟硬件,执行整个系统就像运行一个C语言程序。然而,这不是设计校验,因为这不是在实现层上,而是一个可行性研究或性能校验。HDL/RTL描述用于整个系统校验,因为它代表硬件部分的实现。共同模拟需要一个或多个HDL模拟器与C/C++程序之间的通信(需要编译程序、安装程序、链接程序和来自计算机操作系统的其他程序)。因此,共同模拟中的另一个问题是不同模拟器之间的通信问题。
硬件模型所有设计队伍都试图使一级硅完全发挥作用,但一半以上的设计在首次把该硅应用到系统中时都失败了。这是由于缺乏系统一级的校验或SoC一级的设计校验。为了确保取得首次成功,应该进行更多的实际应用模拟。由于模拟时间太长,目前唯一的实际解决办法是使用硅模型,虽然它耗资很大。可用技术是FPRA/LPGA和仿真。
作小规模设计的话,可制作FPGA(现场可编程序门阵列)或LPGA(激光可编程序门陈列)模型。虽然FPGA和LPGA缺乏门计数功能和ASIC的速度,但他们可做成小核芯或小块,而不能用于整体体SoC。几个FPGA可互连于一个电路板上,并用于组成一个整体SoC模型。在这种情况下,如果发现问题需要重新分割SoC芯片,那么FPGA间的互连将改变,需要一个新电路板,因此改动是昂贵的,并且需要大量的时间。
仿真技术为一批用于大芯片的FPGA提供了一个可选择的方法,它提供了可编程互连、固定板设计、相对大的门记数和特殊存储器和处理器支持程序。如果把整体设计应用到仿真机上,仿真速度会比模拟速度更快。然而,与实际硅相比,它的执行速度还是非常慢。如果把芯片数据或测试台数据的相当一部分输入主机,仿真性能会大大降低。该方法的另一缺点是它的费用。目前,商用仿真系统的价格都在一百万美元以上。
当设计规模太大时(数百万个晶体管),目前唯一可用的方法是建立一个实际硅模型和调试最终系统。在这种情况下,使用同一个硅可剔除最初几个错误,而不需要加入新的硅。整个过程需要2~3个硅加工周期,而每增加一个加工周期会大大提高整个产品的研制费用。
如前面所述,就性能、费用和速度而言,现有技术不能有效地测试和校验SoC设计。因此,半导体行业需要一个能高速、低费用地进行彻底的SoC设计校验的新方法和装置。
发明概要因此,本发明的一个目的是提供一种SoC设计校验方法和装置,该方法和装置能就每个核芯的功能、核芯间的互连、整体系统的性能进行彻底的SoC设计校验。
本发明的另一个目的是提供一种SoC设计校验方法和装置,该方法和装置能高速、低费用地进行彻底的SoC设计校验。
本发明的又一目的是提供一个设计校验站,其中执行SoC设计校验是为了验证SoC整体体功能。
本发明的又一个目的是提供一种SoC设计校验方法和装置,相比于现有系统,该方法和装置可以使用户更容易地调试SoC的核芯。
本发明提供了一种设计校验或全功能校验新方法和装置,该方法和装置解决了单片IC系统中的嵌入核芯的设计校验现有的困难。发明者称之为设计校验站,因为它被用于校验SoC的整体体功能。此应用中描述的系统结构非常有效,与前面描述的任何系统相比,费用更低以及根本上不同。
本发明一方面是一种设计校验方法,该方法用于校验SoC中的多个嵌入的集成功能核芯。该方法包括步骤通过使用每个核芯的硅IC和核芯供应商提供的模拟测试台,来校验集成在SoC中的各核芯;通过使用SoC设计者研制的模拟测试台和附带逻辑(gluelogic)的FPGA/仿真器,来校验各核芯间的接口、核芯的片上总线和附带逻辑;校验核芯到核芯的定时和SoC级的定时临界路线(critical path);通过使用整体SoC的模拟测试台和应用程序来执行总体设计校验。
本发明另一方面是一种SoC设计校验装置。该装置包括一个主系统计算机,用于与用户进行接口并控制设计校验装置的整体操作;多个校验单元,它接收来自主系统计算机的测试台数据,并利用该测试台数据产生用于测试要集成进一个SoC中的多个功能核芯的测试模式(pattern);以及一个系统总线,它把多个校验单元与主系统计算机相连。在本发明的该装置中,多个硅IC与校验单元连接,以接收来自校验单元的测试模式,并产生响应输出,该输出由校验单元和主系统计算机来进行评估,其中硅IC具有一个与集成在SoC中的功能核芯完全相同的内部结构和功能。
图形简介图1所示为功能核芯设计和设计校验中的概念层次及对应的校验方法。
图2为一流程图,表明与本发明对应的单片系统IC的一个整体概念和设计校验过程。
图3是一个概要框图,表明本发明的设计校验整体概念,它包括电子设计自动化(EDA)环境与本发明的设计校验站之间的一个相互关系。
图4A为一个框图,它是图3中的EDA环境下设计的一个SoC,图4B所示框图是图3中设计校验站的一个基本结构。
图5所示框图是本发明的设计校验站的一个非常详细的结构例图,其中包括多个校验单元。
图6所示框图是图5中的校验单元的一种结构,它有一个基于事件测试器。
图7所示框图是一种校验单元结构,该校验单元用于评估SoC中处于测试状态的附带逻辑。
图8所示框图是另一种校验单元结构,该校验单元用于评估SoC中处于测试状态的附带逻辑。
图9所示框图是本发明的另一个设计校验站,它支持高级应用程序语言。
图10所示框图是本发明的又一个设计校验站,该图表明了具有一个安装待测试功能核芯的执行板的结构关系。
图11所示框图是本发明的又一设计校验站,其中多个校验单元直接收主系统计算机控制。
优选实施例的详细介绍本发明的SoC设计校验方法的整体流程见图2所示。该校验方法依据4个步骤的系统过程来校验各核芯;校验接口,包括片上总线和附带逻辑;校验定时;最后校验SoC的整体系统性能。
更具体地,在S31步中,校验程序首先通过使用硅IC和核芯的功能测试台来校验各核芯。然后,程序运行到下一步S32,通过使用附带逻辑的FPGA/仿真单元来校验核芯间的互连,包括片上总线的功能和附带逻辑的功能。在下一步S33中,通过使用核芯到核芯通信的模拟测试台和SoC级临界路线,来校验核芯的定时。在最后一步S34中,通过使用全功能模拟测试台和运行应用软件来进行整体体SoC的设计校验。
本发明的方法是通过图3所示的装置实现的,该装置表明了新测试系统的整体概念以及与电子设计自动化(EDA)环境的关系。图3的左上方为EDA,在这里,运用CAD工具设计半导体设备如SoC 43。图3的右下方,在设计校验站50实现本发明。设计校验站50基于测试数据和SoC 43设计环境中产生的设计数据,来执行SoC设计校验。其中,不但要测试具有SoC中的各集成集成核芯的硅IC,而且要测试SoC 43。
在本例中,SoC 43包括功能核芯A、B和C,更详细的结构见图4A。在EDA环境41下设计SoC 43后,就获得一个设计数据文件45和一个测试数据文件53。经过各种数据转换处理,设计数据45被转换为表示每个门的物理电平(level)数据,这些门构成设计好的半导体集成电路。依据物理电平数据,实际SoC 49产生于半导体IC加工过程(硅过程)。然而,本发明中,不是直接测试完整的SoC,而是在设计校验站50中使用代表SoC 43中的各核芯,如核芯A、B、C的独立IC。
通过测试台54用SoC设计阶段获得的测试数据53,来执行逻辑模拟,产生一个数据文件55如Verilog/VCD文件,它表明了各核芯和/或SoC整体系统的输入一输出关系。如下面所解释的,VCD文件55中的数据是事件形式的。VCD文件55中的数据传送到设计校验站50中的事件文件58中。设计校验站50包括一组基于事件测试器59(图4B中的校验单元66),该组基于事件测试器以图2中提到的程序执行测试。
设计校验站50的一个基本结构见简图4B所示,它用于软/硬件的共同研制/校验。该设计校验站50包括多个校验单元(VU)661~66N,依据待测试设备的管脚可对这些校验单元重新配置。这些校验设备661~66N被分配给硅IC681~68N,这些硅IC具有待评估的SoC上对应集成核芯A~N的功能和电路结构。
主系统CPU 62控制校验程序的全面执行,它与校验单元661~66N通过系统总线64相连。在校验过程开始前,把来自每个核芯A~N的设计阶段的设计数据61和测试台数据63提供给主系统CPU 62。
设计校验站50的更详细的描述见图5,其中为便于说明,把设计校验站表示为一组设计校验站DVS1~DVS6。这个事实表明这样的一种情况以其设计确定性来评估具有核芯A~E和附带逻辑的SoC。在这个例子中,配置校验中心DVS1来测试“总线主核芯”(核芯A),配置校验中心DVS2来测试“处理器核芯”(核芯B),配置校验中心DVS3和DVS4来测试“特殊功能核芯”(核芯C和D),配置校验中心DVS5来测试“存储器核芯”(核芯E)。同样地,配置校验中心DVS6来测试SoC中的附带逻辑。本发明中,为便于设计校验,上述提到的核芯A~E在独立的硅IC681~685中有系统的陈述。
如图4B和图5所示,系统包括一个总线结构。系统总线64可以是工业标准总线,如VME、VXI或PCI总线,它允许数据从主系统CPU 62传送到校验单元661~665的各管脚。系统管脚可以由用户配置,也就是说,用户可根据各核芯A~E的硅IC681~685的输入/输出对校验单元的测试管脚进行分类。硅IC681~665安装在管脚的电子设备和设备装载板(今后为“管脚的电子设备”)691~695上,并通过互连总线71相互连接。
如图5所示,每个管脚组(分派给校验单元)也包括一个控制CPU 67,它用于控制数据流、到硅核芯681~685的模拟数据的应用、响应比较、为每个块/核芯安排不同的任务及监视各核芯和SoC的状态。控制CPU 671~676相互连接,并通过总线系统64与主系统CPU相连。在附带逻辑的设计校验站DVS中,有一个时钟同步单元75和一个仲裁单元76,用于促进数据传到主系统CPU 62和设计校验站DVS1~DVS6的控制CPU 671~676中,或促进数据传送过来。
在校验过程开始前,主系统CPU 62安装各测试台数据78,并把该数据分配给校验单元661~665。该主系统CPU 62在设计校验中控制全过程,包括用户接口、为设计的共同校验在核芯上运行应用软件以及校验单元的多分配控制。在每个设计校验站DVS中,校验单元66把基于测试台数据而成的测试模式送给核芯对应的硅IC68。更进一步地,每个校验单元66作为基于事件测试器使用,这些下面会有介绍。
事件(测试模式)通过图5的管脚电子设备69被应用到DUT上。管脚电子设备69实际上把测试管脚与它们的硅IC68(DUT)的指定设备管脚相连。基本上,管脚电路设备69包括一个连接校验单元66和待测试硅IC68的接口电路。例如,每个接口电路由一个执行板、一个或多个驱动器和比较器(图中未画出)组成。驱动器是为了把测试模式送到DUT的输入管脚,而比较器把DUT的响应输出与预期值进行比较。执行板用来连接测试中的DUT。
单个核芯的校验本发明中,为校验各核芯A~E,使用了各核芯的硅IC681~685。这种硅IC68一般来自核芯供应公司和他们的加工合作公司。如图4B和图5所示,重组整个系统,每个核芯分配一个校验单元66。为校验,装载具有各核芯的输入/输出信息的各核芯的测试台到主系统CPU 62上。
主系统CPU 62把系统管脚重新配置后布置在每个核芯的校验单元66中,并分派一个控制CPU 67。应该注意,为了提高系统性能,以每个管脚分配一个控制CPU 67,而不是每个校验单元66配一个控制CPU 67的方式来实现。这种做法直接和根本地提高了图4B和图5中的系统的性能,具体做法这里不进行描述。
基于核芯的输入/输出,校验单元66的配置可以是64~256(2N形式)个管脚数间的任何一个。基本上,这些管脚是基于事件测试器通道,它允许进行驱动/比较操作。如图4B和图5所示的系统允许管脚的这种重新配置,并把他们安排在各核芯上。因此,本质上,整个系统被配置成多个校验单元66中,而每个校验单元分配给一个IP或核芯,如图5所示。因此,对每个核芯来说,分派的VU66是一个专用的事件校验系统。在专利应用号为09/406300的美国专利“基于事件的半导体测试系统”中已经描述了一个事件校验系统,下面会简单描述。核芯的事件模拟向量(作功能和结构检查用)可用于核芯(硅IC68),而且它的响应能观察到,并通过这个VU66与模拟数据进行比较。
为进行核芯功能和定时校验,主系统CPU 62把核芯的模拟测试台数据传送给相关的校验单元66的控制CPU 67。该数据是该核芯的设计一模拟测试值,它包括信号值和定时信息以识别当信号值从0→1或1→0变化时(即事件测试模式)的情况。因此,不必进行转换,该数据可直接应用于核芯硅68。
由于该数据是设计模拟数据,无缺陷核芯可以正确操作有如模拟的一样。该响应在校验单元66中可以被控制CPU 67观察到并进行比较。任何模拟偏差都可以由控制CPU 67检出。这确保了任意校验单元66上的核芯IC中的任何缺陷都能被检出。这一步确保了在SoC级设计校验前,校验单元66上的核芯的硅IC是无缺陷的。
应该注意到相比于现有系统,本发明的该方法和装置也使得用户调试核芯时更容易。这是由于使用事件数据,现有校验系统环境与原始设计模拟环境(即EDA环境)相同。
校验单元(事件测测器)如上所述,本发明中的每个校验单元66被配置成一个基于事件测试器。这样的一个基于事件测试器在图6中有简单说明。更详细的描写见上面提到的专利号为09/406300的美国专利“基于事件的半导体测试系统”,该专利属于本发明的同一受让人。在基于事件测试器中,当信号从0→1或从1→0变化时,测试模式描述为相对于参考点的时间长度参数。在通常周期的测试数据里,以每个测试周期的定时数据、波形数据和向量数据的合成数据来描述测试模式。当对设计好的半导体设备执行逻辑摸拟时,由于现有的设计自动化工具产生事件测试数据,因此,事件测试系统能够直接使用半导体设备设计阶段产生的模拟数据。
图6的事例中,校验单元66包括被连接到管脚-单元(系统)总线63上的控制CPU 67和校验单元书写译码器83,一个内部总线85,一个地址序列发生器88,一个故障存储器87,一个事件存储器90,一个解压单元92,一个定时计数和调整逻辑93,以及一个事件产生单元94。校验单元66通过管脚电子设备把测试模式提供给带有核芯的硅IC68。
校验单元书写译码器83是用于识别校验单元66的,以便主系统CPU 62能通过传送一组经过选择的地址给系统总线64来配置校验单元66。内部总线85是硬件基于事件测试器中的一条总线,通常与大多数功能块相连,如地址序列发生器88、故障存储器87、解压单元92、定时计数和调整逻辑93以及事件产生单元94。
如上所述,控制CPU 67基于来自主系统CPU 62的核芯测试台数据向校验单元66中的其它的功能块发出指令。故障存储器87存储测试结果,如来自比较器(未画出)的核芯硅IC68的故障信息,和地址序列发生器88提供的地址信号。存储在故障存储器87中的信息用于核芯和SoC的故障分析阶段。
地址序列发生器88给事件存储器90提供地址数据。事件存储器90存储每个事件的定时数据。比如,事件存储器90以两种独立的方式存储事件数据,一种方式是存储整数倍的控制(参考)时钟周期的定时数据,另一种方式法是存储参考时钟周期的一个分数部分或几个分数部分的定时数据。
更进一步地,事件存储器90中的定时数据被压缩以减少存储空间。解压单元92接收来自事件存储器90的压缩数据,通过解压程序还原定时数据。解压定时数据被提供给定时计数和调整逻辑93。
定时计数和调整逻辑93以来自事件存储器90的定时数据为依据产生现有事件。通过把前一定时数据与现有定时数据相加来得到整体定时数据。定时计数和调整逻辑93会根据比例因子来修改定时数据。定时数据的这种缩放操作包括根据比例因子增加定时数据(每个△t或绝对时间)。事件产生单元94以来自于定时计数和调整逻辑93的整体定时数据为依据,产生实时事件信号。事件发生单元94把事件信号(测试模式)提供给管脚电子设备69。
接口、片上总线和附带逻辑的校验大部分SoC设计包括核芯的先期设计,然而整体有某个逻辑是核芯集成者(SoC设计者)设计的,以便执行一些很特殊的功能和连接不同的核芯。这一逻辑通常称为“附带逻辑”。一般,附带逻辑通过非标准设计已经实现了,然而,近来嵌入FPGA(现场可编程序门阵列)被推荐用来实现这一逻辑。如上所述,以现有技术,对这一逻辑只能进行粗略的、不完全的校验。
以建议的方法,该逻辑的校验是通过图5所示的校验附带逻辑的设计校验站DVS6中的专用子系统来进行,基本方法如下(1)使用互连总线71把图5中的各硅IC68连接起来以模型化SoC片上总线。这是一个系统总线,它把各核芯A~E连接起来,由该核芯来模型化片上总线的动作。该总线把SoC一级的指令和数据流(从一个核芯到另一个核芯)变为设计校验站一级的指令和数据流(从一个VU到另一个VU)。因此,这条总线具有SoC片上总线的任何请求/授权协议,和在各核芯接口处的所有的数据处理。
(2)使用FPGA来实现专用子系统上的附带逻辑。另一方法是在专用子系统上模拟附带逻辑。这两种方法分别见图7和图8。
图7所示为模拟器子系统。在本方法中,可以使用任何商用模拟器系统。图7中,模拟器72中装入了附带逻辑的可合成RTL和附带逻辑测试文件77中的测试数据。为把该模拟器子系统与别的校验单元66相连,使用商用模拟器做时钟同步单元和仲裁单元。控制CPU 67与主系统CPU 62一起执行时钟校准和通信任务。
图8所示为FPGA方法。本方法中,附带逻辑的设计是通过使用FPGA 73实现的,并把FPGA 73看作一个硅IP或核芯。如果在SoC中利用嵌入FPGA来实现附带逻辑,那么这个FPGA 73恰恰是嵌入FPGA(附带逻辑)的一个独立的复制品。该FPGA 73被用作独立的IP并分配给专用校验单元。
如果在SoC中通过非标准设计来实现附带逻辑,那么附带逻辑的RTL可以在单个FPGA上实现,该FPGA被用在专用VU上。在此条件下,绝大多数情况下,FPGA的速度要比SoC中的非标准附带逻辑慢。因此,这个专用单元需要附加的时钟同步单元75和总线仲裁单元76。除了操作速度慢外,该VU与别的VU完全相同,而且其操作也与别的VU相同。
定时校验一旦各核芯的功能、接口和附带逻辑校验了,就可以对SoC一级的临界路线进行定时校验。应该注意的是完成图2中的步骤31和32后,SoC的所有各部分和互连在本发明的设计校验站都可获得。单个核芯的功能和附带逻辑已经校验,而且各核芯的定时也已校验。因此,SoC一级的模拟测试台和整体应用程序都可用于整体系统,万一有什么错误,也可断定错误存在于核芯的集成上。
在发明所述的方法中,最好运行少量的SoC一级的模拟向量(测试数据)。该向量用于校验SoC一级的定时临界路线和核芯一核芯定时的正确性。为此,把SoC一级的模拟测试台安装在主CPU上。在SoC的设计中,研制这样的模拟测试台用于校验设计的定时临界路线。这些测试数据(向量)是事件形式的,以目前的技术,一般可获得VCD形式的数据,而该VCD形式来自于Verilog/VHDL模拟器。
测试台数据的向量值用于检验SoC中连接SoC各部分的各定时临界路线。如描述的,本发明的设计校验站包括SoC的所有部分,可以预见,作定时校验用的模拟测试台会执行并产生与模拟程序完全相同的结果。任意模拟结果的偏差表示一个错误,该错误在与设计模拟环境相同的本发明的事件环境中很容易调试。
SoC校验或整体设计校验为进行SoC系统的全功能校验,在校验中心执行设计一模拟期间产生的SoC级功能向量。这些向量也是事件形式的。常常,这些向量由SoC设计应用软件产生(Verilog/VHDLRTL模型或性能模型)。然而,这些向量同时或不同时间地检查SoC的不同部分,以便利用整体响应来判断SoC的整体性能。
当应用程序以高级语言如C/C++语言或二进制形式编写时,需要API(应用程序接口)和PLI(程序语言接口)来把这些程序装入主系统CPU 62中,而且需要它们把外部世界与主系统CPU 62联系起来,如图9所示。
为了做到这一点,主系统CPU 62利用多种总线协议(如图5和图9所示的多-BP)进行多重分布式控制。它在应用任务(应用软件)上执行一个”分支”操作,把应用任务分成多个子任务,为各子任务安排时间并把它们分配给不同的对应各核芯的VU66。应注意的是这个”分支”操作运行于以高级语言如Verilog/VHDL或甚至C/C++语言编写的应用软件上。因此,为在由多个校验单元66组成的指定计算环境里执行应用任务,具有多重分布式控制的系统编译程序对应用任务执行”分支”操作。
在这个”分支”操作后,子任务通过系统总线64分配给每个VU66。控制CPU 67、仲裁单元76和时钟同步单元75允许通信和无错误数据从主系统CPU 62传送到各VU66的控制CPU 67。这种具有主系统CPU 62、仲裁单元76和时钟同步单元75的结构见图9。
基于子任务分派,控制CPU 67把事件向量应用于各核芯,并从那里采集响应。然后,再次利用控制CPU、总线仲裁单元和时钟同步单元传送正确数据,把该响应送到主系统CPU 62中。该主系统CPU 62执行“合成”操作,以合并不同的响应并形成SoC整体响应。该响应与模拟响应作比较,以确定SoC是否正确操作。如果这是一个应用软件,那么该响应是应用程序的预期结果。例如视频应用软件运行结果是图形。任何模拟数据或预期的应用输出的偏差都可由主系统CPU 62识别出来,并且设计师可以很容易地进行调试,因为基于事件的环境与原始设计环境相同。
固定装置或执行板本发明的设计校验站需要一个执行板,通过该板可以把硅核芯68和附带逻辑FPGA相连。在图5~图9的例子中,每个核芯提供一个设备安装板或执行板69(一个设计校验站DVS)。图10的框图给出了执行板的另一个结构。图10中,每个执行板90包括所有待测试的核芯和附带逻辑。连接器95在VU66与硅核芯68之间用于连接两者。
该执行板90与常用测试装置的执行板非常相似,那是一个多层印制电路板。执行板90与测试装置执行板的主要不同是测试装置执行板上只有一个DUT,而本发明的设计校验站里的执行板90上包括所有核芯的硅IC68和附带逻辑FPGA。
图11是本发明的又一种设计校验站,其中多个校验单元直接由主系统计算机控制。本例中,不同于前面各例,每个设计校验站不包括控制CPU,但通过系统总线64由主系统计算机62直接控制。因此,所有任务如时钟校准、核芯的响应评估、定时评估、以及整体SoC评估等等,都由主系统计算机62来做。
虽然这里只对一个具体事例进行具体的说明和描述,但在不违背本发明的精神和预期范围的前提下,依据上述指导及在所附的权利要求的范围内,对本发明作一些修改和变动是完全可以的。
权利要求
1.一种设计校验基于嵌入式核芯的SoC(单片机系统)的方法,该方法包括以下步骤校验要集成进SoC的各核芯,通过使用各核芯的硅IC以及核芯供应商提供的模拟测试台来进行;通过使用SoC设计者研制的模拟测试台和附带逻辑的FPGA/仿真器来校验各核芯间的接口、核芯的片上总线和附带(glue)逻辑,;校验核芯间的定时和SoC级的定时临界路线;以及通过使用整体SoC模拟测试台和应用软件进行整体设计校验,
2.如权利要求1所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的。
3.如权利要求1所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的,其中校验单元的测试管脚参照待测试的硅IC的输入/输出管脚进行配置。
4.如权利要求1所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的,其中每个校验单元被配置成一个基于事件测试器,该测试器基于事件数据产生测试模式,事件数据以数值变化量和定时来描绘测试模式。
5.如权利要求4所述的设计校验方法,其中各核芯的模拟测试台有一个基于事件的数据格式,因此,运用校验单元(基于事件测试器)很容易调试SoC的核芯中错误。
6.一种设计校验基于嵌入式核芯的SoC(单片机系统)的方法,该方法包括以下步骤生产多个硅IC,每个都有要集成进SoC上的对应核芯的电路结构;提供多个校验单元,并把各校验单元分配给每个核芯的硅IC;通过互连总线把硅IC互连起来,并模型化在SoC中设计的用于连接各核芯的片上总线;通过在硅IC上应用测试模式和监视硅IC的响应输出来校验要集成进SoC中的核芯;其中通过使用核芯供应商提供的模拟测试台来直接产生测试模式。
7.如权利要求6所述的设计校验方法,还包括一个步骤通过仿真器模拟接口和附带逻辑,来校验要集成进SoC中核芯间的接口和附带逻辑。
8.如权利要求6所述的设计校验方法,还包括一个步骤通过利用现场可编程序门阵列(FPGA)实现接口功能和附带逻辑,来校验核要集成进SoC的核芯间的接口和附带逻辑。
9.如权利要求6所述的设计校验方法,还包括一个步骤通过向各核芯的硅IC提供基于整体SoC级测试台数据产生的测试激励,来校验核芯间的定时和SoC级定时临界路线。
10.如权利要求6所述的设计校验方法,还包括步骤通过使用整体SoC的模拟测试台和应用运行程序,来执行整体设计校验。
11.如权利要求6所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的。
12.如权利要求6所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的,其中各校验单元被配置为一个基于事件测试器,该基于事件测试器基于事件数据产生测试模式,该事件数据通过数据变化量和定时来描绘测试模式。
13.如权利要求12所述的设计校验方法,其中各核芯的模拟测试台有一个基于事件的数据格式,因此,运用校验单元(基于事件测试器)很容易调试SoC的核芯中错误。
14.如权利要求6所述的设计校验方法,其中校验步骤是在把多个校验单元分配给各核芯的硅IC后执行的,其中校验单元的测试管脚是在参照待测试硅IC的输入/输出管脚进行配置的。
15.一种设计校验基于嵌入式核芯的SoC(单片机系统)的装置,其中在该SoC中集成有多个功能核芯,该装置包括一个主系统计算机,它与用户接口并控制设计校验装置的整体操作;多个校验单元,它接收来自主系统计算机的测试台数据,并且利用该测试台数据产生用于测试要集成进SoC的多个功能核芯的测试模式,其中每个校验单元中有一个接收来自主系统计算机的测试台数据的控制计算机;以及一个系统总线,用于把多个校验单元与主系统计算机进行接口;其中多个硅IC与校验单元相连,以接收来自校验单元的测试模式,并产生响应输出,该响应输出由校验单元和主系统计算机进行评估;并且其中硅IC具有一个与SoC中的集成功能核芯完全的内部结构。
16.如权利要求15所述的设计校验装置,其中各校验单元中的控制计算机基于经系统总线来自于主系统计算机的测试台数据为分配给校验单元的硅IC产生测试模式并且对硅IC的响应输出进行评估。
17.如权利要求15所述的设计校验装置,其中每个校验单元被分配给一个硅IC。
18.如权利要求15所述的设计校验装置,其中每个校验单元被分配给一个硅IC,并且其中校验单元的测试管脚参照待测试硅IC的输入/输出管脚进行配置。
19.如权利要求15的述的设计校验装置,其中每个校验单元有一组测试管脚,并且校验单元的管脚配置依据待测试硅IC的管脚结构可随意变动。
20.如权利要求15所述的设计校验装置,其中每个校验单元有一组测试管脚,校验单元的管脚结构依据待测试硅IC的管脚配置可随意变动,并且其中管脚组的大小依据分配给校验单元的硅IC的输入/输出管脚数由主系统CPU决定。
21.如权利要求15所述的设计校验装置,其中每个校验单元有一个控制计算机,该控制计算机通过系统总线接收来自于主系统计算机中的测试台数据,并产生测试模式给分配给该校验单元的硅IC,然后评估硅IC的响应输出。并且其中针对校验单元的每个测试管脚都设置一个控制计算机。
22.如权利要求15所述的设计校验装置,其中校验单元评估分配的硅IC,以校验相应的功能核芯;而且校验单元通过仿真器模拟接口和附带逻辑评估要集成进SoC中的硅IC之间的接口和附带逻辑。
23.如权利要求15所述的设计校验装置,其中校验单元评估所分配的的硅IC以校验相应的功能核芯;而且校验单元还通过使用现场可编程序门阵实现接口功能和附带逻辑,来评估要集成进SoC中的硅IC之间的接口和附带逻辑。
24.如权利要求15所述的设计校验装置,其中主系统计算机和校验单元通过向代表各核芯的硅IC提供基于SoC级测试台数据产生测试激励,来校验核芯间的定时和SoC级定时临界路线的。
25.如权利要求15所述的设计校验装置,其中主系统计算机和校验单元通过使用整体SoC模拟测试台和应用程序来校验整体设计。
26.如权利要求15所述的设计校验装置,其中主系统计算机和校验单元通过使用整体SoC的模拟测试台和应用程序来校验整体设计;并且其中主系统计算机通过把计算任务分成多个子任务并且以分布式方式把各子任务分配给该多个校验单元来把分开的SoC应用程序计算任务分配给各校验单元。
27.如权利要求15所述的设计校验装置,其中主系统计算机和校验单元通过使用整体SoC模拟测试台和应用程序校验整体设计;并且其中主系统计算机通过把计算任务分成多个子任务,并且以分布式方式把各子任务分配给该多个校验单元来把分开的SoC应用软件计算任务分配给各校验单元;而且其中主计算机级合来自校验单元的硅IC的响应以形成SoC的整体响应以确定是否有错误/故障。
28.如权利要求15所述的设计校验装置,还包括一个执行板,该板携带每个校验单元中对应的硅IC。
29.如权利要求15所述的设计校验装置,还包括一个执行板,该板携带待测试的所有硅IC和附带逻辑。
30.如权利要求15所述的设计校验装置,其中每个校验单元被配置成基于事件测试器,该测试器根据事件数据产生测试模式,该事件数据以数值变化及其定时来描绘测试模式。
31.如权利要求30所述的设计校验装置,其中各核芯的模拟测试台有一个基于事件的数据格式,因此利用校验单元(基于事件测试器)很容易调试SoC的核芯中的错误。
32.如权利要求15所述的设计校验装置,其中每个校验单元被配置成基于事件测试器,包括一个事件存储器,用于存储每个事件的定时数据,该定时数据是由参考时钟周期的整数倍(整数部分数据)和参考时钟周期的分数部分(小数部分数据)形成的。该定时数据是预定参考点与当前事件之间的时间差值;地址序列发生器,产生用于存取事件存储器的地址数据;一个事件计数逻辑,产生一个事件起始信号,该信号被延迟了与该整数部分数据相乘了的参考时钟周期;一个事件发生单元,依据来自事件计数逻辑的事件起始信号和用于表明该测试模式的分数部分数据产生每个事件;和一个校验单元书写译码器,用于寻找校验单元的地址,以便将该校验单元分配给硅IC的管脚。
33.一种设计校验基于嵌入式核芯的SoC(单片机系统)的装置,其中在该SoC中集成有多个功能核芯,该装置包括一个主系统计算机,用来与用户接口并控制设计校验装置的整体操作;多个校验单元,接收来自主系统计算机的测试台数据,并利用该测试台数据产生用于测试要集成进SoC中的多个功能核芯的测试模式;以及一个系统总线,把主系统计算机接口到该多个校验单元相连;其中多个硅IC与校验单元相连,以便接收来自校验单元的测试模式并产生要由校验单元和主系统计算机评估的响应输出;并且其中硅IC具有一个与要集成进SoC中的功能核芯相同的内部结构;并且其中主系统计算机执行产生要提供给硅IC的测试模式、评估硅IC的响应输出、执行SoC的定时和接口评估的全部任务,以及SoC的整体设计校验。
全文摘要
一种精确度高、速度快、费用低的校验SoC设计方法和装置。该装置允许使用一种方法,该方法包括步骤:校验SoC中的各集成核芯;使用各核芯的硅IC和核芯供应商提供的模拟测试台;通过使用SoC设计者研制的模拟测试台和附带逻辑的FPGA/仿真器来校验各核芯间的接口、核芯的片上总线和附带逻辑;校验核芯间的定时和SoC定时临界路线;以及通过使用整体SoC的模拟测试台和应用程序来执行整体设计校验。
文档编号H01L21/70GK1383200SQ0111554
公开日2002年12月4日 申请日期2001年4月27日 优先权日2001年4月27日
发明者罗基特·赖什曼, 矢元裕明 申请人:株式会社鼎新
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1