CN106202603A - 用于在寄存器重定时之后探测信号的方法和装置 - Google Patents

用于在寄存器重定时之后探测信号的方法和装置 Download PDF

Info

Publication number
CN106202603A
CN106202603A CN201610315631.1A CN201610315631A CN106202603A CN 106202603 A CN106202603 A CN 106202603A CN 201610315631 A CN201610315631 A CN 201610315631A CN 106202603 A CN106202603 A CN 106202603A
Authority
CN
China
Prior art keywords
depositor
circuit
circuit design
design
interconnection
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
Application number
CN201610315631.1A
Other languages
English (en)
Other versions
CN106202603B (zh
Inventor
G·R·邱
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.)
Altera Corp
Original Assignee
Altera Corp
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 Altera Corp filed Critical Altera Corp
Publication of CN106202603A publication Critical patent/CN106202603A/zh
Application granted granted Critical
Publication of CN106202603B publication Critical patent/CN106202603B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/398Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/343Logical level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/39Circuit design at the physical level
    • G06F30/394Routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/333Design 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)
  • Computer Networks & Wireless Communication (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

一种电路设计可以具有寄存器和组合门。电路设计计算设备可以在电路设计中执行寄存器重定时,藉此,寄存器移动跨越各组合门。可以记录与寄存器移动有关的信息,并创建修改的电路设计。电路设计计算设备可以在集成电路中实施电路设计。逻辑分析器可以用于实时并高速地调试在集成电路中实施的电路设计。为促进调试过程,电路设计计算设备可以基于在寄存器重定时期间记录的信息来增加集成电路和/或补偿寄存器重定时。

Description

用于在寄存器重定时之后探测信号的方法和装置
本申请要求提交于2015年5月29日的美国专利申请第14/726,237号的优先权,所述申请全文以引用方式并入本文。
技术领域
本申请涉及集成电路,并且更具体地涉及在寄存器重定时操作之后调试集成电路。
背景技术
从一个技术节点到下一个技术节点的每一次转变均导致更小的晶体管几何形状,并且因此可能导致在每个单位的集成电路面积上实施更多的功能。减少的互连和单元延迟证明了同步集成电路已经进一步获益于这种发展,这导致性能提高。
为进一步提高性能,已经提出诸如寄存器重定时之类的解决方案,其中寄存器在组合逻辑的各个部分之间移动,从而实现寄存器之间更为平衡的延迟分布,并且因此可能实现集成电路可用于操作的更高的时钟频率。
然而,执行寄存器重定时可能是复杂且容易出错的,尤其当集成电路的不同部分在不同时钟域中操作时以及当寄存器具有不同的时钟、时钟极性或特定的复位、预置以及初始化约束时。
发明内容
根据本发明的某些方面,计算机辅助设计(CAD)工具可以接收电路设计。电路设计可以包括多个寄存器以及门之间的第一互连和第二互连。CAD工具可以在电路设计上执行重定时操作以创建寄存器重定时的电路设计,并记录与重定时操作有关的信息。为了探测电路设计中的信号,CAD工具可以将寄存器重定时的电路设计的第一互连和第二互连耦合到获取存储电路。CAD工具可以进一步基于所记录的信息,在第一互连和获取存储电路之间,将第一附加寄存器插入寄存器重定时的电路设计中。CAD工具可以基于所记录的信息,在第二互连和获取存储电路之间,将第二附加寄存器插入寄存器重定时的电路设计中。
应当理解,本发明能以许多方式实施,诸如过程、装置、系统、器件、或在计算机可读介质上的方法。本发明的几种发明实施例在下文描述。
在某些实施例中,上面提到的CAD工具可以在寄存器重定时的电路设计的相应第一互连和第二互连处探测第一信号和第二信号。为此,CAD工具可以通过第一附加寄存器和第二附加寄存器从第一互连和第二互连发送第一探测的信号和第二探测的信号到获取存储电路。
如果期望,在电路设计的重定时操作期间,CAD工具可以移动多个寄存器中的寄存器跨越第一互连。例如,CAD工具可以改变耦合到第一互连的输入的模式复用器的配置,使该模式复用器的配置从选择第一输入信号改为选择第二输入信号,其中第一输入信号由路由复用器驱动并且第二输入信号由该寄存器驱动。
本发明进一步的特征、其性质和各种优势从附图和以下优选实施例的具体描述中将更加明显。
附图说明
图1为根据实施例的具有示例性路由拓扑结构的说明性集成电路的图解。
图2为根据实施例的说明性重定时操作的图解。
图3为根据实施例的使用寄存器对路由信号进行流水线化的说明性流水线式路由资源的图解。
图4为根据实施例的可以用于设计集成电路的电路设计系统的图解。
图5为根据实施例的可以在电路设计系统中使用的说明性计算机辅助设计(CAD)工具的图解。
图6为根据实施例的用于设计集成电路的说明性步骤的流程图。
图7A为根据实施例的在寄存器重定时操作之前的说明性电路的图解,并且其中所探测的信号在寄存器重定时操作期间通过前推寄存器路由到获取存储电路。
图7B为根据实施例的在寄存器重定时操作之前的说明性电路的图解,并且其中所探测的信号在寄存器重定时操作期间通过后推寄存器路由到获取存储电路。
图8为示出根据实施例的用于在集成电路中执行寄存器重定时操作和在寄存器重定时操作之后探测集成电路中的信号的说明性步骤的流程图。
图9为示出根据实施例的逻辑分析器可以在重定时的设计中分析所探测的信号的说明性步骤的流程图。
图10为示出根据实施例的用于探测电路中的信号的说明性步骤的流程图。
具体实施方式
所呈现的实施例涉及集成电路,并且更具体地涉及在寄存器重定时操作之后调试集成电路。
为提高集成电路的性能而执行寄存器重定时可能是复杂且容易出错的,尤其当集成电路的不同部分在不同时钟域中操作以及寄存器具有不同的时钟、时钟极性和/或特定复位、预置或初始化约束时。
在一些情况下,电路设计者可能希望实时地调试电路设计(例如,集成电路)的实施。例如,如果集成电路的寄存器的输出被提供到输入输出(I/O)引脚并且经观察(例如,使用示波器或逻辑分析器)是一直高而不是切换的,则电路设计者可能希望隔离故障源(即,导致输出为一直高的故障源)。
例如,可能需要隔离被短路为高或低逻辑电平的互连、集成电路的定时故障、功能故障或其他类型的故障。因此,电路设计者可能希望对内部网(例如,逻辑门与寄存器之间的互连,或逻辑门之间的互连等),它们有时也称作节点或内部节点,进行分接或采样并且观察在这些节点处的信号的状态以隔离故障。
例如,电路设计者可能想要递增地分接信号并跟踪故障到其来源。也就是说,电路设计者可能希望通过检查在终止于寄存器输入的逻辑锥中的互连处的信号,从寄存器的输出跟踪故障到来源。设计者可以首先在寄存器的输入处(例如,在逻辑门与寄存器之间)对互连进行分接。接着,如果在寄存器的输入处对互连进行分接被认为不能隔离故障,则设计者可以在逻辑门的输入处对互连进行分接。
然而,执行寄存器重定时可以改变许多内部节点的行为(例如,通过移动一个或更多寄存器跨越内部节点),从而改变电路设计实施中的那些内部节点的观察到的行为。因此,电路设计实施中的许多内部节点可以表现出与设计者在电路设计中指定的相应节点的初始预期行为不同的行为。然而,所观察的行为不同于预期行为这一事实可能不指示电路设计实施中的错误。
因此,可能期望记录与在寄存器重定时期间移动的寄存器有关的信息并且据此将相应电路设计实施设备化,使得逻辑分析器可以在寄存器重定时操作已被执行之后用于调试电路设计实施。
本领域技术人员应当理解,可以不使用这些具体描述中的某些或全部来实践本示例性实施例。在其他情况下,为了避免不必要地模糊本实施例,未详细描述公知的操作。
图1中示出集成电路的说明性实施例,诸如可以经配置实施电路设计的可编程逻辑器件(PLD)100。如图1所示,例如,可编程逻辑器件(PLD)可以包括二维的功能块阵列,包括逻辑阵列块(LAB)110和其他功能块,诸如随机存取存储器(RAM)块130和数字信号处理(DSP)块120。功能块诸如LAB 110可以包括较小的可编程区(例如,逻辑元件、可配置逻辑块或自适应逻辑模块),这些可编程区接收输入信号并对输入信号执行定制功能以产生输出信号。
可编程逻辑器件100可以包含可编程存储器元件。存储器元件可以使用输入输出元件(IOE)102加载配置数据(也称作编程数据)。一旦加载,存储器元件各自提供控制相关联功能块(例如,LAB 110、DSP 120、RAM 130、或输入输出元件102)的操作的对应静态控制信号。
在一种典型的情况下,加载的存储器元件的输出被施加到功能块中的金属氧化物半导体晶体管的栅极,以导通或截止某些晶体管并且从而配置包括路由路径的逻辑块中的逻辑。可以用这种方式控制的可编程逻辑电路元件包括部分复用器(例如,用于形成互连电路中的路由路径的复用器)、查找表、逻辑阵列、AND(和)、OR(或)、NAND(与非)和NOR(或非)逻辑门,传输门等。
存储器元件可使用任何合适的易失性和/或非易失性存储器结构,诸如随机存取存储器(RAM)单元、熔断器、反熔断器、可编程只读存储器的存储单元、掩模编程和激光编程的结构、这些结构的组合等。由于存储器元件在编程期间加载了配置数据,因此存储器元件有时被称作配置存储器、配置RAM(CRAM)或可编程存储器元件。
另外,可编程逻辑器件可以具有用于驱动信号离开PLD并用于接收来自其他器件的信号的输入输出元件(IOE)102。输入输出元件102可以包括并行输入输出电路、串行数据收发器电路、差分接收器和发射器电路或用于将一个集成电路连接到另一个集成电路的其他电路。如图所示,输入输出元件102可位于芯片外周周围。如果需要的话,可编程逻辑器件可以具有以不同方式布置的输入输出元件102。例如,输入输出元件102可以形成一列或更多列输入输出元件,这些元件可以位于可编程逻辑器件上的任何位置(例如,跨PLD的宽度均匀地分布)。如果需要的话,输入输出元件102可以形成一行或更多行输入输出元件(例如,跨PLD的高度分布)。替代地,输入输出元件102可以形成输入输出元件的岛,这些岛可以分布在PLD的表面上或者聚集在选定区域中。
PLD还可以包括垂直路由通道140(即,沿PLD 100的垂直轴线形成的互连)和水平路由通道150(即,沿PLD 100的水平轴线形成的互连)形式的可编程互连电路,每个路由通道包括至少一个轨道以对至少一根导线布线。如果需要的话,互连电路可包括流水线元件,并且可以在操作期间访问存储在这些流水线元件中的内容。例如,编程电路可以提供对流水线元件的读和写访问。
应注意,除了图1中所绘互连电路的拓扑结构之外,其他路由拓扑结构意欲被包括在本发明的范围内。例如,路由拓扑结构可包括沿其范围的不同部分以对角线方式行进或以水平和垂直方式行进的导线,以及就三维集成电路而言垂直于器件平面的导线,并且导线的驱动器可以位于除导线一端之外的不同点处。路由拓扑结构可以包括基本上横跨PLD 100全体的全局导线、分段的全局导线,诸如横跨PLD 100的一部分的导线、特定长度的交错线、较小的局部导线或任何其他合适的互连资源布置。
如果需要的话,可编程逻辑器件(PLD)100可以经配置实施电路设计。例如,配置RAM可以经编程使得LAB 110、DSP 120和RAM 130、可编程互连电路(即,垂直通道140和水平通道150)以及输入输出元件102形成电路设计实施。
为了调试的目的,逻辑分析器可以提供控制以选择电路设计中的特定节点,从而在PLD 100中将电路设计实施设备化。逻辑分析器可以在那些节点处捕获数据并且将所捕获的数据路由到获取存储电路,其可以是RAM 130中的一个或更多个,并访问所捕获的数据用于调试。替代地,逻辑分析器可以将所捕获的数据路由到输入输出元件102,并且使用外部逻辑分析器或示波器用于调试。
应当理解,实施例可以在任何集成电路中实施,并且逻辑分析器可以探测在这样的集成电路中的任何功能块的任何节点。如果需要的话,这些功能块可以布置成多级或多层,其中多个功能块互连以形成更大的块。
图2示出PLD 100可以实施的不同版本的电路设计的示例。第一版本的电路设计可以包括寄存器210、220、230、240和组合逻辑245。寄存器210可以发送信号到寄存器220;寄存器220可以发送信号通过组合逻辑245到寄存器230;并且寄存器230可以发送信号到寄存器240。例如,在从寄存器220通过组合逻辑245到寄存器230的路径上的延迟可以具有6纳秒(ns)的延迟,而寄存器210与220之间的延迟和寄存器230与240之间的延迟可以具有0ns延迟。因此,第一版本的电路设计可以在166MHz的频率下操作。
在第一版本的电路设计上执行寄存器重定时可以创建第二版本的电路设计。例如,寄存器230可以被向后推动通过组合逻辑245的一部分,从而将第一版本的电路设计的组合逻辑245分成第二版本的电路设计的组合逻辑242和244。在第二版本的电路设计中,寄存器210可以发送信号到寄存器220;寄存器220可以发送信号通过组合逻辑242到寄存器230;并且寄存器230可发送信号通过组合逻辑244到寄存器240。
例如,在从寄存器220通过组合逻辑242到寄存器230的路径上的延迟可以具有4ns的延迟,并且从寄存器230通过组合逻辑244到寄存器240的延迟可以具有2ns的延迟。因此,第二版本的电路设计可以在250MHz的频率下操作。
在第二版本的电路设计上执行寄存器重定时可以创建第三版本的电路设计。例如,寄存器220可以被向前推动通过组合逻辑242的一部分,从而将第二版本的电路设计的组合逻辑242分成第三版本的电路设计的组合逻辑241和243。在第三版本的电路设计中,寄存器210可以发送信号通过组合逻辑241到寄存器220;寄存器220可以发送信号通过组合逻辑243到寄存器230;并且寄存器230可以发送信号通过组合逻辑244到寄存器240。
例如,在从寄存器210通过组合逻辑241到寄存器220的路径上的延迟、在从寄存器220通过组合逻辑243到寄存器230的路径上的延迟以及在从寄存器230通过组合逻辑244到寄存器240的路径上的延迟可以均具有2ns的延迟。因此,第三版本的电路设计可以在500MHz的频率下操作,该频率是第一版本的电路设计可操作所处频率的三倍。
如果需要的话,路由资源,诸如图1的垂直路由通道140或水平路由通道150可以包括流水线元件,这些流水线元件能够促进寄存器重定时。图3描绘根据实施例使用寄存器的流水线式路由资源300。如图所示,流水线式路由资源300包括第一复用器302、驱动器304、寄存器306和第二复用器308。
复用器302可以是驱动器输入复用器(DIM)或功能块输入复用器(FBIM)。DIM可以选择来自多个源的信号,并将所选择的信号发送到驱动导线的驱动器304。多个源可以包括来自功能块的输出以及沿与导线相同或正交的方向行进的其他路由导线的信号。FBIM输出信号到功能块并且可选择来自多条路由导线的信号。
如图3所示,根据本发明的实施例,复用器302可以通过将其输出提供到寄存器306的数据输入而被流水线化。流水线式路由资源300中的复用器308可直接接收复用器302的输出,并且还可以接收来自寄存器306的数据输出。
虽然流水线式路由资源300包括寄存器,但本领域技术人员应当认识到,不同的寄存器实现可以用于存储路由信号,诸如边缘触发的触发器、脉冲锁存器、低透明锁存器、高透明锁存器,仅举几例。因此,为避免不必要地模糊本实施例,我们将流水线式路由资源中的存储电路称作流水线存储元件。
复用器308可以使流水线式路由资源300能够在非流水线模式或在流水线寄存器模式下使用。在非流水线模式中,复用器308的输出选择复用器302的直接输出。
在流水线模式中,复用器308可以选择寄存器306的输出。复用器308可以将其输出提供到驱动器电路304,并且驱动器电路304的输出可以用于驱动路由导线。路由导线可以跨越多个功能块(例如,对于带有DIM的流水线式路由资源)。替代地,路由导线可以在功能块内部(例如,对于带有FBIM的流水线式路由资源)。
每个DIM/FBIM可以包括寄存器诸如寄存器306,使得所有路由复用器被流水线化。然而,在一些实施例中,由于所提供的能力可能超过设计需求,这一情况可以是不必要的。因此,在某些实施例中,只有部分的(诸如二分之一或四分之一)的路由复用器可以被流水线化。例如,信号可以花费150皮秒(ps)来横越给定长度的导线,但时钟信号可以被约束为以650ps的时钟周期操作。因此,在本示例中,每第四根导线提供流水线寄存器诸如寄存器306可以是足够的。替代地,可以比每第四根导线放置寄存器更为频繁地放置寄存器(例如,每第二根导线),以在使用哪些寄存器的选择上提供更高的自由度。
流水线式路由资源诸如流水线式路由资源300可以促进寄存器重定时操作,诸如图2中所说明的寄存器重定时。例如,考虑这样的情况:其中寄存器230由在流水线寄存器模式中操作的流水线式路由元件的第一实例实施(即,寄存器230由流水线式路由资源300的第一实例的寄存器306实施)。进一步考虑从寄存器220通过组合逻辑245到寄存器230的路径包括在非流水线模式中操作的流水线式路由元件的第二实例。因此,将流水线式路由元件的第一实例从在流水线寄存器模式中操作切换为在非流水线模式中操作,以及将流水线式路由元件的第二实例从在非流水线模式中操作切换为在流水线寄存器模式中操作,可以将第一版本转换成图2中所呈现的第二版本的电路设计。
电路设计系统中的CAD工具可以评估寄存器重定时是否可以提高当前版本的电路设计的性能,或当前版本的电路设计是否满足给定的性能标准。如果需要的话,并且在CAD工具确定寄存器重定时会提高当前版本的电路设计的性能或者当前版本的电路设计不能满足给定性能标准时,CAD工具可以执行寄存器重定时操作,这些操作将当前版本的电路设计转换成另一版本的电路设计(例如,如图2所说明的)。
根据实施例的说明性电路设计系统400在图4中示出。系统400可以基于一个或更多个处理器,诸如个人计算机、工作站等。处理器可以使用网络(例如,局域网或广域网)进行链接。在这些计算机或外部存储器及存储器件(诸如内部和/或外部硬盘)中的存储器可以用于存储指令和数据。
基于软件的组件诸如计算机辅助设计工具420和数据库430驻留在系统400上。在操作期间,可执行的软件诸如计算机辅助设计工具420的软件在系统400的(多于一个)处理器上运行。数据库430用于存储用于系统400的操作的数据。一般来讲,软件和数据可存储在系统400中的任何计算机可读介质(存储器)中。这种存储器可以包括计算机存储器芯片、可移除的和固定的介质,诸如硬盘驱动器、闪存、紧凑盘(CD)、数字多功能盘(DVD)、蓝光盘(BD)、其他光学介质、以及软盘、磁带或任何其他合适的存储器或存储器件。当安装系统400的软件时,系统400的存储器具有致使系统400中的计算设备执行各种方法(过程)的指令和数据。当执行这些过程时,计算设备经配置以实施电路设计系统的各功能。
计算机辅助设计(CAD)工具420(其中的一些或全部有时被统称为CAD工具、电路设计工具或电子设计自动(EDA)工具)可以由单个供应商或多个供应商提供。工具420可以作为一套或更多套工具提供(例如,用于执行与在可编程逻辑器件中实施电路设计相关联的任务的编译器套件),和/或作为一个或更多个独立的软件组件(工具)提供。数据库430可以包括仅由一个或多个特定工具访问的一个或更多个数据库,以及可以包括一个或更多个共享数据库。共享数据库可以由多个工具访问。例如,第一工具可以将用于第二工具的数据存储在共享数据库中。第二工具可以访问共享数据库以检索由第一工具存储的数据。这允许一个工具向另一个工具传递信息。如果需要的话,工具之间也可以彼此传递信息,而不将信息存储在共享数据库中。
图5中示出可以在电路设计系统诸如图4的电路设计系统400中使用的说明性计算机辅助设计工具520。
设计过程可以开始于集成电路设计的功能规范的规划(例如,集成电路设计的功能或行为描述)。电路设计者可以使用设计和约束输入工具564指定期望的电路设计的功能操作。设计和约束输入工具564可以包括诸如设计和约束输入辅助工具566和设计编辑器568的工具。设计和约束输入辅助工具诸如辅助工具566可以用于帮助电路设计者从现有电路设计库中定位期望的设计,并且可以向电路设计者提供计算机辅助协助用于输入(指定)期望的电路设计。
例如,设计和约束输入辅助工具566可以用于为用户呈现选项屏幕。用户可以点击屏幕上的选项,以选择被设计的电路是否应当具有某些特征。设计编辑器568可以用于输入设计(例如,通过输入多行硬件描述语言代码),可以用于编辑从库中获取的设计(例如,使用设计和约束输入辅助工具),或者可以辅助用户选择和编辑适当的预封装代码/设计。
设计和约束输入工具564可以用于允许电路设计者使用任何合适的格式提供期望的电路设计。例如,设计和约束输入工具564可以包括允许电路设计者使用真值表输入电路设计的工具。真值表可以使用文本文件或时序图指定,并且可以从库导入。真值表电路设计和约束输入可以用于大型电路的一部分或用于整个电路。
又如,设计和约束输入工具564可以包括图式捕获工具。图式捕获工具可以允许电路设计者从各组成部分,诸如逻辑门和逻辑门的组可视地构造集成电路设计。预先存在的集成电路设计的库可以用于允许使用图式捕获工具导入设计的期望部分。
如果需要的话,设计和约束输入工具564可以允许电路设计者使用硬件描述语言,诸如Verilog硬件描述语言(Verilog HDL)、超高速集成电路硬件描述语言(VHDL)、SystemVerilog或更高级别电路描述语言诸如OpenCL或SystemC(仅举几例)向电路设计系统400提供电路设计。集成电路设计的设计者可以通过使用编辑器568写硬件描述语言代码而输入电路设计。如果需要的话,代码块可以从用户维护的库或商用库导入。
在已经使用设计和约束输入工具564输入设计之后,行为模拟工具572可以用于模拟电路设计的功能性能。如果设计的功能性能不完整或不正确,电路设计者能够使用设计和约束输入工具564改变电路设计。在使用工具574执行综合操作之前,新电路设计的功能操作可以使用行为模拟工具572进行验证。如果需要的话,模拟工具诸如行为模拟工具572也可以在设计流程中的其他阶段处使用(例如,在逻辑综合之后)。行为模拟工具572的输出可以以任何合适的方式(例如,真值表、时序图等)提供给电路设计者。
一旦已经确定电路设计的功能操作符合要求,逻辑综合和优化工具574就可以产生电路设计的门级网表,例如使用来自和由制造厂供应的目标过程相关的特定库的门,所述制造厂已被选择来生产集成电路。替代地,逻辑综合和优化工具574可以使用目标可编程逻辑器件的门产生电路设计的门级网表(即,在特定可编程逻辑器件产品或产品家族的逻辑和互连资源中)。
逻辑综合和优化工具574可以通过基于逻辑设计者使用工具564输入的电路设计数据和约束数据适当地选择硬件来实施电路设计中的不同逻辑功能而优化设计。例如,逻辑综合和优化工具574可以基于电路设计中寄存器之间的组合路径的长度和由逻辑设计者使用工具564输入的对应时序约束,而在电路设计上执行寄存器重定时。
在使用工具574进行逻辑综合和优化之后,电路设计系统可以使用工具诸如布置和布线工具576来执行物理设计步骤(布局综合操作)。布置和布线工具576用于确定在哪里布置由工具574产生的门级网表的每个门。例如,如果两个计数器互相交互,布置和布线工具576可以在相邻区域中定位这些计数器,以减少互连延迟或满足指定最大允许互连延迟的定时要求。布置和布线工具576按顺序创建用于任何目标集成电路的电路设计的有效实施(例如,用于给定的可编程集成电路,诸如现场可编程门阵列(FPGA)).
诸如工具574和576的工具可以是编译器套件的一部分(例如,由可编程逻辑器件供应商提供的编译器工具套件的部分)。在某些实施例中,工具诸如工具574、576、和578还可以包括定时分析工具诸如定时评估器。这允许工具576和574在实际生产集成电路之前满足性能要求(例如,定时要求)。
例如,工具574和576可以通过移动寄存器通过组合逻辑(例如,通过逻辑AND、OR、XOR等门,查找表(LUT)、复用器、算术运算器等)来执行寄存器重定时。如图2所示,工具574和576可以向前或向后推动寄存器跨越组合逻辑。如果需要的话,工具574和576可以通过配置流水线式路由资源(诸如图3的流水线式路由资源300)以在非流水线模式中操作或者作为流水线式路由元件操作,来执行寄存器的向前推动和向后推动。
在已经使用布置和布线工具576产生期望电路设计的实现之后,可以使用分析工具578分析并测试该设计的实现。例如,分析工具578可以包括定时分析工具、功率分析工具或形式验证工具,仅举几例。
在使用工具520已经完成符合要求的优化操作之后并且取决于目标集成电路技术,工具520可以产生集成电路的掩模级布局描述或用于对可编程逻辑器件编程的配置数据。
在某些实施例中,工具诸如工具574、576、和578还可以包括调试工具诸如逻辑分析器。这允许工具574和576插入所谓的探头,这些探头在逻辑综合和优化期间和/或在布局综合操作期间从设计的内部节点路由到获取存储电路或路由到外部引脚。为了调试的目的,工具578可以在集成电路中执行设计实现期间对探头进行分接(即,提取那些内部节点的状态)。如果需要的话,工具578可以帮助所分接的探头的分析,例如通过将所分接的探头显示为波形。
在使用图5的工具520产生集成电路的掩模级布局描述时所涉及的说明性操作在图6中示出。如图6所示,电路设计者可以首先提供设计规范602。一般来讲,该设计规范602可以是以应用程序代码的形式(例如,C代码、C++代码、SystemC代码、OpenCL代码等)提供的行为描述。在一些情况下,设计规范可以以寄存器传送级(RTL)描述606的形式被提供。
RTL描述可以具有任何形式的在寄存器传送级的描述电路功能。例如,可以使用硬件描述语言,诸如Verilog硬件描述语言(Verilog HDL或Verilog)、SystemVerilog硬件描述语言(SystemVerilog HDL或SystemVerilog)或超高速集成电路硬件描述语言(VHDL)提供RTL描述。如果需要的话,RTL描述的一部分或全部可以作为示意性表示被提供。
一般来讲,行为设计规范602可包括不定时或部分定时的功能代码(即,应用程序代码不描述逐周期的硬件行为),而RTL描述606可以包括完全定时的设计描述,其详细说明在寄存器传送级的电路的逐周期行为。
设计规范602或RTL描述606还可以包括目标标准,诸如面积使用、功耗、延迟最小化、时钟频率优化或它们的任意组合。优化约束和目标标准可以统称为约束。
可以针对各个数据路径、各个数据路径的部分、设计的部分或针对整个设计提供那些约束。例如,可以利用设计规范602、RTL描述606(例如,作为编译指示或作为声明),在约束文件中或者通过用户输入(例如,使用图5的设计和约束输入工具564)提供约束,仅举几例。
在某些实施例中,给定的数据路径可以具有一个以上的与路径相关联的约束,并且这些约束中的一些可以彼此冲突,例如通过用于给定路径的行为设计规范接收的约束可以与通过RTL描述接收的约束和通过约束文件接收的约束相冲突。在这种情况下,约束的预定优先级(可以通过CAD工具520明确地定义或者隐含地决定)可以确定选择哪个冲突约束。例如,来自用户或配置文件的约束可以覆盖从其它源接收的约束,并且通过RTL描述接收的约束可以覆盖通过行为设计规范接收的约束。
约束可以将整个电路设计或电路设计的部分作为目标。例如,一些约束可以是全局定义的,并且因此可适用于整个电路设计。其他约束可以被局部分配,并且因此只适用于电路设计的对应部分。考虑以分级形式组织电路设计的情况。在这种情况下,每个分级实例可以包括不同的分配。换言之,多个不同的约束可以将电路设计的相同部分作为目标,并且优先顺序可以通过CAD工具520明确地定义或者隐含地决定。例如,在设计层次的较高级别处定义的约束可以覆盖较低级别处的约束。替代地,在设计层次的较低级别处定义的约束可以覆盖在较高级别处的约束,或者可以对设计层次的各个级别提供高于设计层次的其他级别的优先级。
包括在设计规范602或RTL描述606中的约束可以以变量、参数、编译器命令、宏命令、编译指示或声明(仅举几例)的形式传送到CAD工具520。CAD工具520可以使用约束文件,其可以包括约束的一部分或全部。这种约束文件可以包含在设计规范602或RTL描述606中。在一些情况下,约束的一部分或全部可以嵌入电路设计中。替代地,约束可以使用设计和约束输入工具564定义(见图5)。
在步骤604处,可以执行行为综合(有时也称作算术综合)以将行为描述转换成RTL描述606。如果已经以RTL描述的形式提供了设计规范,则步骤604可以被跳过。
在步骤618处,行为模拟工具572可以执行RTL描述的RTL模拟,其可以验证RTL描述的功能性能。如果RTL描述的功能性能是不完整或不正确的,则电路设计者能够改变HDL代码(作为示例)。在RTL模拟618期间,从模拟RTL描述的行为所得到的实际结果可以与预期结果相比较。
在步骤608期间,逻辑综合操作可以使用来自图5的逻辑综合和优化工具574产生门级描述610。如果需要的话,逻辑综合操作可以根据包括在设计规范602或RTL描述606中的约束执行如图2中所示的寄存器重定时。
在步骤612期间,物理综合操作(例如,使用例如布置和布线工具576进行的布置和布线及优化操作)可以将门级描述610中不同的门布置并连接在目标集成电路上的优选位置,以满足给定目标标准(例如,最小化面积并且最大化路由效率或者最小化路径延迟并且最大化时钟频率或它们的任意组合)。
如果需要的话,物理综合操作可以执行如图2中所示并且根据包括在设计规范602或RTL描述606中的约束的寄存器重定时。例如,物理综合操作可以通过将一些流水线式路由资源(例如,图3的流水线式路由资源300的一些实例)的配置从在流水线寄存器模式下操作改变为在非流水线式模式下操作,并且将其它流水线式路由资源(例如,图3的流水线式路由资源300的其他实例)的配置从在非流水线模式下操作改变为在流水线寄存器模式下操作,来执行寄存器重定时。物理综合612的输出为掩模级布局描述616。
电路设计系统400可以包括定时估计器(例如,形成为优化工具574、工具576或工具578的一部分),其可以用于估计在步骤614期间电路设计的同步元件之间的延迟。例如,定时估计器可以估计时序元件诸如寄存器和存储电路之间的延迟(例如,基于互连的长度、中间组合逻辑等)。如果需要的话,该延迟可以基于度量诸如时间裕量(例如,信号的要求到达时间和到达时间之间的差异)、时间裕量比、互连拥塞、或其它定时度量来估计。电路设计系统400可以使用所估计的延迟确定电路各组的位置,同时帮助确保延迟满足定时要求(例如,关键路径延迟要求)或其它性能约束。
考虑这样的情况:其中电路设计具有从寄存器通过组合逻辑到另一个寄存器的给定路径,并且该指定路径不满足一个或更多个目标标准。例如,定时估计器可以确定该给定路径关联比目标延迟大的延迟,目标延迟是针对该路径被指定作为目标标准之一。定时估计器可以检测该给定路径在逻辑综合608之前、期间和之后或者在物理综合612之前、期间或之后具有较大的延迟,物理综合可以包括诸如聚集、分区、布置和布线之类的操作(仅举几例)。在这种情况下,逻辑综合608或物理综合612可以执行寄存器重定时(例如,图2中所述的寄存器重定时操作),从而减小通过寄存器之间的组合逻辑的延迟,并且可能提高给定路径的性能。
如果需要的话,执行寄存器重定时操作的工具可以记录与寄存器重定时操作有关的信息。例如,该工具可以记录与被向前推动通过节点的寄存器的数量、被向后推动通过节点的寄存器的数量、被向前推动的寄存器的数量减去被向后推动的寄存器的数量之差等有关的信息。如果需要的话,该工具可以记录与每个寄存器有关的信息。例如,该工具可以记录时钟信息(例如,时钟信号的名称、频率、相位等)、与初始条件有关的信息以及与复位状况(例如,异步复位和/或同步复位)有关的信息(仅举几例)。
电路设计系统400可以包括逻辑分析器(例如,作为工具578的一部分形成),电路设计者可以使用该逻辑分析器实时并高速地调试实施电路设计的集成电路。如所示的,逻辑分析器619可以在RTL描述606、门级描述610、和/或掩模级描述610中插入分接点以捕获来自内部电路设计节点的信号。如果需要的话,逻辑分析器619还可以提供控制以添加或删除在现有调试过程中分接的节点。逻辑分析器619可以提供从所有选定节点到获取存储电路的连接或从那些节点到输入输出引脚的连接。
在改变节点的选择之后,工具574和576可以重新编译电路设计。例如,逻辑分析器619可以将节点添加到节点的选择,并且将那些节点与获取存储电路之间的路由连接添加到RTL描述606。RTL描述606的变化可以要求在步骤608期间执行逻辑综合操作并且在步骤612期间执行物理综合操作。在某些实施例中,逻辑分析器可以提供控制以启用、禁用或修改在门级描述610或掩模级布局描述616中的节点,而无需完全重新编译电路设计。例如,改变门级描述中的节点选择可以只要求在步骤612期间执行物理综合操作。
在某些实施例中,由于RTL描述606的递增变化,工具574可以在步骤608期间执行递增逻辑综合操作。递增逻辑综合操作可以保存原始门级描述610中的大部分,同时将修改限制为针对受到RTL描述606中的递增变化影响的门级描述的部分。
类似地,由于门级描述610中的递增变化,工具576可以在步骤612期间执行递增物理综合操作。递增物理综合操作可以保存原始掩模级布局描述616中的大部分,同时将修改限制为针对受到门级描述610中的递增变化影响的掩模级布局描述的部分。
插入分接点以在选定的内部节点处对信号采样(例如,通过逻辑分析器619)或者改变电路设计者想要通过逻辑分析器619进行采样的节点选择可以导致RTL描述606、门级描述610和/或掩模级布局描述616的递增变化。RTL描述606、门级描述610和/或掩模级布局描述616的这些变化可以由在所添加节点与获取存储电路或输入输出引脚之间插入布线连接以及移除所移除节点与获取存储电路或输入输出引脚之间的布线连接导致。因此,工具574和576可以分别在步骤608期间执行递增逻辑综合操作和在步骤612期间执行递增物理综合操作。
逻辑分析器619可以提供控制以设置触发条件并根据那些触发条件对数据采样。例如,触发条件可以描述具有用于信号的逻辑条件的逻辑事件。如果需要的话,触发条件可基于涉及比较、逻辑运算符和/或缩减运算符的一系列事件。触发条件可以指定逻辑分析器619何时从分接点开始和停止数据获取。
逻辑分析器619可以以RTL代码的形式将触发条件添加到RTL描述606中,或者以门级网表的形式添加到门级描述610中。RTL描述606的变化可以要求在步骤608期间执行逻辑综合操作并且在步骤612期间执行物理综合操作。门级描述610的变化可以要求在步骤612期间执行物理综合操作。逻辑综合操作和/或物理综合操作可以是递增的(即,限于RTL描述606的修改部分和/或门级描述610的修改部分)。
逻辑分析器619可以在实施电路设计的集成电路的操作期间执行数据获取。在数据获取期间,逻辑分析器619可以从分接点连续地将数据捕获到获取存储电路中。
为了数据分析的目的,逻辑分析器619可以经由JTAG端口将所捕获的数据从获取存储电路路由到波形显示窗格,或者路由到集成电路的输入输出引脚以由外部逻辑分析器或示波器使用。
波形显示窗格可以允许对所捕获数据的波形视图进行观察、打印或编辑。例如,波形显示窗格可以允许插入时间条,进一步编辑节点的属性、编辑总线和总线值以及打印波形,仅举几例。逻辑分析器619还可以允许将数据导出为另一种格式用于进一步分析。
例如,考虑图7A的电路设计710(例如,为图6的门级描述610的形式)和集成电路720作为电路设计(例如,为图6的掩模级布局描述616的形式)的实施。如图所示,电路设计710和集成电路720可以包括流水线式路由资源722、724、726、732和734(例如,图3的流水线式路由资源300)、逻辑AND门716和组合门713,其可以分别包括组合AND门712和714。
进一步考虑电路设计710在流水线式寄存器模式下操作流水线式路由资源722、724和726以及在非流水线式模式下操作流水线式路由资源732和734。CAD工具(例如,图5的CAD工具520)可以在电路设计710上执行寄存器重定时操作。例如,寄存器重定时操作可以配置流水线式路由资源722、724和726以在非流水线模式下操作,并且配置流水线式路由资源732和734在流水线寄存器模式下操作,从而有效地向前推动寄存器跨越组合门713,并且创建集成电路720。
如果需要的话,CAD工具可以记录与寄存器重定时信息有关的信息。例如,CAD工具可以针对每个节点(例如,针对节点P和R)记录被向前推动通过节点的寄存器与被向后推动通过节点的寄存器之间的差。在集成电路720的示例中,节点P’和R’可以分别具有等于1和0的前推寄存器与后推寄存器之间的差。
例如,考虑用户想要探测或采样在逻辑AND门714和716的输出处的信号。为了该目的,CAD工具可以在节点P和R处(即,在逻辑AND门714和716的输出处)将分接点插入在集成电路710中(例如,插入图6的门级描述610中),以从那些节点处捕获信号。逻辑分析器(例如,图6的逻辑分析器619)可以提供获取存储电路760和从逻辑AND门714和716的输出到获取存储电路760的连接。CAD工具(例如,图5的工具576)可以以递增方式重新创建集成电路720,其具有从重定时的节点P’和R’到获取存储电路760的连接,获取存储电路760可以存储所探测的信号用于进一步分析。
在分析所探测的信号期间,CAD工具可以比较在电路设计710中的逻辑AND门714的输出处的节点P处的预期值和在集成电路720中的逻辑AND门714的输出处的节点P’处的所探测的信号。
在本示例中,节点P和P’在相同数量的时钟周期之后可以是不相等的。然而,节点P和P’在不同数量的时钟周期之后可以是相等的。例如,延迟一个时钟周期的节点P’可以等于节点P。
如果需要的话,逻辑分析器可以计算在节点P’处采样的数据的偏移。逻辑分析器可以针对节点P补偿该偏移并且重新校准数据(例如,在波形显示窗格中)。如果需要的话,逻辑分析器可以提供控制以切换观察在节点P’处实际采样的数据和在节点P处重新校准的数据。
替代地,逻辑分析器可以基于所记录的寄存器重定时信息,确定在每个分接点和获取存储电路之间插入的寄存器数量。例如,逻辑分析器可以针对所有采样的节点确定前推寄存器与后推寄存器之间的最小差值(即,对于节点R’为0),并且将该差值的绝对值添加到针对每个采样的节点记录的差值(即,对于P’为1并且对于R’为0)以确定需要插入在相应节点和获取存储电路之间的寄存器的数量。
在集成电路720的示例中,需要在节点P’和获取存储电路760之间插入一个寄存器(例如,寄存器752),而不需要在集成电路720中的节点R’和获取存储电路760之间插入寄存器。
又如,考虑图7B的电路设计730(例如,为图6的门级描述610的形式)和集成电路740作为电路设计的实现(例如,为图6的掩模级布局描述616的形式)。如图所示,电路设计730和集成电路740可以包括流水线式路由资源722、724、726、732和734(例如,图3的流水线式路由资源300)、逻辑AND门716和组合门713,其可以分别包括逻辑AND门712和714。
进一步考虑电路设计730在非流水线式寄存器模式下操作流水线式路由资源722、724和726以及在流水线式模式下操作流水线式路由资源732和734。CAD工具(例如,图5的CAD工具520)可以在电路设计730上执行寄存器重定时操作。例如,寄存器重定时操作可以配置流水线式路由资源722、724和726以在流水线模式下操作,并且配置流水线式路由资源732和734在非流水线寄存器模式下操作,从而有效地向后推动寄存器跨越组合门713,并且创建集成电路740。
如果需要的话,CAD工具可以记录与寄存器重定时信息有关的信息。例如,CAD工具可以针对每个节点(例如,针对节点Q和S)在寄存器向前移动跨越节点时递增寄存器计数,并且在寄存器向后移动跨越节点时递减寄存器计数,从而记录被向前推动通过节点的寄存器与被向后推动通过节点的寄存器之间的差。在集成电路740的示例中,节点Q’和S’可分别具有等于-1和0的前推寄存器与后推寄存器之差。
例如,考虑用户想要探测或采样在逻辑AND门714和716的输出处的信号。为了该目的,CAD工具可以在节点Q和S处(即,在逻辑AND门714和716的输出处)将分接点插入在集成电路730中(例如,插入图6的门级描述610中),以从那些节点处捕获信号。逻辑分析器(例如,图6的逻辑分析器619)可以提供获取存储电路765和从逻辑AND门714和716的输出到获取存储电路765的连接。CAD工具(例如,图5的工具576)可以以递增方式重新创建集成电路740,其具有从重定时的节点Q’和S’到获取存储电路765的连接,获取存储电路765可以存储所探测的信号用于进一步分析。
在调试期间,CAD工具可以基于电路设计730中节点Q和S的知识,分析在集成电路740中的逻辑AND门714和716的输出处的节点Q’和S’处的所探测信号。在本示例中,节点Q和S相对于彼此延迟一个时钟周期,并且节点Q’和S’不延迟。因此,延迟一个时钟周期的节点S’可以提供节点Q’与S’之间相同的一个时钟周期延迟,而不是节点Q和S之间的延迟。
如果需要的话,逻辑分析器可以计算在节点Q’和S’处采样的数据的偏移。逻辑分析器可以针对节点Q和S补偿该偏移并且重新校准数据(例如,在波形显示窗格中)。如果需要的话,逻辑分析器可以提供控制以切换观察在节点Q’和S’处实际采样的数据和在节点Q和S处重新校准的数据。
替代地,逻辑分析器可以基于所记录的寄存器重定时信息,确定插入在每个分接点和获取存储电路之间的寄存器数量。例如,逻辑分析器可以针对所有采样的节点确定前推寄存器与后推寄存器之间的最小差值(即,对于节点Q’为-1,并且对于节点S’为0),并且将该差值的绝对值(即,1)添加到针对每个采样节点记录的差值(即,对于S’为0+1=1,并且对于Q’为-1+1=0),以确定需要插入在相应节点和获取存储电路之间的寄存器的数量。
在集成电路740的示例中,需要在节点S’和获取存储电路765之间插入一个寄存器(例如,寄存器754);而不需要在节点Q’和获取存储电路765之间插入寄存器。
图8为流程图,示出CAD工具(例如图5的CAD工具520)可以执行以在集成电路中实施电路设计并且从集成电路对内部节点的信号进行采样用于使用逻辑分析器实时并高速地调试集成电路的说明性步骤,类似于分别在图7A和图7B的电路设计710和730的门级描述上执行的操作。
在步骤810期间,CAD工具可以接收包括多个寄存器和耦合在电路设计中的逻辑门之间的第一互连和第二互连的电路设计。例如,CAD工具可以接收图7A的电路设计710或图7B的电路设计730。
在步骤820期间,CAD工具可以执行电路设计的重定时操作以创建寄存器重定时的电路设计。例如,CAD工具可以从图7A的组合门713的输入处移除寄存器722、724和726,并且在组合门的输出处添加寄存器732和734,从而推动寄存器向前跨越点P。又如,CAD工具可以从图7B的组合门713的输出处移除寄存器732和734,并且对组合门的输入添加寄存器722、724和726,从而推动寄存器向后跨越节点Q。
在步骤830期间,CAD工具可以记录与重定时操作有关的信息。例如,CAD工具可以记录包括移动跨越组合门的每个寄存器的移动方向(例如,向前或向后)、寄存器类型(例如,时钟信息诸如时钟信号名称、频率和相位)的信息。
在步骤840期间,CAD工具可以将寄存器重定时的电路设计的第一互连和第二互连耦合到获取存储电路。例如,CAD工具可以将图7A中集成电路720的节点P’和R’连接到获取存储电路760。又如,CAD工具可以将图7B中的集成电路740的节点Q’和S’连接到获取存储电路765。
在步骤850期间,CAD工具可以基于所记录的信息,在相应的第一互连和第二互连与获取存储电路之间对寄存器重定时的电路设计添加第一延时和第二延时。例如,CAD工具可以在节点P’和图7A的获取存储电路760之间插入一个寄存器,并且在节点R’和获取存储电路760之间插入零个寄存器。又如,CAD工具可以在节点S’和图7B的获取存储电路765之间插入一个寄存器,并且在节点Q’和获取存储电路765之间插入零个寄存器。
在步骤860期间,CAD工具可以在寄存器重定时的电路设计的相应第一互连和第二互连处探测第一信号和第二信号。例如,CAD工具可以在图7A的集成电路720的节点P’和R’处对信号进行采样。又如,CAD工具可以在图7B的集成电路740的节点Q’和S’处对信号进行采样。
图9为流程图,示出逻辑分析器(例如,作为图5的分析工具578的一部分的图6的逻辑分析器619)可以执行用于分析重定时的设计中所探测的信号的说明性步骤。重定时操作可以已经移动寄存器跨越电路设计中的互连,以创建重定时的设计。重定时操作还可以已经记录与寄存器移动有关的信息。例如,重定时操作可以移动寄存器724和726跨越图7A的电路设计710的节点P以创建集成电路720作为重定时的设计,并且记录信息:移动一个寄存器向前跨越节点P以创建节点P’。
在步骤910期间,逻辑分析器可以接收在电路设计中的互连处的分接点。例如,逻辑分析器可以接收这样的指令:节点P为图7A的电路设计710的分接点。响应于接收分接点,逻辑分析器可以在步骤920期间插入从重定时的设计中的互连到存储电路的路线(route)。例如,逻辑分析器可以将图7A的集成电路720的点P’耦合到获取存储电路760。
在步骤930期间,逻辑分析器可以指示重定时的设计将所探测的信号存储在存储电路760中。例如,逻辑分析器可以基于触发条件开始在图7A的集成电路720的点P’处对信号采样,并且将所采样的信号存储在获取存储电路760中。
在步骤940期间,逻辑分析器可以从存储电路检索所探测的信号用于调试。例如,逻辑分析器可以耦合到图7A的获取存储电路760(例如,通过JTAG端口),并且检索所存储的信号用于进一步处理。
在步骤950期间,逻辑分析器可以基于所记录的信息计算所探测的信号的偏移。例如,逻辑分析器可以计算在重定时操作期间向前移动跨越节点P的寄存器的数量(即,一个寄存器)与向后移动跨越节点P的寄存器的数量(即,零个寄存器)之差,从而隐含地补偿在P’和获取存储电路之间插入寄存器会导致的附加延时。
在步骤960期间,逻辑分析器可以使用所计算的偏移重新校准所探测的信号。例如,逻辑分析器可以示出在点P’处采样的延迟一个时钟周期的信号。逻辑分析器可以在步骤970期间显示重新校准的信号。
如果需要的话,逻辑分析器可以提供选项以选择性地切换显示重新校准的信号和所探测的信号。例如,逻辑分析器可以提供选项以切换示出在点P’处采样的信号和在点P’处采样的延迟一个时钟周期的信号。
图10为示出根据实施例的逻辑分析器可以执行用于在电路中探测信号的说明性步骤的流程图。
在步骤1010期间,逻辑分析器可以接收预先重定时电路设计的重定时的电路设计。在步骤1020期间,逻辑分析器可以接收预先重定时电路设计中的第一分接点和用于第一分接点的重定时信息。例如,逻辑分析器可以接收预先重定时电路730和图7B的重定时的电路740、与推动寄存器向后跨越点Q的重定时操作有关的信息以及分接点Q和S。
在步骤1025期间,逻辑分析器可以在重定时的电路设计中定位对应于预先重定时电路设计中的第一分接点的第二分接点。在图7B的示例中,逻辑分析器可以将预先重定时电路730中的分接点Q和S映射到重定时的电路740中的分接点Q’和S’。
在步骤1030期间,逻辑分析器可以针对第一分接点中的每个点确定相应点之中前推寄存器与后推寄存器之间差的最小数。在图7B的示例中,逻辑分析器可以确定在点Q(即,-1)和S(即,0)处的前推寄存器与后推寄存器之间的差,并确定两个差值中的最小值(即,-1)。
在步骤1040期间,逻辑分析器可以针对第一分接点中的每个点从前推寄存器与后推寄存器之间的相应差值减去所确定的最小数,以确定相应的寄存器附加数量。在图7B的示例中,逻辑分析器可以计算在点Q’处的寄存器的附加数量为0(即,(-1)-(-1)=0)并且在点S’处的寄存器的附加数量为1(即,0-(-1)=1)。
在步骤1050期间,逻辑分析器可以针对第二分接点中的每个点在第二分接点中的相应点与获取存储块之间的路线中插入第一分接点中对应点的相应附加数量的寄存器。在图7B的示例中,逻辑分析器可以在点S’与获取存储电路765之间的路线中插入一个寄存器。
本文所述的方法和装置可以并入到任何合适的电子器件或电子器件的系统中。例如,所述方法和装置可以并入到多种类型的器件,诸如微处理器或其它IC中。示例性的IC包括可编程阵列逻辑(PAL)、可编程逻辑阵列(PLA)、现场可编程逻辑阵列(FPLA)、电子可编程逻辑器件(EPLD)、电子可擦除可编程逻辑器件(EEPLD)、逻辑单元阵列(LCA)、现场可编程门阵列(FPGA)、专用标准产品(ASSP)、专用集成电路(ASIC)、数字信号处理器(DSP)、图形处理单元(GPU),仅举几例。
本文所述的集成电路可以是包括以下组件中的一个或更多个的数据处理系统的一部分;处理器;存储器;I/O电路和外围器件。集成电路可以在许多种应用中使用,诸如计算机联网、数据联网、仪表化、视频处理、数字信号处理、或在寄存器重定时之后期望实时并高速地调试电路设计的优势的任何合适的其他应用。
虽然方法操作以特定的顺序描述,但应当理解,其他操作可以在所描述的操作之间执行,所描述的操作可以被调整以便它们在略微不同的时间发生,或者所描述的操作可以被分配在允许在和处理关联的各种时间间隔发生处理操作的系统中,只要叠置操作的处理以期望的方式执行。
附加实施例:
附加实施例1.一种使用在计算设备上实施的计算机辅助设计工具来探测信号的方法,包括:接收电路设计,所述电路设计包括多个寄存器和在所述电路设计中的逻辑门之间耦合的第一互连和第二互连;在所述电路设计上执行重定时操作以创建寄存器重定时的电路设计;记录与所述重定时操作有关的信息;将所述寄存器重定时的电路设计的所述第一互连和所述第二互连耦合到获取存储电路;基于所记录的信息,在所述第一互连和所述获取存储电路之间对所述寄存器重定时的电路设计添加第一延时;以及基于所记录的信息,在所述第二互连和所述获取存储电路之间对所述寄存器重定时的电路设计添加第二延时。
附加实施例2.根据附加实施例1所述的方法,其进一步包括:在所述寄存器重定时的电路设计的所述第一互连处探测第一信号,以及在所述寄存器重定时的电路设计的所述第二互连处探测第二信号。
附加实施例3.根据附加实施例2所述的方法,其进一步包括:在所述获取存储电路处接收已经延迟所述第一延时的第一探测的信号用于暂时存储;以及在所述获取存储电路处接收已经延迟所述第二延时的第二探测的信号用于暂时存储。
附加实施例4.根据附加实施例1所述的方法,其中执行所述电路设计的所述重定时操作进一步包括:将所述多个寄存器中的寄存器从在所述第一互连中的第一位置移动到在所述第一互连中的第二位置。
附加实施例5.根据附加实施例4所述的方法,其中移动所述寄存器进一步包括:改变耦合到在所述第一互连中的所述第二位置的模式复用器的配置,使所述模式复用器的所述配置从选择第一输入信号改变为选择第二输入信号,其中所述第一输入信号由路由复用器驱动,并且所述第二输入信号由互连寄存器驱动。
附加实施例6.根据附加实施例5所述的方法,其中移动所述寄存器进一步包括:改变耦合到在所述第一互连中的所述第一位置的附加模式复用器的配置,使所述附加模式复用器的所述配置从选择第三输入信号改变为选择第四输入信号,其中所述第三输入信号由附加互连寄存器驱动,并且所述第四输入信号由附加路由复用器驱动。
附加实施例7.根据附加实施例1所述的方法,其中记录与所述重定时操作有关的信息进一步包括:基于所述重定时操作更新所述第一互连的第一寄存器计数;以及基于所述重定时操作更新所述第二互连的第二寄存器计数。
附加实施例8.根据附加实施例7所述的方法,其中更新所述第一寄存器计数进一步包括:当所述多个寄存器中的寄存器向前移动跨越所述第一互连时,递增所述第一寄存器计数。
附加实施例9.根据附加实施例7所述的方法,其中更新所述寄存器计数进一步包括:当所述多个寄存器中的寄存器向后移动跨越所述第一互连时,递减所述第一寄存器计数。
附加实施例10.根据附加实施例7所述的方法,其进一步包括:确定所述第一寄存器计数是否小于所述第二寄存器计数。
附加实施例11.根据附加实施例10所述的方法,其中对所述寄存器重定时的电路设计添加所述第一延时和添加所述第二延时进一步包括:基于所述记录的信息,在所述第一互连和所述获取存储电路之间将第一附加寄存器插入到所述寄存器重定时的电路设计中;以及基于所述记录的信息,在所述第二互连和所述获取存储电路之间将第二附加寄存器插入到所述寄存器重定时的电路设计中。
附加实施例12.根据附加实施例11所述的方法,其中基于所述记录的信息,在相应的第一互连和第二互连与所述获取存储电路之间将第一附加寄存器和第二附加寄存器插入到所述寄存器重定时的电路设计中进一步包括:响应于确定所述第一寄存器计数小于所述第二寄存器计数,从所述第二寄存器计数中减去所述第一寄存器计数以确定第三寄存器计数;以及在所述第二互连和所述获取存储电路之间插入第二附加寄存器的所述第三寄存器计数。
附加实施例13.用于分析重定时的设计中的所探测信号的非暂时性计算机可读存储介质,其中寄存器重定时操作移动寄存器跨越电路设计的互连以创建所述重定时的设计并记录与所述寄存器移动有关的信息,包括用于以下操作的指令:在所述电路设计中的所述互连处接收分接点;基于所述电路设计中的所述分接点在所述重定时的设计中定位重定时的分接点;在所述重定时的设计中的所述重定时的分接点处探测信号;以及通过基于所记录的信息执行偏移补偿来分析所探测的信号。
附加实施例14.根据附加实施例13所述的非暂时性计算机可读存储介质,其中在所述重定时的设计中的所述重定时的分接点处探测信号进一步包括用于以下操作的指令:插入从所述重定时的设计中的所述重定时的分接点到存储电路的路线。
附加实施例15.根据附加实施例14所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:指示所述重定时的设计将所探测的信号存储在所述存储电路中。
附加实施例16.根据附加实施例15所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:从所述存储电路检索所探测的信号用于调试。
附加实施例17.根据附加实施例13所述的非暂时性计算机可读存储介质,其中分析所探测的信号进一步包括用于以下操作的指令:基于所记录的信息计算所探测的信号的偏移。
附加实施例18.根据附加实施例17所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:使用所计算的偏移重新校准所探测的信号。
附加实施例19.根据附加实施例18所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:显示所重新校准的信号。
附加实施例20.根据附加实施例18所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:选择性地切换显示所重新校准的信号和所探测的信号。
附加实施例21.一种使用在计算设备上实施的电路设计工具来探测预先重定时电路设计中的信号的方法,包括:使用在所述计算设备上实施的所述电路设计工具,接收所述预先重定时电路设计的重定时的电路设计;使用在所述计算设备上实施的所述电路设计工具,接收所述预先重定时电路设计中的第一分接点和用于所述第一分接点的重定时信息;使用在所述计算设备上实施的所述电路设计工具,定位所述重定时的电路设计中的第二分接点,所述第二分接点对应于所述预先重定时电路设计中的所述第一分接点;基于所述重定时信息,使用在所述计算设备上实施的所述电路设计工具,在所述重定时的电路设计中产生从所述第二分接点到获取存储块的路线;以及使用在所述计算设备上实施的所述电路设计工具,在所述重定时的电路设计中的所述第二分接点处探测信号。
附加实施例22.根据附加实施例21所述的方法,其进一步包括:从所述第二分接点发送所探测的信号到所述获取存储块;以及将所探测的信号存储在所述获取存储块中用于进一步分析。
附加实施例23.根据附加实施例22所述的方法,其中所述重定时信息包括针对所述第一分接点中每个点的跨越所述点的前推寄存器与后推寄存器之间的相应数量差,并且其中基于所述重定时信息在所述重定时的电路设计中产生从所述第二分接点到所述获取存储块的路线进一步包括:确定相应点之中的前推寄存器与后推寄存器之间的所述数量差的最小数;
附加实施例24.根据附加实施例23所述的方法,其进一步包括:针对所述第一分接点中的每个点,从前推寄存器与后推寄存器之间的所述相应数量差中减去所确定的最小数,以确定相应附加数量的寄存器。
附加实施例25.根据附加实施例24所述的方法,其进一步包括:针对所述第二分接点中的每个点,将所述第一分接点中的对应点的所述相应附加数量的寄存器插入到所述第二分接点中的相应点与所述获取存储块之间的所述路线中。
前述内容仅仅说明本发明的原理,并且在不脱离本发明的范围和精神的情况下,可由本领域技术人员做出各种修改。

Claims (20)

1.一种使用在计算设备上实施的计算机辅助设计工具来探测信号的方法,包括:
接收电路设计,所述电路设计包括多个寄存器和在所述电路设计中的逻辑门之间耦合的第一互连和第二互连;
在所述电路设计上执行重定时操作以创建寄存器重定时的电路设计;
记录与所述重定时操作有关的信息;
将所述寄存器重定时的电路设计的所述第一互连和所述第二互连耦合到获取存储电路;
基于所记录的信息,在所述第一互连和所述获取存储电路之间对所述寄存器重定时的电路设计添加第一延时;以及
基于所记录的信息,在所述第二互连和所述获取存储电路之间对所述寄存器重定时的电路设计添加第二延时。
2.根据权利要求1所述的方法,其进一步包括:
在所述寄存器重定时的电路设计的所述第一互连处探测第一信号,以及在所述寄存器重定时的电路设计的所述第二互连处探测第二信号;
在所述获取存储电路处接收已经延迟所述第一延时的探测的第一信号用于暂时存储;以及
在所述获取存储电路处接收已经延迟所述第二延时的探测的第二信号用于暂时存储。
3.根据权利要求1所述的方法,其中执行所述电路设计的所述重定时操作进一步包括:
将所述多个寄存器中的寄存器从在所述第一互连中的第一位置移动到在所述第一互连中的第二位置。
4.根据权利要求3所述的方法,其中移动所述寄存器进一步包括:
改变耦合到在所述第一互连中的所述第二位置的模式复用器的配置,使所述模式复用器的所述配置从选择第一输入信号改变为选择第二输入信号,其中所述第一输入信号由路由复用器驱动,并且所述第二输入信号由互连寄存器驱动;以及
改变耦合到在所述第一互连中的所述第一位置的附加模式复用器的配置,使所述附加模式复用器的所述配置从选择第三输入信号改变为选择第四输入信号,其中所述第三输入信号由附加互连寄存器驱动,并且所述第四输入信号由附加路由复用器驱动。
5.根据权利要求1所述的方法,其中记录与所述重定时操作有关的信息进一步包括:
基于所述重定时操作更新所述第一互连的第一寄存器计数;以及
基于所述重定时操作更新所述第二互连的第二寄存器计数。
6.根据权利要求5所述的方法,其中更新所述第一寄存器计数进一步包括:
当向前移动所述多个寄存器中的寄存器跨越所述第一互连时,递增所述第一寄存器计数。
7.根据权利要求5所述的方法,其中更新所述寄存器计数进一步包括:
当向后移动所述多个寄存器中的寄存器跨越所述第一互连时,递减所述第一寄存器计数。
8.根据权利要求5所述的方法,其进一步包括:
确定所述第一寄存器计数是否小于所述第二寄存器计数。
9.根据权利要求8所述的方法,其中对所述寄存器重定时的电路设计添加所述第一延时和添加所述第二延时进一步包括:
基于所述记录的信息,在所述第一互连和所述获取存储电路之间将第一附加寄存器插入到所述寄存器重定时的电路设计中;以及
基于所述记录的信息,在所述第二互连和所述获取存储电路之间将第二附加寄存器插入到所述寄存器重定时的电路设计中。
10.根据权利要求9所述的方法,其中基于所述记录的信息,在所述对应的第一互连和第二互连与所述获取存储电路之间将第一附加寄存器和第二附加寄存器插入到所述寄存器重定时的电路设计中进一步包括:
响应于确定所述第一寄存器计数小于所述第二寄存器计数,从所述第二寄存器计数减去所述第一寄存器计数以确定第三寄存器计数;以及
在所述第二互连和所述获取存储电路之间插入所述第二附加寄存器的所述第三寄存器计数。
11.用于分析重定时的设计中的所探测信号的非暂时性计算机可读存储介质,其中寄存器重定时操作移动寄存器跨越电路设计的互连以创建所述重定时的设计并记录与所述寄存器移动有关的信息,包括用于以下操作的指令:
在所述电路设计中的所述互连处接收分接点;
基于所述电路设计中的所述分接点,在所述重定时的设计中定位重定时的分接点;
在所述重定时的设计中的所述重定时的分接点处探测信号;以及
通过基于所记录的信息执行偏移补偿来分析所探测的信号。
12.根据权利要求11所述的非暂时性计算机可读存储介质,其中在所述重定时的设计中的所述重定时的分接点处探测信号进一步包括用于以下操作的指令:
插入从所述重定时的设计中的所述重定时的分接点到存储电路的路线。
13.根据权利要求12所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:
引导所述重定时的设计以将所探测的信号存储在所述存储电路中;以及
从所述存储电路检索所探测的信号用于调试。
14.根据权利要求11所述的非暂时性计算机可读存储介质,其中分析所探测的信号进一步包括用于以下操作的指令:
基于所记录的信息计算所探测的信号的偏移。
15.根据权利要求14所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:
使用所计算的偏移重新校准所探测的信号。
16.根据权利要求15所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:
显示所重新校准的信号。
17.根据权利要求15所述的非暂时性计算机可读存储介质,其进一步包括用于以下操作的指令:
选择性地切换显示所重新校准的信号和所探测的信号。
18.一种使用在计算设备上实施的电路设计工具来探测预先重定时电路设计中的信号的方法,包括:
使用在所述计算设备上实施的所述电路设计工具,接收所述预先重定时电路设计的重定时的电路设计;
使用在所述计算设备上实施的所述电路设计工具,接收所述预先重定时电路设计中的第一分接点和用于所述第一分接点的重定时信息;
使用在所述计算设备上实施的所述电路设计工具,定位所述重定时的电路设计中的第二分接点,所述第二分接点对应于所述预先重定时电路设计中的所述第一分接点;
基于所述重定时信息,使用在所述计算设备上实施的所述电路设计工具,在所述重定时的电路设计中产生从所述第二分接点到获取存储块的路线;以及使用在所述计算设备上实施的所述电路设计工具,在所述重定时的电路设计中的所述第二分接点处探测信号。
19.根据权利要求18所述的方法,其进一步包括:
从所述第二分接点发送所探测的信号到所述获取存储块;以及
将所探测的信号存储在所述获取存储块中用于进一步分析。
20.根据权利要求19所述的方法,其中所述重定时信息包括针对所述第一分接点中每个点的跨越该点的前推寄存器与后推寄存器之间的相应数量差,并且其中基于所述重定时信息在所述重定时的电路设计中产生从所述第二分接点到所述获取存储块的路线进一步包括:
确定相应点之中前推寄存器与后推寄存器之间的所述数量差的最小数;
对于所述第一分接点中的每个点,从前推寄存器与后推寄存器之间的相应数量差中减去所确定的最小数,以确定相应附加数量的寄存器;以及
对于所述第二分接点中的每个点,,将所述第一分接点中对应点的所述相应附加数量的寄存器插入到所述第二分接点的相应点与所述获取存储块之间的所述路线中。
CN201610315631.1A 2015-05-29 2016-05-13 用于在寄存器重定时之后探测信号的方法和装置 Active CN106202603B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/726,237 US9552456B2 (en) 2015-05-29 2015-05-29 Methods and apparatus for probing signals from a circuit after register retiming
US14/726,237 2015-05-29

Publications (2)

Publication Number Publication Date
CN106202603A true CN106202603A (zh) 2016-12-07
CN106202603B CN106202603B (zh) 2020-02-21

Family

ID=55910870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610315631.1A Active CN106202603B (zh) 2015-05-29 2016-05-13 用于在寄存器重定时之后探测信号的方法和装置

Country Status (3)

Country Link
US (1) US9552456B2 (zh)
EP (1) EP3107016A1 (zh)
CN (1) CN106202603B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446424A (zh) * 2017-02-02 2018-08-24 英特尔公司 用于为重定时的电路系统自动实现补偿重置的方法和装置
CN112100793A (zh) * 2019-05-31 2020-12-18 超威半导体(上海)有限公司 用于重定时流水线的基于条带的自选通

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10417374B1 (en) * 2016-05-09 2019-09-17 Altera Corporation Method and apparatus for performing register retiming by utilizing native timing-driven constraints
US10394990B1 (en) * 2016-09-27 2019-08-27 Altera Corporation Initial condition support for partial reconfiguration
US10699053B1 (en) * 2018-01-17 2020-06-30 Xilinx, Inc. Timing optimization of memory blocks in a programmable IC
CN118070724B (zh) * 2024-03-06 2024-07-02 苏州异格技术有限公司 Fpga延时优化方法、装置、计算机设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818911A (zh) * 2002-02-15 2006-08-16 马尔帝吉格有限公司 旋转时钟设计流程
CN1950796A (zh) * 2004-04-27 2007-04-18 皇家飞利浦电子股份有限公司 流水线异步指令处理器电路
US20090002045A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Integrated circuit with delay selecting input selection circuitry
CN104252557A (zh) * 2013-06-28 2014-12-31 阿尔特拉公司 适于负责重定时的集成电路器件配置方法
CN104573169A (zh) * 2013-10-25 2015-04-29 阿尔特拉公司 以自动流水线操作能力设计集成电路的方法和工具

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5448497A (en) * 1992-09-08 1995-09-05 Nec Research Institute, Inc. Exploiting multi-cycle false paths in the performance optimization of sequential circuits
US7020397B2 (en) 2001-10-23 2006-03-28 Lemoff Brian E Optical retiming of an optical data signal
US6941541B2 (en) * 2002-07-19 2005-09-06 Hewlett-Packard Development Company, L.P. Efficient pipelining of synthesized synchronous circuits
US7093204B2 (en) * 2003-04-04 2006-08-15 Synplicity, Inc. Method and apparatus for automated synthesis of multi-channel circuits
US7120883B1 (en) * 2003-05-27 2006-10-10 Altera Corporation Register retiming technique
US7295049B1 (en) 2004-03-25 2007-11-13 Cypress Semiconductor Corporation Method and circuit for rapid alignment of signals
US7224181B1 (en) 2004-11-08 2007-05-29 Herman Schmit Clock distribution in a configurable IC
US7602869B2 (en) 2005-07-29 2009-10-13 International Business Machines Corporation Methods and apparatus for clock synchronization and data recovery in a receiver
US8250503B2 (en) * 2006-01-18 2012-08-21 Martin Vorbach Hardware definition method including determining whether to implement a function as hardware or software
US8453083B2 (en) * 2006-07-28 2013-05-28 Synopsys, Inc. Transformation of IC designs for formal verification
US7600211B1 (en) 2006-09-25 2009-10-06 Cadence Design Systems, Inc. Toggle equivalence preserving logic synthesis
US7984400B2 (en) * 2007-05-09 2011-07-19 Synopsys, Inc. Techniques for use with automated circuit design and simulations
US7945880B1 (en) * 2007-05-30 2011-05-17 Cadence Design Systems, Inc. Constraint based retiming of synchronous circuits
US8296696B1 (en) * 2008-03-12 2012-10-23 Altera Corporation Method and apparatus for performing simultaneous register retiming and combinational resynthesis during physical synthesis
US8166435B2 (en) * 2008-06-26 2012-04-24 Tabula, Inc. Timing operations in an IC with configurable circuits
US8136063B2 (en) * 2008-11-14 2012-03-13 Synopsys, Inc. Unfolding algorithm in multirate system folding
US8255848B2 (en) * 2009-02-27 2012-08-28 International Business Machines Corporation Logic design verification techniques for liveness checking with retiming
US8423939B1 (en) * 2010-04-06 2013-04-16 Cadence Design Systems, Inc. Boundary buffers to model register incompatibility during pre-retiming optimization
CN102737001B (zh) 2011-03-31 2016-08-31 重庆重邮信科通信技术有限公司 一种调整fpga总线延时的方法及装置
US8909579B2 (en) 2011-08-02 2014-12-09 International Business Machines Corporation Identifying invariant candidates based on proofs
US8813036B2 (en) 2012-04-17 2014-08-19 International Business Machines Corporation Visual representation of a difference between Cartesian product models
US9558306B2 (en) 2012-05-07 2017-01-31 Synopsys, Inc. Retiming a design for efficient parallel simulation
US9015012B2 (en) 2012-07-03 2015-04-21 International Business Machines Corporation Completion of partial coverage tasks
US8918748B1 (en) * 2012-08-24 2014-12-23 Altera Corporation M/A for performing automatic latency optimization on system designs for implementation on programmable hardware
US8963581B1 (en) 2012-09-28 2015-02-24 Altera Corporation Pipelined direct drive routing fabric
US8645885B1 (en) * 2013-01-04 2014-02-04 Altera Corporation Specification of multithreading in programmable device configuration
US9360884B2 (en) 2013-11-08 2016-06-07 Altera Corporation Clocking for pipelined routing
US9582635B2 (en) * 2013-12-30 2017-02-28 Altera Coroporation Optimizing IC performance using sequential timing
US9275184B1 (en) * 2014-01-21 2016-03-01 Altera Corporation Method and apparatus for performing timing closure analysis when performing register retiming
US20150234963A1 (en) * 2014-02-18 2015-08-20 Nvidia Corporation Interface analysis for verification of digital circuits
US8929152B1 (en) * 2014-04-02 2015-01-06 Altera Corporation Retiming programmable devices incorporating random access memories

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1818911A (zh) * 2002-02-15 2006-08-16 马尔帝吉格有限公司 旋转时钟设计流程
CN1950796A (zh) * 2004-04-27 2007-04-18 皇家飞利浦电子股份有限公司 流水线异步指令处理器电路
US20090002045A1 (en) * 2007-06-27 2009-01-01 Brad Hutchings Integrated circuit with delay selecting input selection circuitry
CN104252557A (zh) * 2013-06-28 2014-12-31 阿尔特拉公司 适于负责重定时的集成电路器件配置方法
CN104573169A (zh) * 2013-10-25 2015-04-29 阿尔特拉公司 以自动流水线操作能力设计集成电路的方法和工具

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIKE HUTTON: "Understanding How the New Intel HyperFlex™ FPGA Architecture Enables Next-Generation High-Performance Systems", 《INTEL WHITE PAPER》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108446424A (zh) * 2017-02-02 2018-08-24 英特尔公司 用于为重定时的电路系统自动实现补偿重置的方法和装置
CN108446424B (zh) * 2017-02-02 2024-04-30 英特尔公司 用于为重定时的电路系统自动实现补偿重置的方法和装置
CN112100793A (zh) * 2019-05-31 2020-12-18 超威半导体(上海)有限公司 用于重定时流水线的基于条带的自选通
CN112100793B (zh) * 2019-05-31 2023-06-13 超威半导体(上海)有限公司 用于重定时流水线的基于条带的自选通

Also Published As

Publication number Publication date
EP3107016A1 (en) 2016-12-21
CN106202603B (zh) 2020-02-21
US9552456B2 (en) 2017-01-24
US20160350468A1 (en) 2016-12-01

Similar Documents

Publication Publication Date Title
CN106202603A (zh) 用于在寄存器重定时之后探测信号的方法和装置
US7904859B2 (en) Method and apparatus for determining a phase relationship between asynchronous clock signals
US7086023B2 (en) System and method for probabilistic criticality prediction of digital circuits
US9098658B2 (en) Display and automatic improvement of timing and area in a network-on-chip
US7908574B2 (en) Techniques for use with automated circuit design and simulations
US8756557B2 (en) Techniques for use with automated circuit design and simulations
US7984400B2 (en) Techniques for use with automated circuit design and simulations
US8745560B1 (en) Methods for generating a user interface for timing budget analysis of integrated circuit designs
US20180293343A1 (en) Incremental register retiming of an integrated circuit design
EP3343413A2 (en) Methods for reducing delay on integrated circuits
EP3101568B1 (en) Methods for performing register retiming operations into synchronization regions interposed between circuits associated with different clock domains
US10162918B1 (en) Integrated circuit retiming with selective modeling of flip-flop secondary signals
CN104573169A (zh) 以自动流水线操作能力设计集成电路的方法和工具
EP3324317B1 (en) Methods for verifying retimed circuits with delayed initialization
CN106096070B (zh) 使用去填充和再填充操作来实现集成电路设计
Chen et al. A comprehensive approach to modeling, characterizing and optimizing for metastability in FPGAs
US9275178B1 (en) Method and apparatus for considering paths influenced by different power supply domains in timing analysis
Reinsalu et al. Fast RTL fault simulation using decision diagrams and bitwise set operations
Zhang et al. Path delay test generation toward activation of worst case coupling effects
Prasad et al. Analysis, Physical Design and Power Optimization of Design Block at Lower Technology Node
Neumann et al. Placement driven retiming with a coupled edge timing model
Hung et al. Zero-overhead FPGA debugging
Meixner Accurate power estimation of deep-submicron VLSI circuits considering delay effects and glitches
Balakrishnan An Experimental Study of the Accuracy of Multiple Power Estimation Methods
Goncharov et al. Stg timing extensions and simulation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant