CN101784905B - 用于对片上系统的制造进行控制的设计信息的验证 - Google Patents

用于对片上系统的制造进行控制的设计信息的验证 Download PDF

Info

Publication number
CN101784905B
CN101784905B CN2008801028859A CN200880102885A CN101784905B CN 101784905 B CN101784905 B CN 101784905B CN 2008801028859 A CN2008801028859 A CN 2008801028859A CN 200880102885 A CN200880102885 A CN 200880102885A CN 101784905 B CN101784905 B CN 101784905B
Authority
CN
China
Prior art keywords
circuit module
circuit
chip
register
module
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.)
Active
Application number
CN2008801028859A
Other languages
English (en)
Other versions
CN101784905A (zh
Inventor
扬·斯图伊特
贝尔纳德·W·德勒伊特
鲁埃劳夫·P·德琼
皮埃特·斯特林克
约里斯·H·J·戈伊茨
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.)
Synopsys Inc
Original Assignee
Synopsys Inc
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 Synopsys Inc filed Critical Synopsys Inc
Publication of CN101784905A publication Critical patent/CN101784905A/zh
Application granted granted Critical
Publication of CN101784905B publication Critical patent/CN101784905B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318536Scan chain arrangements, e.g. connections, test bus, analog signals
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/3181Functional testing
    • G01R31/3185Reconfiguring for testing, e.g. LSSD, partitioning
    • G01R31/318533Reconfiguring for testing, e.g. LSSD, partitioning using scanning techniques, e.g. LSSD, Boundary Scan, JTAG
    • G01R31/318541Scan latches or cell details

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种片上系统,包括多个电路模块(18)、可编程处理器(12)和耦合在所述处理器(12)与所述多个电路模块(18)之间的通信电路(16),所述通信电路(16)被配置为支持从所述处理器(12)对所述电路模块(18)中的寄存器进行程序控制访问,所述多个电路模块(18)中的第一电路模块和第二电路模块具有直接相互连接(19)以直接在所述电路模块(18)中的第一电路模块和第二电路模块之间直接传送信号而不通过通信电路(12)进行通信。所使用的设计信息包括连接数据,所述连接数据包括所述直接相互连接(19)的标识和所述直接相互连接(19)所耦合的第一电路模块和第二电路模块(18)的标识。将耦合至所述直接相互连接(19)的附加寄存器添加至所述片上系统以捕获和/或控制在所述直接相互连接(19)处的信号。所述附加寄存器耦合至通信电路(12)以支持对所述附加寄存器(44、46)的程序控制访问。使用针对所述处理器(12)的接口程序,每个接口程序用于所述电路模块(18)中指定的一个电路模块,用于所述电路模块(18)中的第一电路模块的接口程序被配置为接受标准化访问调用以访问所述附加寄存器(44、46)。使用验证程序,每个验证程序用于所述电路模块(18)中相应的一个,用于所述电路模块(18)中的第二电路模块的验证程序包括用于使处理器(12)执行以下操作的指令:访问所述电路模块(18)中的第二电路模块中的寄存器;使用所述连接数据或从所述连接数据导出的信息基于所述连接数据中对所述电路模块(18)中的第一电路模块的标识来选择所述电路模块(18)中的第一电路模块;以及发布对所述电路模块(18)中所选的另一电路模块的接口程序的标准化调用,以观察和/或控制在所述电路模块(18)中的第二电路模块的验证程序执行期间经由所述直接相互连接(19)的信号。当在所述验证程序的控制下操作时,监控所述片上系统的操作。

Description

