用于对片上系统的制造进行控制的设计信息的验证的制作方法

文档序号:6144170阅读:106来源:国知局
专利名称:用于对片上系统的制造进行控制的设计信息的验证的制作方法
技术领域
本发明涉及包含片上系统的集成电路的设计验证,并且涉及以便于设计验证的方
式获得的集成电路。
背景技术
在典型示例中,"片上系统"是一种集成电路,包括可编程处理器和具有将由处理 器访问的指定功能的多个电路模块。通常,与该集成电路的环境分离地设计每个电路模块。 在系统设计期间,选择电路模块并将其组合以实现指定系统。本领域技术人员通常将这种 电路模块称为"IP模块"(知识产权模块)。本领域技术人员使用该术语来指代可以用于实 现电路模块的设计信息以及指代物理电路中的实际电路模块。 片上系统的设计者选择要使用的IP模块及其连接。片上系统的设计者还必须为 可编程处理器提供程序。典型地,使用应用软件和针对不同IP模块的应用接口软件来对可 编程处理器进行编程。应用软件由片上系统的设计者设计。应用接口软件由IP模块的设 计者设计。通常,使用标准应用编程接口 (API),可以从应用软件调用应用接口软件,或者 应用接口软件调用应用软件。为了进行这种调用,在可编程处理器可以对片上系统中的每 个IP模块进行寻址的地址以及可选地片上系统中IP模块的实现的其他系统参数方面,应 用接口软件需要具有"软件模型"。 典型地,片上系统的设计过程从在所使用的IP模块的功能、其功能连接以及应用 功能方面的设计规范开始。以连续的阶段对该规范进行转换,直到该规范产生集成电路中 基本电路组件的定义。并行地,该规范也被转换为软件。所述软件所使用的系统参数必须 与从该规范产生的电路定义相对应。 许多片上系统的极高复杂度和许多不同设计者的参与使得这种系统的设计非常 容易收到差错的影响。这使得必须对设计执行广泛验证。如这里所使用的,验证是在电路 的物理制造阶段之前的设计阶段,目的在于检测设计差错,这些设计差错如果未被检测到, 则将出现在所有制造出的产品中。在当今的设计中,集成电路实现中超过三分之二的工作 用于验证。期望减少这种工作。 —种验证涉及询问由电路的定义产生的系统参数是否与软件所使用的参数相对 应。这种验证潜在地解决了电路和软件设计过程之间的差异以及这些过程中的差错。期望 自动执行该过程。 在制造之后,已知通过对单独的IP模块执行测试并通过对IP模块之间的连接执 行测试,来测试所制造的包含片上系统的集成电路。对单独IP模块的测试通常由IP模块 的设计者来定义。这种测试可以包括结构测试,如扫描测试。这种测试可以包括功能测试, 其中经由系统总线或特殊的测试总线将测试数据提供给IP模块,并观察IP模块的响应。
对IP模块之间的连接的测试可以包括使用边界扫描测试。US20040019840描述了 对逻辑模块之间连接的测试,其中,信号产生部分向逻辑模块的输出提供测试信号。在连接 的另一侧,将来自另一逻辑模块的输入的信号提供给验证电路。验证电路将测试信号与在
5该另一逻辑模块的输入处的信号进行比较。 应注意,提供这种电路是为了对制造的集成电路进行测试,而不是为了在制造之 前对于集成电路的设计进行验证。通常在设计完成之后,以使测试电路对所设计的电路透 明的方式来添加所需测试电路。例如,边界扫描电路典型地包括在正常使用期间透明的输 入和输出管脚处的触发器。因此,简单地由于在设计中不存在已知的测试电路,所以已知的 测试电路不能在设计验证期间使用。即使在将测试电路添加至设计之后,由于传统测试电 路在功能上是透明的,所以传统测试电路仍无法用于验证。

