用于集成电路的逻辑分析器的制作方法

文档序号:20274734发布日期:2020-04-03 19:30阅读:198来源:国知局
用于集成电路的逻辑分析器的制作方法

本公开涉及集成电路(ic),尤其是涉及用于监测ic内的信号的逻辑分析器。



背景技术:

逻辑分析器是一种电子系统,该电子系统能够监测另一个电子系统的一个或多个信号。在一些情况下,逻辑分析器可用作内核,该内核可以被合并到在集成电路(ic)中实现的电路设计中。在此类情况下,逻辑分析器和由逻辑分析器监测的电路系统和/或信号可以在同一个ic内实现。

通常,逻辑分析器将被监测信号的值采样。采样率通常与时钟速率一致,以捕捉随着时间流逝的每个时钟周期的信号值。逻辑分析器要么在ic自身内的存储器内存储结果数据(例如,经采样的值),要么尝试将数据输出到另一个系统。由于采样速率、被监测的信号数量和在其上信号被监测的时间窗口,逻辑分析器生成大量的数据。当此数据被存储在ic中时,大量的存储器被需要。在从ic输出此数据时,大量的带宽被需要。这些约束限制了可以监测信号的时间窗口和/或限制了可以监测的信号的数目。



技术实现要素:

一个或多个实施例涉及用于监测在集成电路(ic)中的信号的方法。在一方面中,方法可以包括使用在ic内实现的逻辑分析器电路监测ic的探测信号,使用逻辑分析器电路检测在探测信号中的状态变化,以及在逻辑分析器电路中生成指定探测信号的加时间戳的状态变化的文件。

在一些实施例中,文件可以以ascii格式指定。

在一些实施例中,文件可以是值变化转储文件。

在一些实施例中,方法还可以包括将文件在被生成时基本上实时地输出到外部系统。

在一些实施例中,该方法还可以包括:响应于检测到探测信号的状态变化对应于触发条件,发起与该触发条件相关联的预定动作。

在一些实施例中,该方法还可以包括:将文件提供给在集成电路内的处理器。该处理器可以被配置为执行程序代码。

在一些实施例中,该方法还可以包括将文件提供给外部系统。该外部系统可以被配置为生成文件的可视化。

在一些实施例中,生成文件可以包括:编码头部段、编码变量定义段、编码初始值段和编码值变化段。

在一些实施例中,逻辑分析器电路可以使用集成电路的可编程电路系统以硬件实现。

一个或多个实施例涉及一种ic。在一方面中,一种ic包括:被监测电路系统,被监测电路系统被配置为生成信号;以及逻辑分析器电路。逻辑分析器电路被配置为:监测信号以检测在该信号中的状态变化,并且生成指定该信号的加时间戳的状态变化的文件。

在一些实施例中,文件可以是ascii格式的文件。

在一些实施例中,文件可以是值变化转储文件。

在一些实施例中,逻辑分析器电路可以包括:跟踪电路系统,配置为接收信号和确定该信号的当前状态是否不同于该信号的先前状态;以及文件生成电路,其被耦合到跟踪电路系统。文件生成电路可以被配置为生成文件,该文件指定针对信号的加时间戳的状态变化。

在一些实施例中,跟踪电路系统可以被配置为:响应于确定信号的状态变化对应于触发条件,发起与触发条件相关联的预定动作。

在一些实施例中,逻辑分析器电路可以包括:接口,其被耦合到文件生成电路。

在一些实施例中,集成电路还可以包括:处理器,其被耦合到接口。处理器可以被配置为执行程序代码和接收文件。

在一些实施例中,处理器可以被配置为从文件生成被监测信号的波形视图。

在一些实施例中,集成电路可以进一步包括:输入/输出电路,其被耦合到接口。输入/输出电路可以被配置为将文件输出给外部系统。

在一些实施例中,外部系统可以从文件生成信号的波形视图。

在一些实施例中,逻辑分析器电路可以使用集成电路的可编程电路系统以硬件实现。

提供本发明内容部分仅是为了引入某些概念,而不是标识所要求保护的主题的任何关键或必要特征。通过附图和以下详细描述,本发明性布置的其他特征将变得显而易见。

附图说明

在附图中通过示例的方式图示了本发明的布置。然而,附图不应被解释为将本发明的布置限制为仅在示出的特定实施方式。基于阅读以下详细描述并参考附图,本发明的各个方面和优点将变得显而易见。

图1图示了包括逻辑分析器电路的示例集成电路(ic)。

图2图示了逻辑分析器电路的示例实现方式。

图3图示了包括逻辑分析器电路的另一个示例ic。

图4图示了生成跟踪数据的示例方法。

图5图示了用于ic的示例架构。

具体实施方式

