CN113946937A - 同步方法及仿真器 - Google Patents

同步方法及仿真器 Download PDF

Info

Publication number
CN113946937A
CN113946937A CN202110995728.2A CN202110995728A CN113946937A CN 113946937 A CN113946937 A CN 113946937A CN 202110995728 A CN202110995728 A CN 202110995728A CN 113946937 A CN113946937 A CN 113946937A
Authority
CN
China
Prior art keywords
module
clock
sub
delay
period
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
CN202110995728.2A
Other languages
English (en)
Other versions
CN113946937B (zh
Inventor
徐欣
陈兰兵
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.)
Xinhuazhang Technology Co ltd
Original Assignee
Xinhuazhang Technology Co ltd
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 Xinhuazhang Technology Co ltd filed Critical Xinhuazhang Technology Co ltd
Priority to CN202110995728.2A priority Critical patent/CN113946937B/zh
Publication of CN113946937A publication Critical patent/CN113946937A/zh
Priority to US17/885,387 priority patent/US20230064647A1/en
Application granted granted Critical
Publication of CN113946937B publication Critical patent/CN113946937B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/02System on chip [SoC] design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2115/00Details relating to the type of the circuit
    • G06F2115/06Structured ASICs
    • 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

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)
  • Design And Manufacture Of Integrated Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)

Abstract

本申请提供一种用于同步逻辑系统设计的第一模块与第二模块的方法和仿真器。其中,所述第一模块和第二模块根据系统时钟运行,所述第一模块包括多个子模块。该方法包括:确定所述多个子模块中的目标子模块是否产生事件指示;响应于确定所述目标子模块产生所述事件指示,将所述系统时钟的运行周期从第一时钟周期切换为第二时钟周期,其中,所述第一时钟周期小于所述第二时钟周期;以及基于所述第二时钟周期运行所述目标子模块。

Description