发明内容
本发明的目的之一是提供对片上系统的软件模型与用于实现片上系统的电路之
间的对应关系的自动验证。 根据权利要求1所述的系统提供用于制造片上系统,所述片上系统包括与多个预
先设计的电路模块相耦合的处理器。这些电路模块可以具有不经过处理器的直接相互连 接。使用由处理器执行的验证程序来执行设计的验证。每个验证程序是针对相应单个电路 模块来提供的,而不知道在片上系统中使用相应单个电路模块的环境。为了验证与单个电 路模块的直接相互连接,验证程序参照片上系统设计中的连接数据来标识该直接相互连接 所耦合至的另一电路模块,并且,验证程序使用该标识与对其他电路模块的接口程序的标 准化调用相结合,来访问附加寄存器以捕获或观察直接相互连接上的信号。按照这种方式, 电路模块的设计者可以提供对与电路模块的连接的验证,而无需对电路模块的实现的详细 知识。 在实施例中,提供了电路仿真器,所述电路仿真器被配置为当在验证程序的控制 下操作时,根据设计信息对片上系统的操作进行仿真。按照这种方式,使用电路仿真器,不 需要片上系统的物理原型来验证设计。通过使用原始设计中不需要的附加寄存器,可以仿 真对直接相互连接的可观察访问。在另一实施例中,电路仿真器被配置为根据电路模块的 相应不同抽象等级处的设计信息来对片上系统的操作进行仿真。因此,例如,可以执行寄存 器级模型的和晶体管级模型的仿真,以验证不同抽象等级处的设计信息。 在实施例中,在设计信息的控制下产生集成电路制造掩模,包括在连接数据控制 下的直接相互连接。这些掩模可以用于制造实际片上系统。这使得可以在实际片上系统中 执行验证。


