CN115392157A - 验证系统及在验证系统的多个fpga之间同步时钟的方法 - Google Patents
验证系统及在验证系统的多个fpga之间同步时钟的方法 Download PDFInfo
- Publication number
- CN115392157A CN115392157A CN202210775444.7A CN202210775444A CN115392157A CN 115392157 A CN115392157 A CN 115392157A CN 202210775444 A CN202210775444 A CN 202210775444A CN 115392157 A CN115392157 A CN 115392157A
- Authority
- CN
- China
- Prior art keywords
- fpgas
- clock
- user instruction
- signal
- synchronization
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012795 verification Methods 0.000 title claims abstract description 113
- 238000000034 method Methods 0.000 title claims abstract description 29
- 238000013461 design Methods 0.000 claims abstract description 14
- 230000001360 synchronised effect Effects 0.000 claims abstract description 5
- 230000005540 biological transmission Effects 0.000 claims description 12
- 230000008054 signal transmission Effects 0.000 claims description 5
- 238000010200 validation analysis Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 10
- 230000002093 peripheral effect Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 235000003932 Betula Nutrition 0.000 description 1
- 241000219429 Betula Species 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
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)
Abstract
本公开提供一种验证系统及在验证系统的多个FPGA之间同步时钟的方法,其中所述系统用于对芯片设计进行仿真和验证。该系统包括一个验证板,所述验证板包括:接口,用于接收第一用户指令和第二用户指令;多个FPGA;时钟源,用于产生根时钟信号和同步信号;资源配置单元,用于根据所述第一和第二用户指令分别将所述多个FPGA中的第一部分配置为第一组FPGA、第二部分配置为第二组FPGA;多个时钟同步单元,连接到所述时钟源和所述资源配置单元,并且包括连接到所述第一组和第二组FPGA的第一和第二时钟同步单元,所述第一和第二时钟同步单元用于分别根据所述第一和第二用户指令生成施加到所述第一组和第二组FPGA的第一和第二时钟信号。
Description
技术领域
本公开涉及芯片验证领域,尤其涉及一种验证系统及在验证系统的多个FPGA之间同步时钟的方法,其中,该验证系统用于对芯片设计进行仿真和验证。
背景技术
数字电路里的运行是由时钟驱动,并且在由时钟频率确定的周期内完成运行任务。
硬件仿真器利用FPGA来模拟一个逻辑系统设计(例如,一个芯片设计),并且可以根据用户给出的时钟频率来运行。通常,一个硬件仿真器(emulator)仅提供给单个用户(例如,一个验证工程师或者同一个验证团队)进行使用。在这种情况下,在执行验证仿真操作时,硬件仿真器中的所有FPGA都运行在相同的时钟频率下。
而当硬件仿真器作为一种云计算资源去提供时,在单个用户执行验证仿真操作时,往往只需要占用全部硬件仿真器中的部分FPGA。但是,如上所述,由于硬件仿真器中的所有FPGA均被施加了相同频率的时钟,所以未被占用的FPGA也无法被其他用户使用。也就是说,一个硬件仿真器不支持多个用户使用。
如何让一个硬件仿真器支持多用户使用,从而降低成本,为硬件仿真器上云提供便利是业界十分关注的问题。
发明内容
有鉴于此,本公开提出了一种验证系统及在验证系统的多个FPGA之间同步时钟的方法,其中,所述验证系统用于对芯片设计进行仿真和验证。
本公开第一方面,提供了一种用于对芯片设计进行仿真和验证的验证系统,包括一个验证板,所述验证板包括:接口,用于接收多个用户指令,所述多个用户指令包括第一用户指令和第二用户指令;多个FPGA;时钟源,用于产生根时钟信号和同步信号;资源配置单元,用于根据所述第一用户指令将所述多个FPGA中的第一部分配置为第一组FPGA,以及根据所述第二用户指令将所述多个FPGA中的第二部分配置为第二组FPGA;多个时钟同步单元,连接到所述时钟源和所述资源配置单元,并且所述多个时钟同步单元包括连接到所述第一组FPGA的第一时钟同步单元和连接到所述第二组FPGA的第二时钟同步单元,所述第一时钟同步单元用于根据所述第一用户指令基于所述根时钟信号和所述同步信号生成施加到所述第一组FPGA的第一时钟信号,所述第二时钟同步单元用于根据所述第二用户指令基于所述根时钟信号和所述同步信号生成施加到所述第二组FPGA的第二时钟信号,其中,所述第一时钟同步单元和所述第二时钟同步单元还用于将所述同步信号分别施加到所述第一组FPGA和所述第二组FPGA。
本公开第二方面,提供了一种在验证系统的多个FPGA之间同步时钟的方法,包括:接收第一用户指令和第二用户指令;根据所述第一用户指令将所述多个FPGA中的第一部分配置为第一组FPGA,以及根据所述第二用户指令将所述多个FPGA中的第二部分配置为第二组FPGA;获取根时钟信号和同步信号;根据所述第一用户指令基于所述根时钟信号和所述同步信号生成施加到所述第一组FPGA的第一时钟信号,以及根据所述第二用户指令基于所述根时钟信号和所述同步信号生成施加到所述第二组FPGA的第二时钟信号;以及将所述同步信号分别施加到所述第一组FPGA和所述第二组FPGA。
本公开第三方面,提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储验证系统的一组指令,该组指令用于使所述验证系统执行如第二方面所述的方法。
本公开提供的一种用于对芯片设计进行仿真和验证的验证系统及在验证系统的多个FPGA之间同步时钟的方法,通过资源配置单元对验证系统中的FPGA根据用户指令进行分组,时钟同步单元向不同组的FPGA同步不同频率的时钟信号,以使得不同的用户可以对同一个验证系统中的FPGA施加不同频率的时钟信号,从而满足多个用户使用的需求。FPGA的分组情况也可以根据用户指令进行实时更新。本公开提供的方法实际上实现了验证系统的上云,提高了验证系统中FPGA资源的利用率,降低了用户使用硬件仿真器的成本。
附图说明
为了更清楚地说明本公开或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了根据本公开实施例的示例性电子设备的结构示意图。
图2A示出了根据本公开实施例的示例性验证板的结构的示意图。
图2B示出了根据本公开实施例的示例性时钟同步单元的结构的示意图。
图2C示出了根据本公开实施例的又一示例性验证系统的结构的示意图。
图3示出了根据本公开实施例的示例性在多个FPGA之间同步时钟的方法的流程图。
具体实施方式
为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
需要说明的是,除非另外定义,本公开使用的技术术语或者科学术语应当为本公开所属领域内具有一般技能的人士所理解的通常意义。本公开中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
图1示出了根据本公开实施例的示例性电子设备100的结构示意图。
电子设备100例如可以是主机计算机。电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中处理器102、存储器104、网络接口106和外围接口108可以通过总线110实现彼此之间在电子设备100内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器、微控制器、可编程逻辑器件、数字信号处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或一个或多个集成电路。处理器102可以用于进行与本公开描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。例如,如图1所示,存储的数据可以包括程序指令(例如,用于实现本公开的技术的程序指令)以及待处理的数据(例如,存储器104可以存储在编译过程产生的临时代码)。处理器102也可以访问存储的程序指令和数据,并且执行程序指令以对待处理的数据进行操作。存储器104可以包括非暂态计算机可读存储介质,例如易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为使电子设备100能够经由网络与一个或多个其他外部装置进行通信。该网络可以是能够传输和/或接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入装置以及显示器、扬声器、振动器、指示灯等输出装置。
总线110可以被配置为在电子设备100的各个组件(例如,处理器102、存储器104、网络接口106和外围接口108)之间传输信息,并且例如可以是内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
在一些实施例中,除了图1所示出的以及上述所描述的处理器102、存储器104、网络接口106、外围接口108和总线110之外,电子设备100还可以包括实现正常运行所需的一个或多个其他组件和/或实现本公开的实施例的解决方案所必需的一个或多个其他组件。在一些实施例中,电子设备100可能不包含图1中所示的一个或多个组件。
需要说明的是,尽管上述电子设备100的构成架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该电子设备100的构成架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述电子设备100的构成架构中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
如上所述,通常,一个硬件仿真器仅提供给单个用户进行使用,而不支持多个用户使用。在执行验证仿真操作时,硬件仿真器中的所有FPGA都运行在相同的时钟频率下。
有鉴于此,本公开提供一种用于对芯片设计进行仿真和验证的验证系统及在验证系统的多个FPGA之间同步时钟的方法,通过资源配置单元对验证系统中的FPGA根据用户指令进行分组,时钟同步单元向不同组的FPGA同步不同频率的时钟信号,以使得一个验证系统可以满足多个用户使用的需求。FPGA的分组情况也可以根据用户指令进行实时更新。本公开提供的方法实际上实现了验证系统的上云,提高了验证系统中FPGA资源的利用率,降低了用户使用硬件仿真器的成本。
电子设备100可以与该验证系统连接,并指示该验证系统执行同步时钟的方法。该验证系统可以设置在硬件仿真器中。硬件仿真器例如可以是芯华章科技股份有限公司出品的桦捷(HuaPro-P1)仿真器。
本公开提供的一种用于对芯片设计进行仿真和验证的验证系统可以包括一个验证板。
图2A示出了根据本公开实施例的示例性验证板200的结构的示意图。
验证板200可以包括接口201、资源配置单元202、时钟源203、时钟同步单元2041和2042、以及FPGA 2061-2068。其中,时钟源203到时钟同步单元2041和2042的传输路径可以是等长的。时钟同步单元2041到FPGA 2061-2064以及时钟同步单元2042到FPGA 2065-2068的传输路径也可以是等长的。
接口201可以配置为接收电子设备100发送的多个用户指令。这里的多个用户指令可以包括第一用户指令和第二用户指令。需要注意的是,验证板200可以不是同时接收第一用户指令和第二用户指令。也就是说,验证板200可以先接收第一用户指令,处理完第一用户指令之后再接收第二用户指令,或者在处理第一用户指令的过程中接收第二用户指令。多个用户指令之间可以是互相独立的。在一些实施例中,第一用户指令和第二用户指令可以是来自不同终端用户。例如,第一用户和第二用户可以是硬件仿真云的不同用户,他们在进行不同的验证项目,因而发出了不同的用户指令。
时钟源203可以配置为用于产生根时钟信号和同步信号。在一些实施例中,时钟源203可以是晶振。在另一些实施例中,时钟源203可以是从外部装置接收的根时钟信号和同步信号。
在一些实施例中,该多个用户指令的每一个可以包括根时钟信号的参数配置、同步信号的参数配置、验证板200上多个FPGA的分组配置、或信号传输路径的参数配置中的至少一个。例如,根时钟信号的参数可以用于配置时钟源203所产生的根时钟的频率。同步信号的参数可以用于配置同步信号的产生和频率。多个FPGA的分组配置可以用于将验证板200上的多个FPGA根据用户的验证项目的需要进行分组,从而可以模拟用户要验证的逻辑系统设计。信号传输路径的参数则可以用于配置各种器件之间的连接关系。
资源配置单元202可以从接口201接收第一用户指令和第二用户指令,并配置为用于根据第一用户指令将多个FPGA中的第一部分配置为第一组FPGA,以及根据第二用户指令将多个FPGA中的第二部分配置为第二组FPGA。如图2A所示,为清晰地看出第一用户指令与第一组FPGA的对应关系,将第一用户指令和第一组FPGA使用了相同的背景颜色。资源配置单元202可以根据第一用户指令将FPGA 2061、2062和2063配置为第一组FPGA。第一组FPGA可以使用相同的第一时钟信号。类似地,资源配置单元202可以根据第二用户指令将FPGA2064、2065和2066配置为第二组FPGA。第二组FPGA可以使用相同的第二时钟信号。其中,第一时钟信号和第二时钟信号可以是不同的。
时钟同步单元2041可以连接到时钟源203、资源配置单元202和FPGA 2061-2064。时钟同步单元2041可以配置为接收时钟源203产生的根时钟信号和同步信号、从资源配置单元202接收第一用户指令和第二用户指令、以及分别生成FPGA 2061-2064所需要使用的时钟信号。时钟同步单元2041还可以配置为将同步信号施加到FPGA 2061-2064。
图2B示出了根据本公开实施例的示例性时钟同步单元2041的结构的示意图。可以理解的是,时钟同步单元2042可以具有与时钟同步单元2041相同的结构。
在一些实施例中,时钟同步单元2041可以包括分频器20411-20414。分频器20411-20414可以分别与FPGA 2061-2064对应连接。
当一个逻辑系统设计由多个FPGA共同模拟时,需要多个FPGA不仅运行在相同的频率,还要运行在相同的相位上,从而确保多个FPGA是同步运行的。因此,当时钟同步单元2041从资源配置单元202接收到第一用户指令时,与第一组FPGA(即,FPGA 2061、2062和2063)对应连接的分频器20411、20412和20413可以基于同步信号在相同的时钟周期内进行复位,以具有相同的初始值,进而确保分频器20411、20412和20413基于根时钟信号分频所得到的第一时钟信号具有一致的相位。也就是说,经过复位,第一时钟信号的初始值可以是一致的,从而使得分频器20411、20412和20413分频所得到的第一时钟信号是一样的。
如上所述,时钟同步单元2041到FPGA 2061、2062和2063的传输路径可以是等长的。因此,FPGA 2061、2062和2063从分频器20411、20412和20413接收到的第一时钟信号也是一致的。这样,时钟同步单元2041可以对FPGA 2061、2062和2063施加相同的第一时钟信号,而没有对其他FPGA施加第一时钟信号。时钟同步单元2041还可以将同步信号分别施加到FPGA 2061、2062和2063。
在一些实施例中,时钟源203产生的根时钟信号频率不够高,这会导致分频器20411、20412和20413进行分频操作时出现问题,例如无法分频出FPGA工作所需要的时钟信号。时钟同步单元2041还可以包括与分频器20411、20412和20413连接的倍频器20415。倍频器20415可以配置为对接收到的根时钟信号进行倍频,再将倍频得到的信号传输至分频器20411、20412和20413进行分频。可以理解的是,倍频器20415可以与分频器20414连接,也可以不与分频器20414连接,这由时钟同步单元2041工作的实际情况决定。
回到图2A,资源配置单元202可以根据第二用户指令将FPGA 2064、2065和2066配置为第二组FPGA。FPGA 2064与时钟同步单元2041连接,FPGA 2065、2066与时钟同步单元2042连接。对于时钟同步单元2041来说,与FPGA 2064连接的分频器20414会生成第二时钟信号。时钟同步单元2041还可以将同步信号施加到FPGA 2064。时钟同步单元2042的结构可以与时钟同步单元2041的结构一致。类似地,时钟同步单元2042可以基于该第二用户指令基于根时钟信号和同步信号生成施加到FPGA 2065、2066的第二时钟信号,并将同步信号施加到FPGA 2065、2066。
如上所述,时钟源203到时钟同步单元2041和2042的传输路径可以是等长的。时钟同步单元2041到FPGA 2064以及时钟同步单元2042到FPGA 2065、2066的传输路径也可以是等长的。因此,FPGA 2064从时钟同步单元2041接收到的第二时钟信号与FPGA 2065、2066从时钟同步单元2042接收到的第二时钟信号是一致的。这样,时钟同步单元2041和2042可以对FPGA 2064、2065和2066施加相同的第二时钟信号,而没有对其他FPGA施加第二时钟信号。
当第一组FPGA 2061-2063根据第一用户指令执行完验证操作后,FPGA 2061-2063可以被释放出来。当验证板200接收到其他用户指令,例如第三用户指令时,验证板200可以根据第三用户指令重新配置FPGA的一部分为第三组FPGA,第三组FPGA中可以包括FPGA2061-2063。也就是说,FPGA 2061-2063可以再次被使用,根据第三用户指令执行新的验证操作。这样,验证板200可以实现对FPGA资源根据多个用户指令进行实时分组,提高FPGA资源的利用率。
在一些实施例中,验证板200可以作为一个完整的验证系统对芯片设计进行仿真和验证。
图2C示出了根据本公开实施例的又一示例性验证系统210的结构的示意图。
在一些实施例中,验证系统210可以包括多个验证板。这多个验证板可以包括图2A中所示的验证板200(第一验证板),以及另一个验证板211(第二验证板)。可以理解的是,验证板211的结构与验证板200的结构一样,但是时钟同步单元的数量和FPGA的数量可以与验证板200不一样。验证板200和211可以从外部时钟源213接收根时钟信号和同步信号。此时,验证板200和211的时钟源可以是从外部时钟源213接收根时钟信号和同步信号。
验证板211可以包括时钟同步单元2141、资源配置单元212、以及FPGA 2161-2164。其中,时钟同步单元2141的功能与时钟同步单元2041和2042一致;资源配置单元212的功能与资源配置单元202的功能一致。
由于时钟源213的时钟输出通道有限,当时钟同步单元的数量超过时钟源213的时钟输出通道数量时,在时钟源213和时钟同步单元之间还可以连接时钟路由214。时钟路由214可以配置为用于从时钟源213接收根时钟信号和同步信号并分发到时钟同步单元2041、2042和2141。时钟路由214可以根据第一用户指令和第二用户指令分别向时钟同步单元2041、2042和2141分发根时钟信号和同步信号。时钟路由214到时钟同步单元2041、2042和2141的传输路径可以是等长的。
此时,时钟源213和时钟路由214一起可以作为验证板200和211的外部时钟源,向验证板200和211分发根时钟信号和同步信号。
通过时钟源213和时钟路由214级联的方式可以拓展验证系统210的时钟输出通道,以满足多个验证板和大量FPGA工作的情形。可以理解的是,虽然图2C中只示出了一个时钟路由214,但实际工作时,根据时钟同步单元或FPGA数量的多少,可以在验证系统210中增加更多的时钟路由以满足实际需要。
可以理解的是,多个验证板(例如,验证板200和211)可以连接到作为主机的电子设备100,从而将验证数据集合到电子设备100并形成最终的验证结果。
如上所述,本公开提供了一种用于对芯片设计进行仿真和验证的验证系统,该验证系统可以包括一个验证板(例如,图2A所示的验证板200)。该验证板可以包括接口(例如,图2A中的接口201)、资源配置单元(例如,图2A中的资源配置单元202)、时钟源(例如,图2A中的时钟源203)、多个时钟同步单元(例如,图2A中的时钟同步单元2041和2042)、以及多个FPGA(例如,图2A中的FPGA 2061-2068)。
接口可以用于接收多个用户指令,该多个用户指令包括第一用户指令和第二用户指令(例如,图2A中的第一用户指令和第二用户指令)。在一些实施例中,该多个用户指令的每一个可以包括根时钟信号的参数配置、同步信号的参数配置、多个FPGA的分组配置、或信号传输路径的参数配置中的至少一个。
时钟源可以用于产生根时钟信号和同步信号。
资源配置单元可以用于根据该第一用户指令将该多个FPGA中的第一部分(例如,图2A中的FPGA 2061、2062和2063)配置为第一组FPGA,以及根据该第二用户指令将该多个FPGA中的第二部分(例如,图2A中的FPGA 2064、2065和2066)配置为第二组FPGA。
多个时钟同步单元可以配置为连接到该时钟源和该资源配置单元,并且该多个时钟同步单元可以包括连接到该第一组FPGA的第一时钟同步单元(例如,图2A中的时钟同步单元2041)和连接到该第二组FPGA的第二时钟同步单元(例如,图2A中的时钟同步单元2041和2042)。值得注意的是,这里的第一时钟同步单元和第二时钟同步单元并不是指实际物理连接的时钟同步单元,例如,与第二组FPGA连接的两个时钟同步单元(时钟同步单元2041和2042)在逻辑上都可以称为第二时钟同步单元。该第一时钟同步单元可以用于根据该第一用户指令基于该根时钟信号和该同步信号生成施加到该第一组FPGA的第一时钟信号,该第二时钟同步单元可以用于根据该第二用户指令基于该根时钟信号和该同步信号生成施加到该第二组FPGA的第二时钟信号,其中,该第一时钟同步单元和该第二时钟同步单元还用于将该同步信号分别施加到该第一组FPGA和该第二组FPGA。
在一些实施例中,该第一组FPGA可以包括至少一个FPGA,该第一时钟同步单元(例如,图2B的时钟同步单元2041)包括至少一个分频器(例如,图2B中的分频器20411-20414),连接到该第一组FPGA的至少一个FPGA(例如,图2B中分频器20411-20413与FPGA 2061-2063的连接关系)。
在一些实施例中,该第一时钟同步单元可以进一步包括与该至少一个分频器连接的倍频器(例如,图2B中的倍频器20415)。
在一些实施例中,该时钟源(例如,图2A中的时钟源203)到该多个时钟同步单元(例如,图2A中的时钟同步单元2041和2042)的传输路径等长。
在一些实施例中,该验证系统还可以包括连接在该时钟源(例如,图2C中的时钟源213)和该多个时钟同步单元之间(例如,图2C中的时钟同步单元2041、2042和2141)的时钟路由(例如,图2C中的时钟路由214)。该时钟路由可以用于从该时钟源接收该根时钟信号和该同步信号并分发到该多个时钟同步单元。可以理解的是,该时钟路由(例如,图2C中的时钟路由214)到该多个时钟同步单元(例如,图2C中的时钟同步单元2041、2042和2141)的传输路径可以是等长的。当该验证系统中存在多个时钟路由时,该时钟源到该多个时钟路由的传输路径可以是等长的,该多个时钟路由的每一个到与之连接的多个FPGA的传输路径也可以是等长的。
在一些实施例中,验证系统可以包括多个验证板。多个验证板可以例如包括第一验证板(例如,图2C的验证板200)和第二验证板(例如,图2C的验证板211)。
这样,通过资源配置单元对验证系统中的FPGA根据用户指令进行分组,时钟同步单元向不同组的FPGA同步不同频率的时钟信号,以使得一个验证系统可以对FPGA施加多种频率的时钟信号,从而可以满足多个用户使用的需求。FPGA的分组情况也可以根据用户指令进行实时更新。
图3示出了根据本公开实施例的示例性在多个FPGA之间同步时钟的方法300的流程图。方法300可以由验证系统(例如,图2A的验证板200或图2C的验证系统210)执行。方法300可以包括如下步骤。
在步骤S302,验证系统可以接收第一用户指令和第二用户指令(例如,图2A或图2C中的第一用户指令和第二用户指令)。在一些实施例中,该第一用户指令和第二用户指令可以来自不同终端用户。该第一用户指令或第二用户指令可以包括根时钟信号的参数配置、同步信号的参数配置、多个FPGA的分组配置、或信号传输路径的参数配置中的至少一个。
在步骤S304,验证系统可以根据该第一用户指令将该多个FPGA中的第一部分(例如,图2A中的FPGA 2061、2062和2063)配置为第一组FPGA,以及根据该第二用户指令将该多个FPGA中的第二部分(例如,图2A中的FPGA 2064、2065和2066)配置为第二组FPGA。该第一组FPGA可以使用相同的第一时钟信号,该第二组FPGA可以使用相同的第二时钟信号。该第一组FPGA可以包括至少一个FPGA。
在步骤S306,验证系统可以获取根时钟信号和同步信号。例如,图2A的验证板200可以从时钟源203处获得根时钟信号和同步信号。又例如,图2C的验证板200和211可以从验证板之外的时钟源213和时钟路由214处获得根时钟信号和同步信号。
在步骤S308,验证系统可以根据该第一用户指令基于该根时钟信号和该同步信号生成施加到该第一组FPGA(例如,FPGA 2061-2063)的第一时钟信号,以及根据该第二用户指令基于该根时钟信号和该同步信号生成施加到该第二组FPGA(例如,FPGA 2064-2066)的第二时钟信号。例如,图2B的时钟同步单元2041(即,对于第一组FPGA来说的第一时钟同步单元)中的分频器20411-20413可以生成施加到FPGA 2061-2063的第一时钟信号;图2B的时钟同步单元2041(即,对于第二组FPGA来说的第二时钟同步单元)中的分频器20414可以生成施加到FPGA 2064的第二时钟信号;图2A的时钟同步单元2042(即,对于第二组FPGA来说的第二时钟同步单元)可以生成施加到FPGA 2065和2066的第二时钟信号。第一时钟信号和第二时钟信号可以是不同的。
在一些实施例中,验证系统可以基于该同步信号复位该第一时钟信号和该第二时钟信号,以使得该第一时钟信号和该第二时钟信号的初始值一致。
在步骤S310,验证系统可以将该同步信号分别施加到该第一组FPGA和该第二组FPGA。例如,图2A中的时钟同步单元2041将同步信号施加到FPGA 2061-2063;时钟同步单元2041将同步信号施加到FPGA 2064,时钟同步单元2042将同步信号施加到FPGA 2065和2066。
通过本公开提供的同步时钟的方法实际上可以实现验证系统的云化,提高了验证系统中FPGA资源的利用率,降低了用户使用硬件仿真器的成本。
本公开还提供了一种非暂态计算机可读存储介质。非暂态计算机可读存储介质存储验证系统的一组指令。该组指令在被执行时,可以使得该验证系统实现与本公开一致的在验证系统的多个FPGA之间同步时钟的方法,诸如上述示例性方法(例如,图3中所示的方法300)。此处不再赘述。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述对本公开特定实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开的范围(包括权利要求)被限于这些例子;在本公开的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本公开难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本公开的具体实施例对本公开进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本公开旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开的保护范围之内。
Claims (10)
1.一种用于对芯片设计进行仿真和验证的验证系统,包括一个验证板,所述验证板包括:
接口,用于接收多个用户指令,所述多个用户指令包括第一用户指令和第二用户指令;
多个FPGA;
时钟源,用于产生根时钟信号和同步信号;
资源配置单元,用于根据所述第一用户指令将所述多个FPGA中的第一部分配置为第一组FPGA,以及根据所述第二用户指令将所述多个FPGA中的第二部分配置为第二组FPGA;
多个时钟同步单元,连接到所述时钟源和所述资源配置单元,并且所述多个时钟同步单元包括连接到所述第一组FPGA的第一时钟同步单元和连接到所述第二组FPGA的第二时钟同步单元,所述第一时钟同步单元用于根据所述第一用户指令基于所述根时钟信号和所述同步信号生成施加到所述第一组FPGA的第一时钟信号,所述第二时钟同步单元用于根据所述第二用户指令基于所述根时钟信号和所述同步信号生成施加到所述第二组FPGA的第二时钟信号,其中,
所述第一时钟同步单元和所述第二时钟同步单元还用于将所述同步信号分别施加到所述第一组FPGA和所述第二组FPGA。
2.根据权利要求1所述的验证系统,进一步包括:
时钟路由,连接在所述时钟源和所述多个时钟同步单元之间,所述时钟路由用于从所述时钟源接收所述根时钟信号和所述同步信号并分发到所述多个时钟同步单元。
3.根据权利要求1或2所述的验证系统,其中,所述多个用户指令的每一个包括:
所述根时钟信号的参数配置、所述同步信号的参数配置、所述多个FPGA的分组配置、或信号传输路径的参数配置中的至少一个。
4.根据权利要求3所述的验证系统,其中,所述第一组FPGA包括至少一个FPGA,所述第一时钟同步单元包括至少一个分频器,连接到所述第一组FPGA的至少一个FPGA。
5.根据权利要求4所述的验证系统,其中,所述第一时钟同步单元进一步包括与所述至少一个分频器连接的倍频器。
6.根据权利要求3所述的验证系统,其中,
所述时钟源到所述多个时钟同步单元的传输路径等长。
7.根据权利要求1所述的验证系统,其中,所述第一用户指令和所述第二用户指令来自不同终端用户。
8.一种在验证系统的多个FPGA之间同步时钟的方法,包括:
接收第一用户指令和第二用户指令;
根据所述第一用户指令将所述多个FPGA中的第一部分配置为第一组FPGA,以及根据所述第二用户指令将所述多个FPGA中的第二部分配置为第二组FPGA;
获取根时钟信号和同步信号;
根据所述第一用户指令基于所述根时钟信号和所述同步信号生成施加到所述第一组FPGA的第一时钟信号,以及根据所述第二用户指令基于所述根时钟信号和所述同步信号生成施加到所述第二组FPGA的第二时钟信号;以及
将所述同步信号分别施加到所述第一组FPGA和所述第二组FPGA。
9.根据权利要求8所述的方法,其中,根据所述第一用户指令基于所述根时钟信号和所述同步信号生成施加到所述第一组FPGA的第一时钟信号,以及根据第二用户指令基于所述根时钟信号和所述同步信号生成施加到所述第二组FPGA的第二时钟信号进一步包括:
基于所述同步信号复位所述第一时钟信号和所述第二时钟信号。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储验证系统的一组指令,所述一组指令在被执行时使得所述验证系统执行权利要求8或9所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775444.7A CN115392157B (zh) | 2022-07-01 | 2022-07-01 | 验证系统及在验证系统的多个fpga之间同步时钟的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210775444.7A CN115392157B (zh) | 2022-07-01 | 2022-07-01 | 验证系统及在验证系统的多个fpga之间同步时钟的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115392157A true CN115392157A (zh) | 2022-11-25 |
CN115392157B CN115392157B (zh) | 2024-03-19 |
Family
ID=84116893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210775444.7A Active CN115392157B (zh) | 2022-07-01 | 2022-07-01 | 验证系统及在验证系统的多个fpga之间同步时钟的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115392157B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491581A (zh) * | 2017-07-03 | 2017-12-19 | 北京东土军悦科技有限公司 | 一种对数字电路进行仿真验证的方法及时钟发生器 |
CN107688681A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 一种提供动态配置参数的硬件加速器验证方法 |
US20180052203A1 (en) * | 2016-08-22 | 2018-02-22 | Prateek Sikka | Method for enabling cpu-jtag debugger connection or improving its performance for multi-clock designs running on fpga or emulation systems |
US20180136690A1 (en) * | 2016-11-16 | 2018-05-17 | International Business Machines Corporation | Array clocking in emulation |
CN112989758A (zh) * | 2021-05-17 | 2021-06-18 | 芯华章科技股份有限公司 | 对多个原型验证板同步复位的方法、验证系统及存储介质 |
CN113076710A (zh) * | 2021-06-07 | 2021-07-06 | 上海国微思尔芯技术股份有限公司 | 时钟信号全局同步及分割验证方法、装置、电子设备、存储介质 |
-
2022
- 2022-07-01 CN CN202210775444.7A patent/CN115392157B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180052203A1 (en) * | 2016-08-22 | 2018-02-22 | Prateek Sikka | Method for enabling cpu-jtag debugger connection or improving its performance for multi-clock designs running on fpga or emulation systems |
US20180136690A1 (en) * | 2016-11-16 | 2018-05-17 | International Business Machines Corporation | Array clocking in emulation |
CN107688681A (zh) * | 2016-12-23 | 2018-02-13 | 北京国睿中数科技股份有限公司 | 一种提供动态配置参数的硬件加速器验证方法 |
CN107491581A (zh) * | 2017-07-03 | 2017-12-19 | 北京东土军悦科技有限公司 | 一种对数字电路进行仿真验证的方法及时钟发生器 |
CN112989758A (zh) * | 2021-05-17 | 2021-06-18 | 芯华章科技股份有限公司 | 对多个原型验证板同步复位的方法、验证系统及存储介质 |
CN113076710A (zh) * | 2021-06-07 | 2021-07-06 | 上海国微思尔芯技术股份有限公司 | 时钟信号全局同步及分割验证方法、装置、电子设备、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115392157B (zh) | 2024-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114327861B (zh) | 执行eda任务的方法、装置、系统和存储介质 | |
US20140052430A1 (en) | Partitionless Multi User Support For Hardware Assisted Verification | |
CN109634720B (zh) | 一种多虚拟机共享fpga板卡的方法、系统及装置 | |
CN112287569B (zh) | 用于仿真逻辑系统设计的方法、电子设备及存储介质 | |
CN109857810B (zh) | 基于区块链的数据同步装置及方法 | |
CN113377596A (zh) | 用于存储和读取波形数据的方法及相关设备 | |
CN114925644A (zh) | 在边缘系统验证逻辑系统设计的方法、边缘系统 | |
CN114548027A (zh) | 在验证系统中追踪信号的方法、电子设备及存储介质 | |
CN112434478B (zh) | 仿真逻辑系统设计的虚拟接口的方法及相关设备 | |
CN108228965B (zh) | 一种存储单元的仿真验证方法、装置和设备 | |
CN115392157B (zh) | 验证系统及在验证系统的多个fpga之间同步时钟的方法 | |
CN109196498B (zh) | 通过减少关键路径延迟将逻辑布线递增地分配到物理套接字上 | |
Jokinen et al. | LE-WARP: Linux enriched design for wireless open-access research platform | |
US11520961B2 (en) | Heterogeneous-computing based emulator | |
WO2020138386A1 (ja) | 以前のトレースデータを使用する協調シミュレーションリピータ | |
CN115809620B (zh) | 仿真逻辑系统设计的方法、电子设备和存储介质 | |
CN108595455B (zh) | 一种空间数据坐标转换方法及装置 | |
WO2019021898A1 (ja) | 開発支援装置 | |
CN116151187B (zh) | 处理触发条件的方法、装置和存储介质 | |
CN117172208B (zh) | 验证环境的隔离方法、装置、电子设备及存储介质 | |
CN116594830B (zh) | 硬件仿真工具、调试方法和存储介质 | |
CN117172206B (zh) | 测试用例生成方法、装置、电子设备及存储介质 | |
CN116451182B (zh) | 管理许可证的方法、装置和存储介质 | |
CN117743125A (zh) | 基于fpga原型验证芯片总线性能的方法、装置及介质 | |
CN117933151A (zh) | 仿真逻辑系统设计的方法、电子装置和存储介质 |
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 |