虽然本公开以限定新颖特征的权利要求结束,但应当相信的是结合参考附图的描述,将更好地理解在本公开内描述的各种特征。本文所描述的(一个或多个)过程、(一个或多个)机器、(一个或多个)制造品及其任何变型针对说明的目的而被提供。在本公开内描述的特定结构和功能细节不应解释为限制性的,而是仅作为权利要求的基础和作为用于教导本领域的技术人员以实际上在任何适当的详细结构中将所描述的特征以各种方式采用的表示基础。另外,在本公开内使用的术语和短语不旨在是限制性的,而是提供所描述的特征的可理解描述。

本公开涉及集成电路(ic),尤其是涉及用于监测ic内的信号的逻辑电路。在本公开内描述的发明性布置有助于对ic的内部信号的监测和分析。在一个或多个实施例中,逻辑分析器被实现在ic内,并且逻辑分析器能够监测一个或多个所选择的信号,称为“探测信号”。另外,逻辑分析器能够分析在ic自身内的探测信号。

在一个或多个实施例中,逻辑分析器能够检测探测信号的状态变化。逻辑分析器能够确定针对探测信号的每次检测到的状态变化的时间戳。逻辑分析器还能够生成文件,该文件指定探测信号的加时间戳的状态变化。该文件由在ic自身内的逻辑分析器硬件生成。逻辑分析器还能够将文件输出到在ic内的另一个电路和/或系统,和/或输出到在ic外部的另一个电路和/或系统。

常规逻辑分析器尝试持续捕捉探测信号的值。例如,以被监测系统的时钟速率将值采样。经采样值至少在待执行逻辑分析的时间窗口内被存储并保留为跟踪数据。因此,逻辑分析器生成并存储大量的跟踪数据,例如,在监测探测信号的时间窗口内的每个时钟周期,生成并存储针对每个探测信号的值。捕捉此数量的数据需要在ic上的大量存储器资源来存储数据。这意味着逻辑分析器变得更大且更复杂,剩下的可用于实现被监测的电子系统的存储器资源(和路由资源)更少。

捕捉大量跟踪数据还意味着需要大量带宽以及时从ic卸载跟踪数据。通常,在ic内的常规逻辑分析器利用联合测试行动小组(jtag)接口来将跟踪数据从ic中卸载。然而,jtag接口是趋于慢速的。例如,jtag接口以比跟踪数据的生成速率慢得多的速率从ic卸载跟踪数据。这意味着需要ic的额外的存储器资源(其可能是稀缺的)来实现逻辑分析器以存储跟踪数据。在一些情况下,逻辑分析器的这种添加的复杂性可以降低用于在集成电路内实现的在综合、布置和/或路由期间电路设计的最大可达成操作频率。在此类情况下,具有在其中包括常规逻辑分析器的电路设计以比具有不包括常规逻辑分析器的电路设计更低的频率操作。

本文所述的示例实施例通过利用将跟踪数据表示为状态变化数据的文件格式来解决这些约束和其他约束。文件格式由逻辑分析器硬件自身(或在逻辑分析器硬件内)生成。通过在逻辑分析器硬件中生成文件,逻辑分析器硬件实际上将一种压缩形式施加至被生成的跟踪数据。例如,探测信号的每个采样值都不需要被存储超过几个时钟周期以检测相对于先前时钟周期的状态变化。另外,结果文件被指定在一种格式中,该格式的文件不需要专用解码技术以访问在其中包含的跟踪数据。

下面参考附图更详细地描述本发明布置的其他方面。为了说明的简单和清楚起见,在附图中示出的元件不必按比例绘制。例如,为了清楚起见,一些元件的尺寸可以相对于其他元件被放大。此外,在被考虑为适当的情况下,在附图之中重复参考数字以指示对应、类似或相似的特征。

图1图示了包括逻辑分析器电路的示例ic100。在图1的示例中,ic100可以被实现为各种不同类型的ic中的任何类型的ic。示例包括但不限于数字ic、专用集成电路(asic)、可编程ic、部分可编程ic或其他合适的ic。可编程和/或部分可编程ic的示例包括但不限于现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、复杂可编程逻辑器件(cpld)和/或包括一个或多个可编程电路块、可编程电路区块或其他可编程电路系统的其他ic。

如图所示,ic100包括被监测电路系统105。被监测电路系统105被耦合到逻辑分析器电路110。更具体地,一条或多条导线115或互连将被监测电路系统105和逻辑分析器电路110耦合。导线115的每个导线承载被监测信号。为了讨论的目的,由导线115传送的信号在这里被称为“探测信号”。

被监测电路系统105可以被实现为包括或生成待监测的信号(例如,探测信号)的任何电路系统。在一个或多个实施例中,被监测电路系统105是用户指定的电路系统。例如,被监测电路系统105可以包括被实现为用户电路设计的一部分的电路系统。在可编程ic的情况下,被监测电路系统105可以整体或部分使用ic的可编程电路系统实现。