同步方法及仿真器
技术领域
本申请涉及电路技术领域,尤其涉及一种同步方法及仿真器。
背景技术
仿真器(Emulator)可以仿真并且调试一个包括一个或多个模块的逻辑系统设计。逻辑系统设计可以是,例如,用于供专门应用的集成电路(Application SpecificIntegrated Circuit,简称ASIC)或者片上系统芯片(System-On-Chip,简称SOC)的设计。因此,在仿真器中被测试的逻辑系统设计又可以称为被测试设计(Design Under Test,简称DUT)。仿真器可以通过一个或多个可配置组件(例如,现场可编程逻辑门阵列(FieldProgrammable Gate Array,简称FPGA))来仿真该DUT,包括执行该DUT的各种操作,从而在制造之前就测试并验证DUT的各个模块的功能。
由于逻辑系统设计规模的变大,通常一个设计的仿真就需要引入多个可配置组件。而当需要在多个可配置组件上进行仿真时,如何保持可配置组件之间的通信同步是需要解决的问题。
发明内容
本申请提出了一种同步方法及仿真器。
本申请第一方面,提供了一种用于同步逻辑系统设计的第一模块与第二模块的方法,其中,所述第一模块和第二模块根据系统时钟运行,所述第一模块包括多个子模块,所述方法包括:
确定所述多个子模块中的目标子模块是否产生事件指示;
响应于确定所述目标子模块产生所述事件指示,将所述系统时钟的运行周期从第一时钟周期切换为第二时钟周期,其中,所述第一时钟周期小于所述第二时钟周期;以及
基于所述第二时钟周期运行所述目标子模块。
本申请第二方面,提供了一种用于同步逻辑系统设计的第一模块与第二模块的仿真器,包括:
接口单元,用于连接到主机;
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行该组指令以进行如权利要求1至9任意一项所述的方法。
本申请提供的同步方法及仿真器,当检测到新事件时将系统时钟的周期加长,而在没有检测到新事件时以周期较短的系统时钟运行,从而能够较好地提升仿真速度,提高仿真效率。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本申请实施例的一个示例性仿真系统的结构示意图。
图2A示出了根据本申请实施例的一个仿真器的示意图。
图2B示出了根据本申请实施例的验证板在数据传输过程中所产生的延迟的示意图。
图3示出了本申请实施例所提供的示例性仿真器的示意图。
图4A示出了根据本申请实施例的示例性逻辑系统设计的示意图。
图4B示出了根据本申请实施例的设计的子模块的延迟的示意图。
图5A示出了根据本申请实施例的示例性系统时钟的示意图。
图5B示出了根据本申请实施例的时钟发生器的示例性状态机的示意图。
图6示出了本申请实施例所提供的示例性方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
图1示出了根据本申请实施例的一种仿真系统100的示意图。
如图1所示,仿真系统100可以包括仿真器102和主机104。
仿真器102是一种用于仿真被测试设计(DUT)的硬件系统。一个DUT可以包括多个模块。DUT可以是组合逻辑电路、时序逻辑电路、或上述两者的组合。仿真器102可以包括一个或多个原型验证板,原型验证板可以进一步包括一个或多个可配置电路(例如,FPGA),用于仿真DUT。
仿真器102可以包括接口单元1022,用于与主机104通信地耦接,以进行主机104和仿真器102之间的通信。在一些实施例中,接口单元1022可以包括具有电连接能力的一个或多个接口。例如,接口单元1022可以包括RS232接口、USB接口、LAN口、光纤接口、IEEE1394(火线接口)等。在一些实施例中,接口单元1022可以是无线网络接口。例如,接口单元1022可以是WIFI接口、蓝牙接口等。
仿真器102还可以包括存储器1024,用于存储在仿真过程中DUT产生的信号值。在一些实施例中,仿真过程中DUT产生的信号值可以直接被主机104读取。
主机104可以用于配置仿真器102以仿真一个DUT。该DUT可以是一个完整的逻辑系统设计或一个完整逻辑系统设计的一个或多个目标模块。在一些实施例中,主机104可以是云计算系统中的一个虚拟主机。逻辑系统设计(例如,ASIC或者System-On-Chip)可以由硬件描述语言(例如Verilog、VHDL、System C、或System Verilog)设计。在一些实施例中,逻辑系统设计可以包括一个或多个待调试(debug)的目标模块。
主机104可以从用户接收调试DUT的请求。如上所述,DUT可以包括一个或多个模块。DUT及其模块的描述可以用硬件描述语言来完成。主机104可以基于DUT及其模块的描述来进行综合,以生成,例如,DUT的门级网表。
随着芯片设计规模日渐庞大,在一些场景下,可能需要将设计分割并且在多个原型验证板的FPGA上进行仿真(emulation)。那么不同验证板(或不同FPGA)之间的通信是不可避免的。由于跨验证板(或跨FPGA)的通信必然存在延迟,而这些延迟可能导致不同验证板(或不同FPGA)之间的动作不同步。
图2A示出了根据本申请实施例的示例性仿真器102的示意图。
如图2A所示,仿真器102可以包括验证板(或FPGA)1022和1024,验证板(或FPGA)1022和1024之间的通信可以经由选择器(MUX)10222或10242实现时分复用(TDM)。每一个选择器10222或10242可以连接多个模块。由于对于仿真器而言,每个模块都以网表的形式实现,因此模块在这里有时候也称为网表(net)。一个模块可以进一步包括一个或多个要验证的子模块。一个模块(例如,FF 10226、10228、10230或10232)的输出可以经由MUX(例如,MUX10222)进行选择,并在触发器(flip-flop,FF)10224的触发下发送到接收侧的MUX(例如,MUX 10242)。接收侧的MUX(例如,MUX 10242)可以对接收到的信号进行选择,并在与相应目标模块连接的FF(例如,FF 10244、10246、10248或10250)的触发下传输到相应目标模块。而在这个信号传输的过程中,会产生特定的延迟。
图2B示出了根据本申请实施例的验证板1022在数据传输过程中所产生的延迟的示意图。
以MUX 10222对接4个模块为例,如图2B所示,模块10226可以具有内部延迟2022(从模块10226传输到MUX 10222的延迟),模块10228可以具有内部延迟2024,模块10230可以具有内部延迟2026,模块10232可以具有内部延迟2028。同时,信号从验证板1022传输到验证板1024还存在传输延迟2042、2044、2046、2048。一般地,由于验证板之间的传输线路固定,因此认为传输延迟2042、2044、2046和2048可以是相等的。
可以理解的是,内部延迟和传输延迟之和就是不同验证板上的两个模块之间的总延迟。
由于内部延迟2022、2024、2026、2028的数值可能不尽相同(如图2B所示,例如,延迟2028最长、延迟2024最短),因此,通常而言认为两个验证板之间的延迟为Max(内部延迟2022,2024,2026,2028)+4×传输延迟。
由于芯片设计规模日渐庞大,在很多情况下,需要将设计进行分割并在仿真器的多个验证板(或FPGA)上进行仿真(emulation)。那么不同验证板之间的通信就是不可避免的。根据前面所述,跨验证板的通信必然存在延迟,而这些延迟可能导致不同验证板之间的动作不同步。
本申请的发明人注意到,对于图2A的仿真器结构,在很多时候,模块的输出并不发生变化。也就是说,为了保证通信同步而消耗大量延迟进行信号传递并没有价值。鉴于这个特点,本申请实施例提出了事件驱动的调整时钟的通信方法及仿真器。
图3示出了本申请实施例所提供的示例性仿真器300的示意图。仿真器300可以用于仿真逻辑系统设计,以验证逻辑系统设计所期望完成的功能是否正确地实现。
图4A示出了根据本申请实施例的示例性逻辑系统设计400的示意图。如图4A所示,逻辑系统设计400可以包括模块402和404。模块402可以进一步包括子模块4022和4024,模块404可以进一步包括子模块4042和4044。
仿真器300可以用于仿真该设计400,并可以进一步包括FPGA 302和FPGA 304(如图3所示)。FPGA 302和FPGA 304可以分别设置在不同的硬件原型验证板上,且同一硬件原型验证板可以设置有多个FPGA。在对设计400进行仿真时,设计400的模块402可以运行在仿真器300的FPGA 302上,模块404可以运行在仿真器300的FPGA 304上。
仿真器300可以基于系统时钟运行设计400。图5A示出了根据本申请实施例的示例性系统时钟500的示意图。仿真器300在对设计400进行仿真时,可以利用系统时钟来运行模块402和模块404,并可以基于系统时钟500来实现模块402和模块404之间的通信同步。
回到图3,仿真器300还可以包括事件检测器306和时钟发生器308。事件检测器306可以与模块402的子模块4022、4024和模块404的子模块4042、4044耦接,并可以检测子模块4022、4024、4042、4044是否产生事件指示(子模块的数据发生变化并需要向外传输该变化的数据)。时钟发生器308可以用于产生系统时钟500,并可以与事件检测器306耦接以接收事件检测器306的控制信号3062。在通常情况下,当设计400的各子模块没有产生新事件时,时钟发生器308可以以较高的频率产生具有第一时钟周期T1的系统时钟500,以使仿真器300在仿真设计400时可以以较快地速度运行设计400。时钟发生器308还可以以较低的频率产生具有第二时钟周期T2的系统时钟500,以使仿真器300在仿真设计400时可以保证各个模块的同步。
在某一时刻,例如,子模块4022产生了事件指示4026,以指示事件检测器306该子模块4022发生了新事件(子模块4022的数据发生了变化并需要向外传输该变化的数据)。事件检测器306在接收到该事件指示4026后,可以向时钟发生器308发送控制信号3062,以使时钟发生器308将系统时钟500的运行周期从第一时钟周期T1切换为频率较低的第二时钟周期T2(亦即,第二时钟周期T2大于第一时钟周期T1),进而使子模块4022的数据可以在第二时钟周期T2中向外传输。
在系统时钟500切换到第二时钟周期T2后,仿真器300可以基于该第二时钟周期T2运行子模块4022,以在第二时钟周期T2输出子模块4022的输出信号,例如,输出到模块404。可以理解的是,在系统时钟500切换到第二时钟周期T2后,仿真器300除了运行子模块4022以输出子模块4022的输出信号外,还需要对设计400整体运行,以保证设计400的整体功能的正常运转。在一些实施例中,仿真器300运行设计400中除发生新事件的子模块4022外的其他模块或子模块时,可以基于该其他模块或子模块已知的信号来实现。
也就是说,时钟发生器308可以产生2种周期(或频率)的时钟信号,第一时钟周期T1和第二时钟周期T2。相应地,时钟发生器308也包括两种状态。在此,为了简化说明,对于时钟发生器308而言,将产生第一时钟周期的信号的状态称为T1,将产生第二时钟周期的信号的状态称为T2。
图5B示出了根据本申请实施例的时钟发生器308的示例性状态机510的示意图。如图5B所示,当时钟发生器308处于T1状态时,T1的下一个状态通常依然是T1。也就是说,一般情况下,时钟发生器308可以持续地产生时钟周期为T1的时钟信号。当时钟发生器308接收到控制信号3062时,时钟发生器308进入T2状态。即,时钟发生器308产生时钟周期为T2的时钟信号。T2状态的下一个状态为T1状态。也就是说,当该时钟周期为T2的时钟信号结束时,时钟发生器308进入T1状态,并相应地产生时钟周期为T1的时钟信号。
在一些实施例中,事件指示4026包括用于指示子模块4022的输出信号发生变化的信息以及用于指示子模块4022的延迟的信息。该用于指示子模块4022的输出信号发生变化的信息使得事件检测器306在接收到该事件指示4026后可以确定子模块4022发生了新事件。仿真器300可以根据该用于指示子模块4022的延迟的信息来确定该第二时钟周期T2,以保证子模块4022在第二时钟周期T2中能够完成数据传输。
图4B示出了根据本申请实施例的设计400的子模块的延迟的示意图。
在一些实施例中,如图4B所示,子模块4022、4024、4026、4028的延迟可以包括子模块4022、4024、4026、4028的内部延迟4062、4066、4070、4074以及模块402和模块404之间的传输延迟4064、4068、4072、4076。
在基于子模块4022的事件指示4026确定第二时钟周期T2时,则可以根据子模块4022的内部延迟和传输延迟来确定。例如,将第二时钟周期T2设置为大于或等于子模块4022的内部延迟4062与传输延迟4064之和,从而保证子模块4022在第二时钟周期T2中能够完成数据传输。
在另一些实施例中,为了保证子模块4022在第二时钟周期T2中能够完成数据传输而尽量不出现不能在第二时钟周期T2中完成数据传输的情况,可以将第二时钟周期T2设置得较长。例如,将第二时钟周期T2设置为大于或等于模块402的子模块4022、4024的内部延迟4062、4066中最大的子模块(例如,子模块4024)的内部延迟4066与其传输延迟4068之和。
可以理解的是,前述设置第二时钟周期T2的实施例可以在保证产生新事件的子模块在第二时钟周期T2中能够向外输出数据的同时使第二时钟周期T2可以设置得相对较短,从而能够尽量保证仿真的高速运行。但是,为了保证数据能够更好地完成传输,同时使仿真系统整体设计能够尽量简单,可以将第二时钟周期T2设置为一个较长的固定值(而非根据产生新事件的子模块或同一模块中各子模块的延迟大小来进行设置)。这样,只要事件检测器306接收到事件指示,则控制时钟发生器308将系统时钟500切换为该固定值即可,不需要额外的计算。在一些实施例中,该固定值可以根据设计400中所有子模块的内部延迟的最大值与传输延迟共同决定。
在一些实施例中,事件检测器306可以根据事件指示4026生成时钟停止指令(例如,将控制时钟发生器308的停止走线(stop)拉高),以使时钟发生器308延迟产生系统时钟500的时钟信号的上升沿(如图5所示),从而实现将系统时钟500的运行周期从第一时钟周期T1切换为第二时钟周期T2。
当系统时钟500切换为第二时钟周期T2之后,已经过第二时钟周期T2的时长,事件检测器306可以再次向时钟发生器308发送控制信号3062,以使时钟发生器308将系统时钟500的运行周期从第二时钟周期T2切换为第一时钟周期T1,以恢复仿真器300的快速仿真。
在一些实施例中,事件检测器306可以通过生成时钟发生指令(例如,将控制时钟发生器308的停止走线(stop)拉低),以使时钟发生器308开始产生系统时钟500的时钟信号的上升沿,从而实现将系统时钟500的运行周期从第二时钟周期T2切换为第一时钟周期T1。
由此可见,本申请实施例所提供的仿真器,通过设置与设计的各子模块耦接的事件检测器,使得当事件检测器检测到新事件时将系统时钟的周期加长,而在没有检测到新事件时以周期较短的系统时钟运行,从而能够较好地提升仿真速度,提高仿真效率。
本申请实施例还提供了一种用于同步逻辑系统设计的第一模块与第二模块的方法,可以在一定程度上提高仿真效率。
图6示出了本申请实施例所提供的示例性方法600的流程示意图。该方法600可以由图3所示的仿真器300实现,并可以用于同步图4A所示的逻辑系统设计400的第一模块402与第二模块404,第一模块402和第二模块404可以根据图5所示的系统时钟500运行。在一些实施例中,仿真器300可以包括第一FPGA 302和第二FPGA 304,第一模块402可以运行在第一FPGA 302上,第二模块404可以运行在第二FPGA 304上。如图6所示,方法600可以包括以下步骤。
在步骤602,仿真器300可以确定多个子模块(例如,图4A的子模块4022、4024、4026、4028)中的目标子模块(例如,图4A的子模块4022)是否产生事件指示。例如,仿真器300可以经由图3的事件检测器306来确定目标子模块是否产生事件指示。可以理解的是,目标子模块可以是多个子模块中的任意一个。
在步骤604,响应于确定目标子模块产生事件指示(例如,图3的事件指示4026),仿真器300可以将系统时钟(例如,图5的系统时钟500)的运行周期从第一时钟周期(例如,图5的周期T1)切换为第二时钟周期(例如,图5的周期T2)。其中,第一时钟周期可以小于第二时钟周期。
在一些实施例中,事件指示可以包括用于指示目标子模块的输出信号发生变化的信息和用于指示目标子模块的延迟的信息。方法600还可以包括:仿真器300根据该目标子模块的该延迟确定该第二时钟周期。
在一些实施例中,该目标子模块的延迟可以包括该目标子模块的内部延迟(例如,图4B的内部延迟4062)以及第一模块和第二模块之间的传输延迟(例如,图4B的传输延迟4064),该第二时钟周期可以大于或等于该目标子模块的内部延迟与传输延迟之和,从而保证子模块4022在第二时钟周期T2中能够完成数据传输。
在另一些实施例中,第一模块的各子模块(例如,图4A的子模块4022和4024)的延迟可以包括各子模块的内部延迟(例如,图4B的内部延迟4062、4066)和第一模块和第二模块之间的传输延迟(例如,图4B的传输延迟4064、4068),该第二时钟周期可以大于或等于该第一模块的多个子模块的内部延迟最大的子模块(例如,图4A的子模块4024)的内部延迟(例如,图4B的内部延迟4066)与传输延迟(例如,图4B的传输延迟4068)之和,从而保证该目标子模块在该第二时钟周期中能够完成数据传输而尽量不出现不能在第二时钟周期T2中完成数据传输的情况。
在一些实施例中,仿真器300将系统时钟的运行周期从第一时钟周期切换为第二时钟周期可以进一步包括:仿真器300根据事件指示生成时钟停止指令,以使系统时钟的时钟信号的上升沿延迟产生。
在步骤606,仿真器300可以基于第二时钟周期运行该目标子模块。
在一些实施例中,仿真器300基于第二时钟周期运行目标子模块,可以包括:仿真器300在第二时钟周期输出该目标子模块的输出信号,从而将该子模块的新事件对应的数据传输到,例如,模块404。
在一些实施例中,该方法600还可以包括:响应于已经过一个第二时钟周期,仿真器300可以将系统时钟的运行周期从第二时钟周期切换为第一时钟周期,从而仿真器300可以恢复较快的仿真速度。
在一些实施例中,仿真器300将系统时钟的运行周期从第二时钟周期切换为第一时钟周期进一步包括:仿真器300生成时钟发生指令,以使系统时钟的时钟信号的上升沿开始产生。
需要说明的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种用于同步逻辑系统设计的第一模块与第二模块的方法,其中,所述第一模块和第二模块根据系统时钟运行,所述第一模块包括多个子模块,所述方法包括:
确定所述多个子模块中的目标子模块是否产生事件指示;
响应于确定所述目标子模块产生所述事件指示,将所述系统时钟的运行周期从第一时钟周期切换为第二时钟周期,其中,所述第一时钟周期小于所述第二时钟周期;以及
基于所述第二时钟周期运行所述目标子模块。
2.如权利要求1所述的方法,其中,所述逻辑系统设计在硬件仿真器上实现,所述硬件仿真器包括第一FPGA和第二FPGA,所述第一模块运行在第一FPGA上,所述第二模块运行在第二FPGA上。
3.如权利要求1所述的方法,其中,所述事件指示包括用于指示所述目标子模块的输出信号发生变化的信息和用于指示所述目标子模块的延迟的信息,所述方法还包括:
根据所述目标子模块的所述延迟确定所述第二时钟周期。
4.如权利要求3所述的方法,其中,所述目标子模块的所述延迟包括所述目标子模块的内部延迟以及所述第一模块和所述第二模块之间的传输延迟,所述第二时钟周期大于或等于所述目标子模块的内部延迟与所述传输延迟之和。
5.如权利要求3所述的方法,其中,所述子模块的延迟包括所述子模块的内部延迟和所述第一模块和所述第二模块之间的传输延迟,所述第二时钟周期大于或等于所述多个子模块的内部延迟最大的子模块的内部延迟与所述传输延迟之和。
6.如权利要求1所述的方法,还包括:
响应于已经过一个所述第二时钟周期,将所述系统时钟的运行周期从所述第二时钟周期切换为所述第一时钟周期。
7.如权利要求1所述的方法,其中,将所述系统时钟的运行周期从第一时钟周期切换为第二时钟周期进一步包括:
根据所述事件指示生成时钟停止指令,以使所述系统时钟的时钟信号的上升沿延迟产生。
8.如权利要求6所述的方法,其中,将所述系统时钟的运行周期从所述第二时钟周期切换为所述第一时钟周期进一步包括:
生成时钟发生指令,以使所述系统时钟的时钟信号的上升沿开始产生。
9.如权利要求1所述的方法,其中,基于所述第二时钟周期运行所述目标子模块,包括:
在所述第二时钟周期输出所述目标子模块的输出信号。
10.一种用于同步逻辑系统设计的第一模块与第二模块的仿真器,包括:
接口单元,用于连接到主机;
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行该组指令以进行如权利要求1至9任意一项所述的方法。
11.如权利要求10所述的仿真器,进一步包括第一FPGA和第二FPGA,所述第一模块运行在第一FPGA上,所述第二模块运行在第二FPGA上。
CN202110995728.2A 2021-08-27 2021-08-27 同步方法及仿真器 Active CN113946937B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110995728.2A CN113946937B (zh) 2021-08-27 2021-08-27 同步方法及仿真器
US17/885,387 US20230064647A1 (en) 2021-08-27 2022-08-10 Synchronization method and emulator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110995728.2A CN113946937B (zh) 2021-08-27 2021-08-27 同步方法及仿真器

