CN1804809A - 产生触发信号的系统和方法 - Google Patents
产生触发信号的系统和方法 Download PDFInfo
- Publication number
- CN1804809A CN1804809A CNA2006100025964A CN200610002596A CN1804809A CN 1804809 A CN1804809 A CN 1804809A CN A2006100025964 A CNA2006100025964 A CN A2006100025964A CN 200610002596 A CN200610002596 A CN 200610002596A CN 1804809 A CN1804809 A CN 1804809A
- Authority
- CN
- China
- Prior art keywords
- condition
- state
- data
- signal
- state machine
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/327—Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/333—Design for testability [DFT], e.g. scan chain or built-in self-test [BIST]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Tests Of Electronic Circuits (AREA)
- Logic Circuits (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
一个公开的实施例可包括专用集成电路(ASIC)(10,200,354)。该ASIC包括存储器(18,52,102,206),该存储器存储定义用于启动多个状态之间转换的条件的条件数据以及定义与各个条件中的每一个相关联的下一个状态的下一个状态数据。状态机电路(12,50,106,210)采用条件数据和下一个状态数据来作为对输入数据应用至少一个条件的函数从状态机电路的当前状态转换到下一个状态。至少一个条件由与当前状态相关联的条件数据定义。状态机电路(12,50,106,210)基于状态机电路的当前状态将下一个状态数据与至少一个条件相关联。控制电路(24,50,70,150,210)响应于状态机电路的当前状态转换到多个状态中的至少一个预定状态来提供触发信号。
Description
相关申请的交叉引用
本申请涉及以下共同转让的同时待审的专利申请:“数据分析的系统和方法(SYSTEM AND METHOD FOR DATA ANALYSIS)”(代理人案号200314514-1);“限定数据捕获的系统和方法(SYSTEMAND METHOD TO QUALIFY DATA CAPTURE)”(代理人案号200314251-1);“控制数据捕获的系统和方法(SYSTEM ANDMETHOD TO CONTROL DATA CAPTURE)”(代理人案号200314252-1),所有这些申请都与本申请同时期提交,并通过引用结合在本文中。
技术领域
本发明涉及产生触发信号的系统和方法。
背景技术
随着在单个集成电路芯片或芯片组上获得的电路集成度的升高,存在与芯片内部操作或芯片组内部操作相关的复杂性增加的趋势。已经开发了各种类型的内部和外部系统以便于芯片或芯片组的监控和/或分析操作。例如,逻辑分析器就是一种能帮助监控和分析操作中某些方面的装置。
发明内容
根据本发明的一种专用集成电路(ASIC)包括:存储器,其存储定义用于启动在多个状态之间转换的条件的条件数据以及定义与各个条件中每一个相关联的下一个状态的下一个状态数据;状态机电路,其采用所述条件数据和所述下一个状态数据来作为相对于输入数据应用至少一个条件的函数而从状态机电路的当前状态转换到下一个状态,所述至少一个条件由与当前状态相关联的条件数据定义,状态机电路基于状态机电路的当前状态将下一个状态数据与所述至少一个条件相关联;以及控制电路,其响应于状态机电路的当前状态转换到所述多个状态中的至少一个预定状态来提供触发信号。
附图说明
图1示出产生触发信号的系统的实施例;
图2示出产生触发信号的另一系统的实施例;
图3示出产生触发信号的一部分系统的实施例;
图4示出产生触发信号的另一部分系统的实施例;
图5示出逻辑分析器的实施例;
图6示出可与产生触发信号的系统结合使用的监控系统实施例;
图7示出可实现逻辑分析系统的一个或多个实施例的计算机系统的示例;
图8是示出用于产生触发信号的方法实施例的流程图。
具体实施方式
图1示出了系统10的示例,该系统可用于从相关数据源(例如数据总线)产生数据的“触发(TRIGGER)”信号采样(或捕获)。该“触发”信号可用于激活或发起任何其它操作或过程(例如故障监控和数据分析等)。系统10可实现为专用集成电路(ASIC),诸如可用在计算机系统、路由器或可处理或传播数据的其它类型系统中。
系统10包括状态机电路12,该电路包括多个状态。状态机12包括一个或多个条件14,这些条件基于与一个或多个条件有关的“输入”来控制从当前状态到下一个状态的转换。该“输入”可对应于一个或多个输入信号或数据位。这里所用的单数或复数形式的术语“数据”和“信号”交替用于标识一个或多个信息单位(例如一位或多位)。
一个或多个条件14可包括任何类型的一个或多个部件,包括离散逻辑、组合逻辑、寄存器、比较器或基于“输入”确定一个或多个预定条件或事件是否发生的其它电路部件。例如,一个或多个条件14可实现与“输入”有关的算术功能、逻辑功能和匹配功能中一个或多个的组合。一个或多个条件14还可根据状态机12的当前状态而改变(例如编程为改变)。在对于当前状态存在多于一个条件时,这些条件可对应于状态机12的单独条件转移(branch),用以基于应用到“输入”的每个条件转移的结果来从当前状态转换到各个下一个可用状态。
状态选择器16基于应用到“输入”的一个或多个条件14的结果来选择状态机12的下一个状态。可将一个或多个条件14中的任意个与多个状态中的每一个相关联。在将多于一个条件14应用到当前状态的“输入”数据时,状态选择器16根据来自相关条件中所选条件的结果来选择状态机的下一个状态。各种方案都可用于选择将使用哪个下一状态。例如,可分配一个级别来设置当前状态每一个条件之间的优先级(例如对应于优先编码器)。
附加或备选地,状态机12可编程为:在对于给定的一个或多个条件14启动转换到下一个状态之前,要求这种条件的多于一个发生(occurrence)。例如,状态机12可包括用于在已经满足了一个或多个条件14时对每个实例进行计数或累加的电路。状态机12还能实现以与系统10的时钟周期基本相当的速率从当前状态转换到相应的下一个状态。该转换速率将倾向于根据“输入”的频域而变化。例如,如果以比系统10的时钟(例如实现本系统的ASIC的系统时钟)慢的频率提供“输入”,则状态机12中的同步电路诸如可通过增加“伪”数据(其分开实际数据以便分析)来使“输入”与时钟信号同步。
系统10还包括存储器18,其存储用于配置状态机12的数据。存储器18可存储条件数据20,来对状态机12应用到“输入”的一个或多个条件14进行编程。状态机12的一个或多个条件(例如电路)可与用于读取当前状态条件数据的存储器18通信地耦合。存储器18还可存储下一个状态数据22,该数据定义对于当前状态所实现的各个条件中每一个的下一个状态。状态机12基于状态机的当前状态将下一个状态与一个或多个条件14相关联(例如通过从存储器18中读取相应的下一个状态数据)。如上所述,状态机12所应用的一个或多个条件14中每一个的下一个状态都可根据当前状态而改变。条件数据20和状态数据22通过PROG所示的程序信号是可编程的,以定义与状态机12的一个或多个条件14中每一个相关联的各个条件可用状态转换。存储器18可实现为寄存器阵列或其它可寻址存储器。
状态机12向控制块24提供当前状态的指示,如CURR_STATE所示。控制块24响应于状态机12的当前状态到多个状态中的至少一个预定状态的转换来提供“触发”信号,如“最终状态”所示。“触发”信号可用于触发来自相关数据源的数据采样。例如,诸如本文所述的数据捕获系统可采用“触发”信号来存储来自数据源(例如总线)的数据。“输入”还可随响应于“触发”信号存储的数据的功能而变化。“触发”信号还可用于发起系统10内部或系统外部的另一功能或过程(例如硬件或软件)。
图2示出了可用于逻辑分析总线(诸如多位同步可观测性或调试总线)上提供的数据的状态机系统50的示例。分析系统50利用存储向量的存储器52,该向量可包括定义用于实现状态机的一个或多个条件的屏蔽数据54。存储器52还可包括定义可用状态之间状态和转换的状态数据56。例如,存储器52可以是任何类型的系统可寻址存储器(例如寄存器阵列,诸如CSR),其诸如可从实现分析系统50的计算机系统的系统处理器写入。其它工具和接口也可用于对存储器52进行编程。还可读取存储器52,以驱动状态机的状态转换。
分析系统50实现基于一个或多个输入信号TRIG_OUT_LIST在多个可用状态之间转换的状态机,该输入信号描述了总线上数据的性能特性。本领域的技术人员将了解和理解分析系统50可实现为分析在TRIG_OUT_LIST信号中提供的信息的各种方式。分析系统50可包括一个或多个条件部件58,该条件部件控制状态机从当前状态(CURR_STATE)到“下一个状态”的状态转换。CURR_STATE可包括一位或多位(例如三位值),用于确定将如何分析和捕获在总线(例如调试总线)上传播的数据。可能状态的序列、状态之间的转换、每个条件部件58所执行的功能都可编程为由屏蔽数据54和状态数据56定义的存储器52中的状态转换向量。
在图2的示例中,条件部件58描述为条件1、条件2和条件Q,其中Q是正整数(Q≥1),表示可为每个状态实现的条件转移和函数的数量。本领域技术人员将了解和理解,在分析系统50中可使用各种类型和其它数量的条件部件58。例如,条件部件58对应于在TRIG_OUT_LIST上执行的条件逻辑和条件转移,以控制状态机的状态转换。条件部件58用比较块(例如比较器电路)60来根据从存储器52读取的屏蔽数据54而在TRIG_OUT_LIST上实现其各自功能。
例如,每个条件部件58的比较块60都可实现与TRIG_OUT_LIST表示的至少一部分性能条件数据有关的按位屏蔽(或匹配)。由此,比较块60可基于存储为屏蔽数据54的屏蔽向量来实现与每个周期的匹配。对于每个比较块60,屏蔽数据54中的向量可以不同。对于给定的捕获会话,屏蔽数据54还可以是固定的,或者诸如通过对于一些或全部可用状态采用不同的屏蔽向量,屏蔽数据可随捕获会话而变化。当给定条件部件58的屏蔽向量与当前状态的TRIG_OUT_LIST匹配时,该条件部件向选择器62提供相应的输出,该输出指示已经满足了条件(例如启动了向量)。
选择器62操作上用于基于来自条件部件58的输出来标识状态机的“下一个状态”。条件部件58可用作控制状态转换的元件的级别配置。例如,条件部件58可用作基于CURR_STATE并基于TRIG_OUT_LIST来实现状态转换的优先编码器。作为优先编码器,选择器62可基于根据分配给各个条件部件58的优先级而启动了哪个条件部件来设置“下一个状态”。因此,条件部件58可操作为单独的条件转移,其可用于基于TRIG_OUT_LIST和与每个条件转移相关联的相应屏蔽数据54的比较来实现状态机的预定状态转换(例如预先编程为状态数据56)。
选择器62向状态寄存器64提供下一个状态信息。由此状态寄存器64提供作为CURR_STATE信号的当前状态的指示。如上所述,CURR_STATE可用于从状态数据56中选择下一个可用状态,以及(可选地)将要应用的屏蔽向量重新定义为当前状态的每一个条件部件58。由于通过将条件部件58和选择器62实现为硬件(例如部分ASIC),TRIG_OUT_LIST可变化到系统50的每个时钟周期的速率,因此状态机能以高达每个时钟周期的速率来实现到下一个状态的转换。
系统50还可包括发生系统66,该发生系统操作上用于在使选择器62能够对于给定条件部件转换到下一个状态之前要求一个或多个给定条件部件58的多个命中或发生。虽然其它的发生要求也可与分析系统50的其它条件转移结合使用,但出于说明目的,图2的示例假设发生系统66仅应用于条件1。由此发生系统66向选择器62提供发生启动信号,该信号指示对于给定条件部件(例如条件1)58是否已经满足了预定发生数。由此选择器62可仅在例如发生启动信号指示已经满足了发生数时选择分配给条件1的下一个状态。
例如,发生系统66包括计数器68,该计数器操作上用于在条件1的比较块60指示对于CURR_STATE满足了相应屏蔽向量时对发生进行计数。存储器52可向发生系统66提供发生值(OCC_VAL)。OCC_VAL的值定义在与条件1相关联的屏蔽数据向量可使选择器62能够加载与条件1相关联的下一个状态向量之前要求的一个或多个发生的数目。对于状态机的不同状态,可对相同或不同的发生值进行编程。发生系统66对OCC_VAL和计数器68提供的值进行比较,并基于该比较向选择器62提供发生启动信号。发生启动信号屏蔽与条件1相关联的下一个状态向量,直到计数器68的输出满足了OCC_VAL为止。因此,直到已经满足了与条件1相关联的发生要求为止,状态机的下一个状态才会对应于与一个其它条件部件(条件2或条件Q)58相关联的一个下一个状态向量。
分析系统50还包括触发脉冲发生器70。触发脉冲发生器70操作上基于与预定“最终状态”有关的CURR_STATE产生“触发”信号,该“最终状态”可存储在存储器52中。触发脉冲发生器70还可包括促使该触发脉冲发生器在一个或多个预定条件下提供触发信号的附加逻辑。本领域技术人员将了解和理解可产生触发信号的各种方式,诸如基于期望的性能特性和设计要求。
系统50还包括延迟系统72,该延迟系统72操作上用于基于“触发”信号和STOR_QUAL信号来产生TRIG_DELAY信号。例如,假如没有宣称(assert)TRIG_DELAY信号而宣称了STOR_QUAL信号和“触发”信号(例如对应于限定的触发事件),则延迟系统72可采用增加其值的计数器。在触发脉冲发生器已经宣称了“触发”信号之后,计数器可在每个限定的存储周期增加其值。由此,延迟系统72可包括比较器(或其它电路,未示出),该比较器比较计数器的输出与预定的计数器值,如POST_STORE所示。POST_STORE值可以是从相应系统可寻址存储器52中读取的用于实现期望触发延迟的预定值。诸如对于给定的捕获会话,POST_STORE值可编程为定义触发延迟值,该触发延迟值设置与相应触发事件有关的数据捕获点(例如在宣称“触发”信号时)。
例如,相应的数据捕获系统可在与触发事件有关的一个或多个存储周期中任意个周期上基于POST_STORE值(例如POST_STORE=0)来捕获数据集。数据集可包括触发事件之前的过去数据或与触发事件重叠的数据。根据计数器的大小,POST_STORE值还可设置为存储触发事件发生之后的将来数据。例如,通过在触发事件之后的多个周期上从数据捕获系统读取数据并将数据存储在存储器中可以存储将来数据。由此可将TRIG_DELAY信号与STOR_QUAL信号一起提供给数据捕获系统,用于控制诸如本文所述的数据捕获系统的操作。
图3示出了可用于控制在总线(诸如多位同步调试总线)上提供的数据的分析的分析系统100的示例。分析系统100包括可寻址存储器102,该存储器可被写入以存储定义多个状态以及用于基于TRIG_OUT_LIST来实现状态机电路106的条件的向量。分析系统100可包括一个或多个条件转移,这些条件转移定义状态机电路106的可能转换。存储器102向多位总线104提供数据(RD_DATA),RD_DATA控制状态机电路106的操作。存储器102可以是诸如可从实现分析系统100的计算机系统的系统处理器写入的任何类型的系统可寻址存储器(例如寄存器阵列)。存储器102还可被读取,以用RD_DATA驱动总线104。
通过另一个示例,状态机电路106采用来自总线104的选定子范围的数据(例如存储在存储器102中的)来实现基于诸如本文所述的TRIG_OUT_LIST确定状态转换的条件。状态机电路106提供当前状态(CURR_STATE)的指示,基于该指示可产生“触发”信号和触发延迟(TRIG_DELAY)信号(见图4)。CURR_STATE可包括一位或多位(例如三位信号),例如用于确定将如何捕获和分析在相关总线(例如调试总线)上传播的数据。
本领域技术人员将了解和理解状态机电路106可实现为分析在TRIG_OUT_LIST信号中提供的性能信息的各种方式。例如,状态机电路106可采用具有多个条件转移的条件逻辑来实现状态机的相应状态转换。可能状态序列、状态之间的转换以及在给定状态中执行的操作可编程为存储器102中的状态转换向量,并可从总线104读取。状态机电路106操作上用于根据状态机的CURR_STATE基于TRIG_OUT_LIST信号中所包含的数据来实现状态转换。
在图3示例中,状态机电路106包括多个条件转移,每个条件转移基于相对于TRIG_OUT_LIST数据应用来自总线的屏蔽数据来实现用于在状态间转换的各个条件。每个转移包括“与”门108、110和112,这些“与”门将来自总线104的屏蔽数据(例如在存储器102中编程的向量)和“同”门114的输出相“与”。“同”门114通过执行与TRIG_OUT_LIST信号和可编程TRIG_NOT信号相关联的数据位之间的“同”功能来操作为按位反相器。由此“同”门114向各个“与”门108、110和112的输入提供对应于TRIG_OUT_LIST数据的按位反相型式的相应多位输出。
来自总线104的多位IF_MASK向量被提供给“与”门108的另一个输入以及按位比较器116的输入。“与”门108的输出提供给比较器106的另一个输入。由此,“与”门108和比较器116的组合确定是否已经基于TRIG_OUT_LIST数据启动了IF_MASK向量。例如,在“同”门114的输出(例如对应于TRIG_OUT_LIST的一位或多位)启动IF_MASK向量时,宣称比较器116的输出,用于从总线104加载IF_NEXT向量。由此比较器116的输出对应于“与”门118的多位输入的一个输入位。
状态机电路106包括可启动状态转换的其它条件转移,诸如在IF_MASK向量没由TRIG_OUT_LIST启动时。在图3的示例中,存在另两个分别由来自总线104的ELS1_MASK向量和ELS2_MASK向量控制的条件转移。总线104向“与”门110的输入提供ELS1_MASK向量,以便实现与“同”门114的输出(例如对应于TRIG_OUT_LIST的按位反相型式)有关的另一个屏蔽条件。“与”门110向比较器120提供多位输出,该比较器将“与”门110的输出和来自总线104的ELS1_MASK向量相比较,以确定是否启动了由ELS1_MASK定义的相应屏蔽。比较器120向“与”门118提供另一个加载控制信号,用于从存储器102加载ELS1_NEXT向量。ELS1_NEXT向量定义从CURR_STATE到存储器102中ELS1_NEXT向量所定义的状态的状态转换。
ELS2_MASK向量可用于启动到与状态链中另一个条件转移相关联的下一个状态(ELS2_NEXT)的状态转换。例如,ELS2_MASK可操作用于在不满足IF_MASK向量和ELS1_MASK向量条件时控制状态转换。在图3的示例中,ELS2_MASK向量和“同”门114的输出一起提供给“与”门112的输入。“与”门112执行按位“与”功能,以驱动比较器122的多位输入。比较器执行“与”门112的输出和ELS2_MASK向量之间的按位比较。比较器122驱动“与”门118的多位输入的另一位,用于从总线104加载相关ELS2_NEXT向量。也就是说,在基于TRIG_OUT_LIST启动ELS2_MASK向量时,屏蔽系统可转换到ELS2_NEXT向量所定义的状态链的另一个条件转移。
通过另一个示例,如下表1提供了表示可能状态转换的真值表,这些状态转换可由状态机100的状态机电路106基于各个比较器116、120、122的输出来实现。由此表1中的项对应于由比较器116、120和122提供的状态机100的条件转移的输出。例如,转移1(“与”门108和比较器116)对应于第一或最高优先条件(例如“if”条件),转移2(“与”门110和比较器120)对应于下一个最高优先条件(例如“else if”条件),而转移3(“与”门112和比较器122)对应于最低优先条件(例如另一个“else if”条件)。各个比较器中每一个的输出值,即是启动(由逻辑“1”表示)还是禁止(由逻辑“0”表示)各个向量。在表1中,字母“X”表示与比较器120和122的各个输出相关联的“无关”状态。
各个比较器116、120和122中每一个的输出值指示是启动(由逻辑“1”表示)还是禁止(由逻辑“0”表示)各个向量(存储在屏蔽存储器102中的向量)。所提供的结果还假设,在实现相关转移的结果或状态转换之前已经满足了IF_MASK所定义条件的任何定义的发生值。由此表1的结果定义了优先编码器,该优先编码器可用于根据预定级别以及启动或禁止了哪个条件转移来加载状态数据。当不满足任何条件时(例如所有条件都等于0时),多路复用器124保持其当前状态。本领域的技术人员将了解和理解可实现类似于表1中所示功能性的功能性以便基于本文所包含的教学而在包括硬件和/或软件的计算机系统内实现状态机的各种方式。
表1
转移1 | 转移2 | 转移3 | 结果 |
0 | 0 | 0 | 加载CURR_STATE |
0 | 0 | 1 | 加载ELS1_NEXT状态 |
0 | 1 | X | 加载ELS2_NEXT状态 |
1 | X | X | 加载IF_NEXT状态 |
在图3示例中,“与”门118至少部分基于比较器116、118和120的输出向多路复用器124提供多位控制输入(LOAD_SEL)。多路复用器124接收作为其输入的IF_NEXT向量、ELS1_NEXT向量和ELS2_NEXT向量以及从输出寄存器126的输出反馈的当前状态(CURR_STATE)信号。多路复用器124基于LOAD_SEL信号用输入(IF_NEXT、ELS1_NEXT、ELS2_NEXT、CURR_STATE)中的所选输入加载输出寄存器126,以便向定义系统100的状态CURR_STATE的寄存器126提供多位(例如三位输出)信号。也就是说,在满足与IF_MASK相关联的条件时,“与”门118提供加载选择信号,用于加载IF_NEXT向量以设置下一个状态。类似地,如果不满足IF_MASK条件而满足了ELS1_MASK,则“与”门118可提供LOAD_SEL信号来选择对应于到状态机另一个状态的转换的ELS1_NEXT向量。此外,在不满足IF_MASK和ELS1_MASK条件而满足了ELS2_MASK条件时,“与”门118将比较器122的输出用于提供LOAD_SEL信号来控制多路复用器124选择ELS2_NEXT向量。在不满足任何条件时,LOAD_SEL信号可基于作为多路复用器124的输入反馈的当前状态来保持其当前状态。这些条件转换在以上表1中示出。
系统100还可包括发生系统130,该发生系统操作上用于要求相关的给定条件转移(例如IF_MASK)的多个命中或发生,以启动到下一个状态的转换。虽然其它发生要求也可与其它条件转移或状态机电路106转移的组合结合使用,但图3的示例假设发生系统130仅应用于IF_MASK向量。此外,虽然状态机电路106描述为包括三个状态转移,但本领域技术人员将了解和理解各种其它类型的转移和其它数量的转移也可用在状态机电路106中。
发生系统130包括计数器132,该计数器操作上用于在对于当前状态满足了与IF_MASK向量相关联的条件时对发生进行计数。存储器102可经由总线104向比较器134提供发生值(OCC_VAL)。OCC_VAL的值定义在IF_MASK向量可启动“与”门加载IF_NEXT向量之前要求的一个或多个发生的数目。对于状态机的不同状态,可编程相同或不同的发生值。比较器134比较OCC_VAL和计数器132提供的计数器值。比较器134基于该比较驱动“与”门136的输入。“与”门136将反相“触发”(~TRIGGER)信号和比较器输出相“与”,以提供指示是否已经满足了发生数的输出信号,如OCC_MET所示。
由此“与”门118将多位输入相“与”,该多位输入包括OCC_MET以及两个与用于控制多路复用器124的比较器116、120和122的各个输出有关的反相“触发”信号。相应地,在还未满足IF_MASK向量的发生要求(例如计数器值小于OCC_VAL)且还未宣称“触发”信号时,“与”门118基于CURR_STATE的ELS1_MASK向量和ELS2_MASK向量的应用来恢复。也就是说,OCC_MET屏蔽IF_NEXT向量,直到计数器132的输出满足OCC_VAL为止。换言之,直到已经满足了与IF_MASK向量相关联的发生要求,状态机的下一个状态才会对应于ELS1_NEXT向量、ELS2_NEXT向量和CURR_STATE中的一个。
如上所述,含有状态转换的向量的存储器102基于可编程输入数据是可编程的,如PROG_IN所示。例如,存储器102可实现为系统可寻址存储器(例如寄存器阵列),其可编程为由实现系统100的计算机系统的系统处理器或由其它内部或外部工具经由相关接口可寻址的存储器。地址计数器140操作上用于提供写地址(ADDR)信号,以将所选项写入存储器102(其具有来自PROG_IN输入的数据)中。ADDR可以是定义存储器102中地址的多位信号。还向存储器102提供写启动输入(WR_EN),来启动写入指定项。地址计数器140可由输入该地址计数器的复位程序(RST_PROG)启动。可控制地址计数器140按步长增加计数,用以基于STEP_TRIG_PROG输入来存取存储器102中的期望项。可由诸如处理器或者能够存取这种存储器102的其它期望接口经由系统可寻址存储器提供STEP_TRIG_PROG、RST_PROG和WR_EN输入中的每一个。
在正常操作期间,可基于读地址输入信号(RD_ADDR所示)经由总线104从存储器102中读取数据(RD_DATA)。RD_ADDR输入被提供给多路复用器142,对应于状态机的CURR_STATE和地址计数器140提供的地址ADDR中所选的一个。多路复用器142基于“触发”信号选择读地址,以便在触发事件发生时,可在读数据总线104提供与当前状态相关联的转换信息。
图4示出了可与图3中所示和描述的分析系统100结合使用的触发脉冲发生器150的示例。触发脉冲发生器150操作上用于提供“触发”信号和触发延迟信号(TRIG_DELAY)。系统150基于估计各种信号状态的触发逻辑来提供“触发”信号。例如,触发逻辑可包括比较CURR_STATE和预定FINAL_STATE信号的比较器152。比较器152驱动“与”门154的输入,该“与”门将比较器输出和复位触发程序(RST_TRIG_PROG)信号的反相型式相“与”,该复位触发程序信号可以是存储在系统可寻址存储器中的用户可编程信号。“与”门154又驱动“或”门156的输入。
“或”门156还可接收强制触发(FORCE_TRIG)输入信号,该信号可用于强制系统150宣称“触发”信号。另一个“与”门158将反相的TRIG_IN/MODE信号和内触发(TRIG_IN)信号相“与”,以便驱动“或”门156的另一个输入。“或”门156基于提供给“或”门的各个输入来驱动“与”门160。此外,TRIG_IN/MODE信号和TRIG_IN信号被提供给执行逻辑“或”功能的另一个“或”门162,以便向“与”门160的另一个输入提供各个输出。由此“与”门160基于“或”门156和162的输出产生“触发”信号。本领域的技术人员将了解和理解可产生触发信号的各种方式,诸如基于期望的性能特性和设计要求。
系统150还包括触发延迟发生器163,该触发延迟发生器操作上基于“触发”信号、STOR_QUAL信号和TRIG_DELAY信号的反相型式来产生TRIG_DELAY信号。例如,触发延迟发生器163包括“与”门164,该“与”门将“触发”信号、TRIG_DELAY信号的反相型式和STOR_QUAL信号相“与”。“与”门164驱动计数器166,该计数器基于“与”门164的输出而启动。假如没有宣称TRIG_DELAY信号而宣称了STOR_QUAL和“触发”信号(例如对应于限定的触发事件),由此计数器166增加其值。计数器166可经由RST_TRIG_PROG信号复位,该RST_TRIG_PROG信号可由诸如处理器或其它实用程序写入系统可寻址存储器。比较器168比较计数器166的输出和预定的计数器值(POST_STORE所示)。POST_STORE值可以是写入相应系统可寻址存储器用于实现期望触发延迟的预定值。
POST_STORE可编程为(例如在图3的存储器102中)定义触发延迟值,该触发延迟值设置与相应触发事件有关的数据捕获点(例如在宣称“触发”信号时)。例如,逻辑分析系统的相应捕获缓冲器可捕获数据集,该数据集可基于最小POST_STORE值(例如POST_STORE=0)而在触发事件之前存储在捕获缓冲器中。在此情况下,捕获缓冲器将在触发事件时切断并停止存储来自总线的数据。备选地,POST_STORE值可将触发延迟设置为使捕获缓冲器基于对应于捕获缓冲器大小的最大POST_STORE值而在触发事件之后存储所有数据。在后一种情况下,捕获缓冲器将在触发事件之后用来自调试总线的数据填充捕获缓冲器。
另一个备选是基于POST_STORE值将数据集存储在捕获窗口中,该窗口位于上述两种捕获情况之间的任何地方。比较器168驱动“或”门170的输入。“或”门170的其它输入包括“触发”信号和FORCE_TRIG信号。由此“或”门170基于比较器168的输出、FORCE_TRIG信号和“触发”信号而产生TRIG_DELAY信号。可将TRIG_DELAY信号与STOR_QUAL信号一起提供给捕获缓冲器,用于控制诸如本文所述的捕获缓冲器的操作。
图5示出了逻辑分析器系统200的示例。系统200用于从数据总线202获取数据。数据总线202例如可接收来自集成电路芯片中一个或多个源或者来自实现系统200的相关装置中任何地方的数据。本领域的技术人员将了解和理解可用于驱动具有数据的总线202的各种方法和馈电结构。例如,数据总线202可操作为同步总线结构,该同步总线结构配置为传播来自实现系统200的集成电路中一个或多个预定位置的多位数据。在多处理器、多单元计算机系统中,例如总线202还可接收来自其它集成电路和其它电路板的、经由诸如纵横结构提供的数据。
监控系统204接收并监控在总线202上提供的数据。监控系统204可包括多个编程为和/或配置为基于在总线202上传播的数据来确定是否已经满足了某些性能条件的性能监控器/计数器。例如,监控系统204可配置为实现与总线202上数据子集有关的算术运算、逻辑运算和匹配运算及其组合。监控系统204可提供相应的多位输出(TRIG_OUT_LIST),该多位输出指示正在监控的每个性能条件的结果。例如,监控系统204可在每个时钟周期宣称TRIG_OUT_LIST信号中的相应输出位,在每个时钟周期内都满足一些或所有数据总线202预定子集的给定条件。例如可响应于监控系统的相应性能计数器的值在给定时钟周期的增加来宣称TRIG_OUT_LIST中的每位。
通过写入相关的存储器206,性能条件是可编程和定义的。相关存储器206可以是由一个或多个程序(输入)信号可编程的计算机系统(例如控制和状态寄存器阵列(CSR))内的一个或多个系统可寻址存储块。输入信号可用于设置监控系统204要对总线202上的数据执行的期望逻辑、匹配和/或算术运算。存储器206可提供(或者监控系统204可读取)PROG_MON信号,以为监控系统204所监控的每个性能条件编程性能条件。可存在与编程监控系统204要估计的每个性能条件相关联的存储器206的单独块。例如,可由内部存储器(例如经由系统可寻址存储器)或从外部装置或系统实用程序,通过写入分配给监控系统204各个性能监控电路的存储器206中的预定地址位置,来对存储器206中的相应块进行编程。
监控系统204向限定系统208和分析系统210提供TRIG_OUT_LIST信号。TRIG_OUT_LIST信号可提供为多位总线上的数据,其包括监控系统204监控的每个性能条件的各个输出。例如,在满足监控系统204正在实现的特定条件时,可由监控系统204在时钟周期内宣称TRIG_OUT_LIST信号中的相应位(或多位)。TRIG_OUT_LIST信号中相应位(或多位)的宣称可对应于增加监控系统204各个性能监控电路中的相应计数器或其它跟踪电路。由此,多位输出TRIG_OUT_LIST提供关于在总线202上提供的数据中是否已经满足某些条件的指示,并且另一个信号212可提供随时间与这种性能相关联的值。本领域的技术人员将了解和理解,监控系统204可编程和配置为监控与总线202上的数据相关联的一个或多个条件中的任意个。
限定系统208相对于监控系统204提供的TRIG_OUT_LIST数据执行匹配和限定功能。限定系统208向相关数据捕获系统214提供STOR_QUAL信号,以便标识是否应从数据总线202中捕获数据。例如,可经由PROG_SQ信号将限定系统208编程为诸如对与编程数据有关的所选一组或一小组TRIG_OUT_LIST数据执行限定逻辑或匹配功能。例如,匹配功能可实现可匹配的屏蔽功能,该功能确定是否应在每个时钟周期基于由TRIG_OUT_LIST信号表示的变量的结果来从数据总线捕获数据。由此,匹配功能可提供STOR_QUAL信号,以标识与监控系统204正在监控的性能条件的结果相关联的一个或多个模式。
分析系统210配置为提供状态机,该状态机基于来自监控系统204的TRIG_OUT_LIST数据所指示的性能信息来执行总线上数据的内部逻辑分析。分析系统210提供“触发”信号和触发延迟(TRIG_DELAY)信号,以便控制用于从总线202获取数据集的捕获会话。例如,分析系统210可实现为状态机结构(例如Mealy或Moore),该状态机结构基于监控系统204所实现的性能条件在状态之间转换。如本文所述,当性能条件满足时,可在时钟周期内宣称TRIG_OUT_LIST中的各个数据,以便启动分析系统210所要执行的逻辑分析。分析系统210可基于TRIG_OUT_LIST信号和STOR_QUAL信号向数据捕获系统214提供TRIG_DELAY信号。如上所述,还可将“触发”信号提供给限定逻辑块208。
分析系统210可用向量(PROG_TRIG)来配置,该向量基于实现的条件来定义相关电路要用于分析TRIG_OUT_LIST的一组条件,以及可能发生的一组可能状态转换。分析系统210还可采用具有附加状态转换的条件转移,对于每个转移,该状态转换可基于TRIG_OUT_LIST数据以及基于分析系统210实现的状态机的当前状态而变化。当分析系统210转换到分析系统的一个或多个可编程状态(该状态设计为使“触发”信号宣称)时,触发事件或条件可能发生。
例如,状态机可包括使分析系统210宣称“触发”信号的“最终状态”。此外,在转换到与给定条件相关联的下一个状态之前,可要求给定条件的一个或多个发生中的预定个。例如,可将值编程(例如经由PROG_TRIG信号)为设置与至少一部分(例如一个或多个)TRIG_OUT_LIST数据相关联的给定条件的发生数,其必须被满足以便对于给定条件启动到下一个状态的转换。也可存在可编程构件,以强制分析系统210宣称“触发”信号。
分析系统210还可定义与预定事件的发生有关的数据集。在示例性逻辑分析系统200中,预定事件对应于正在宣称“触发”信号,当状态机转换到其多个状态中的给定状态时,这可能发生。分析系统210可基于与“触发”信号有关(例如之前、之后或与之重叠)的STOR_QUAL信号来对多个限定存储周期进行计数或跟踪。分析系统210又响应于对预定数量存储周期的计数或跟踪来提供TRIG_DELAY信号,同时相对于“触发”信号的宣称而启动。
在另一个示例中,诸如在宣称“触发”信号时,分析系统210可编程为(例如经由PROG_TRIG信号)相对于触发点来调节数据捕获的定时。例如,该定时可编程为:定义在触发事件发生之前、在触发事件发生之后或在包括触发事件的某窗口之内捕获缓冲器是否要存储数据。例如,该窗口可根据数据捕获系统214所采用的一个或多个缓冲器或与用于存储来自总线202的数据的一个或多个缓冲器共同使用的其它存储器的大小而变化。
数据捕获系统214操作上用于至少部分基于来自限定逻辑的STOR_QUAL信号并基于由分析系统210提供的“触发”和TRIG_DELAY信号来存储来自总线202的数据。数据捕获系统214包括捕获缓冲器控制逻辑,该逻辑可设置为定义要存储的数据量、要存储的数据类型以及将如何存储数据。例如,数据捕获系统214的控制逻辑可包括配置为激活数据捕获系统214用以响应于STOR_QUAL和TRIG_DELAY信号来读取和存储来自总线202的数据的硬件配置。数据捕获系统214可向可由系统处理器读取的相关存储器诸如系统可寻址存储器提供其相应的输出信号(OUT)。
本领域的技术人员将理解可用于将程序数据输入到系统200各个部分以及用于存储来自系统200的输出OUT数据的各种类型存储器结构(例如寄存器阵列、缓冲器、RAM、高速缓存等)。此外,包括监控系统204、限定系统208、分析系统210和数据捕获系统214(或者其中至少一部分)的系统200可实现为专用集成电路(ASIC)的一部分。ASIC可实现为芯片组(诸如部分计算机系统、路由器或其它复杂电路)内部的集成逻辑分析器。
图6示出了可用于监控与总线252(诸如可观测性总线)上的数据相关联的性能特性的性能监控系统250的示例。性能监控系统250可实现为在IC(诸如组成计算机系统、路由器或其它电子系统的一部分芯片组的IC)内实现的一部分逻辑分析器系统。性能监控系统250包括多个表示为性能监控计数器(PMON/计数器0和PMON/计数器1直到PMON/计数器N)254的子系统,其中N是正整数,而N+1表示PMON/计数器254的数量。PMON/计数器254共同驱动对应于TRIG_OUT_LIST指示的多位输出信号的输出总线256。由此,输出总线256可包括N+1位,一位与每个PMON/计数器254相关联。
每一个PMON/计数器254可实现为可编程逻辑的配置,诸如可编程逻辑器件(PLD)、现场可编程门阵列、其它硬件或硬件和软件的组合。每个PMON/计数器254可编程为实现在总线252上选择的部分数据或子范围数据的运算或功能。例如,每个PMON/计数器254可实现与来自总线252的一个或多个选定位有关的匹配功能。PMON/计数器254还可对总线252上的一位或多位实现逻辑功能(例如“反”、“与”、“或”、“异或”、“或非”、“同”以及其它逻辑功能和功能的组合)、算术功能(例如加、减、乘、除等)以及逻辑和算术功能的组合。
系统可寻址存储器258操作上与每一个PMON/计数器254相关联,以便对要相对于总线252上的数据执行的期望运算或功能进行编程。系统可寻址存储器258可由系统处理器270以及相关诊断实用程序(未示出)或者能够写入系统可寻址存储器258的其它装置存取。系统可寻址存储器258中的数据对各个PMON/计数器254中每一个执行的特定运算或功能进行编程。
在图6示例中,PMON/计数器0示为包括条件块260和计数器262。条件块260实现关于数据总线252上一个或多个所选数据位的性能条件,该条件可包括对数据执行运算或功能,诸如算术功能、逻辑功能或逻辑和算术功能的组合。可根据来自系统可寻址存储器258的PROG_PMON_0信号对PMON/计数器0执行的特定逻辑和/或算术功能进行编程。PROG_PMON_0信号还可确定要对来自总线252的哪个数据实现性能条件,诸如通过标识这种数据的各个地址的方式。
例如,PROG_PMON_0信号可包括设置性能条件(例如逻辑功能和/或算术运算)的一位或多位,对从总线252选择的数据执行该性能条件。条件块260基于对数据的函数或运算应用来向计数器262提供条件信号(PMON_0)264。条件块260可在每个时钟周期或其它选定时间间隔执行性能条件。当性能条件满足时,条件块260诸如在一个或多个时钟周期上宣称对应于PMON_0的其输出264(例如时钟周期内的逻辑“高”)。例如,如果在多个时钟周期上满足性能条件,则条件块260可在多个时钟周期上将PMON_0保持在宣称的状态。备选地,条件块260可触发PMON_0输出信号。PMON_0对应于形成TRIG_OUT_LIST信号的部分输出总线256。可响应于在每个时钟周期增加各个PMON/计数器254的值来宣称TRIG_OUT_LIST中的每位。TRIG_OUT_LIST又可用于驱动本文所述的触发状态机。作为双重使用PMON/计数器254的结果(例如驱动各个性能计数器值并驱动触发状态机),可获得硬件的有效使用。
输出条件信号PMON_0还可调节与条件块正在监控的数据相关联的性能的测量。在图6示例中,监控的PMON_0根据在给定时钟周期内是否满足条件块260实现的性能条件来增加(或减少)计数器262。计数器262提供PCOUNT信号,该信号的值指示各个性能监控子系统所监控的性能的测量。例如,PCOUNT信号的值可指示诸如在给定捕获会话期间或多个会话上满足条件块260所实现的性能条件的次数。如果需要,可将计数器262复位。
虽然会理解可与关于PMON/计数器0所示和所述的类似地配置PMON/计数器1到PMON/计数器N中的每一个,但出于简化说明的目的,从图6中省略了其它PMON/计数器1到PMON/计数器N的内部内容。也就是说,每个PMON/计数器254可编程和/或配置为执行各个性能条件,这些性能条件基于是否满足该条件来驱动相关计数器。每当基于性能条件增加(或减少)计数器时,还在总线256上的TRIG_OUT_LIST中(例如在时钟周期内)宣称从各个PMON/计数器254输出的相应PMON。由此与TRIG_OUT_LIST信号相关联的总线256上N位中的每一位都根据每一个PMON/计数器254中条件块所实现的性能条件来提供与总线252上所选数据部分相关联的性能指示。虽然PMON/计数器254已被描述为可编程的,但还考虑到可以硬连线一个或多个PMON/计数器254,以便实现固定的性能监控条件。
系统250还可包括另一个通用计数器266,该计数器增加计数器值以在每个时钟周期(或在某其它周期间隔上)提供参考计数信号。由此计数器266的值可与来自计数器262(以及其它PMON/计数器254的计数器)的PCOUNT信号进行比较或估计,以确定满足了条件块260(以及其它PMON/计数器254的其它条件块)所实现的各个性能条件的频率指示。例如,当处理器270执行对应于诊断实用程序的指令时可采用计数器。计数器266的值还可用于控制一个或多个PMON/计数器254的操作。
图7描述了图示计算机系统350示例的框图,其可实现一个或多个逻辑分析器系统,诸如包括本文(例如图1-6和图8)示出和描述的系统和部件的逻辑分析器系统。虽然单处理器系统也可使用逻辑分析器,但图7的计算机系统350示为分布式存储器多处理器系统。系统350包括分别在单元1、单元2到单元M所示的多个单元352,其中M是大于或等于1的整数,表示单元的数目。可实现为单元板的每一个单元352经由互连354(诸如背面或纵横结构)通信地耦合到其它单元。互连354可实现为专用集成电路(ASIC)。
在图7示例中,在互连354内实现一个或多个逻辑分析器356;即,第一互连中的一个逻辑分析器和另一互连中的两个逻辑分析器。本领域技术人员将了解和理解,可在互连354内以及包括集成电路上单元352或I/O子系统358中的其它电路中实现一个或多个逻辑分析器中的任意个。通过示例,每个逻辑分析器356耦合到各个互连354内的总线结构(例如可观测性总线),可用来自一个或多个单元352内部件的数据驱动该互连。此外,如本文所述,在系统350内每个逻辑分析器356可包括可寻址存储器,该存储器可由任一个相关单元352上的部件读取或写入。
通过另一个示例,I/O(输入/输出)子系统358与每一个单元352联系在一起。I/O子系统358可提供接口或路径,用于诸如通过相应的适配器(未示出)来存取相关总线结构(例如PCI总线结构)或耦合到相应总线结构的其它装置。本领域技术人员会了解和理解可被存取或可经由I/O子系统358存取存储器的各种类型I/O装置358。
此外,包含一个逻辑分析器356的互连354可耦合到包含两个逻辑分析器的另一个互连,用以存取包括一个或多个其它单元(未示出)的另一个基于单元的结构。可与图8中示出和描述的相类似地配置另一个基于单元的结构(未示出)。本领域技术人员会了解和理解,可用任何数量的单元、用正在实现的一个或多个逻辑分析器中的任意个来实现系统350。
虽然本领域技术人员会了解和理解能以类似方式实现其它各个单元352中的每一个,但出于简洁目的,仅示出了单元1的内部内容。备选地,也可相对于不同单元352实现不同的配置。
转到单元1的内容,单元1包括单元控制器360,其通过相关缓冲网络364耦合到单元存储器子系统362。缓冲网络364可包括队列(例如输入队列和输出队列),以提供存储器子系统362和控制器360之间请求和响应的智能缓冲。一个或多个中央处理器(CPU)366也连接到控制器360,用于存取存储器子系统362。每一个CPU 366可包括相关高速缓存(未示出),该高速缓存用于在不需要存取存储器子系统362的情况下存储由CPU局部存取的数据。在图8所示的配置中,CPU 366和I/O子系统358中的每个都可看作是操作上经由控制器360存取存储器子系统362中数据的存储器存取装置。控制器360可包括固件、配置和状态寄存器(CSR)以及用于存取存储器子系统362中数据的有序存取队列。存储器子系统362可包括一个或多个存储器模块(包括一个或多个DIMM或SIMM存储器件)中的任意个。
当CPU 366和/或I/O子系统358存取数据时,控制器或其它结构可将这种数据中所选部分或全部驱动到与一个或多个逻辑分析器356相关联的可观测性总线。逻辑分析器356又能监控相关可观测性总线上的数据,基于该监控来限定数据,并基于数据的限定来捕获数据。逻辑分析器还可实现状态机,该状态机包括一个或多个条件,该条件控制状态转换以及给定的数据捕获会话如何进行,诸如本文所述的。在一个示例中,状态机可实现为硬件(例如门或其它电路的配置),其能以与驱动包括逻辑分析器的集成电路的系统时钟基本相当的速率在多个状态之间转换。
还将理解到,可由在一个或多个CPU 366中运行的计算机可执行指令来以程序方式发起和控制一个或多个逻辑分析器356的数据捕获会话。备选或附加地,可由实用程序或诊断工具发起和控制捕获会话。例如,实用程序或诊断工具可内部运行在CPU 366内或作为一个I/O子系统358的一部分在外部运行。本领域技术人员将了解和理解基于本文包含的教学在计算机系统350中可采用的逻辑分析器的各种实现。
考虑到上述的前述结构和功能特征,参考图8将更好地理解某一方法。要了解和理解到,在其它实施例中,图示的动作可以不同的顺序发生,和/或与其它动作同时发生。此外,可不要求所有图示特征都实现方法。还应理解到,可用硬件(例如包括诸如晶体管、数字信号处理器或专用集成电路的逻辑门)、软件(例如运行在一个或多个处理器上的可执行指令)或硬件和软件的任意组合来实现以下方法。
图8示出了可通过集成电路实现的方法400的示例。方法400包括用状态数据和条件数据对部分集成电路进行编程,该状态数据定义状态机的多个可能状态,而条件数据定义用于控制多个可能状态之间转换的一组条件,如410所示。相对于输入数据应用该组条件中的至少一个条件(420处),所应用的至少一个条件与当前状态相关联。在430处,基于与当前状态相关联的至少一个条件的应用来选择多个可能状态中的下一个状态。在440处,基于对应于多个可能状态中预定状态的下一个状态来产生触发信号。
以上描述的是本发明的示例。当然,不可能为了描述本发明而描述部件或方法的每个可想到的组合,但是本领域的一般技术人员将认识到,本发明的许多其它组合和变更也是可能的。例如,可在给定的ASIC中实现用于控制数据捕获的一个或多个系统中的任意个,并可将任意个这种ASIC集成到计算机系统、路由器或其它类型的电子电路系统中。因此,本发明意图包含落入所附权利要求书的精神和范围内的所有这种更改、修改和改变。
Claims (10)
1.一种专用集成电路(ASIC)(10,200,354),包括:
存储器(18,52,102,206),其存储定义用于启动在多个状态之间转换的条件的条件数据以及定义与各个条件中每一个相关联的下一个状态的下一个状态数据;以及
状态机电路(12,50,106,210),其采用所述条件数据和所述下一个状态数据来作为相对于输入数据应用至少一个条件的函数而从所述状态机电路的当前状态转换到下一个状态,所述至少一个条件由与所述当前状态相关联的条件数据定义,所述状态机电路(12,50,106,210)基于所述状态机电路(12,50,106,210)的所述当前状态将下一个状态数据与所述至少一个条件相关联;及
控制电路(24,50,70,150,210),其响应于所述状态机电路(12,50,106,210)的所述当前状态转换到所述多个状态中的至少一个预定状态来提供触发信号。
2.如权利要求1所述的ASIC(10,200,354),其中所述状态机电路(12,50,106,210)还包括多个条件部件(14,58,108,110,112,116,120,122),所述多个条件部件对应于实现由所述条件数据定义的各个条件的条件转移,所述状态机电路(12,50,106,210)基于应用到所述输入数据的所述各个条件的结果来从所述当前状态转换到多个可用状态中的各个下一个状态。
3.如权利要求2所述的ASIC(10,200,354),其中至少一个所述条件部件(14,58,108,110,112,116,120,122)通过与至少一个信号匹配来实现所述各个条件中的至少一个,所述各个条件中的所述至少一个根据所述状态机电路(12,50,106,210)的所述当前状态而改变,所述至少一个信号定义所述输入数据。
4.如权利要求2所述的ASIC(10,200,354),还包括发生系统(66,130),所述发生系统操作上用于设置在对于所述多个条件部件(14,58,108,110,112,116,120,122)中给定部件启动转换到所述多个状态的下一个状态之前满足与所述多个条件部件中所述给定部件相关联的各个条件的若干发生。
5.如权利要求4所述的ASIC(10,200,354),其中所述发生系统(66,130)还包括计数器(68,132),所述计数器提供已经满足了与所述多个条件部件(14,58,108,110,112,116,120,122)中所述给定部件相关联的所述各个条件的若干发生的指示,在指示发生数的值达到预定值时,所述状态机电路(12,50,106,210)启动从所述当前状态到与所述多个条件部件(14,58,108,110,112,116,120,122)中所述给定部件相关联的下一个状态的转换。
6.如权利要求2所述的ASIC(10,200,354),其中所述存储器(18,52,102,206)可编程为定义与所述多个条件部件(14,58,108,110,112,116,120,122)中每一个相关联的所述各个条件以及所述状态机电路(12,50,106,210)基于所述多个条件部件(14,58,108,110,112,116,120,122)为所述当前状态实现的所述各个条件而转换到所述多个状态中的哪个状态,其中根据分配给所述多个条件部件(14,58,108,110,112,116,120,122)的优先级来选择相应下一个状态。
7.如权利要求1所述的ASIC(10,200,354),其中所述状态机电路(12,50,106,210)配置为以与所述ASIC(10,200,354)的时钟周期基本相当的速率从所述当前状态转换到所述下一个状态,所述速率取决于所述输入数据的频域。
8.如权利要求1所述的ASIC(10,200,354),其中所述至少一个条件还包括与所述当前状态相关联的多个条件,所述ASIC(10,200,354)还包括选择系统(16,62),所述选择系统操作上基于相对于所述输入数据应用与所述当前状态相关联的所述多个条件并根据分配给所述多个条件的优先级来选择所述下一个状态。
9.如权利要求1所述的ASIC(10,200,354),还包括嵌入式逻辑分析器(200,356),所述嵌入式逻辑分析器(200,356)包括:
所述状态机电路(12,50,106,210)和所述控制电路(24,50,70,150,210);
相关数据总线(202,252,354),所述输入数据在其上传播;以及
数据捕获系统(214),其响应于指示限定的存储周期的存储信号并基于所述触发信号来存储来自所述相关数据总线(202,252,354)的数据集。
10.如权利要求9所述的ASIC(10,200,354),其中所述嵌入式逻辑分析器(200,356)还包括:发生系统(66,130),其操作上用于设置在启动转换到与给定条件相关联的下一个状态之前满足所述给定条件的若干发生;
监控系统(204,250),其提供定义所述输入数据的多个信号,所述多个信号中每一个的值都随所述相关总线(202,252,354)上数据的性能函数而变化,所述状态机电路(12,50,106,210)将与所述当前状态相关联的所述条件应用到所述多个信号,以启动从所述当前状态到所述下一个状态的转换;以及
限定系统(208),其通过将给定存储周期内的数据限定为所述多个信号中至少一部分信号的函数来提供所述存储信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/032,949 US7348799B2 (en) | 2005-01-11 | 2005-01-11 | System and method for generating a trigger signal |
US11/032949 | 2005-01-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1804809A true CN1804809A (zh) | 2006-07-19 |
CN100451980C CN100451980C (zh) | 2009-01-14 |
Family
ID=36755873
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100025964A Expired - Fee Related CN100451980C (zh) | 2005-01-11 | 2006-01-10 | 产生触发信号的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7348799B2 (zh) |
CN (1) | CN100451980C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103140769A (zh) * | 2010-09-08 | 2013-06-05 | 利盟国际有限公司 | 包括具有增强的分析和调试能力的可编程逻辑分析仪的集成电路及其方法 |
CN105158680A (zh) * | 2014-06-05 | 2015-12-16 | Arm有限公司 | 逻辑分析仪 |
CN103870323B (zh) * | 2012-12-17 | 2017-07-04 | 美国亚德诺半导体公司 | 触发路由单元 |
CN108701109A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 用于计算机扩展总线的插件机制的方法、装置和系统 |
CN116662212A (zh) * | 2023-07-31 | 2023-08-29 | 上海芯炽科技集团有限公司 | 一种使用于asic的内置逻辑分析仪的方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI384441B (zh) * | 2006-08-31 | 2013-02-01 | Gigno Technology Co Ltd | 背光模組的驅動控制裝置及驅動控制方法 |
JP4386261B2 (ja) * | 2004-01-15 | 2009-12-16 | 株式会社エヌ・ティ・ティ・ドコモ | 移動通信端末及び課金制御装置 |
US7809991B2 (en) * | 2005-01-11 | 2010-10-05 | Hewlett-Packard Development Company, L.P. | System and method to qualify data capture |
US7752016B2 (en) * | 2005-01-11 | 2010-07-06 | Hewlett-Packard Development Company, L.P. | System and method for data analysis |
US7911443B2 (en) * | 2006-08-31 | 2011-03-22 | Gigno Technology Co., Ltd. | Driving-control device and method of backlight module |
JP2009048291A (ja) * | 2007-08-15 | 2009-03-05 | Oki Electric Ind Co Ltd | システム解析装置及びプログラム |
US8423584B2 (en) * | 2008-05-08 | 2013-04-16 | International Business Machines Corporation | Conditional inclusion of resources in a computer system configuration |
US8407528B2 (en) * | 2009-06-30 | 2013-03-26 | Texas Instruments Incorporated | Circuits, systems, apparatus and processes for monitoring activity in multi-processing systems |
US8332697B1 (en) * | 2010-07-20 | 2012-12-11 | Xilinx, Inc. | Method and apparatus for triggering and capturing digital circuit signals |
US8635497B2 (en) | 2011-06-28 | 2014-01-21 | Freescale Semiconductor, Inc. | Data processing system having a sequence processing unit and method of operation |
CN105530297B (zh) * | 2015-12-11 | 2019-03-08 | 北京奇虎科技有限公司 | 一种网页资源包上传方法和装置 |
US10228394B2 (en) * | 2016-02-29 | 2019-03-12 | Keysight Technologies, Inc. | Measurement system that stores pre- and post-qualification signal data |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4791356A (en) | 1986-09-19 | 1988-12-13 | Zehntel Incorporation | In-circuit testing system |
JPH0887462A (ja) * | 1994-09-20 | 1996-04-02 | Fujitsu Ltd | ステートマシン及び通信制御方式 |
KR0149891B1 (ko) | 1994-12-22 | 1999-05-15 | 윤종용 | 버스상태분석기 및 그 내부버스시험방법 |
US5650734A (en) * | 1995-12-11 | 1997-07-22 | Altera Corporation | Programming programmable transistor devices using state machines |
US5828872A (en) * | 1996-07-01 | 1998-10-27 | Sun Microsystems, Inc. | Implementation of high speed synchronous state machines with short setup and hold time signals |
US6003107A (en) | 1996-09-10 | 1999-12-14 | Hewlett-Packard Company | Circuitry for providing external access to signals that are internal to an integrated circuit chip package |
US5881224A (en) | 1996-09-10 | 1999-03-09 | Hewlett-Packard Company | Apparatus and method for tracking events in a microprocessor that can retire more than one instruction during a clock cycle |
US6134705A (en) | 1996-10-28 | 2000-10-17 | Altera Corporation | Generation of sub-netlists for use in incremental compilation |
US5956476A (en) | 1996-10-31 | 1999-09-21 | Hewlett Packard Company | Circuitry and method for detecting signal patterns on a bus using dynamically changing expected patterns |
US5880671A (en) | 1996-10-31 | 1999-03-09 | Hewlett-Packard Company | Flexible circuitry and method for detecting signal patterns on a bus |
US5956477A (en) | 1996-11-25 | 1999-09-21 | Hewlett-Packard Company | Method for processing information in a microprocessor to facilitate debug and performance monitoring |
US6009539A (en) | 1996-11-27 | 1999-12-28 | Hewlett-Packard Company | Cross-triggering CPUs for enhanced test operations in a multi-CPU computer system |
US6041371A (en) * | 1996-12-19 | 2000-03-21 | Texas Instruments Incorporated | Asynchronous input/output for integrated circuits that latches external asynchronous signal in feedback path of state machine |
US5825199A (en) * | 1997-01-30 | 1998-10-20 | Vlsi Technology, Inc. | Reprogrammable state machine and method therefor |
US5960191A (en) | 1997-05-30 | 1999-09-28 | Quickturn Design Systems, Inc. | Emulation system with time-multiplexed interconnect |
US5949251A (en) * | 1997-08-01 | 1999-09-07 | Vlsi Technology, Inc. | Register-based programmable post-silicon system to patch and dynamically modify the behavior of synchronous state machines |
JP3539879B2 (ja) * | 1998-12-15 | 2004-07-07 | アルプス電気株式会社 | コンピュータの電源立ち上げ装置 |
US6397354B1 (en) | 1999-03-26 | 2002-05-28 | Hewlett-Packard Company | Method and apparatus for providing external access to signals that are internal to an integrated circuit chip package |
AU1458501A (en) * | 1999-11-05 | 2001-06-06 | Analog Devices, Inc. | Generic serial port architecture and system |
US6625783B2 (en) * | 2000-02-16 | 2003-09-23 | Logic Research Co., Ltd. | State machine, semiconductor device using state machine, and method of design thereof |
US7113902B2 (en) * | 2000-03-02 | 2006-09-26 | Texas Instruments Incorporated | Data processing condition detector with table lookup |
JP2004505333A (ja) * | 2000-03-17 | 2004-02-19 | エンペレイティヴ インコーポレイテッド | 通信サービスのプロビジョニング方法及び装置、及びプロビジョニング・モデルを開発するためのオブジェクト・プログラミング言語 |
US6732311B1 (en) | 2000-05-04 | 2004-05-04 | Agere Systems Inc. | On-chip debugger |
US7051239B2 (en) | 2001-12-28 | 2006-05-23 | Hewlett-Packard Development Company, L.P. | Method and apparatus for efficiently implementing trace and/or logic analysis mechanisms on a processor chip |
US7159083B2 (en) * | 2002-12-13 | 2007-01-02 | Texas Instruments Incorporated | Programmable transition state machine |
US6822474B2 (en) | 2002-12-31 | 2004-11-23 | Intel Corporation | On chip logic analyzer debug bus |
JP2004234720A (ja) * | 2003-01-29 | 2004-08-19 | Toshiba Corp | 半導体装置およびその状態遷移チェック方法 |
US7146538B2 (en) | 2003-03-28 | 2006-12-05 | Hewlett-Packard Development Company, L.P. | Bus interface module |
US20040193976A1 (en) | 2003-03-31 | 2004-09-30 | Slaight Thomas M. | Method and apparatus for interconnect built-in self test based system management failure monitoring |
US6873183B1 (en) * | 2003-05-12 | 2005-03-29 | Xilinx, Inc. | Method and circuit for glitchless clock control |
GB2403821B (en) * | 2003-07-07 | 2005-09-07 | Infineon Technologies Ag | Finite state machine circuit |
US7228472B2 (en) * | 2005-01-11 | 2007-06-05 | Hewlett-Packard Development Company, L.P. | System and method to control data capture |
-
2005
- 2005-01-11 US US11/032,949 patent/US7348799B2/en not_active Expired - Fee Related
-
2006
- 2006-01-10 CN CNB2006100025964A patent/CN100451980C/zh not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8914681B2 (en) | 2009-08-18 | 2014-12-16 | Lexmark International, Inc. | Integrated circuit including a programmable logic analyzer with enhanced analyzing and debugging capabilities and a method therefor |
CN103140769A (zh) * | 2010-09-08 | 2013-06-05 | 利盟国际有限公司 | 包括具有增强的分析和调试能力的可编程逻辑分析仪的集成电路及其方法 |
CN103140769B (zh) * | 2010-09-08 | 2015-11-25 | 利盟国际有限公司 | 包括具有增强的分析和调试能力的可编程逻辑分析仪的集成电路及其方法 |
CN103870323B (zh) * | 2012-12-17 | 2017-07-04 | 美国亚德诺半导体公司 | 触发路由单元 |
CN105158680A (zh) * | 2014-06-05 | 2015-12-16 | Arm有限公司 | 逻辑分析仪 |
CN105158680B (zh) * | 2014-06-05 | 2019-10-25 | Arm 有限公司 | 逻辑分析仪 |
CN108701109A (zh) * | 2016-04-01 | 2018-10-23 | 英特尔公司 | 用于计算机扩展总线的插件机制的方法、装置和系统 |
CN116662212A (zh) * | 2023-07-31 | 2023-08-29 | 上海芯炽科技集团有限公司 | 一种使用于asic的内置逻辑分析仪的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100451980C (zh) | 2009-01-14 |
US7348799B2 (en) | 2008-03-25 |
US20060170452A1 (en) | 2006-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1804809A (zh) | 产生触发信号的系统和方法 | |
US7503039B2 (en) | Preprocessor to improve the performance of message-passing-based parallel programs on virtualized multi-core processors | |
Ramirez et al. | The SARC architecture | |
WO2021178666A1 (en) | Systems and methods for intelligently buffer tracking for optimized dataflow within an integrated circuit architecture | |
US20140372983A1 (en) | Identifying the introduction of a software failure | |
Villa et al. | Need for speed: Experiences building a trustworthy system-level gpu simulator | |
Zhang et al. | Accurately estimating worst-case execution time for multi-core processors with shared direct-mapped instruction caches | |
US7228472B2 (en) | System and method to control data capture | |
US7809991B2 (en) | System and method to qualify data capture | |
Torabzadehkashi et al. | Accelerating hpc applications using computational storage devices | |
EP3356966A1 (en) | Interactive multi-step physical synthesis | |
US20220121593A1 (en) | Systems And Methods For Processor Circuits | |
US7954012B2 (en) | Hierarchical debug information collection | |
CN100336032C (zh) | 基于边界条件和自检查随机测试的cpu约束生成验证法 | |
US11675906B1 (en) | Simultaneous multi-processor (SiMulPro) apparatus, simultaneous transmit and receive (STAR) apparatus, DRAM interface apparatus, and associated methods | |
CN100339826C (zh) | 处理器和半导体器件 | |
Bîră et al. | OPINCAA: A Light-Weight and Flexible Programming Environment For Parallel SIMD Accelerators | |
Park et al. | ShortcutFusion++: optimizing an end-to-end CNN accelerator for high PE utilization | |
CN101290582A (zh) | 组件化时钟精确的多核体系模拟器的实现方法 | |
US20240303143A1 (en) | Systems and methods for detection of persistent faults in processing units and memory | |
US20240078312A1 (en) | Simultaneous Multi-Processor (SiMulPro) Apparatus, Simultaneous Transmit And Receive (STAR) Apparatus, DRAM Interface Apparatus, and Associated Methods | |
CN118171711B (zh) | 一种指令调度方法、系统、存储介质和电子设备 | |
JP7320624B2 (ja) | リタイミングパイプラインのためのストライプベースのセルフゲーティング | |
Lagraa et al. | Automatic congestion detection in mpsoc programs using data mining on simulation traces | |
Long | An Approach to Predicting Performance of Sparse Computations on NVIDIA GPUs |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090114 Termination date: 20130110 |