在一个或多个实施例中,逻辑分析器电路110被实现为在ic100内的硬连线电路系统。在一个或多个其他实施例中,逻辑分析器电路110被实现在ic的可编程电路系统内。例如,逻辑分析器110可以设置为内核,电路系统或内核的可参数化部分,或者逻辑分析器110可以被并入到用户电路设计中的包括被监测电路系统105的电路系统的预定单元。在后一种情况下,当在可编程电路系统中实现时,逻辑分析器电路110可以具有用户可选数量的探测端口。每个探测端口可以具有用户可选的探测宽度。

在任何情况下,逻辑分析器电路110都不被实现为执行程序代码的处理器。而是,无论逻辑分析器电路110被实现为硬连线或硬化电路系统、可编程电路系统或者硬化电路系统与可编程电路系统的组合,逻辑分析器电路110是专用于执行本文所描述的操作的电路。

逻辑分析器电路110能够接收由导线115承载的探测信号。逻辑分析器电路110还能够分析探测信号。在一个或多个实施例中,逻辑分析器电路110能够检测从被监测电路系统105接收的在探测信号的每个探测信号上的状态变化。针对每个检测到的状态变化,逻辑分析器电路110能够确定发生检测到的状态变化的时间戳。在一个或多个实施例中,逻辑分析器电路110仅(至少临时地)存储探测信号的加时间戳的状态变化,而与无论检测到任何状态变化而持续地存储经采样的信号值相反。

在一个或多个实施例中,逻辑分析器电路110能够检测触发条件。触发条件是在一个或多个探测信号上的特定或预定状态的发生。逻辑分析器电路110能够监测探测信号的状态,并且响应于在探测信号上检测到对应于触发条件的预定状态,或是响应于在多个探测信号上检测到对应于触发条件的预定状态,逻辑分析器电路110发起与触发条件相关联的动作。在一个示例中,逻辑分析器电路110能够放弃生成文件120,直到检测到特定触发条件。响应于检测到触发条件,逻辑分析器电路110能够生成文件120或开始生成文件120,以输出跟踪数据。逻辑分析器电路110的多个探测端口可以被组合到单个触发条件中(例如,监测在其上的信号)。

在一个或多个实施例中,逻辑分析器电路110能够将针对探测信号的跟踪数据输出为文件120。文件120可以指定针对探测信号的状态变化数据和针对状态变化数据的时间戳。例如,文件120可以针对每个探测信号指定每个状态变化和针对此类状态变化的时间戳。

在图1的示例中,文件120在硬件中生成。逻辑分析器电路110生成文件120。在一个或多个实施例中,文件120使用美国标准信息交换码(ascii)编码。作为说明性且非限制性示例,文件120被实现为值变化转储(vcd)文件。在一个或多个实施例中,文件120符合ieee标准1364-1995。在一个或多个实施例中,文件120符合ieee标准1364-2001。

列表1说明了文件120的示例。列表1在ascii格式中被格式化为vcd文件。

列表1:

$datesept10200812:00:05$end

#versionexamplesimulatorv0.1$end

$timescale1ns$end

$scopemoduletop$end

$varwire32!data$end

$varwire1@en$end

$varwire1#r×$end

$varwire1$tx$end

$varwire1%err$end

$varwire1^ready$end

$upscope$end

$enddefinitions$end

#0

b10000001!

0@

1#

0$

1%

0^

#1

1@

#2

0@

#3

1@

#5

1@

#11

b0

0#

#16

b101010101010110101010101010101!

1#

#20

0%

#23

通过将跟踪数据生成为ascii格式的文件和vcd文件,跟踪数据可以轻松地通过各种系统的任何系统查看和渲染,而无需进行任何进一步处理。例如,vcd文件可以被直接提供给vcd波形查看器。vcd波形查看器很容易获得,例如,可以在标准浏览器中实现,而不必执行跟踪数据的任何特殊和/或专有的解码。

在特定实施例中,逻辑分析器电路110能够持续输出文件120,作为在逻辑分析器电路110正检测探测信号的时间段内的数据流。逻辑分析器电路110能够与在其中执行分析实时或基本上实时地输出文件120。因此,在一个或多个实施例中,逻辑分析器电路110不受ic100的片上存储器的数量限制或约束。

根据本文所述的发明性布置,逻辑分析器电路110能够监测大量信号,而无需针对每个时钟周期存储针对每个被监测信号的跟踪数据。作为说明性示例,用户可以指定在ic的可编程电路系统中实现逻辑分析器110,并且逻辑分析器110将监测被监测电路系统105的1000个待监测信号。逻辑分析器不需要对每个时钟周期存储1000个探测信号的每个信号的值作为跟踪数据,而是仅需要利用状态变化的时间戳来存储每个事件的状态变化作为跟踪数据。给定探测信号的已知初始状态,在文件120中的最终跟踪数据将指示在监测探测信号的任何给定时间的每个探测信号的值。记录状态变化允许逻辑分析器利用比用常规逻辑分析器的情况更少的存储器资源(例如,使用更少的块随机存取存储器)。

图2图示了用于图1的逻辑分析器电路110的示例实现方式。在图2的示例中,逻辑分析器电路110包括跟踪电路系统205、文件生成电路220和接口225。跟踪电路系统205可以包括跟踪捕捉电路210和跟踪分析电路215。