Publications (2)

Publication Number Publication Date
CN113946937A true CN113946937A (zh) 2022-01-18
CN113946937B CN113946937B (zh) 2023-01-10

Family

ID=79328222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110995728.2A Active CN113946937B (zh) 2021-08-27 2021-08-27 同步方法及仿真器

Country Status (2)

Country Link
US (1) US20230064647A1 (zh)
CN (1) CN113946937B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860029A (zh) * 2022-04-22 2022-08-05 瞬曜电子科技(上海)有限公司 多时钟域数字仿真电路的时钟生成方法、设备和存储介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508646A (zh) * 2002-12-18 2004-06-30 国际商业机器公司 有选择地互连同步总线上的子系统的方法和系统
CN101061627A (zh) * 2004-10-01 2007-10-24 亚历山大·普罗迪奇 用于以超高稳定切换频率工作的dc-dc切换变换器的数字控制器
CN102737001A (zh) * 2011-03-31 2012-10-17 重庆重邮信科通信技术有限公司 一种调整fpga总线延时的方法及装置
CN104052619A (zh) * 2014-05-07 2014-09-17 北京理工大学 一种支持调频降耗的网络设备节能方法
CN104702364A (zh) * 2013-12-10 2015-06-10 华为技术有限公司 时钟频率调整方法及装置
CN105527857A (zh) * 2014-10-21 2016-04-27 三星电子株式会社 操作补偿延迟的仿真器的方法及用于执行该方法的装置
US10509877B1 (en) * 2016-12-09 2019-12-17 Cadence Design Systems, Inc. Systems and methods for reducing latency when transferring I/O between an emulator and target device
US20200302103A1 (en) * 2019-03-18 2020-09-24 Synopsys, Inc. Method to Regulate Clock Frequencies of Hybrid Electronic Systems
CN112753034A (zh) * 2018-09-25 2021-05-04 美商新思科技有限公司 仿真和原型制作中重叠时钟和数据传播的相干可观测性和可控制性
CN112989758A (zh) * 2021-05-17 2021-06-18 芯华章科技股份有限公司 对多个原型验证板同步复位的方法、验证系统及存储介质
CN113128144A (zh) * 2021-05-07 2021-07-16 芯华章科技股份有限公司 用于验证逻辑系统设计的原型验证系统及仿真平台

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1508646A (zh) * 2002-12-18 2004-06-30 国际商业机器公司 有选择地互连同步总线上的子系统的方法和系统
CN101061627A (zh) * 2004-10-01 2007-10-24 亚历山大·普罗迪奇 用于以超高稳定切换频率工作的dc-dc切换变换器的数字控制器
CN102737001A (zh) * 2011-03-31 2012-10-17 重庆重邮信科通信技术有限公司 一种调整fpga总线延时的方法及装置
CN104702364A (zh) * 2013-12-10 2015-06-10 华为技术有限公司 时钟频率调整方法及装置
CN104052619A (zh) * 2014-05-07 2014-09-17 北京理工大学 一种支持调频降耗的网络设备节能方法
CN105527857A (zh) * 2014-10-21 2016-04-27 三星电子株式会社 操作补偿延迟的仿真器的方法及用于执行该方法的装置
US10509877B1 (en) * 2016-12-09 2019-12-17 Cadence Design Systems, Inc. Systems and methods for reducing latency when transferring I/O between an emulator and target device
CN112753034A (zh) * 2018-09-25 2021-05-04 美商新思科技有限公司 仿真和原型制作中重叠时钟和数据传播的相干可观测性和可控制性
US20200302103A1 (en) * 2019-03-18 2020-09-24 Synopsys, Inc. Method to Regulate Clock Frequencies of Hybrid Electronic Systems
CN113128144A (zh) * 2021-05-07 2021-07-16 芯华章科技股份有限公司 用于验证逻辑系统设计的原型验证系统及仿真平台
CN112989758A (zh) * 2021-05-17 2021-06-18 芯华章科技股份有限公司 对多个原型验证板同步复位的方法、验证系统及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
STEFAN POPA,ET AL: "Clock and data signals synchronization for an FPGA-based ASIC testing setup", 《2019 INTERNATIONAL SYMPOSIUM ON SIGNALS, CIRCUITS AND SYSTEMS (ISSCS)》 *
吴佩: "基于FPGA的高速DDR4 RCD芯片功能验证系统的设计与实现", 《中国优秀硕士学位论文全文数据库》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114860029A (zh) * 2022-04-22 2022-08-05 瞬曜电子科技(上海)有限公司 多时钟域数字仿真电路的时钟生成方法、设备和存储介质
CN114860029B (zh) * 2022-04-22 2024-01-26 芯华章科技股份有限公司 多时钟域数字仿真电路的时钟生成方法、设备和存储介质