用于对片上系统的制造进行控制的设计信息的验证
技术领域
本发明涉及包含片上系统的集成电路的设计验证,并且涉及以便于设计验证的方式获得的集成电路。
背景技术
在典型示例中,“片上系统”是一种集成电路,包括可编程处理器和具有将由处理器访问的指定功能的多个电路模块。通常,与该集成电路的环境分离地设计每个电路模块。在系统设计期间,选择电路模块并将其组合以实现指定系统。本领域技术人员通常将这种电路模块称为“IP模块”(知识产权模块)。本领域技术人员使用该术语来指代可以用于实现电路模块的设计信息以及指代物理电路中的实际电路模块。
片上系统的设计者选择要使用的IP模块及其连接。片上系统的设计者还必须为可编程处理器提供程序。典型地,使用应用软件和针对不同IP模块的应用接口软件来对可编程处理器进行编程。应用软件由片上系统的设计者设计。应用接口软件由IP模块的设计者设计。通常,使用标准应用编程接口(API),可以从应用软件调用应用接口软件,或者应用接口软件调用应用软件。为了进行这种调用,在可编程处理器可以对片上系统中的每个IP模块进行寻址的地址以及可选地片上系统中IP模块的实现的其他系统参数方面,应用接口软件需要具有“软件模型”。
典型地,片上系统的设计过程从在所使用的IP模块的功能、其功能连接以及应用功能方面的设计规范开始。以连续的阶段对该规范进行转换,直到该规范产生集成电路中基本电路组件的定义。并行地,该规范也被转换为软件。所述软件所使用的系统参数必须与从该规范产生的电路定义相对应。
许多片上系统的极高复杂度和许多不同设计者的参与使得这种系统的设计非常容易收到差错的影响。这使得必须对设计执行广泛验证。如这里所使用的,验证是在电路的物理制造阶段之前的设计阶段,目的在于检测设计差错,这些设计差错如果未被检测到,则将出现在所有制造出的产品中。在当今的设计中,集成电路实现中超过三分之二的工作用于验证。期望减少这种工作。
一种验证涉及询问由电路的定义产生的系统参数是否与软件所使用的参数相对应。这种验证潜在地解决了电路和软件设计过程之间的差异以及这些过程中的差错。期望自动执行该过程。
在制造之后,已知通过对单独的IP模块执行测试并通过对IP模块之间的连接执行测试,来测试所制造的包含片上系统的集成电路。对单独IP模块的测试通常由IP模块的设计者来定义。这种测试可以包括结构测试,如扫描测试。这种测试可以包括功能测试,其中经由系统总线或特殊的测试总线将测试数据提供给IP模块,并观察IP模块的响应。
对IP模块之间的连接的测试可以包括使用边界扫描测试。US20040019840描述了对逻辑模块之间连接的测试,其中,信号产生部分向逻辑模块的输出提供测试信号。在连接的另一侧,将来自另一逻辑模块的输入的信号提供给验证电路。验证电路将测试信号与在该另一逻辑模块的输入处的信号进行比较。
应注意,提供这种电路是为了对制造的集成电路进行测试,而不是为了在制造之前对于集成电路的设计进行验证。通常在设计完成之后,以使测试电路对所设计的电路透明的方式来添加所需测试电路。例如,边界扫描电路典型地包括在正常使用期间透明的输入和输出管脚处的触发器。因此,简单地由于在设计中不存在已知的测试电路,所以已知的测试电路不能在设计验证期间使用。即使在将测试电路添加至设计之后,由于传统测试电路在功能上是透明的,所以传统测试电路仍无法用于验证。
发明内容
本发明的目的之一是提供对片上系统的软件模型与用于实现片上系统的电路之间的对应关系的自动验证。
根据权利要求1所述的系统提供用于制造片上系统,所述片上系统包括与多个预先设计的电路模块相耦合的处理器。这些电路模块可以具有不经过处理器的直接相互连接。使用由处理器执行的验证程序来执行设计的验证。每个验证程序是针对相应单个电路模块来提供的,而不知道在片上系统中使用相应单个电路模块的环境。为了验证与单个电路模块的直接相互连接,验证程序参照片上系统设计中的连接数据来标识该直接相互连接所耦合至的另一电路模块,并且,验证程序使用该标识与对其他电路模块的接口程序的标准化调用相结合,来访问附加寄存器以捕获或观察直接相互连接上的信号。按照这种方式,电路模块的设计者可以提供对与电路模块的连接的验证,而无需对电路模块的实现的详细知识。
在实施例中,提供了电路仿真器,所述电路仿真器被配置为:当在验证程序的控制下操作时,根据设计信息对片上系统的操作进行仿真。按照这种方式,使用电路仿真器,不需要片上系统的物理原型来验证设计。通过使用原始设计中不需要的附加寄存器,可以仿真对直接相互连接的可观察访问。在另一实施例中,电路仿真器被配置为根据电路模块的相应不同抽象等级处的设计信息来对片上系统的操作进行仿真。因此,例如,可以执行寄存器级模型的和晶体管级模型的仿真,以验证不同抽象等级处的设计信息。
在实施例中,在设计信息的控制下产生集成电路制造掩模,包括在连接数据控制下的直接相互连接。这些掩模可以用于制造实际片上系统。这使得可以在实际片上系统中执行验证。
附图说明
参照以下附图,通过示例实施例的描述,这些和其他目的和有利方面将变得显而易见:
图1示出了片上系统;
图2示出了软件/硬件结构;
图3a示出了设计架构;
图3b示出了用于验证的软件/硬件结构;
图4示出了IP模块的实施例;
图5示出了IP模块的另一实施例;
图6示出了用于制造片上系统的系统。
具体实施方式
图1示出了片上系统的实施例。在集成电路10中实现该系统,该系统包含可编程处理器12、程序存储器14a、数据存储器14b、通信电路16和多个电路模块(将被称为IP模块18)。可编程处理器12经由通信电路16耦合至IP模块18,通信电路16可以是总线电路,或者更一般地可以是通信网络。此外,可编程处理器12耦合至程序存储器14a和数据存储器14b。各个直接连接19连接成对的IP模块18。直接连接也可以将IP模块18耦合至集成电路10的外部端子。此外,尽管未示出,其他直接连接也可以将IP模块18耦合至可编程处理器12。因此,例如,中断控制器IP模块可以具有至可编程处理器12的中断输入的直接连接。IP模块18的示例包括中断控制器电路、DMA控制电路、专门计算电路,如DCT(数字余弦变换)计算电路等。
图2示出了用于控制系统操作的软件/硬件结构。软件包括应用层20、多个IP模块应用接口组件22和通信层24。这些层的软件包含程序存储器14a中存储的、由可编程处理器12来执行的指令。应用层20通过应用接口组件22来与IP模块18进行交互,例如通过使可编程处理器12将控制转移至在应用接口组件22中实现的指令,或通过提供可编程处理器12响应于在应用接口组件22中的指令控制下的调用而要开始执行的指令。来自应用接口组件22的指令使可编程处理器12执行来自通信层24的指令,以控制通信电路16访问IP模块18。备选地,来自应用接口组件22的指令可以用于使可编程处理器12直接控制通信层24来访问IP模块18。以下为简明起见,将可编程处理器12对来自不同层和组件的指令的执行称为层和组件的动作,其中隐含的意义在于,通过可编程处理器12执行指令来执行这些动作,而不显式提到涉及可编程处理器12。
图3a示出了用于将设计转换为具体集成电路的结构。在计算机可读介质上提供设计数据结构。设计数据结构包括系统设计架构30、硬件设计架构32、软件设计架构34和程序模型36。系统设计架构30a中最高等级处的结构300指定了集成电路执行的功能。依次较低等级结构302通过指定实现较高等级数据结构中定义的功能的子功能及其相互关系(数据和控制信息的通信),对系统进行更具体的定义。该实现关系由数据结构300、302之间的线指示。
硬件(电路)设计架构32与软件设计架构34的组合实现了系统设计架构。如在系统设计架构30的情况中一样,这些架构包括由实现关系来关联的依次较低等级的数据结构。在硬件(电路)设计架构32的最低等级处,提供了对集成电路中一个或更多不同层的布局进行定义的数据结构。这些数据结构用于制造掩模集合38,掩模集合38用于制造集成电路39。在软件设计架构34的最低等级处是为集成电路中的可编程处理器定义机器指令的数据结构。该信息可以被下载至所制造的集成电路39,或者可以用在掩模集合38的制造中,以定义集成电路39中的只读存储器(ROM,未示出)的内容。作为备选,可以使用下载的和掩模定义的指令的混合,其中部分指令是下载的,而另一部分是输入ROM中的。
计算机执行的设计软件或者人类设计者可以自动执行架构中依次较低等级处的数据结构的产生。因此,例如,高级计算机语言的程序典型地由程序员编写,而将这种程序到机器指令的转换典型地由程序(如编译器)来执行。
如在系统架构中的情况一样,硬件(电路)设计架构32和软件设计架构34的依次较低等级数据结构分别定义了由硬件和软件架构的较高等级数据结构定义的功能的实现。这些实现关系由数据结构之间的线指示。
此外,硬件(电路)设计架构32和软件设计架构34的数据结构协作来实现系统设计架构中的数据结构所定义的功能。因此,例如,当在硬件设计架构所定义的硬件上运行时,软件设计架构所定义的软件产生的指定数据和控制信息可以实现系统设计架构中定义的信息。
此外,定义程序模型的一个或更多数据结构36将硬件(电路)设计架构32和软件设计架构34相关。这些数据结构可以定义例如软件可以对硬件中IP模块的指定寄存器进行寻址的硬件地址以及IP模块之间的连接。这些数据结构可以采用数据库的形式,该数据库具有记录集合,包括针对电路模块中的相应电路模块的记录,每个记录定义电路模块的标识符号,这些记录还具有针对一个或更多地址的字段,这些字段用于电路模块和用于电路模块的相应端子,这些记录包含经由直接连接耦合至这些端子的其他电路模块的标识符号以及可选地这些其他电路模块的端子的标识。此外,可以提供针对直接相互连接的记录,具有包含附着至连接的电路模块的标识符号以及可选地这些电路模块的端子的标识在内的字段。可以使用任何其他形式的记录等效信息。将程序模型数据结构和/或其中表示连接的部分称为连接数据。
在硬件必须实现这些地址和连接的意义上,这些数据结构与硬件设计架构相关。在软件必须使用这些地址并且软件中编程的操作使信号沿这些连接传送的意义上,这些数据结构与软件设计架构相关。程序模型数据结构36可以部分实现系统设计架构30中定义的方面,程序模型数据结构36的一部分可以实际上是系统设计架构30的数据结构,但是为了说明起见,它们被认为是程序模型数据结构36的一部分。
作为更具体的示例,应用接口组件22需要与集成电路10中IP模块18的实现相关的程序模型信息。该程序模型信息可以包括需要提供给通信电路16以访问指定IP模块18的地址信息。该地址信息可以具有基地址的形式,根据该基地址可以确定IP模块18中不同寄存器的地址。此外,程序模型信息可以包括与直接连接19相关的连接信息,例如具有直接连接19所连接的不同IP模块的端子标识的形式。
设计过程的验证涉及确定满足不同设计等级处的数据结构之间的实现关系。已知方法可用于在硬件和软件设计架构本身内执行该操作。
然而,期望也能够验证软件和硬件协作以实现系统设计。可以认识到,如果程序模型信息与实际电路实现互相不一致,则片上系统不能正确操作。然而,由于程序模型信息和实际电路实现是经由系统设计期间的不同线路来建立的,因此对于其一致性不存在固有保证。应当在设计级验证这一点。
为了验证一致性,当所设计的片上系统执行特殊验证程序的指令时,对该片上系统的操作进行仿真。该特殊验证程序使用与要在最终集成电路中用于执行应用软件的程序模型信息相同的程序模型信息。
图3b示出了用于验证和应用处理的软件结构。示出了应用层20、应用接口组件22和通信层24。更具体地,示出了应用接口组件22使用程序模型数据结构36。在来自程序模型数据结构36的数据可以被拷贝到应用接口组件22实际访问的数据结构中或者拷贝到程序部分中的意义上,这种使用可以是间接的。此外,示出了验证程序380,验证程序380耦合至通信层24并能够访问程序模型数据结构36或其数据的拷贝。
在操作中,在原型中执行验证程序380和/或对验证程序380的执行进行仿真。在仿真的情况下,使用计算机来计算当验证程序380由设计架构中的数据结构指定的硬件(可选地还有软件)来执行时,验证程序380将具有的效果。验证程序380被设计为产生通过/失败输出信号,以指示所设计的IP模块是否将实现该IP模块的指定功能。典型地,相应IP模块的设计者提供用于不同IP模块的相应单独验证程序380。这些验证程序380包括用于访问IP模块中的寄存器的访问指令。这些访问指令使用来自程序模型数据结构36的信息。
此外,程序模型数据结构36可以被配置为对IP模块之间的连接(如,中断连接,用于信号流、时钟信号的连接等)的设计进行验证。为了进行该操作,向特定IP模块的验证程序380提供来自程序模型数据结构36的信息,该信息指定从哪些寄存器将其他IP模块耦合至在该特定IP模块与该其他IP模块之间的连接。该特定IP模块的验证程序380包含使用对针对该其他IP模块的应用接口组件22的调用来访问这些寄存器的指令。为此使用标准应用编程接口调用,所述标准应用编程接口调用在其对访问所有类型的IP模块具有相同形式的调用的意义上是标准的。只有所需标识不同。这些可以作为调用的参数来传送。因此,该特定IP模块的验证程序380的程序员不需要知道该其他IP模块的结构或甚至标识,就能够编写该特定IP模块的验证程序380。
图4示出了已经适于支持验证的IP模块18的设计的实施例。IP模块18的设计包括通信接口40、核心42、可寻址输入寄存器44、可寻址输出寄存器46、可寻址控制寄存器48和复用器49。核心42包括功能寄存器(未示出)和逻辑和/或模拟电路(未示出)。通信接口40经由连接41耦合至通信电路16(未示出),耦合至核心42(例如耦合至核心42中的功能寄存器),耦合至可寻址输入寄存器44、可寻址输出寄存器46和可寻址控制寄存器48。复用器49的数据输入耦合至核心42的输出,并耦合至可寻址输出寄存器46以及IP模块18的数据输出。可寻址控制寄存器48的输出耦合至复用器49的控制输入。
复用器49的输出耦合至与另一电路模块(未示出)的直接连接19。输入寄存器44耦合至与又一电路模块(或该另一电路模块)的另一直接连接19’。第一和第二电路模块14的输入和输出分别耦合至直接连接19,并具有相应的输入和输出寄存器。仅作为示例示出了输入和输出耦合至直接连接19的电路模块18,其他电路模块可以仅有输入或仅有输出耦合至直接连接。
在实施例中,可寻址控制寄存器48的输出也耦合至可寻址输入寄存器44的控制输入,以在用于正常操作的透明模式和用于验证期间的时钟定时捕获模式之间切换该寄存器。在另一实施例中,可寻址输入寄存器44耦合至从直接连接19至核心42的连接,在逻辑上不影响传送至核心42的信号。
通信接口40支持响应于经由通信电路(未示出)从可编程处理器(未示出)接收到的消息,从核心42中的功能寄存器(未单独示出)进行读取和对其进行写入。此外,通信接口40支持响应于从可编程处理器(未示出)接收到的消息来对可寻址输出寄存器46和可寻址控制寄存器48进行写入。通信接口40还支持响应于从可编程处理器12接收到的消息来从可寻址输入寄存器44进行读取并向可编程处理器12返回响应消息。
因此,通信接口40使得可编程处理器12(未示出)所执行的软件可以通过向可寻址输出寄存器46写入所需输出信号并通过向可寻址控制寄存器48写入控制数据以使复用器49传送来自可寻址输出寄存器46的数据,来控制IP模块18的、旁路绕过核心42的输出信号。类似地,通信接口40使得可编程处理器12(未示出)所执行的软件可以通过从可寻址输入寄存器44进行读取,来读取IP模块18的旁路绕过核心42的输入信号。这是用于验证。对于正常操作,核心42用于控制输出信号并处理输入信号。核心经由输入寄存器44和输出寄存器28耦合至与其他IP模块(未示出)的直接连接19。作为示例,示出了直接输入和输出连接,但是应理解,一些或全部IP模块可以仅具有直接输入连接或仅具有直接输出连接。在正常操作中,将电路模块18切换至以下模式:其中信号经由直接连接19直接传送,而不涉及通信电路16,例如不需要将信号传送至通信电路16,不需要分配通信电路16中的信号线或其他资源等等。
输入寄存器44和复用器49可以耦合至数据信号传导器以传送信号数据流,如音频或视频采样值,同时也控制信号传导器,如中断信号传导器、握手传导器或甚至时钟信号传导器(例如从时钟控制IP模块传导至不同的其他IP模块)。输入寄存器44、输出寄存器46、控制寄存器48和复用器49使得可以从至少用于验证目的的软件访问这些信号。
应用接口组件22支持对可寻址输入寄存器44、可寻址输出寄存器46和可寻址控制寄存器48的访问。为了进行验证,特定IP模块的验证程序380包含用于访问其他IP模块中的这些寄存器的指令,该访问利用来自程序模型数据结构36的数据,使用对另一IP模块的应用接口组件22的调用来选择必须要访问的寄存器,即,程序模型数据结构36指定要要从该特定IP模块连接至信号传导器的寄存器。这是用于观察该特定IP模块所产生的信号是否到达该另一IP模块的输入寄存器,或产生来自该另一IP模块的输出寄存器46经由其复用器49的信号并观察该信号是否到达该特定IP模块。
此外,验证程序380可以被配置为访问该特定IP模块的内部功能寄存器,以测试其内部功能。为此,验证程序380使用程序模型数据结构36来选择该特定IP模块内的寄存器。由于假定验证程序380的程序员密切知晓该特定IP模块的结构,这可以在不将访问限制为通过应用接口组件22进行访问的情况下进行。这种直接访问实现了更详细的测试。验证程序380也可以包含用于访问该特定IP模块的内部寄存器的指令,以响应于验证程序380中对另一IP模块的寄存器写命令来观察从该另一IP模块传送至该特定IP模块的信号,或者响应于验证程序380中对另一IP模块的寄存器读命令来产生在该特定IP模块中传送的、用于在该另一模块中进行观察的信号。
原则上,可以在设计架构的任何等级处执行验证,只要所提供的仿真软件能够基于该等级处的设计数据结构来执行仿真。因此,可以执行抽象(功能)级仿真以及更详细等级的仿真(例如寄存器级或信号级)。甚至可以通过在使用设计架构来制造的集成电路中实际执行来执行验证。在这种情况下,将验证程序加载入集成电路并由集成电路执行以验证设计。然而,从较低等级设计差错抽象出的更加抽象等级的验证只能通过仿真来执行。
尽管输入寄存器44可以被配置为仅支持读访问,以从直接连接19读取信号,但是应当认识到,输入寄存器44也可以被配置为支持写访问,以例如在验证期间将程序控制的信号提供给核心42。此外,尽管示出了一个输入和一个输出耦合至直接连接19的电路模块,但是应当认识到,任何电路模块18可以没有这种连接,或者仅有输入连接、仅有输出连接或多个这种连接连接至不同的直接连接19。
图5示出了IP模块18的另一实施例。这里,已经添加了可寻址虚拟寄存器50、可寻址统计寄存器52和统计收集器电路54。虚拟寄存器50和可寻址统计寄存器52耦合至通信接口40,使得通信接口40能够从可寻址统计寄存器52读取以及从可寻址虚拟寄存器50读取数据并向可寻址虚拟寄存器50写入数据。
虚拟寄存器50未连接至IP模块18的任何其他部分。虚拟寄存器50用于使可编程处理器能够对IP模块进行读取和写入而不影响IP模块的操作,从而测试IP模块的地址和数据线是否正确连接。
统计收集器电路54耦合在核心42与统计寄存器52之间。可选地,统计收集器电路54也耦合至通信接口40。统计收集器电路54被布置为检测核心42和/或通信接口40中发生的事件,并更新统计寄存器52中的统计数据。该统计数据可以包括:事件计数和/或不同类型事件的多个计数等。检测的事件可以包括以下一个或更多项:检测到通信接口40处的输入或输出消息、检测到核心42产生的中断、检测到通信接口40执行的DMA传送、检测到差错(如计算期间的算术溢出)等。统计收集器电路54写入或更新统计寄存器52中这些检测到的事件的一个或更多计数。
在验证期间,可以使用验证程序380来读取统计寄存器52。类似地,可以使用虚拟寄存器50来验证使用验证程序中的指令进行的读取和写入。
尽管已经描述了图4和5的各种寄存器应用于验证的情况,但是应注意,也可以在实际集成电路中单独使用这些寄存器以执行测试、调试和/或验证实际集成电路。通过为位于软件通常使用的通信电路外部的IP模块之间的软件访问信号线提供寄存器,可以隔离集成电路中的问题。
图6示出了用于制造片上系统的系统。用于制造片上系统61的系统包括计算机60和存储子系统62。存储子系统62可以包括任何存储设备或存储设备的组合,如盘驱动器、半导体存储器等。存储子系统62存储用于对片上系统61的制造进行控制的设计信息数据文件64。典型地,存储多个这种文件64,以表示不同抽象等级处的系统和/或其部分。每个设计信息数据文件直接或间接控制片上系统的制造,例如由于它控制其他数据文件的链的内容,该内容最终控制将在片上系统中使用的电路布局或软件。
存储子系统62存储一个或更多连接数据文件65,连接数据文件65包括片上系统的电路模块之间的直接相互连接的标识以及这种连接中涉及的电路模块。此外,存储子系统62存储具有用于片上系统的处理器的接口程序66的文件,每个文件用于接受根据相同标准化接口的访问调用,以访问相应的一个电路模块。存储子系统62还存储验证计算机程序67,每个验证计算机程序67用于相应的一个电路模块。提供了电路仿真器68,电路仿真器68可以是计算机60的一部分,或者是单独的设备。掩模制造设备69耦合至存储子系统62,用在根据设计信息的IC掩模中,用在设备692中以制造实现片上系统61的集成电路。软件加载设备693耦合至存储子系统62,用于将接口程序66加载到片上系统61中。在实施例中,通过制造对片上系统61中的程序进行定义的一个或更多掩模来执行加载。
在操作中,计算机60用于按照来自用户的指引来产生设计信息数据文件64。电路仿真器68用于对由设计信息和连接数据文件定义的系统对验证程序67的执行进行仿真。在仿真产生了满意结果之后,开始最终掩模制造和/或软件加载。
本领域技术人员在根据对附图、公开和所附权利要求的研究而实现要求保护的本发明时,可以理解并想到所公开实施例的各种变型。在权利要求中,“包括”一词不排除其他元件或步骤,并且不定冠词“一”不排除多个。单个处理器或其他单元可以实现权利要求中阐述的多个项目的功能。在互不相同的从属权利要求中阐述特定措施并不表示不能有利地使用这些措施的组合。可以将计算机程序存储/分发在合适介质上,如与其他硬件一起提供或作为其他硬件的一部分提供的光存储介质或固态介质,但是也可以以其他形式来分发,如经由因特网或其他有线或无线通信系统。权利要求中的任何参考标记不应被解释为对范围进行限制。