跟踪捕捉电路210被耦合到导线115(未示出)。跟踪捕捉电路210能够接收这些探测信号中的每个探测信号。在一个或多个实施例中,跟踪捕捉电路210能够缓冲探测信号的值。在一个或多个实施例中,跟踪捕捉电路能够捕捉或存储每个探测信号的当前值(例如,针对当前时钟周期)和每个探测信号的先前值(例如,来自紧接在当前时钟周期之前的时钟周期)。

跟踪分析电路215能够在探测信号上执行分析。在一个或多个实施例中,跟踪分析电路215能够确定每个探测信号的状态是否已经变化。例如,针对每个探测信号,跟踪分析电路215确定探测信号的值是否已经从零转变为一、或从一转变为零。跟踪分析电路215能够从跟踪捕捉电路210接收每个探测信号的当前值和先前值,并且能够执行比较以确定每个探测信号的当前值是否不同于该探测信号的先前值。

在图2的示例中,跟踪分析电路215能够输出跟踪数据。跟踪数据指定哪个探测信号已经变化了状态,以及针对探测信号的每个这种状态变化的时间戳。如示出的,文件生成电路220被耦合到跟踪分析电路215的输出。因此,文件生成电路220接收跟踪数据。

文件生成电路220能够生成指定跟踪数据的文件。在一个或多个实施例中,文件生成电路220能够生成ascii编码的文件。ascii编码的文件可以是vcd文件或其他合适的文件类型。因此,逻辑分析器110能够检测和存储探测信号的状态变化,作为生成文件120的一部分,而不是将每个探测信号随时间推移的值存储为跟踪数据(例如,在逻辑分析器110激活并监测探测信号的整个时间期间)。

如所讨论的,在特定实施例中,逻辑分析器电路110在ic100的可编程电路系统中实现。例如,作为实现电路设计的一部分,用户可以指定电路设计的哪些信号是待监测的。电子设计自动化(eda)系统能够在用户的电路设计内包括逻辑分析器电路110的实例,配置逻辑分析器电路110,以监测探测信号(由用户指定),以及路由探测信号到逻辑分析器电路110,以作为实现流程的一部分(例如,综合、布置和路由)。

如此,eda系统能够生成逻辑分析器电路110(尤其是文件生成电路220)以创建和/或写入文件120的各段。因为逻辑分析器电路110意识到待监测的信号,所以例如,文件生成电路220可以被预配置为生成文件120的特定部分,诸如头部段和变量定义段。文件生成电路220包括在诸如初始值和变化值(具有时间戳)的其他数据被检测到时,对这种信息进行编码所必须的电路系统。

文件生成电路220将文件120输出到接口225。在一个或多个实施例中,文件生成电路220将文件120写入存储器。在特定实施例中,存储器被实现或包括在文件生成电路220内。该存储器可以被实现为先进先出(fifo)存储器或其他类型的存储器电路(例如,缓冲存储器或ram)。接口225能够从存储器读取文件120并将文件120提供给另一个电路和/或系统。在一个或多个实施例中,接口225能够将文件120流式传输到电路和/或系统。例如,接口225能够在文件120被生成时实时或基本实时地输出文件120,而无需等待文件120整体被生成(例如,针对监测窗口的结束)。

在一个示例中,接口225被实现为amba可扩展接口(axi)总线。ambaaxi总线是嵌入式微控制器总线接口,其用于在电路块和/或系统之间建立片上连接。例如,接口225可以被实现为axi流接口、axi存储器映射接口或ic的另一原生接口。互连或接口的其他示例实现方式可以包括但不限于:总线、交叉开关和片上网络(noc)。

在一个或多个实施例中,接口225被耦合到输入/输出(i/o)电路。该i/o电路可以被实现为各种外围电路和/或端口中的任何一种,诸如:千兆比特收发器、通用串行总线(usb)端口、以太网端口或在ic内实现的其他通信端口,以允许ic将文件120提供给外部系统。i/o电路可以是高速通信接口,从而从逻辑分析器110移除jtag依赖性。在一个或多个其他实施例中,接口225被耦合到在ic内实现的处理器。处理器可以是能够执行程序代码的一个处理器。处理器可以在ic内被硬连线,也可以使用在ic中包括的可编程电路系统来实现。

图2的示例实现方式促进了从由外部系统捕捉跟踪数据到显示跟踪数据的低延迟。在特定实施例中,结合图2描述的示例架构无论该外部数据处理系统的相对于ic100的位置和接近性,支持从几乎任何外部数据处理系统实时(例如,实时或基本上实时)调试ic100。例如,当文件120从ic生成和输出并由外部系统接收时,文件120可以由外部系统实时渲染和显示。

在一个或多个实施例中,逻辑分析器电路110可以被流水线化以在不丢失任何数据的情况下促进时钟信号数据的捕捉。在示例实现方式中,逻辑分析器电路110可以包括足够的存储器资源(例如,块ram)以在不能进行软件捕捉(例如,由远程系统)或存在软件故障的情况下保证512/1024样本保留。

图3图示了包括逻辑分析器电路110的另一个示例ic300。在一个或多个实施例中,逻辑分析器电路110被耦合到处理器305。处理器305被耦合到存储器310和i/o电路315。在图3的示例中,i/o电路315也可以被耦合到存储器310。存储器310可以是各种不同类型的ram中的任何类型的ram。例如,i/o电路315可以经由一个或多个直接存储器访问(dma)电路耦合到存储器310。因此,处理器305能够发起经由i/o电路315向外部系统320输出跟踪数据文件。

在一个或多个实施例中,使用ic300的可编程电路系统来实现处理器305。在一个或多个实施例中,处理器305被实现为ic300的硬连线处理器。可以使用可编程电路系统存储器资源将存储器310在芯片上实现或作为硬连线存储器资源。在一个或多个其他实施例中,存储器310在芯片外实现。

外部系统320可以是数据处理系统(诸如,计算机系统)。例如,外部系统320可以是服务器。在一个或多个实施例中,ic300被包括在更大、更复杂的系统和/或远程环境内(诸如,数据中心和/或服务器群内的计算机系统)。

在外部系统320是数据处理系统的实施例中,外部系统320能够执行浏览器。在那种情况下,浏览器能够渲染从逻辑分析器110(例如,ic)接收的文件。例如,由外部系统320执行的浏览器或其他应用能够生成示出波形的文件的可视化。例如,外部系统320能够持续基本实时地接收文件并且能够基本实时地生成由文件指定的波形,从而用户能够基本上实时地查看由文件生成电路220生成的跟踪数据的波形。

在一个说明性示例中,处理器305能够从外部系统320接收激活逻辑分析器电路110的请求。响应于该请求,处理器305能够激活逻辑分析器电路110,并且将文件发送到特定地址或目的地(诸如,外部系统320)。

在一个或多个其他实施例中,处理器305能够执行浏览器或其他能够读取和/或处理文件120的软件。例如,处理器305能够生成(或渲染)文件120的波形视图。例如,在该情况下,i/o315可以是视频输出端口,该视频输出端口可以被提供或耦合到显示文件120的(一个或多个)波形的显示器。

在特定实施例中,逻辑分析器电路110被直接耦合到i/o设备315,而不利用和/或不包括处理器305。在该情况下,逻辑分析器电路110能够由i/o电路315将其中生成的文件直接输出到外部系统320,而不使用或不依赖处理器305和/或存储器310。

图4图示了生成跟踪数据的示例方法400。方法400可以由逻辑分析器电路结合本说明书的图1至图3所描述的方法执行。方法400可以在逻辑分析器电路已经在集成电路内实现的状态中开始。另外,诸如用户电路设计的被监测电路系统的探测信号已经被路由和/或提供给逻辑分析器电路,以用于监测。

在框405中,逻辑分析器电路开始监测探测信号。在框410中,逻辑分析器电路确定是否在一个、多个或所有探测信号上检测到状态变化。如果逻辑分析器在一个、多个或所有探测信号上检测到状态变化,则方法400继续至框415。如果逻辑分析器没有检测到状态变化,则方法400循环回框405以继续监测探测信号。

在框415中,逻辑分析器确定是否检测到触发条件。在一个或多个实施例中,触发条件是在一个或多个探测信号上的特定值或状态的存在。如果触发条件被检测到,则方法400前进至框420。如果触发条件没有被检测到,则方法400继续至框430。

在框420中,在检测到触发条件的情况下,逻辑分析器选择与检测到的特定触发条件相关联的动作。例如,逻辑分析器可能能够发起多个不同的动作。这些不同的动作可以与不同的触发条件相关联。因此,逻辑分析器能够基于在框415中检测到的特定触发条件而从多个动作中选择动作。

在框420之后,方法400继续到框425。在框425中,逻辑分析器发起或执行在框420中选择的动作。

继续框430,逻辑分析器生成指定探测信号的加时间戳的状态变化的文件。例如,逻辑分析器能够生成ascii编码的文件。如注出的,在一个或多个实施例中,文件可以是vcd文件。

在一个或多个实施例中,逻辑分析器生成和/或编码文件的头部段。逻辑分析器还可以生成和/或编码文件的变量定义段。逻辑分析器还可以生成和/或编码文件的初始值段。文件的初始值段指定每个探测信号的初始值或状态。逻辑分析器还可以生成值变化段。应当理解的是,只要逻辑分析器继续监测探测信号并检测状态变化,逻辑分析器电路就继续生成值变化段。