参照以下附图,通过示例实施例的描述,这些和其他目的和有利方面将变得显而 易见 图l示出了片上系统; 图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实际访问的数据结构中或者拷贝
8到程序部分中的意义上,这种使用可以是间接的。此外,示出了验证程序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的调用来选择必须要访问的寄存器,S卩,程序模型数据结构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可以没有这种连接,或者仅有输入连接、仅有输出连
10接或多个这种连接连接至不同的直接连接19。 图5示出了 IP模块18的另一实施例。这里,已经添加了可寻址虚拟寄存器50、可 寻址统计寄存器52和统计收集器电路54。虚拟寄存器50和可寻址统计寄存器52耦合至 通信接口 40,使得通信接口 40能够从可寻址统计寄存器50读取以及从可寻址虚拟寄存器 52读取数据并向可寻址虚拟寄存器52写入数据。 虚拟寄存器52未连接至IP模块18的任何其他部分。虚拟寄存器52用于使可编 程处理器能够对IP模块进行读取和写入而不影响IP模块的操作,从而测试IP模块的地址 和数据线是否正确连接。 统计收集器电路54耦合在核心42与统计寄存器50之间。可选地,统计收集器电 路54也耦合至通信接口 40。统计收集器电路54被布置为检测核心42和/或通信接口 40 中发生的事件,并更新统计寄存器50中的统计数据。该统计数据可以包括事件计数和/ 或不同类型事件的多个计数等。检测的事件可以包括以下一个或更多项检测到通信接口 40处的输入或输出消息、检测到核心42产生的中断、检测到通信接口 40执行的DMA传送、 检测到差错(如计算期间的算术溢出)等。统计收集器电路54写入或更新统计寄存器50 中这些检测到的事件的一个或更多计数。 在验证期间,可以使用验证程序380来读取统计寄存器50。类似地,可以使用虚拟 寄存器52来验证使用验证程序中的指令进行的读取和写入。 尽管已经描述了图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的执行进行仿真。 在仿真产生了满意结果之后,开始最终掩模制造和/或软件加载。
本领域技术人员在根据对附图、公开和所附权利要求的研究而实现要求保护的本 发明时,可以理解并想到所公开实施例的各种变型。在权利要求中,"包括"一词不排除其 他元件或步骤,并且不定冠词"一"不排除多个。单个处理器或其他单元可以实现权利要求 中阐述的多个项目的功能。在互不相同的从属权利要求中阐述特定措施并不表示不能有利 地使用这些措施的组合。可以将计算机程序存储/分发在合适介质上,如与其他硬件一起 提供或作为其他硬件的一部分提供的光存储介质或固态介质,但是也可以以其他形式来分 发,如经由因特网或其他有线或无线通信系统。权利要求中的任何参考标记不应被解释为 对范围进行限制。
权利要求
一种用于制造片上系统的系统,所述系统包括存储子系统(62),所述存储子系统(62)用于存储-设计信息(64),用于控制片上系统的制造,其中,所述片上系统包括多个电路模块(18)、可编程处理器(12)和耦合在所述处理器(12)与所述多个电路模块(18)之间的通信电路(16),所述通信电路(16)被配置为支持从所述处理器对所述电路模块(18)中的寄存器进行程序控制访问,所述多个电路模块(18)中的第一电路模块和第二电路模块具有直接相互连接(19),以在所述电路模块(18)中的第一电路模块和第二电路模块之间直接传送信号,而不通过通信电路(12)进行通信,所述片上系统还包括附加寄存器(44、46),所述附加寄存器(44、46)耦合至所述直接相互连接(19)以捕获和/或控制在所述直接相互连接(19)处的信号,所述附加寄存器耦合至通信电路(12)以支持对所述附加寄存器(44、46)的程序控制访问;-连接数据(65),包括所述直接相互连接和由所述直接相互连接(19)耦合的所述电路模块(18)中的第一电路模块和第二电路模块的标识;-针对所述处理器(12)的接口程序(66),每个接口程序(66)用于接受根据相同标准化接口的访问调用,以访问所述电路模块(18)中相应的电路模块,针对所述电路模块(18)中的第一电路模块的接口程序被配置为接受访问调用以访问所述附加寄存器(44、46);-验证计算机程序(67),每个验证计算机程序(67)针对所述电路模块(18)中相应的一个,针对所述电路模块(18)中的第二电路模块的验证程序(67)包括用于使处理器(12)执行以下操作的指令访问所述电路模块(18)中的第二电路模块中的寄存器;使用所述连接数据(65)或从所述连接数据(65)导出的信息,基于所述连接数据(65)中所述电路模块(18)中的第一电路模块的标识来选择所述电路模块(18)中的第一电路模块;以及发布对所述电路模块(18)中所选的另一电路模块的接口程序的访问调用,以观察和/或控制在所述电路模块(18)中的第二电路模块的验证计算机程序执行期间经由所述直接相互连接(19)的信号。
2. 根据权利要求1所述的系统,包括电路仿真器(68),被配置为当在验证程序(67) 的控制下操作时,根据所述设计信息(64)对所述片上系统的操作进行仿真。
3. 根据权利要求2所述的系统,其中,所述电路仿真器(68)被配置为根据在所述电 路模块(18)的多个相应不同抽象等级处的设计信息的版本,来对所述片上系统的操作进 行仿真。
4. 根据权利要求l所述的系统,包括掩模产生器(69),被配置为在所述设计信息 (66)的控制下产生集成电路制造掩模,包括在所述连接数据(65)的控制下的所述直接相 互连接(19)。
5. 根据权利要求l所述的系统,包括设计修改程序,存储在所述存储子系统(62)中, 并被配置为将所述附加寄存器(44、46)自动添加至所述片上系统的设计信息。
6. 根据权利要求l所述的系统,其中,所述电路模块(18)中的至少一个电路模块包括 可寻址统计寄存器(52)和统计收集器电路(54),所述统计收集器电路(54)耦合至所述电 路模块(18)的核心电路(42)和统计寄存器(52),所述统计收集器电路(54)被配置为响应 于所述电路模块(18)的核心电路(42)中发生的事件来更新统计寄存器(52)中的计数值, 所述统计寄存器(52)以可读取的方式经由通信电路(16)耦合至处理器(12),针对所述电路模块(18)中的所述至少一个电路模块的验证程序包括对所述统计寄存器(52)进行寻址 的读取指令。
7. 根据权利要求l所述的系统,其中,所述电路模块(18)中的至少一个电路模块包括 虚拟寄存器(50),所述虚拟寄存器(50)以可读取和可写入的方式经由通信电路(16)耦合 至处理器(12),但是不耦合至所述电路模块(18)的任何部分,用于所述电路模块中的所述 至少一个电路模块的验证程序包括对所述虚拟寄存器(50)进行寻址的读取和写入指令。
8. —种对用于控制片上系统的制造的设计信息进行验证的方法,其中,所述片上系统 包括多个电路模块(18)、可编程处理器(12)和耦合在所述处理器(12)与所述多个电路模 块(18)之间的通信电路(16),所述通信电路(16)被配置为支持从所述处理器对所述电路 模块(18)中的寄存器进行程序控制访问,所述多个电路模块(18)中的第一电路模块和第 二电路模块具有直接相互连接(19),以直接在所述电路模块(18)中的第一电路模块和第 二电路模块之间直接传送信号,而不通过通信电路(12)进行通信,所述设计信息(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)进行寻址的读取和写入指令。
全文摘要
本发明提供了一种片上系统,包括多个电路模块(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)的信号。当在所述验证程序的控制下操作时,监控所述片上系统的操作。
文档编号G01R31/317GK101784905SQ200880102885
公开日2010年7月21日 申请日期2008年8月8日 优先权日2007年8月14日
发明者扬·斯图伊特, 皮埃特·斯特林克, 约里斯·H·J·戈伊茨, 贝尔纳德·W·德勒伊特, 鲁埃劳夫·P·德琼 申请人:Nxp股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1