Claims (15)

1.一种对用于控制片上系统的制造的设计信息进行验证的系统,其中,所述片上系统包括多个电路模块(18)、可编程处理器(12)和耦合在所述处理器(12)与所述多个电路模块(18)之间的通信电路(16),所述通信电路(16)被配置为支持从所述处理器对所述电路模块(18)中的寄存器进行程序控制访问,所述多个电路模块(18)中的第一电路模块和第二电路模块具有直接相互连接(19),以在所述电路模块(18)中的第一电路模块和第二电路模块之间直接传送信号,而不通过通信电路(16)进行通信,所述设计信息(64)包括连接数据,所述连接数据包括所述直接相互连接(19)和由所述直接相互连接(19)耦合的第一电路模块和第二电路模块(18)的标识,所述片上系统包括附加寄存器(44、46),所述附加寄存器(44、46)耦合至所述直接相互连接(19)以捕获和/或控制在所述直接相互连接(19)处的信号,所述附加寄存器耦合至通信电路(16)以支持对所述附加寄存器(44、46)的程序控制访问,所述系统包括:
-用于提供针对所述处理器(12)的接口程序的装置,每个接口程序针对所述电路模块(18)中指定的一个电路模块,针对所述电路模块(18)中的第一电路模块的接口程序被配置为接受标准化访问调用以访问所述附加寄存器(44、46);
-用于提供验证计算机程序的装置,每个验证计算机程序针对所述电路模块(18)中相应的一个,针对所述电路模块(18)中的第二电路模块的验证程序包括用于使处理器(12)执行以下操作的指令:访问所述电路模块(18)中的第二电路模块中的寄存器;使用所述连接数据或从所述连接数据导出的信息,基于所述连接数据中所述电路模块(18)中的第一电路模块的标识来选择所述电路模块(18)中的第一电路模块;以及发布对所述电路模块(18)中所选的第一电路模块的接口程序的标准化访问调用,以观察和/或控制在所述电路模块(18)中的第二电路模块的验证计算机程序执行期间经由所述直接相互连接(19)的信号;以及
-用于当在所述验证程序的控制下操作时根据所述设计信息来监控所述系统的操作的装置。
2.根据权利要求1所述的系统,其中用于监控的装置包括:用于在所述验证程序的控制下操作时对所述片上系统的操作进行仿真的装置。
3.根据权利要求2所述的系统,包括:用于在所述验证程序的控制下根据所述设计信息对所述片上系统的多个版本的操作进行仿真的装置,每个版本在相应不同抽象等级处实现了所述片上系统的电路模块。
4.根据权利要求1所述的系统,包括:用于在所述设计信息的控制下制造所述片上系统的装置,包括在所述连接数据的控制下在所述片上系统中的所述直接相互连接。
5.根据权利要求1所述的系统,包括:用于在制造的电路中执行所述验证程序的装置。
6.根据权利要求1所述的系统,包括:用于将可寻址统计寄存器(52)和统计收集器电路(54)添加至所述电路模块中至少一个电路模块的设计的装置,所述统计收集器电路(54)耦合至所述电路模块(18)的核心电路(42)和统计寄存器(52),所述统计收集器电路(54)被配置为响应于所述电路模块(18)中发生的事件来更新统计寄存器(52)中的计数值,针对所述电路模块(18)中的所述至少一个电路模块的验证程序包括对所述统计寄存器(52)进行寻址的读取指令。
7.根据权利要求1所述的系统,包括:用于将可寻址虚拟寄存器(50)添加至所述电路模块中至少一个电路模块的设计的装置,所述可寻址虚拟寄存器(50)不耦合至所述电路模块(18)中所述至少一个电路模块的任何其他部分,用于所述电路模块中的所述至少一个电路模块的验证程序包括对所述可寻址虚拟寄存器(50)进行寻址的读取和写入指令。
8.一种对用于控制片上系统的制造的设计信息进行验证的方法,其中,所述片上系统包括多个电路模块(18)、可编程处理器(12)和耦合在所述处理器(12)与所述多个电路模块(18)之间的通信电路(16),所述通信电路(16)被配置为支持从所述处理器对所述电路模块(18)中的寄存器进行程序控制访问,所述多个电路模块(18)中的第一电路模块和第二电路模块具有直接相互连接(19),以直接在所述电路模块(18)中的第一电路模块和第二电路模块之间直接传送信号,而不通过通信电路(16)进行通信,所述设计信息(64)包括连接数据,所述连接数据包括所述直接相互连接(19)和由所述直接相互连接(19)耦合的第一电路模块和第二电路模块(18)的标识,所述片上系统包括附加寄存器(44、46),所述附加寄存器(44、46)耦合至所述直接相互连接(19)以捕获和/或控制在所述直接相互连接(19)处的信号,所述附加寄存器耦合至通信电路(12)以支持对所述附加寄存器(44、46)的程序控制访问,所述方法包括:
-提供针对所述处理器(12)的接口程序,每个接口程序针对所述电路模块(18)中指定的一个电路模块,针对所述电路模块(18)中的第一电路模块的接口程序被配置为接受标准化访问调用以访问所述附加寄存器(44、46);
-提供验证程序,每个验证程序针对所述电路模块(18)中相应的一个,针对所述电路模块(18)中的第二电路模块的验证程序包括用于使处理器(12)执行以下操作的指令:访问所述电路模块(18)中的第二电路模块中的寄存器,使用所述连接数据或从所述连接数据导出的信息,基于所述连接数据中所述电路模块(18)中的第一电路模块的标识来选择所述电路模块(18)中的第一电路模块,以及发布对所述电路模块(18)中所选的第一电路模块的接口程序的标准化调用,以观察和/或控制在所述电路模块(18)中的第二电路模块的验证程序执行期间经由所述直接相互连接(19)的信号;
-当在所述验证程序的控制下操作时,根据所述设计信息来监控所述系统的操作。
9.根据权利要求8所述的方法,其中,所述监控是通过在所述验证程序的控制下操作时对所述片上系统的操作进行仿真来执行的。
10.根据权利要求9所述的方法,包括:在所述验证程序的控制下,根据所述设计信息,对所述片上系统的多个版本的操作进行仿真,每个版本在相应不同抽象等级处实现了所述片上系统的电路模块。
11.根据权利要求8所述的方法,包括:在所述设计信息的控制下制造所述片上系统,包括在所述连接数据的控制下在所述片上系统中的所述直接相互连接。
12.根据权利要求11所述的方法,包括:在制造的电路中执行所述验证程序。
13.根据权利要求8所述的方法,包括:将所述附加寄存器添加至所述片上系统的设计信息。
14.根据权利要求8所述的方法,包括:将可寻址统计寄存器(52)和统计收集器电路(54)添加至所述电路模块中至少一个电路模块的设计,所述统计收集器电路(54)耦合至所述电路模块(18)的核心电路(42)和统计寄存器(52),所述统计收集器电路(54)被配置为响应于所述电路模块(18)中发生的事件来更新统计寄存器(52)中的计数值,针对所述电路模块(18)中所述至少一个电路模块的验证程序包括对所述统计寄存器(52)进行寻址的读取指令。
15.根据权利要求8所述的方法,包括:将可寻址虚拟寄存器(50)添加至所述电路模块(18)中至少一个电路模块的设计,所述可寻址虚拟寄存器(50)不耦合至所述电路模块(18)中所述至少一个电路模块的任何其他部分,针对所述电路模块(18)中所述至少一个电路模块的验证程序包括对所述可寻址虚拟寄存器(50)进行寻址的读取和写入指令。
CN2008801028859A 2007-08-14 2008-08-08 用于对片上系统的制造进行控制的设计信息的验证 Active CN101784905B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP07114296 2007-08-14
EP07114296.2 2007-08-14
PCT/IB2008/053194 WO2009022276A2 (en) 2007-08-14 2008-08-08 Software-based verification of system-on-chip direct interconnect through additional registers