作为说明性示例,逻辑分析器电路可以生成文件的开始部分。当检测到探测信号的额外状态变化时,逻辑分析器电路继续生成值变化段。随着文件由逻辑分析器电路持续地生成,逻辑分析器电路能够将文件输出。因此,在框435中,逻辑分析器电路将文件输出。如所讨论的,将文件输出包括:逻辑分析器电路生成文件的一部分并继续生成文件的其他部分的情况,从而文件可以从逻辑分析器电路流式输出到另一个电路和/或系统,或者从ic流式输出到该ic外部的另一个电路和/或系统。

如所讨论的,在一个或多个实施例中,文件可以被输出到外部系统。外部系统能够生成跟踪数据的波形视图。外部系统可以基本实时地接收和显示波形视图。例如,外部系统能够生成捕捉探测信号的一个在大约一秒钟内的波形视图。

图5示出了用于ic的示例架构500。在一方面上,架构500可以在可编程ic内实现。例如,架构500可以被用于实现fpga。架构500也可以表示片上系统(soc)类型的ic。soc是包括执行程序代码的处理器和一个或多个其他电路的ic。其他电路可以被实现为硬连线电路系统、可编程电路系统和/或其组合。电路可以彼此协作和/或与处理器协作。在一个或多个实施例中,被监测的电路系统105、逻辑分析器电路110、处理器305、存储器310和/或i/o电路315可以在ic中实现,该ic具有与图5的ic相同或相似的架构。

如示出的,架构500包括数种不同类型的可编程电路,例如,逻辑、块。例如,架构500可以包括大量不同的可编程区块,包括:多千兆比特收发器(mgt)501、可配置逻辑块(clb)502、随机存取存储块(bram)503、输入/输出块(iob)504、配置和时钟逻辑(config/clocks)505、数字信号处理块(dsp)506、专用i/o块507(例如,配置端口和时钟端口)以及其他可编程逻辑508(诸如,数字时钟管理器、模数转换器、系统监测逻辑等等)。

在一些ic中,每个可编程区块包括可编程互连元件(int)511,该可编程互连元件(int)511具有到每个相邻区块中的对应int511的标准化连接和来自于该对应int511的标准化连接。因此,int511一起实现了用于图示的ic的可编程互连结构。如在图5的顶部由所包括的示例示出的,每个int511还包括到在相同区块内的可编程逻辑元件的连接和来自该可编程逻辑元件的连接。

例如,clb502可以包括可配置逻辑元件(cle)512,可配置逻辑元件(cle)512可以被编程为实现用户逻辑以及单个int511。除了一个或多个int511之外,bram503还可包括bram逻辑元件(brl)513。通常,包括在区块中的int511的数量取决于区块的高度。如图所示,bram区块具有与五个clb相同的高度,但是也可以使用其他数量(例如四个)。除了适当数量的int511之外,dsp区块506还可以包括dsp逻辑元件(dspl)514。除了int511的一个实例,iob504还可以包括例如i/o逻辑元件(iol)515的两个实例。被连接到iol515的实际i/o焊盘可能不限于iol515的区域。

在图5中所示的示例中,在裸片的中心附近的柱状区域(例如,由区域505、507和508形成)可以被用于配置、计时和其他控制逻辑。从该列延伸的水平区域509可以被用于在可编程ic的宽度上分配时钟和配置信号。

一些利用在图5中图示的架构的ic包括额外的逻辑块,该额外的逻辑块干扰了组成ic的一大部分的普通柱状结构。额外逻辑块可以是可编程块和/或专用电路。例如,描绘为跨数列clb和bram的proc510的处理器块。

在一方面上,proc510可以被实现为专用电路(例如,硬连接处理器),该专用电路是作为实现ic的可编程电路系统的裸片的一部分而制造的。proc510可以代表从单独处理器(例如,能够执行程序代码的单核)到具有一个或多个核、模块、协处理器、接口等的整个处理器系统的复杂程度不同的各种不同处理器类型和/或系统。

在另一方面上,可以从架构500省略proc510,并且将其替换为所描述的可编程块的一个或多个其他种类的可编程块。另外,此类块可以被利用以形成“软处理器”,其中可编程电路系统的各种块可以被用于形成可以如proc510那样执行程序代码的处理器。

短语“可编程电路系统”是指在ic内的可编程电路元件,例如:本文所述的各种可编程或可配置电路块或区块,以及根据被加载到ic中的配置数据选择性地耦合各种电路块,区块和/或元件的互连电路。例如,在图5中示出的在proc510外部的电路块(诸如clb502和bram503)被考虑为ic的可编程电路系统。

通常,直到将配置数据加载到ic中为止,可编程电路系统的功能性不会被建立。一组配置比特可以被用于编程ic(例如fpga)的可编程电路系统。(一个或多个)配置比特通常被称为“配置比特流”。通常,不先将配置比特流加载到ic中,可编程电路系统就不能操作或运行。配置比特流有效地实现了在可编程电路系统中的特定电路设计。例如,电路设计指定了可编程电路块的功能方面以及在各种可编程电路块之中的物理连接性。

