加速查验特殊应用集成电路设计的方法及装置的制作方法

文档序号:6496134阅读:119来源:国知局
专利名称:加速查验特殊应用集成电路设计的方法及装置的制作方法
技术领域
本发明与电子电路设计的查验有关,更特别的是与一种由加速软件模拟器所进行的加速查验电流电路设计,以及利用如现场可编程逻辑门阵列(FPGA)的可再编程装置的方式,所进行的电子设计仿效有关。更特别的,本发明一般上也与可再编程装置中的特定种类,利用特殊应用集成电路(ASIC)设计及高解析逻辑(HDL)的自动目标加速查验有关。
背景技术
现今的特殊应用集成电路设计具有数千万的门。为了查验这些设计,可以使用如Cadence Design的NC-sim、Synopsys与Riviera的VSC Simulator以及拉斯韦加斯内华达Aldec,Inc.的Active-HDL等的软件模拟器。然而,因为在特殊应用集成电路设计中的门数目,比起计算机速度的成长为快,便需要一种用来查验这些设计的设计模拟器加速操作。
一种在较高抽象层的模拟方式则如SystemC、Behavioral VHDL或是SystemVerilog等的模拟器。然而,这些模拟器需要目前仍在发展中复杂、耗成本的编译器,且其获得的效能并不足以用来有效查验最新与最大的特殊应用集成电路装置。
另一种加速现有软件模拟器或是使用完全代替模拟的仿效方式,则是根据由Quickturn,Inc与Ikos,Inc所制造的可再编程装置。其主要缺点是为了在可再编程装置中重新产生基本设计行为,必须花费数百工作小时将特殊应用集成电路时脉链,手动转换至特殊应用集成电路装置中执行的时脉链。
功率耗费也已经变成大型特殊应用集成电路设计装置中的严重问题,其利用20或40个时脉取代将触发器(Flip-Flops)及锁存器(Latch)之间所有数据同步化的系统时脉。因为在可再编程装置中门与互连的时脉与在所述特殊应用集成电路中的时脉不同,其需要大量的心力与时间耗费以确保在特殊应用集成电路设计至可再编程装置的可信赖转换,以仿效所述特殊应用集成电路设计行为。本发明的目的,是确保从特殊应用集成电路至可再编程装置的自动转换。
因此本发明的一目标是加速新颖大型的特殊应用集成电路设计查验。
本发明的另一目标是提供一种经由加速设计仿真的方式,加速非常大型特殊应用集成电路设计查验的系统与装置。
本发明的一目标是将特殊应用集成电路设计自动转换至可再编程装置之中,以进行所述设计的快速、功能性查验。这是利用将特殊应用集成电路时脉链自动转换为可再编程装置时脉链的方式所完成,因此这些装置具有与所述特殊应用集成电路相同的功能。
此外,本发明的另一目标是处理多种触发器及锁存器的时脉,因此可以由所述硬件加速器、仿效器与多种特殊应用集成电路原型配备进行有效及不费劲的多种特殊应用集成电路设计处理。
本发明的另一目标是提供一种加速非常大型特殊应用集成电路设计查验的方法与装置,其经由寻找一电路设计文件中的同步基元所达成,并从一时脉来源接收时脉信号,在如所述时脉来源与所述同步基元之间插入边缘检测器。
本发明的另一目标是提供一种加速特殊应用集成电路设计查验的方法与装置,其经由寻找一电路设计文件中不具有一时脉致能输入的同步基元,并利用具有一时脉致能输入的同步基元将其取代。
本发明的另一目标是提供一种特殊应用集成电路设计查验的方法与装置,其包含设计查验管理软件,用以分析在同步基元输入与同步基元输出之间的连接,并在这些输入之间插入数据缓冲。
本发明的另一目标是提供一种特殊应用集成电路设计查验的方法与装置,其中所述查验管理器软件寻找下降边缘时脉基元,并以上升时脉边缘基元取代所述下降边缘时脉基元。
本发明的另一目标是提供一种非常大型特殊应用集成电路设计查验的方法与装置,其中所述查验管理器软件包含用以储存特殊应用集成电路设计文件的存储器、用以处理所述设计文件的设计查验管理器软件,以及用以模拟所述设计文件或部分选择设计文件的模拟器软件。
本发明的另一目标是提供一种加速特殊应用集成电路设计查验的方法与装置,其具有用以储存设计文件的计算机、设计查验管理器软件、用以进行仿真模拟器操作的仿真软件测试工作文件,以及一硬件加速器。所述设计查验管理器软件将设计文件分裂为选择仿真文件与硬件仿真文件,其分别被下载至所述模拟器的选择模拟文件以及所述硬件加速器的选择硬件执行文件之中。

发明内容
本发明的目的是提供一种大大加速特殊应用集成电路查验与仿真的改善方法及装置。本发明在此发表的是在包括模拟器与硬件加速器环境中,一种完整的特殊应用集成电路设计查验方法及装置。一些特殊应用集成电路设计部分被指定至软件模拟器,而一些被指定至硬件加速器。然而因为模拟器与加速器彼此通过信号线紧紧互连,所以所有的设计部分仍视为一单元操作。
所述特殊应用集成电路设计数据则通过键盘、鼠标装置,或是任何其它数据键入装置所输入。所述设计也可以在使用如图1中相同配置的另一计算机所离线准备,其也在本发明观点之中。所述新建立的特殊应用集成电路设计文件便暂时地储存于随机存取存储器(RAM)之中,并永久地储存于计算机硬盘上。
所述数据键入装置也可用来设定在所述模拟器与加速器之间的通讯链接。所述设定对位于一设计查验管理器(DVM)之中的输入/输出(I/O)控制编程副程序产生影响,其控制在所述设计模拟器与硬件加速器之间的数据流。做为所述设定的部分,使用者可以指明由所述模拟器及加速器所观察的设计查验管理器,哪些模拟器信号数据将由加速器测试点所模拟,反之亦然。
因为一般上在模拟器与目标硬件中的设计部分之间有数百个执行的信号,便需要用来储存在每个方向中前进的所有信号,并在适当时间将其应用至所述模拟器及/或目标硬件的缓冲。因为在模拟器与硬件加速器之间的信号数据传送是通过32位外围零件接口(PCI)所进行,所以所有的数据也需要被区分为32位数据片段。如果应该使用一种64位外围零件接口,便应该较佳的使用一种64位数据片段。所述数据可以通过通用串行总线(USB)或以太总线或其它的总线所传送。储存从所述目标硬件前进至所述模拟器信号的缓冲则称为输入信号缓冲。举例而言,如果所述目标模拟器供应80个信号至模拟器,在所述输入缓冲中一般上将使用三个32位字符。同样的,如果模拟器提供100个信号至所述目标硬件,在所述输出缓冲终将使用一组四个32位标示。因为硬件加速器需要同时应用所有信号,在所述输出缓冲中便需要两组缓冲。所述第一组缓冲称为寄存缓冲,其收集来自于所述模拟器所传送的数据,而当用于一选择测试向量的所有信号都被储存于此缓冲时,便在一单一时脉边缘上传送至所述″驱动″缓冲之中,其直接地驱动所述目标硬件。
所述输入信号缓冲将目标硬件产生的信号提供至所述设计模拟器。所述设计模拟器也可以触发一输入/输出编程副程序,以将模拟器控制存储器位置处的信号数据,传送至所述控制硬件加速器输出信号缓冲中的适当信道。所述输出信号缓冲通过多数个线提供数据至所述目标硬件。所述数据传送是由完成一模拟循环所触发。
如果所述目标硬件包含一处理器,其便应该产生指示所述模拟器读取来自输入缓冲数据的中断。也可以使用一种信号扫描技术代替中断,但其速度较慢因此不推荐。如果所述目标硬件并不包含一处理器,从所述输入缓冲的读取便在一预定暂停处进行,以使所述目标硬件在其输入上的任何信号转移之后达到稳定状态。
在所述硬件加速器产生中断的任何时间,于所述模拟器中的所述数据输入编程副程序将来自所述输入信号缓冲的数据传送至所述相关的随机存取存储器位置。在所述数据传送之后,一编程副程序便检查在相同存储器位置处的新加载信号与旧数据之间是否存在任何改变。如果不存在任何改变,所述模拟器便不进行任何动作,而所述编程副程序便等待新的中断。
然而,如果从所述目标硬件所读取的新数据与先前数据不同,那么所述副程序将启动所述设计模拟器的操作,其接着处理新接收的数据,实作模拟步骤。接着,另一副程序将监测所述模拟器的输出,以检视是否达到一稳定状态。一旦所述输出已经达到稳定状态,另一副程序将开始把数据传送至所述输出缓冲,并接着开始硬件加速器操作。