Publications (2)

Publication Number Publication Date
CN101784905A CN101784905A (zh) 2010-07-21
CN101784905B true CN101784905B (zh) 2013-05-08

Family

ID=40210490

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008801028859A Active CN101784905B (zh) 2007-08-14 2008-08-08 用于对片上系统的制造进行控制的设计信息的验证

Country Status (3)

Country Link
US (1) US8327309B2 (zh)
CN (1) CN101784905B (zh)
WO (1) WO2009022276A2 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011149775A (ja) * 2010-01-20 2011-08-04 Renesas Electronics Corp 半導体集積回路及びコアテスト回路
US9436785B1 (en) * 2014-09-19 2016-09-06 Xilinx, Inc. Hierarchical preset and rule based configuration of a system-on-chip
CN107957695A (zh) * 2016-10-18 2018-04-24 普林斯卡思特有限公司 具有可调系统行为的模块化保持容器
KR20220090928A (ko) 2020-12-23 2022-06-30 삼성전자주식회사 시스템 온 칩 테스트 방법 및 시스템 온 칩 테스트 시스템
CN117056157B (zh) * 2023-10-11 2024-01-23 沐曦集成电路(上海)有限公司 一种寄存器层次化验证方法、存储介质和电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1476174A (zh) * 2003-07-04 2004-02-18 清华大学 片上系统的测试数据压缩编码、解码方法及专用解码单元
CN1679165A (zh) * 2002-08-22 2005-10-05 株式会社爱德万测试 评估核基片上系统的方法
CN1734278A (zh) * 2005-05-27 2006-02-15 上海大学 集成电路片上系统中故障的测试系统和方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6484280B1 (en) * 1999-09-30 2002-11-19 Agilent Technologies Inc. Scan path test support
GB0121990D0 (en) * 2001-09-11 2001-10-31 Beach Solutions Ltd Emulation system & method
JP2004062532A (ja) * 2002-07-29 2004-02-26 Renesas Technology Corp 接続検証装置
US7437692B2 (en) * 2003-11-10 2008-10-14 Infineon Technologies Ag Memory debugger for system-on-a-chip designs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1679165A (zh) * 2002-08-22 2005-10-05 株式会社爱德万测试 评估核基片上系统的方法
CN1476174A (zh) * 2003-07-04 2004-02-18 清华大学 片上系统的测试数据压缩编码、解码方法及专用解码单元
CN1734278A (zh) * 2005-05-27 2006-02-15 上海大学 集成电路片上系统中故障的测试系统和方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A.AMORY et al.Software-Based Test for Non-Programmable Cores in Bus-Based System-on-Chip Architecture.《IFTP International Federation for Information Processing 》.2006,165-179. *
QIANG XU et al.On Reducing Wrapper Boundary Register Cells in Modular SOC Testing.《ITC International Test Conference》.2003,622-631. *