被“硬连线”或“硬化”(即,不可编程)的电路被制造为ic的一部分。与可编程电路不同,在制造ic之后,通过加载配置比特流不会实现硬接线电路或电路块。例如,硬连线电路系统通常被认为具有专用电路块和互连,这些电路块和互连不用首先将配置比特流加载到ic(例如,proc510)中就运行。

在一些实例中,硬连线电路系统可以具有一个或多个操作模式,该一个或多个操作模式可以根据在ic内的在一个或多个存储器元件中存储的寄存器设置或值来设置或选择。例如,可以通过将配置比特流加载到ic中来设置操作模式。尽管具有这种能力,但是硬接线电路不被考虑为可编程电路系统,因为当硬接线电路被制造为ic的一部分时,该硬接线电路是可操作的并且具有特定功能。

在soc的情况下,配置比特流可以指定在可编程电路系统内待实现的电路和将由proc510或软处理器执行的程序代码。在一些情况下,架构500包括专用配置处理器,其将配置比特流加载到适当的配置存储器和/或处理器存储器。专用配置处理器不执行用户指定的程序代码。在其他情况下,架构500可以利用proc510来接收配置比特流,将配置比特流加载到适当的配置存储器中,和/或提取用于执行的程序代码。

图5旨在图示可以被用于实现包括可编程电路系统(例如,可编程构造)的ic的示例性架构。例如:在列中的逻辑块的数量,列的相对宽度,列的数量和顺序,在列中包括的逻辑块的类型,逻辑块的相对大小以及在图5顶部包括的互连/逻辑实现方式仅是示例性的。例如,在实际ic中,无论clb出现在何处,通常都包括一个以上相邻的clb列,以促进用户电路设计的有效实现。然而,相邻clb列的数量可能会随ic的整体尺寸而变化。此外,在ic内诸如proc510的块的尺寸和/或定位仅用于说明的目的,而不旨在作为限制。

本文所述的示例实施例允许逻辑分析器以监测大量的信号,该逻辑分析器使用比在常规逻辑分析器设计的情况下更少的ic资源。在一个或多个实施例中,数据可以在vcd文件格式中从ic被持续地输出,而不限制涉及片上存储器的可用性。此外,外部系统(诸如,主机系统)执行能够查看或渲染vcd文件的浏览器,而无需首先将ic的专有数据格式转换为可用格式(诸如,由eda工具所使用的格式)。

在一个或多个实施例中,从捕捉探测信号到查看vcd文件的时间延迟是实时发生的(例如,在探测信号捕捉的约1秒内)。在特定实施例中,时钟信号可以被监测。因此,设计者能够实时监测ic的内部信号。另外,因为逻辑分析器不由在ic中可用的内部存储器量约束,所以比起探测信号被存储在ic内的情况,设计者能够更长时间地监测探测信号。

为了说明的目的,阐述了指定的术语以提供本文公开的各种发明概念的透彻理解。然而,本文所使用的术语仅出于描述本发明性布置的特定方面的目的,而并非旨在进行限制。

如本文所限定的,单数形式“一”,“一个”和“该”也意图包括复数形式,除非上下文另外明确指出。如本文所限定的,除非另外明确指出,否则术语“至少一个”,“一个或多个”和“和/或”在操作中是结合和分离的开放式表达。例如,每个表达式“a、b和c中的至少一个”,“a、b或c中的至少一个”,“a、b和c中的一个或多个”,“一个或多个a、b或c”和“a、b和/或c”是指:单独的a、单独的b、单独的c、a和b一起、a和c一起、b和c一起或a、b和c一起。

如本文所限定的,术语“一种实施例”、“一个实施例”、“一个或多个实施例”或类似语言表示结合该实施例描述的特定特征,结构或特性包括在在本公开内所描述的至少一个实施例中。因此,在整个本公开中,短语“在一个实施例中”、“在一个实施例中”、“在一个或多个实施例中”的出现以及类似的语言可以但不一定都指相同的实施例。

如本文所限定的,术语“实时”意味着用户或系统针对待进行的特定过程或确定所感测的,为了足够立刻地处理或者使处理器能够跟上一些外部过程的响应性等级。

如本文所限定的,术语“响应于”意味着准备好对动作或事件做出响应或反应。因此,如果“响应于”第一动作而执行第二动作,则在第一动作的发生与第二动作的发生之间存在因果关系。术语“响应于”指示该因果关系。

术语“基本上”意味着所引用的特点、参数或值不需要达到恰好,而可以偏差或变化,包括例如:公差、测量错误、测量准确性限制和其他在本领域中的技术人员已知的因素,偏差或变化可以在不影响特点旨在提供的效果的量中发生。

本文中可以使用术语第一,第二等来描述各种元件。本文中可以使用术语第一,第二等来描述各种元件。这些元件不应由这些术语的限制,因为除非另有说明或上下文另有明确指出,否则这些术语仅用于将一个元素与另一个元素区分。