本发明的上述与其它的目标、优点与新颖特征将从后续详细描述及伴随图示获得更完整的了解,其中图1为执行一设计模拟器并使用硬件加速器的计算机系统块状图。
图2为列出软件副程序的流程图,用以从特殊应用集成电路应用(ASIC)的设计文件转换至现场可编程逻辑门阵列(FPGA)实作。
图3显示具有两个时脉域与追撞状态的典型特殊应用集成电路应用设计。
图4显示将两个时脉域转换为一单一时脉域的设计。
图5显示具有D形式触发器、两个时脉与追撞情况的设计。
图6显示转换为一单一时脉域的D形式触发器基础设计。
图7为描述时脉的图示。
图8为具有锁存器及追撞情况的电路设计块状图。
图9为不具有追撞情况的锁存器基础电路设计块状图。
图10为描述具有锁存器及追撞情况的另一电路设计块状图。
图11为描述具有锁存器及追撞情况的另一电路设计块状图。
图12为描述在硬件与软件查验区块之间连接的块状图。
图13为描述将一设计分裂为仿真与硬件加速文件的块状图。
图14为描述在一模拟器与一硬件加速器之间数据传送副程序的流程图。
具体实施例方式
图1中描述利用可再编程装置的方式,进行自动特殊应用集成电路原型设计查验的计算机系统1块状图。计算机系统1可以是如一种由SunMicrosystems所制造的SunBlade 1000工作站,或是如从Dell,Hewlett-Packard等等许多制造商处所可获得的个人计算机(PC)。计算机系统1包括处理器170、随机存取存储器(RAM)171、硬盘储存172、数据键入装置173与显示器或监测器180。然而可以使用多种输入装置或数据键入装置,为了简化数据键入装置173则参照为最常使用的键盘。
此外,计算机系统1包含为在计算机存储器171中的软件模拟器4、包括一或多个可再编程装置的可再编程硬件加速器5,其可以利用设计部分编程,以及用以将特殊应用集成电路设计转换为在可再编程硬件加速器5中所适用形式的设计查验管理器(DVM)软件3。设计查验管理器软件3也可以用来将复杂编程逻辑装置(CPLD)与为了装置族所产生的现场可编程逻辑门阵列(FPGA)设计,转换为在另一复杂编程逻辑装置或现场可编程逻辑门阵列装置族上操作的设计。
模拟器4可以是如Cadence Design的NC-sim、Synopsys或拉斯韦加斯内华达Aldec,Inc.的Active-HDL等普遍使用的任何模拟器。硬件加速器5可以是由Alatek Sp.z o.o所制造的一种硬件嵌入仿真(HES)产品。设计查验管理器软件3是一种由Alatek,Inc所提供的产品,并可以用于将高解析逻辑(HDL)与网络表(netlist)设计符合如Xilinx,Inc所制造的VirtexII及Altera,Inc所制造的Stratix等的现场可编程装置。
每个特殊应用集成电路设计都包括设计文件2。设计文件2则在由使用者将其分离为由模拟器4与硬件加速器5所处理的设计文件控制之下,被提供至设计查验管理器软件3中的软件副程序组之中。分离设计文件副程序231(图13)则响应使用者输入,并将在信号线230上所提供的特殊应用集成电路设计文件2区分为选择模拟文件233与选择硬件执行文件235。选择模拟文件233与选择硬件执行文件235两者分别通过信号线232与234储存于随机存取存储器171之中。选择仿真文件233则通过信号线7传送至软件模拟器4,而选择硬件执行文件235则通过信号线10提供至硬件加速器5。一般上,使用者将传送具有较少信号转移的那些设计文件至模拟器4,并因此可以较快地模拟。另一方面,具有由一典型测试工作仿真文件所产生大量信号转移的设计文件2,则被传送至硬件加速器5。多数如Aldec,Inc.的Riviera与MentorGraphics,Inc的ModelSim等软件模拟器4都具有″曲线″软件,其可以扫描设计,并决定设计文件2的哪个部分具有最多与最少的信号转移。
为了提供在选择模拟文件233与选择硬件执行文件235之间的直接交互作用,寻找将数据从模拟器提供至硬件加速器的测试点副程序237以及寻找将数据从硬件加速器提供至模拟器的测试点副程序241,分析在信号线236与240上所产生的设计文件233与235,并决定介于其之间的共同信号或测试点。具体来说,寻找将数据从模拟器提供至硬件加速器的测试点副程序237决定模拟器在哪个测试点应该将数据提供至硬件加速器5。这些测试点的清单则通过信号线238提供至选择硬件执行(SHA)数据库239。相同的,寻找将数据从硬件加速器提供至模拟器的测试点副程序241分析在信号线240上所产生的数据,其包含选择模拟文件233与选择硬件执行文件235,并产生将数据从硬件加速器5输出提供至模拟器4输入的测试点清单。寻找将数据从硬件加速器提供至模拟器的测试点副程序241通过信号线242将这些测试点的清单提供至选择硬件执行(HAS)数据库243。
设计查验管理器软件3使用选择硬件执行数据库239的数据,指示送数据至寄存缓冲副程序221(图14),其控制硬件加速器5应该将哪个信号传送至寄存缓冲196(图12)。同样的,设计查验管理器软件3使用选择硬件执行数据库243控制所述读取输入信号缓冲副程序213(图14),并将需要的信号数据加载至模拟器4之中。总结来说,在模拟器4完成其内部操作之后,便输出模拟硬件加速器5操作的数据。接着,一旦所述硬件加速器5操作达到稳定状态,便传送控制模拟器4操作的信号。这种如″乒乓″操作将为持续到所有通过信号线182提供至模拟器之中、通过信号线7提供至设计查验管理器软件3的测试工作181(图14),或是在信号线208上提供至目标硬件190之中的数据(图12)都被完成为止。
设计查验管理器软件3包括图2流程图中所列出的副程序。寻找时脉软件副程序11为了也称为使用者时脉的设计时脉,扫描在信号线6上所提供的设计文件2,并通过信号线12传送其名称与数据以寻找时脉数据库13(数据库#1)。寻找时脉来源副程序15接收在线14上的预先处理设计文件2,其包含设计时脉清单。寻找时脉来源副程序15为了信号线14上所提供的时脉来源扫描设计文件2,并通过信号线16传送时脉来源清单,以寻找时脉数据库17(数据库#2)。所述时脉13与时脉来源17的清单也在线18上提供。
本发明是根据寻找″时脉来源″与″时脉相关输入″,并将其应用至适当的电路转换或算法。所述时脉来源是一种触发器或锁存器,其驱动时脉输入栓或另一锁存器或触发器。举例而言,在图5中的触发器82是一种″时脉来源″,因为其在信号线93上产生信号,并通过门84、信号线95、门85与信号线97提供触发器81的时脉输入。触发器82也是一种″时脉来源″,因为其通过信号线93、门84与信号线95驱动触发器83的同步D输入。如84与85等不具有时脉输出的基元则称为异步基元。如果这样的异步基元驱动触发器的D或时脉输入,其可能造成装置设计彼此之间的不可预期电路行为。此发明消除了电路操作异步基元的影响。
寻找时脉副程序15将经由分析同步输入至如81与83的触发器,以寻找成为″时脉来源″的触发器82。从所述C时脉输入至触发器81开始,寻找时脉来源副程序15追踪信号线97至门85的输出。接着,寻找时脉来源副程序15检查至门85的输入。经由追踪信号线95,寻找时脉来源副程序15找出门84。经由分析连接至门84输入之一的信号线93,寻找时脉来源副程序15寻找触发器82,并根据以上所使用及叙述的定义宣告触发器82将成为所述″时脉来源″。
具有″时脉驱动输入″的所述同步基元为触发器及锁存器,其本身具有如触发器83D输入的同步输入,并连接至稍早由寻找时脉来源副程序15所确认连接至一″时脉来源″的″时脉来源信号线″,如信号线95。因为如此,寻找具有时脉驱动输入同步基元副程序19将确认基元83具有一时脉驱动输入。寻找具有时脉驱动输入同步基元副程序19处理在信号线18上提供的设计数据,并确认具有如预设、重设、致能等同步输入的基元,或是以任何方式连接至″时脉来源″的数据输入,并将此数据保存于寻找同步基元数据库(数据库#4)184之中。此外在线22上,则一起提供寻找同步基元数据库则、设计文件2、寻找时脉数据库13与寻找时脉来源数据库17信息。
寻找时脉域副程序23分析在信号线22上的数据,并由相关时脉驱动输入信号线将所有同步基元聚集。经由如信号线97或如信号线95的时脉相关信号线等时脉名称的聚集基元则称为时脉域。时脉域是在信号线181上所提供,以寻找时脉域数据库(数据库#4)184。此相关基元的群集是重要的,因为以一边缘检测器便足以驱动在所述定时脉域中的所有基元。
此外,寻找时脉域副程序23将正边缘触发基元与负边缘触发边缘分离,并分别在信号线26与24上提供。
所述四个数据库13、17、21及184(#1-#4)则由设计者为了观看所建立,并可以在如Microsoft Word、Active-HDL其类似软件的可获得软件下,在计算机1的显示器或监测器180上显示。
因此对于可信赖操作而言,所有的时脉基元应该在相同的时脉边缘上触发,而所有的负边缘触发基元必须被转换为正边缘触发基元。转换触发器为正边缘触发器副程序25分析在信号线24上的数据,并以正边缘时脉基元取代负边缘时脉基元。新的所述正边缘时脉基元清单则在信号线27上产生。以上对于将负边缘触发基元取代为正边缘触发基元的标准设计也完全在本发明的观点之中。
因此在所述主要系统时脉(MSC)正转移之前,所有的时脉基元时脉驱动输入都必须是稳定的,插入分离触发器副程序28则将一缓冲或所述输入上的″分离″触发器加入至这样的基元之中。这些缓冲触发器,如在图6中的触发器,则在所述系统时脉正转移之前被触发。举例而言,如在图7中所显示,其可以在所述主要系统时脉的负边缘上触发。
较佳的是,如触发器82的时脉来源是直接地由原始使用者CLK时脉所控制,而不需要使用任何的边缘检测器。因为如触发器106的缓冲,是需要用来稳定如基元831等具有时脉驱动输入基元的所述同步输入。
本发明是根据CLK使用者时脉的观念所设计,其在从特殊应用集成电路输出成现场可编程逻辑门阵列装置时具有大量的不同时脉,其除了如基元82的时脉来源以外,不应该进行基元同步。所有的CLK使用者时脉则用以取代为时脉致能(CE)信号,以触发在所述完整设计中的所有同步基元。为了实作此概念,将所有不具有时脉致能的触发器取代为具有时脉致能的触发器,扫描在信号线29上所提供的数据文件,并确认哪个时脉基元不具有″时脉致能″或时脉致能输入。将所有不具有时脉致能触发器取代为具有时脉致能触发器的副程序30将所有这样的基元,取代为具有一时脉致能的相等基元。举例而言,在图5中的所述基元80、81与83已经由副程序30利用具有时脉致能的触发器取代为如图6中所显示的基元80i、81i与83i。
为了将使用者时脉信号应用至所述时脉致能输入,必须利用如图4中边缘检测器电路79的″边缘检测器″检测其转移。所述边缘检测器操作的细节描述在此后将参考图4所提供。
插入边缘检测器及连接时脉至D输入的副程序32接收在信号线31上预先处理的设计数据,并插入″边缘检测器″至所述设计之中,因此所述局部或使用者时脉便应用至同步基元的时脉致能输入,以取代其本身的时脉输入。主要系统时脉时脉信号70则应用至如80i的这些同步基元时脉输入,因此所有的这些基元都可以响应成为所述系统时脉的主要系统时脉相同上升或下降边缘。
连接所有同步基元至主要系统时脉副程序34将主要系统时脉信号70连接至在信号线33上所提供的所有时脉基元时脉输入。因此所述设计仍然必须响应所述局部或使用者时脉的上升及下降边缘,连接边缘检测器输出副程序36响应在信号线35上的设计数据,绷连接所述局部时脉边缘检测器的上升边缘或下降边缘之一至所述选择基元时脉致能输入。举例而言,连接输出边缘检测器输出副程序36(图2)输出在信号线37上的强加设计为所述硬件嵌入(HE)设计文件。所述硬件嵌入设计文件则通过信号线37提供至来自Xilinx,Inc制造ISE 5.1的设置与安排软件副程序38,其产生位串流文件以通过信号线39下载所述改良设计,并成为现场可编程逻辑门阵列装置40中的位形式。
参考图示的后续叙述持进一步说明在图2流程图中列出的设计查验管理器3副程序操作。
图3中描述以所述输出信号线54 CLK时脉与门44所驱动具有两个时脉域的设计。因为门43与44插入其本身的时间延迟,所述基元42的触发可能在不适当的时间进行,而造成追撞的情况。为了消除此追撞情况,在图2流程图中的副程序将图3中的电路转换为图4的电路。寻找时脉副程序11寻找信号线50与54,以成为时脉信号线。寻找时脉来源副程序15确认CLK终端47为一种外部使用者时脉信号,确认信号54为在信号线50上从所述外部使用者时脉由门44直接产生的使用者时脉。因为在信号线50上的所述使用者时脉由门44产生,而不是由触发器产生,门44便不是一种本发明意义中如以上所定义的″时脉来源″,因为只有触发器与锁存器可以成为独立的″时脉来源″。
经由在本发明中所使用的定义,只有″时脉来源″可以形成具有″时脉驱动输入″的基元。因此寻找时脉来源副程序15在图3中找不到″时脉来源″,寻找同步基元副程序19便不实作任何用于″时脉驱动输入″的寻找。
寻找时脉域副程序23将发现成为正边缘触发的触发器41、42,且所述信息将在信号线26上传送。在信号线24上将不传送负边缘触发触发器数据,因为副程序23在信号线22上提供的设计数据(图3)中,找不到这样的装置。
寻找时脉域副程序23将发现在图3中有两个时脉驱动输入至同步基元,因此吾人具有两个″时脉域″在信号线50与信号线54上所提供的CLK时脉将成为门44的输出。应该有许多连接至如信号线50与54等每个时脉信线的拴,寻找时脉域副程序23将列出用于每个时脉域的基元。因此在图5中的所有基元都是正边缘触发,其不需要启动转换触发器为正边缘触发器副程序25。同样的,因为在图3中的所有触发器都具有时脉致能输入,便不需要由所述取代触发器副程序30实作具有时脉致能形式触发器的取代。
因为寻找时脉域副程序23确认基元41与42为同步基元,插入边缘检测器副程序32将分别在输入上插入″边缘检测器″78与79。主要系统时脉信号线70在时间t4(图7)时将利用一输出Q设定″边缘检测器″79的触发器67为逻辑值″0″。在时间t5之后,加上门43与44、门68的传播延迟,所述输出将成为逻辑值″1″,通过与门62致能触发器42的时脉致能输入。在时间t6处,主要系统时脉信号将通过信号线70触发基元42。边缘检测器78的操作则与检测器79相同。
连接所有同步基元至主要系统时脉副程序34已经将主要系统时脉信号线70连接至基元41与42的时脉输入,而在图4中便可看到信号时脉线70。因为基元41与42为正边缘触发触发器,连接边缘检测器输出副程序36已经分别将边缘检测器78与79的上升边缘72与75连接至对应同步基元41与42的时脉致能输入。因此基元41与42已经分别连接至时脉致能A与时脉致能B的致能信号,与门60与62也已经分别加入至具有上升边缘信号72与75的时脉致能A与时脉致能B信号逻辑与门之中。图4示范在图2流程图中的软件副程序,如何用来处理图3中描述的设计。在图4中比起图3的额外硬件使得时脉扭曲追撞的情况自动减少,并保存数月的所述设计查验排程。
因为在图5中的同步基元80、81与83并不具有所述时脉致能输入,如图6中所显示,取代触发器副程序30便分别利用具有时脉致能输入的基元80i、81i与83i将其取代。因为寻找时脉来源副程序15发现时脉来源基元82与83具有连接至其D输入的追撞条件信号95,便由插入分离触发器副程序28加入一″缓冲″或分离触发器。缓冲106是由在信号线70上的负主要系统时脉信号所触发,因此触发器83i的D输入便随着在信线70上所应用正边缘主要系统时脉信号的时间而变的稳定。
如果触发器是一种时脉来源基元,如同在触发器82的情况,对于这样的触发器82便不需要″边缘检测器″。
同步触发器响应在其时脉输入上的时脉边缘,而同步锁存器回应在其″门″输上的电压程度。对于所有实用目的而言,锁存器的门致能(GE)输入具有与触发器时脉致能输入的相同作用,而锁存器的门(GE)输入则具有与触发器时脉输入的相同作用。为此理由,所述设计查验管理器3软件进行与所属触发器及锁存器相似的处理。图2的软件副程序11、15、19、23、24、25、28及30同样的也在触发器与锁存器上操作。
在图8中的电路设计描述一种具有两个锁存器110与111的电路。因为所述锁存器并不具有门致能输入,便由取代触发器副程序30分别转换为具有门致能输入的锁存器110i与111i。因为锁存器对于本身″门″(时脉)输入上的电压程度很敏感,插入边缘检测器副程序32便为了锁存器110i插入致能倒转器131,也为了锁存器111i插入另一致能倒转器132。致能倒转器131与132在图8中则由电压程度所触发。除此之外,其具有与图4中边缘致能的相同操作。
如图10中所显示,有时候可以存在两个或多个串连的锁存器,其所有都是时脉来源。如图11中所显示,这样的锁存器141与142应该视为独立的时脉来源,并应该由其原始信号线150所驱动。为此理由,最终时脉来源副程序15并不在首先发现的锁存器141处终止,而是检查在其本身输入上是否不具有如另一锁存器驱动141的锁存器142。因为锁存器141与142为时脉驱动器,其本身输入上应该不具有如致能倒转器131的致能倒转器如缓冲门164的缓冲门。非常重要的是所述锁存器141与142是由所述原始输入信号直接驱动,并在所述可能的最早时间产生其输出信号。
在设计查验管理器3处理特殊应用集成电路设计文件2之后,其通过信号线7下载选择设计部分至模拟器4之中,用以进行其功能行为的软件仿真。所述选择设计部分实际上可能位在所述相同的存储器位置中,其是由特殊应用集成电路设计文件2所占据但对于那些存储器位置的寻址与控制则是从设计查验管理器3传递至位在模拟器4中的软件副程序。为了强调所述模拟器4对于那些选择设计部分的直接控制,便在图1中加入模拟器设计存储器200。模拟器4通过信号线207运用其对于储存在模拟器设计逻辑存储器200中的模拟设计部分控制。模拟器设计逻辑存储器200可以包括在实体存储器或随机存取存储器171中的许多位置。
利用以上描述的自动特殊应用集成电路至现场可编程逻辑门阵列网络表转换,设计查验管理器3通过信号线10下载剩余的设计部分至所述硬件加速器之中,并特别的是下载至目标硬件190之中,其较佳的是一种现场可编程逻辑门阵列。信号线7与10适用于下载设计文件2的选择设计部分至模拟器4与硬件加速器5之中,并用于如测试工作181的应用信号仿真。
测试工作181一般上是由使用者通过键盘173键入所开发,并通过信号线179、处理器170及信号线178储存于硬盘172上。为了较快的操作,测试工作一般是保存于局部随机存取存储器之中,并接着应用至模拟器4与硬件加速器5。为此理由,测试工作181通过信号线178、处理器170、信号线175、控制在信号线182上随机存取存储器下载操作的设计查验管理器3软件副程序,从硬盘172下载至存储器之中。当由键盘173键入或由设计查验管理器3副程序命令所指示时,便通过信号线182读取测试工作信号,并通过信号线176、处理器170及信号线174应用至模拟器4与硬件加速器5。需要注意的是所述信号线7与10可以由信号线176、处理器170及信号线174的结合所实作。
所述利用模拟器4与硬件加速器5与其相关信号线及软件副程序的硬件加速处理已经在Hyduke于1995年12月26日所申请的U.S.Patent No.5,479,355中详细叙述,其在此整合为参考文献。同样的,软件模拟器的操作也在Hyduke于1991年9月24日所申请的U.S.Patent No.5,051,938中详细叙述,在此也整合为参考文献,因此不需要对软件模拟器4的操作详细说明。在先前指出两项申请专利应用中所使用的术语在此也适用。
先前所述已经被下载至模拟器设计逻辑存储器200中的选择设计部分将在图12中详细显示。因为所述设计部分可能位在随机存取存储器171的不同区域,其由模拟器设计电路#1至#i所显示。
在所述设计部分被载入至模拟器4与硬件加速器5之后,代表外部信号事件的仿真信号便被应用至模拟器4或硬件加速器5。举例而言,如果模拟器4仿真一种通用异步接收传送器(UART)装置,接折在所述通用异步接收传送器输入上的所接收的任何信号,将仿真包含在模拟器4与硬件加速器5中的完整设计,因为通过信号线8a至8i及9a至9n进行互连。同样的,如果位在硬件加速器5中的通用串行总线装置通过其输入线接收一数据文件,其将触发在硬件加速器5中的某些操作,并借着通过信号线8a至8i及9a至9n而可能引起模拟器4与加速器5设计区块之间的一连串数据交换。
因为硬件加速器5是在非常高速的时脉处操作,而模拟器4是在一相对慢的软件时脉速度处操作,便需要提供在硬件与软件两者中的事件同步。图12描述从模拟器4至加速器5及相反方向的信号流动清楚处理。
在所述硬件加速器5的核心处为可编程目标硬件190,其储存由设计查验管理器3通过信号线10所下载至该硬件加速器5之中的所述选择设计部分。所有应用至目标硬件190的信号193a至193i必须在同时间应用,因为如果这些信号193a至193i是以随机顺序应用时,将会造成目标硬件的随机操作。为此理由,当模拟器4完成一模拟循环并下载其输出至硬件加速器5时,其在两步骤中完成此工作。首先,一连串的数据字节或字符遍及多数个时脉循环载入至一″寄存缓冲″196之中。这些数据字符在利用位于模拟器4中的软件副程序在信号线202上所产生的信号控制之下,被储存在缓冲196之中,并控制数据从模拟器4传送至缓冲196。
当所有用于硬件加速器5的信号被更新并存在于缓冲196中时,一控制数据传输至硬件加速器5的模拟器4软件副程序在信号线203上发布一信号,其将数据从寄存缓冲196传送至驱动器缓冲194之中。此传送应该在最小时间内,以通道之间的最小″扭曲″完成。一般来说,所述扭曲将是一至数奈秒的程度。
在硬件加速器5中的设计部分非常快速的响应在其输入上的所有信号转移,如那些存在于信号线193a至193i上的。一般来说,目标硬件190在信号在线193a至193i接收新信号之后,将在其输出信号线197a至197n上于数奈秒中产生稳定的信号。此意味着如果硬件加速器5不包含任何的为处理器或延迟线,模拟器4可以在信号线203上发布一信号之后,于其第一软件时脉循环上读取197a至197n的输出信号。因为图2中的设置与安排软件副程序38可以计算在目标硬件190中的最长路径延迟,其可以为了模拟器4在所述硬件暂停副程序211应该读取在信号线197a至197n上由目标硬件190所提供所述新数据的时间点之后提供一报告。此时间可以决定为模拟器4的时脉周期形式。
然而,如果所述目标硬件190包含一微处理器、定时器或延迟线,便需要实作读取检测器205。每次处理器完成所述要求操作时,便完成依延迟时间或暂停一定时器,目标硬件190在信号线204上产生一信号,而读取检测器205在信号线206上产生由模拟器4所读取的中断信号。为了响应在信号线206上的中断信号,模拟器4从输入信号缓冲191读取数据。因为在信号线197a至197n上的数据在模拟器4读取的期间中为稳定的,所述输入信号缓冲191可以是一种多任务器,其选择性地选择在目标硬件5中由模拟器4所控制的多个测试点。
现在参考图13与图14描述在模拟器4与硬件加速器5中的所述设计区块封闭循环操作。图13描述位在设计查验管理器3中的软件副程序,以及介于所述模拟器4与加速器5之间与所述封闭循环操作有关的设定。软件副程序″分裂设计文件″231在使用者控制下操作,并将特殊应用集成电路设计文件2区分为由所述软件模拟器所模拟的文件以及包含在硬件中执行设计区块的另一文件。副程序″分裂设计文件″231通过信号线232提供称为″选择仿真″文件的仿真文件选择至数据库″选择模拟″233,其较佳的是位在随机存取存储器171之中。副程序″分裂设计文件″231通过信号线234保存用于硬件实作设计文件至选择硬件执行文件数据库235,其较佳的是位在随机存取存储器171之中。在选择仿真文件数据库233中的信息则通过信号线7提供至模拟器。在选择硬件执行文件数据库235中的信息则由图2中所列出的设计查验管理器3副程序进一步处理。
副程序237分析在信号线236上的信息,其提供被放置在模拟器4中的数据以及被下载至硬件加速器5中的数据,并确认哪个模拟器4输出信号将驱动硬件加速器输入信号线。此信息则通过信号线238储存于选择硬件执行(SHA)数据库239,其较佳的是位在随机存取存储器171之中并由模拟器4副程序所可获得。模拟器4软件副程序将使用此信息设定为了模拟器而传送至″输出信号寄存缓冲″196与驱动器缓冲194的数据。
寻找将数据从硬件加速器提供至模拟器的测试点副程序241确认在模拟器4中的测试点,其将从硬件加速器5输出信号线接收输入信号。此信息是通过信号线242储存于选择硬件执行(HAS)数据库243,其较佳的是位在随机存取存储器171之中。在所述选择硬件执行数据库243中的信息是用于提供信号线至″输入信号缓冲″191,并用以设定在所述缓冲191中的信号配置。
位在模拟器4与硬件加速器5中的所述设计区块封闭循环配置可以主动地仿真至出现在所述目标硬件信号线191上的信号(图12)或由″测试工作″数据库181所驱动的信号线182之中。如果所述仿真信号出现在输入信号线189至目标硬件190上,则目标硬件190仿效所述新的输入情况并在信号线209上产生输出信号。如果目标硬件190包含一微处理器,则由中断或硬件暂停副程序211产生一中断,其可以是一种硬件实作、软件实作或是两者的结合。同样的,如果目标硬件190具有某些定时器或延迟线,中断或硬件暂停副程序211将在其终止操作时于信号线212上产生信号。如果所述目标硬件不具有处理器、定时器或延迟线,较佳的是中断或硬件暂停副程序211下载至用于控制模拟器4输入的指示信号191之中,并在信号线190上接收数据之后,立即在一或数个硬件时脉循环内于信号线212上产生信号。在信号线212上的信号通知模拟器4其可以从″输入信号缓冲″191读取数据。
″读取输入信号缓冲″231是一种在模拟器4中的软件副程序,用以从缓冲191读取数据并在模拟器4控制之下,将此数据保存在随机存取存储器171中的适合位置。在完成此操作之后,便在信号线214上发布一信号。为了响应在信号线214上的数据,在输入信号副程序215中的任何改变检查所述新输入信号数据是否与之前输入至模拟器4的不同。如果存在差异将实作一仿真循环。如果在输入信号在线由缓冲191所提供的并不具有差异,模拟器4便不实作任何的模拟,并等待另一组来自硬件装置228的输入,其将提供在信号线189上的新硬件信号至目标硬件190之中。
如果模拟器4经由仿真设计副程序217实作一仿真循环,其将在信号线218上提供仿真数据,并为了仿真完成由副程序219检查在信号在线的数据是否稳定。在完成所述仿真循环之后,副程序219将发布信号在线的数据是否稳定的输出,其控制数据传送至寄存缓冲196。所述数据传送较佳的应该是在32或64位字符中产生,并适合于计算机1内部总线结构。所有信号传送副程序233监测在信号线222上传送至输出信号寄存缓冲196的字符,且当所述最新数据字符已经被传送至所述输出信号寄存缓冲196时,所述所有信号传送副程序233在信号线224上发布一命令以从寄存缓冲196传送数据至输出信号驱动器缓冲194,其直接地控制所述目标硬件。传送数据至驱动器缓冲副程序225在信号线203上产生一信号,其实际实作从输出信号寄存缓冲196下载数据至所述输出信号驱动器缓冲194。
如果所述具有硬件加速器5的模拟器4配置是由在信号线182上所提供的测试工作181所仿真,那么仿真设计副程序217将实作一设计模拟循环。副程序219监测在信号线218上的数据是否稳定,已决定何时完成模拟循环,并在所述仿真数据稳定时在信号线220上发布一信号,并准备提供至目标硬件90之中。之后,上述循环本身将重复进行。
本发明并不局限于图示中所显示及叙述中所描述的实施例,其仅是给予范例而不是给予限制,并只是根据所述附加权利要求的观点。
权利要求
1.一种用于加速查验特殊应用集成电路设计的系统,其经由消除一数字电路设计中的时脉扭曲及追撞条件而实现,所述系统包括一计算机;所述计算机具有随机存取存储器;数字电路设计文件,其储存于所述随机存取存储器中;一设计查验管理器程序,用以处理储存在所述随机存取存储器中的数字电路设计文件,所述设计查验管理器程序包含一寻找时脉来源副程序,用以寻找在所述数字电路设计文件中的时脉来源;一寻找同步基元,其位于所述数字电路设计文件中,其从所述寻找时脉来源副程序所寻找的所述时脉来源接收时脉信号;一插入边缘检测器电路副程序,用以在所寻找的所述时脉来源与所述同步基元之间插入边缘检测器电路;由此加速数字电路设计的查验。
2.如权利要求1所述的系统,其特征在于所述设计查验管理器包含一种用以寻找不具有一时脉致能输入的同步基元并以具有一时脉致能输入的同步基元将其取代的副程序。
3.如权利要求1所述的系统,其特征在于所述设计查验管理器包含用以分析输入至所述同步基元与所述同步基元输出之间的连接,并在输入至所述同步基元与所述同步基元输出之间插入数据缓冲。
4.如权利要求1所述的系统,其特征在于所述设计查验管理器包含由一下降时脉边缘所启动的一寻找下降边缘时脉基元,并将所述下降边缘时脉基元取代为一上升时脉边缘基元。
5.如权利要求1所述的系统,其特征在于所述设计查验管理器包含一种用以寻找由一上升时脉边缘所启动的上升边缘时脉基元的副程序,并以下降时脉边缘基元取代上升时脉边缘基元。
6.一种用于仿真数字电路设计的系统,包括;一计算机;所述计算机包含用以储存设计文件的存储器;一设计查验管理器程序,用以处理储存在所述存储器中的设计文件;一模拟器程序,用以仿真储存在所述存储器中的设计文件或是所选择的部分设计文件;测试工作文件,用于模拟所述模拟器的操作;所述计算机包含一硬件加速器;所述设计查验管理器程序包含一种用于将一设计文件分成一选择模拟文件与一选择硬件执行文件的副程序;所述设计查验管理器程序下载所述选择模拟文件至所述模拟器中,并下载所述选择硬件执行文件至所述硬件加速器中;一种位于所述设计查验管理器程序中的副程序,用以寻找在所述选择硬件执行文件中的时脉来源;一种用以寻找在从时脉来源所接收时脉信号的所述电路设计文件中寻找具有时脉驱动输入的同步基元的副程序;一软件副程序,用以在所述时脉来源与所述同步基元之间插入边缘检测器电路;所述寻找时脉来源副程序、寻找同步基元副程序与所述插入边缘检测器电路副程序是由所述设计查验管理器在所述选择硬件执行文件上操作;由此加速查验数字电路设计。
7.如权利要求6所述的用于仿真数字电路的系统,其特征在于所述硬件加速器包含目标硬件;一寄存缓冲;一驱动器缓冲;所述模拟器包含一种用以执行所述选择仿真文件的功能仿真的副程序;一种用以检测由用于执行功能仿真的所述副程序进行所述选择仿真文件的仿真终止的副程序;所述硬件加速器包含;一种用以传送文件至所述寄存缓冲的副程序;一种用以检测终止传送文件至所述寄存缓冲的副程序;一种回应用于检测终止传送文件至所述寄存缓冲的所述副程序并使数据从所述寄存缓冲传送至所述驱动器缓冲的副程序;以及所述驱动器缓冲的输出,其约同时应用至所述目标硬件的输入信号线。
8.如权利要求7所述的用于仿真数字电路的系统,其特征在于所述硬件包含一输入信号缓冲;所述模拟器包含一读取输入信号缓冲副程序,用以从一硬件加速器读取数据至所述模拟器中;所述输入信号缓冲储存来自所述目标硬件中的逻辑组件的输入;一硬件暂停副程序,所述硬件暂停副程序响应数据传送终止的检测并使数据从所述输入信号缓冲读取至模拟器,其中所述数据的读取较佳的是在模拟器内部时脉所决定的时脉处进行,所述时脉为所述模拟器内部时脉的一至百分之一的期间。
9.如权利要求7所述的用于仿真数字电路的系统,其特征在于所述硬件加速器包含一读取检测器电路与一输入信号缓冲,所述模拟器包含一中断副程序;一读取输入信号缓冲副程序,用以从所述输入信号缓冲读取数据至所述模拟器中;所述输入信号缓冲储存来自于所述目标硬件中的逻辑组件的输出;所述读取检测器电路响应所述目标硬件中的信号处理,并在完成所述信号处理后产生一中断信号;以及所述中断副程序响应所述中断信号,并使数据从所述输入信号缓冲读取至所述模拟器,其中较佳的是以实时方式读取所述数据。
全文摘要
本发明揭示一种在如现场可编程逻辑门阵列(FPGA)装置的可再编程协助下,加速软件模拟器操作的方法与系统。所述方法与系统经由可再编程装置的方式协助特殊应用集成电路(ASIC)的仿效与验证。所述系统包含一设计查验管理器与软件程序,其包含寻找时脉来源的副程序,所述寻找时脉来源的副程序找出从所述时脉来源接收的时脉信号的同步基元,以及一种用于在这个时脉来源与同步基元之间插入边缘检测器电路的副程序。此一新方法能够经由将基本设计时脉应用至所述时脉致能以取代时脉触发器输入而消除的时脉定时问题,并产生及应用一新时脉至时脉触发器输入,其在所述设计中自动地对于所有其它时脉产生延迟。此系统解决特殊应用集成电路自动转换为可再编程装置的主要障碍,其中所述可再编程装置具有特殊应用集成电路与现场可编程逻辑门阵列中的时脉链的不同时脉,而造成在不同时间触发相关的触发器与锁存器。
文档编号G06F9/455GK1867893SQ200480029878
公开日2006年11月22日 申请日期2004年10月14日 优先权日2003年10月14日
发明者史坦利·M·海德克, 斯拉沃米尔·格拉保斯基 申请人:史坦利·M·海德克, 斯拉沃米尔·格拉保斯基
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1