Also Published As

Publication number Publication date
US20110239067A1 (en) 2011-09-29
WO2009022276A3 (en) 2009-04-09
CN101784905A (zh) 2010-07-21
WO2009022276A2 (en) 2009-02-19
US8327309B2 (en) 2012-12-04

Similar Documents

Publication Publication Date Title
US8997034B2 (en) Emulation-based functional qualification
US6678625B1 (en) Method and apparatus for a multipurpose configurable bus independent simulation bus functional model
CN103748562B (zh) 测试、验证和调试架构
US8136065B2 (en) Integrated prototyping system for validating an electronic system design
US7434184B2 (en) Method for detecting flaws in a functional verification plan
JP4987182B2 (ja) コンピュータシステム
US7240268B2 (en) Test component and method of operation thereof
CN101084485A (zh) 用于改善片上仿真系统中高级语言的仿真速度的装置和方法
CN101251819A (zh) 一种适用于多处理器核系统芯片的调试方法
US8214195B2 (en) Testing in a hardware emulation environment
US6829751B1 (en) Diagnostic architecture using FPGA core in system on a chip design
US20090248390A1 (en) Trace debugging in a hardware emulation environment
CN101784905B (zh) 用于对片上系统的制造进行控制的设计信息的验证
CN107710166A (zh) 利用符号快速错误检测的硅后验证和调试
JP3176482B2 (ja) 論理シミュレーション装置
CN115496018A (zh) 一种SoC芯片多版本验证方法、装置及设备
US20050154573A1 (en) Systems and methods for initializing a lockstep mode test case simulation of a multi-core processor design
CN116894411A (zh) 带dma接口的spi模块验证平台和方法
CN101727388B (zh) 一种网络计算机系统行为远程调试方法及其装置
JP2005108007A (ja) Lsi設計検証装置及びlsi設計検証方法
CN114625592A (zh) 一种fpga原型验证快速调试的方法、系统、设备和存储介质
EP3734491A1 (en) Method, apparatus, device, and medium for implementing simulator
US7945433B2 (en) Hardware simulation accelerator design and method that exploits a parallel structure of user models to support a larger user model size
US20230111938A1 (en) Testbenches for electronic systems with automatic insertion of verification features
Caba et al. HALib: Hardware Assertion Library for on-board verification of FPGA-based modules using HLS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: WEIERJI LOGIC CO.

Free format text: FORMER OWNER: KONINKL PHILIPS ELECTRONICS NV

Effective date: 20100916

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: EINDHOVEN, NETHERLANDS TO: CALIFORNIA, USA

TA01 Transfer of patent application right

Effective date of registration: 20100916

Address after: American California

Applicant after: Vilge Logic

Address before: Holland Ian Deho Finn

Applicant before: Koninkl Philips Electronics NV

ASS Succession or assignment of patent right

Owner name: SYNOPSYS INC.

Free format text: FORMER OWNER: VL C.V.

Effective date: 20111115

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20111115

Address after: California, USA

Applicant after: Synopsys Inc.

Address before: American California

Applicant before: Vilge Logic

C14 Grant of patent or utility model
GR01 Patent grant