在附图中的流程图和框图图示了根据本发明性布置的各种方面的系统和方法的可能实现方式的架构、功能和操作。在一些备选实现方式中,在框图中注出的操作可以在附图注出的顺序之外的顺序中发生。例如,取决于所涉及的功能,连续示出的两个框可以基本同时执行,或者有时可以以相反的顺序执行。在其他示例中,通常可以在增加的数字顺序中来执行框图,而在其他示例中,可以在变化的顺序中来执行一个或多个框图,并且结果被存储并利用在随后的或不立即跟随的其他框图中。还将被注意的是,框图和/或流程图图示的每个框与在框图和/或流程图图示中的框的组合,可以通过执行特定功能或操作或执行专用硬件和计算机指令的组合的基于专用硬件的系统来实现该功能。

可以在下面的权利要求书中找到的所有装置或步骤加上功能元件的相应结构、材料、动作和等同物旨在包括与具体要求保护的其他要求保护的元件组合地执行功能的任何结构,材料或动作。

一个或多个实施例涉及用于监测在ic中的信号的方法。在一方面中,一种方法可以包括:使用在ic内实现的逻辑分析器来监测ic的探测信号;使用逻辑分析器电路来检测在探测信号中的状态变化;以及在逻辑分析器电路内生成文件,该文件指定探测信号的加时间戳的状态变化。

在一个方面中,文件被指定在ascii格式中。

在另一方面中,文件是值变化转储文件。

在另一方面中,方法还可以包括将文件在生成时基本上实时地输出到外部系统。

在另一方面中,该方法还可以包括:响应于检测到探测信号的状态变化对应于触发条件,发起与该触发条件相关联的预定动作。

在另一方面中,该方法还包括:将文件提供给在集成电路内的处理器,其中该处理器被配置为执行程序代码。

在另一方面中,该方法还包括将文件提供给外部系统,其中外部系统被配置为生成文件的可视化。

在另一方面中,生成文件包括:编码头部段、编码变量定义段、编码初始值段和编码值变化段。

在另一方面中,逻辑分析器电路使用集成电路的可编程电路系统以硬件实现。

一个或多个实施例涉及一种ic。在一方面中,ic包括:被监测电路系统,被监测电路系统被配置为生成信号;以及逻辑分析器电路。逻辑分析器电路被配置为:监测信号以检测在该信号中的状态变化,并且生成指定该信号的加时间戳的状态变化的文件。

在一个方面中,文件是ascii格式的文件。

在另一方面中,文件是值变化转储文件。

在另一方面中,逻辑分析器电路包括:跟踪电路系统,配置为接收信号和确定该信号的当前状态是否不同于该信号的先前状态。逻辑分析器电路系统还可以包括:文件生成电路,其被耦合到跟踪电路系统,其中文件生成电路被配置为生成文件,该文件指定针对信号的加时间戳的状态变化。

在另一方面中,跟踪电路系统被配置为:响应于确定信号的状态变化对应于触发条件,发起与触发条件相关联的预定动作。

在另一方面中,逻辑分析器电路包括:接口,其被耦合到文件生成电路。

在另一方面中,ic包括:处理器,其被耦合到接口,其中处理器被配置为执行程序代码和接收文件。

在另一方面中,处理器被配置为从文件生成被监测信号的波形视图。

在另一方面中,ic包括:i/o电路,其被耦合到接口,其中i/o电路被配置为将文件输出给外部系统。

在另一方面中,外部系统从文件生成信号的波形视图。

在另一方面中,逻辑分析器电路使用ic的可编程电路系统以硬件实现。

一个或多个实施例涉及实现包括逻辑分析器电路的ic。在一方面中,方法可以包括提供逻辑分析器电路。逻辑分析器电路被配置为监测信号以检测信号中的状态变化并生成指定信号的加时间戳的状态变化的文件。例如,文件可以是ascii格式的文件。在特定示例中,该文件可以是值变化转储文件。

在另一方面中,该方法包括提供逻辑分析器电路以包括跟踪电路系统,该跟踪电路系统被配置为接收信号并确定信号的当前状态是否不同于信号的先前状态。提供逻辑分析器电路可以包括提供被耦合到跟踪电路系统的文件生成电路,其中文件生成电路被配置为生成文件,该文件指定针对信号的加时间戳的状态变化。

在另一方面中,跟踪电路系统被配置为:响应于确定信号的状态变化对应于触发条件,发起与触发条件相关联的预定动作。

在另一方面中,提供逻辑分析器电路包括提供被耦合到文件生成电路的接口。

本文提供的发明性布置的描述是出于说明的目的,而不是穷举性的或限于所公开的形式和示例。选择本文中使用的术语是为了解释本发明性布置的原理,对市场上发现的技术的实际应用或技术上的改进,和/或使本领域的其他普通技术人员能够理解本文中公开的发明性布置。在不脱离所描述的发明性布置的范围和精神的情况下,修改和变化对本领域普通技术人员而言是显而易见的。因此,指示此类特征和实施方式的范围参考应根据以下权利要求,而不是前文的公开。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1