Also Published As

Publication number Publication date
CN113946937B (zh) 2023-01-10
US20230064647A1 (en) 2023-03-02

Similar Documents

Publication Publication Date Title
US6223148B1 (en) Logic analysis system for logic emulation systems
US7975197B2 (en) On-chip scan clock generator for ASIC testing
CN111931445A (zh) 用于调试逻辑系统设计的方法、仿真器及存储介质
CN112115664B (zh) 一种多模式多时钟域的芯片集成控制系统
US8566068B2 (en) Trace routing network
US9294094B1 (en) Method and apparatus for fast low skew phase generation for multiplexing signals on a multi-FPGA prototyping system
CN113946937B (zh) 同步方法及仿真器
US7822909B2 (en) Cross-bar switching in an emulation environment
CN108957301B (zh) 用于可测试芯片的测试方法、装置及可测试芯片内置电路
CN113128144A (zh) 用于验证逻辑系统设计的原型验证系统及仿真平台
EP1898555A1 (en) A test device comprising a programmable sequencer for testing a link initialization behavior of a dut
Mavroidis et al. Accelerating emulation and providing full chip observability and controllability
CN114021509B (zh) 在验证期间的逻辑设计中的根时钟频率的动态调整
US9100112B1 (en) Latency built-in self-test
CN112035391B (zh) 用于串行通信的接口装置、方法、电子设备
Bayrakci ELATE: Embedded low cost automatic test equipment for FPGA based testing of digital circuits
US10509877B1 (en) Systems and methods for reducing latency when transferring I/O between an emulator and target device
CN116151187B (zh) 处理触发条件的方法、装置和存储介质
CN116738906B (zh) 实现循环电路的方法、电路、装置和存储介质
CN116594830B (zh) 硬件仿真工具、调试方法和存储介质
Tomas et al. SoC Scan-Chain verification utilizing FPGA-based emulation platform and SCE-MI interface
CN115389857B (zh) 基于对称电路的信号线缆延时检测系统
US20240118339A1 (en) System, method for circuit validation, and system and method for facilitating circuit validation
Strauch Multi-FPGA system with unlimited and self-timed wave-pipelined multiplexed routing
KR100843207B1 (ko) 전송지연시간 측정 장치

Legal Events

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