CN115826678A - 校准多个fpga的时钟相位的方法、装置、系统及存储介质 - Google Patents

校准多个fpga的时钟相位的方法、装置、系统及存储介质 Download PDF

Info

Publication number
CN115826678A
CN115826678A CN202211262365.2A CN202211262365A CN115826678A CN 115826678 A CN115826678 A CN 115826678A CN 202211262365 A CN202211262365 A CN 202211262365A CN 115826678 A CN115826678 A CN 115826678A
Authority
CN
China
Prior art keywords
clock signal
fpga
clock
count value
time
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.)
Pending
Application number
CN202211262365.2A
Other languages
English (en)
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.)
Core Huazhang Technology Beijing Co ltd
Original Assignee
Core Huazhang Technology Beijing 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 Core Huazhang Technology Beijing Co ltd filed Critical Core Huazhang Technology Beijing Co ltd
Priority to CN202211262365.2A priority Critical patent/CN115826678A/zh
Publication of CN115826678A publication Critical patent/CN115826678A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)

Abstract

本申请提供一种校准多个FPGA的时钟相位的方法、装置、系统及存储介质,其中,所述多个FPGA包括第一FPGA和第二FPGA。所述方法包括:获取施加在所述第一FPGA上的第一时钟信号和施加在所述第二FPGA上的第二时钟信号,其中,所述第一时钟信号和所述第二时钟信号的周期相同;根据所述第一时钟信号和所述第二时钟信号生成同步时钟信号;接收用户设置的相位校准精度;根据所述同步时钟信号的周期和所述相位校准精度确定参考时间长度;在给定时间长度内分别确定所述第一时钟信号和所述第二时钟信号经过的参考时间长度的数量为第一计数值和第二计数值;以及基于所述第一计数值和所述第二计数值,生成并发送修改初始相位的指令至所述第二FPGA。

Description

校准多个FPGA的时钟相位的方法、装置、系统及存储介质
技术领域
本申请涉及芯片验证技术领域,尤其涉及一种校准多个FPGA的时钟相位的方法、装置、系统及存储介质。
背景技术
在集成电路的验证领域,用户可以使用原型验证平台对逻辑系统设计进行验证,被测试和验证的逻辑系统设计(例如,电路设计)可以被称为待测设计(Design UnderTest,DUT)。
原型验证平台的设计复杂且兼容性要求高,在时钟的传输路径上往往需要增加很多有源器件,例如时钟切换器(MUX)和缓冲器(Buffer)。这些有源器件由于工艺、电压、温度(Process,Voltage,Temperature;PVT)等的差异,会存在端到端的时钟偏移(port-to-portskew)和器件到器件的时钟偏移(device-to-device skew),这些时钟偏移的叠加使得FPGA的接收端产生了相位差。
用户(例如,验证工程师)往往会使用原型验证平台中的多个FPGA来验证同一个逻辑系统设计,而且随着待测设计的规模越来越大,验证测试中需要使用的FPGA也越来越多。为确保验证同一个待测设计的多个FPGA的工作时钟是同步的,用户需要对施加在这多个FPGA的时钟相位进行校准。同时,对于不同的验证项目,DUT所使用的时钟频率不同,这就导致每个新的验证项目需要重新进行多个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示出了根据本申请实施例的示例性时钟分发装置的示意图。
图3A示出了根据本申请实施例的示例性校准时钟相位的过程的示意图。
图3B示出了根据本申请实施例的示例性校准时钟相位的另一过程的示意图。
图3C示出了根据本申请实施例的示例性校准时钟相位的又一过程的示意图。
图4示出了根据本申请实施例的示例性校准多个FPGA的时钟相位的方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
如上所述,随着待测设计规模的增大,验证测试中需要级联的FPGA越来越多。为确保验证的顺利进行,这些级联的FPGA的工作时钟需要是同步的。有鉴于此,本申请提出一种快速、简便地校准多个FPGA的时钟相位的方法,以确保多个FPGA的工作时钟处于同步状态。
图1示出了根据本申请实施例的电子设备100的结构示意图。电子设备100可以是运行仿真系统的电子设备。如图1所示,电子设备100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在电子设备内部的通信连接。
处理器102可以是中央处理器(Central Processing Unit,CPU)、图像处理器、神经网络处理器(NPU)、微控制器(MCU)、可编程逻辑器件、数字信号处理器(DSP)、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路。处理器102可以用于执行与本申请描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在一些实施例中,用于仿真测试设计的仿真测试系统可以是存储器104中存储的计算机程序。如图1所示,存储器存储的数据可以包括程序指令(例如,用于实现本申请的校准多个FPGA的时钟相位的方法的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(RAM)、只读存储器(ROM)、光盘、磁盘、硬盘、固态硬盘(SSD)、闪存、存储棒等。
网络接口106可以配置为经由网络向电子设备100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、WiFi、近场通信(NFC)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(NIC)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
外围接口108可以配置为将电子设备100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
总线110可以被配置为在电子设备100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(USB端口、PCI-E总线)等。
需要说明的是,尽管上述电子设备架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该电子设备架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述电子设备架构中也可以仅包含实现本申请实施例方案所必需的组件,而不必包含图中所示的全部组件。
图2A示出了根据本申请实施例的示例性校准系统200的示意图。
在芯片验证领域,用户可以使用原型验证平台对逻辑系统设计进行验证。原型验证平台可以是芯华章股份有限公司出品的HuaPro P1验证平台。
在一些实施例中,校准系统200可以包括电子控制装置201、时钟分发装置203、多条传输线以及多个接口2041、2042、2051、2052。
电子控制装置201可以是例如图1所示的电子设备100。电子控制装置201可以通过传输线分别与执行验证任务的FPGA 204和205连接。电子控制装置201可以获取施加在FPGA204上的时钟信号CLK-1和施加在FPGA205上的时钟信号CLK-2。电子控制装置201可以基于时钟信号CLK-1和CLK-2生成同步信号CLK-SYNC,并将同步信号CLK-SYNC通过传输线发送至FPGA 204和205。由于同步信号CLK-SYNC的时钟传输路径上没有使用有源器件,所以,用户可以通过控制连接电子控制装置201和FPGA 204、205的两条传输线等长来确保同步信号CLK-SYNC到FPGA 204和205的相位一致。
时钟源202可以产生源时钟信号。时钟分发装置203可以基于该源时钟信号生成时钟信号CLK-1和CLK-2,并将时钟信号CLK-1和CLK-2分别发送至FPGA 204和205。
在一些实施例中,校准系统200可以用于校准同一个验证平台中的多个FPGA的时钟相位。此时,时钟源202可以复用该验证平台内的时钟源。在另一些实施例中,校准系统200可以包括时钟源202,并且可以用于校准不同验证平台中的多个FPGA的时钟相位。此时,时钟源202可以是独立于验证平台的时钟源,用于为需要校准的多个FPGA提供源时钟信号。
图2B示出了根据本申请实施例的示例性时钟分发装置203的示意图。
如图2B所示,时钟分发装置203可以包括1:2的缓冲器(Buffer)2031、2032和2033。基于时钟源202产生的源时钟信号,时钟分发装置203可以生成施加在FPGA 204上的时钟信号CLK-1和施加在FPGA 205上的时钟信号CLK-2。由于时钟信号CLK-1和CLK-2是基于同一源时钟信号产生的,所以时钟信号CLK-1和CLK-2的时钟频率可以是一致的。在时钟分发装置203内,为了排除缓冲器2031、2032和2033的端到端时钟偏移之外的影响,用户可以控制时钟分发装置203内的传输线的长度。例如,缓冲器2031到缓冲器2032、2033的传输线等长。
回到图2A,类似地,为了使时钟信号CLK-1和CLK-2在FPGA 204和205的接收端的相位差仅仅来自于时钟分发装置203中的缓冲器的端到端时钟偏移,用户可以控制连接时钟分发装置203和FPGA 204、205的这两条传输线等长。
传输线与FPGA 204和205可以通过接口2041、2042、2051和2052连接。
如上所述,缓冲器中的端到端的时钟偏移使得时钟分发装置203生成并分发至FPGA 204和205的时钟信号CLK-1和CLK-2存在一定的相位差。有鉴于此,本申请提出一种快速、简便地校准施加时钟信号CLK-1和CLK-2的相位的方法,以便于调整时钟信号CLK-1和CLK-2至同步状态。
图3A示出了根据本申请实施例的示例性校准时钟相位的过程300的示意图。
在一些实施例中,校准系统200可以获取施加在FPGA 204和205的时钟信号CLK-1和CLK-2,其中,时钟信号CLK-1和CLK-2存在一个相位差TD1。为满足FPGA 204和205的时钟同步的要求,相位差TD1应该在一个相位校准精度内。这里的相位校准精度可以由用户根据实际验证任务的需要来设置。
需要说明的是,由于校准系统200存在自身的固有延迟,所以相位校准精度的最小值可以由校准系统200的固有延迟确定。例如,该固有延迟可以是由电子控制装置201产生同步信号CLK-SYNC的控制精度(例如,任何时钟源产生的时钟频率都不能保证始终一致,时钟频率会有一个微小的波动,一般是ppm(百万分之一)为单位,比如10k±20ppm,这里的20ppm就是时钟的控制精度)和校准系统200中的多条传输线的控制精度引起的。
电子控制装置201可以根据时钟信号CLK-1和CLK-2生成一个低频的、连续的同步时钟信号CLK-SYNC。同步时钟信号CLK-SYNC与时钟信号CLK-1的初始相位差T11小于同步时钟信号CLK-SYNC与时钟信号CLK-2的初始相位差T21。也就是说,时钟信号CLK-1的输入延时大于信号CLK-2的输入延时。
为了判断时钟信号CLK-1和CLK-2是否同步,这里引入了一个参考时钟长度。在一些实施例中,电子控制装置201可以使用同步时钟信号CLK-SYNC的周期和用户设置的相位校准精度的和作为一个参考时间长度。电子控制装置201可以利用计数器在时钟信号CLK-1和CLK-2上合成与参考时间长度一致的时间长度。例如,CLK_SYNC的频率可以是10000.05Hz(即,周期为99999.5ns),用户设置的相位校准精度为0.5ns,时钟信号CLK-1和CLK-2的频率可以是1GHz(即,周期为1ns),则计数器可以被设置为100000,从而在时钟信号CLK-1和CLK-2上获得100000ns的参考时间长度。
在一些实施例中,同步时钟信号CLK-SYNC的周期可以是一个固定周期,例如可以是10kHz。
在另一些实施例中,根据不同验证任务的需要,FPGA会工作在不同的时钟频率下,例如1MHz或1GHz。这样,如果始终使用一个固定周期的同步时钟信号CLK-SYNC,那么对于频率较高的时钟频率,计数器需要计比较多的数才能获得参考时间长度。有鉴于此,同步时钟信号CLK-SYNC的周期可以是与FPGA的工作时钟的周期相关联的周期。在一些实施例中,电子控制装置201可以预先存储用户设置的多个系数,这些多个系数的每一个与FPGA的一个工作频率范围对应。例如,当FPGA的工作时钟处于一个工作频率A时,电子控制装置201可以判断工作频率A处于频率范围(A1,A2]中,并确定预先存储的与频率范围(A1,A2]对应的系数a。此时,电子控制装置201可以基于工作频率A和系数a确定同步时钟信号CLK-SYNC的频率为A/a。进而,电子控制装置201可以控制计数器在时钟信号CLK-1和CLK-2上合成与参考时间长度一致的时间长度时的计数数量,防止计数器出现过大的计数数量。
时钟信号CLK-1和CLK-2的起始时间可以记为时钟信号的初始时刻。电子控制装置201可以在同步时钟信号CLK-SYNC的每一个上升沿对应的时刻,分别确定时钟信号CLK-1和CLK-2从初始时刻到与该上升沿对应时刻的时间长度内经过了多少个参考时间长度。与时钟信号CLK-1对应的参考时间长度的数量可以记为第一计数值,与时钟信号CLK-2对应的参考时间长度的数量可以记为第二计数值。
如图3A所示,在与CLK-SYNC的第一个上升沿对应的时刻①处,时钟信号CLK-1从初始时刻到时刻①的时间长度内,经过了0个参考时间长度,记第一计数值为0;时钟信号CLK-2从初始时刻到时刻①的时间长度内,经过了0个参考时间长度,记第二计数值为0。类似地,在与CLK-SYNC的第二个上升沿对应的时刻②处,时钟信号CLK-1从初始时刻到时刻②的时间长度内,经过了0个参考时间长度,记第一计数值为0;时钟信号CLK-2从初始时刻到时刻②的时间长度内,经过了1个参考时间长度,记第二计数值为1。
可以看到,在时刻②处,第一计数值与第二计数值出现了不同,电子控制装置201可以判断时钟信号CLK-1和CLK-2之间的相位差TD1大于用户设置的相位校准精度,需要调整时钟信号CLK-2的输入延时,以缩小时钟信号CLK-2与CLK-1之间的相位差TD1。由于时钟信号CLK-1的输入延时大于时钟信号CLK-2的输入延时,所以电子控制装置201可以发送增加时钟信号CLK-2的输入延时的指令给FPGA 205。FPGA 205接收到该指令后,可以对增加时钟信号CLK-2的输入时延。例如,Xilinx公司的FPGA可以实现皮秒(ps)级别的delay时延控制。可以理解的是,对于不具有调节输入时钟时延的FPGA来说,用户可以通过增加与FPGA连接的控制器的方式来调节输入时延,本申请对此不作限制。
图3B示出了根据本申请实施例的示例性校准时钟相位的另一过程310的示意图。
如图3B所示,同步时钟信号CLK-SYNC与时钟信号CLK-1的初始相位差T12小于同步时钟信号CLK-SYNC与时钟信号CLK-2的初始相位差T22。也就是说,时钟信号CLK-1的输入延时大于信号CLK-2的输入延时。时钟信号CLK-1与时钟信号CLK-2的相位差可以是TD2
在与CLK-SYNC的第一个上升沿对应的时刻①处,时钟信号CLK-1从初始时刻到时刻①的时间长度内,经过了0个参考时间长度,记第一计数值为0;时钟信号CLK-2从初始时刻到时刻①的时间长度内,经过了0个参考时间长度,记第二计数值为0。类似地,在与CLK-SYNC的第二个上升沿对应的时刻②处,时钟信号CLK-1从初始时刻到时刻②的时间长度内,经过了0个参考时间长度,记第一计数值为0;时钟信号CLK-2从初始时刻到时刻②的时间长度内,经过了0个参考时间长度,记第二计数值为0。在与CLK-SYNC的第三个上升沿对应的时刻③处,时钟信号CLK-1从初始时刻到时刻③的时间长度内,经过了1个参考时间长度,记第一计数值为1;时钟信号CLK-2从初始时刻到时刻③的时间长度内,经过了1个参考时间长度,记第二计数值为1。依此类推,直至在与CLK-SYNC的第N个上升沿对应的时刻N处,时钟信号CLK-1从初始时刻到时刻N的时间长度内,经过了n个参考时间长度,记第一计数值为n;时钟信号CLK-2从初始时刻到时刻N的时间长度内,经过了n个参考时间长度,记第二计数值为n。也就是说,从同步时钟信号CLK-SYNC的第一个上升沿对应的时刻①直至第N个上升沿对应的时刻N的时间长度内,第一计数值始终与第二计数值始终相等。
由于同步时钟信号CLK-SYNC的每个周期长度均与参考时间长度相差一个相位校准精度,所以随着时间的推移,同步时钟信号CLK-SYNC与时钟信号CLK-1之间的相位差存在周期性的变化规律,其变化周期为参考时间长度与相位校准精度的商。所以,这里的N的取值可以是小于等于参考时间长度与相位校准精度的商的整数。第一计数值与第二计数值只要在与第一个上升沿到第N个上升沿对应的时间长度内始终相等。那么,第一计数值和第二计数值在与第N+1个上升沿到第2N个上升沿对应的时间长度内将进入下一个周期,也将始终相等。
响应于第一计数值和第二计数值始终相等,电子控制装置201可以判断时钟信号CLK-1和CLK-2之间的相位差TD2小于等于用户设置的相位校准精度,满足验证任务的需要,无需调整时钟信号CLK-2的输入延时。
图3C示出了根据本申请实施例的示例性校准时钟相位的又一过程320的示意图。
针对多个需要校准的时钟信号,例如时钟信号CLK-1、CLK-2和CLK-3,电子控制装置201可以在这三个时钟信号中确定输入延时最大的时钟信号CLK-1,即,同步时钟信号CLK-SYNC与时钟信号CLK-1的初始相位差小于同步时钟信号CLK-SYNC与时钟信号CLK-2的初始相位差,并且也小于同步时钟信号CLK-SYNC与时钟信号CLK-3的初始相位差。
参考如图3A或图3B所述的校准方法,电子控制装置201可以针对时钟信号CLK-1与CLK-2、CLK-1与CLK-3分别进行校准,通过调整时钟信号CLK-2、CLK-3的输入延时,使得CLK-2与CLK-1的初始相位差和CLK-3与CLK-1的初始相位差不断缩小至相位校准精度以内。
这样,校准系统200通过在给定的时间长度内确定时钟信号经过的参考时间长度的数量,可以快速、简便的校准多个FPGA的时钟信号。采用本申请的方法,校准系统200不仅可以校准同一个验证平台中的多个FPGA的时钟信号,也可以校准不同验证平台中的多个级联的FPGA的时钟信号。
由于验证平台可以执行不同的验证任务,在这不同的验证任务中,FPGA可能会处在不同的工作频率下。当FPGA从执行一个验证任务切换到执行下一个验证任务时,或者验证平台重新启动时,校准系统200可以对FPGA的工作时钟进行校准,以确保执行本次验证任务的FPGA的工作时钟是处于同步状态的。
本申请实施例提供了一种校准多个FPGA的时钟相位的方法。
图4示出了根据本申请实施例的示例性校准多个FPGA的时钟相位的方法400的流程图,其中,该多个FPGA可以包括第一FPGA和第二FPGA。方法400可以由如图2A所示的校准系统200执行。方法400可以包括如下步骤。
在步骤401,校准系统200可以获取施加在该第一FPGA(例如,图2A的FPGA 204)上的第一时钟信号(例如,图2A的时钟信号CLK-1)和施加在该第二FPGA(例如,图2A的FPGA205)上的第二时钟信号(例如,图2A的时钟信号CLK-2)。由于该第一时钟信号和该第二时钟信号均是基于同一个源时钟信号(例如,图2A的时钟源202产生的源时钟信号)生成的,所以,该第一时钟信号和该第二时钟信号的周期相同。
在步骤402,校准系统200可以根据该第一时钟信号和该第二时钟信号生成同步时钟信号(例如,图3A、3B或3C中的同步时钟信号CLK-SYNC),该同步时钟信号与该第一时钟信号的初始相位差(例如,图3A中的相位差T11)小于该同步时钟信号与该第二时钟信号的初始相位差(例如,图3A中的相位差T21)。
在一些实施例中,该同步时钟信号的周期可以为固定周期(例如,10kHz)。或者,在另一些实施例中该同步时钟信号的周期也可以为与该第一时钟信号的周期相关联的周期。例如,校准系统200可以基于预设在校准系统200中的多个系数,根据该第一时钟信号的周期和相应的系数的商来得到该同步时钟信号的周期。
在步骤403,校准系统200可以接收用户设置的相位校准精度。用户可以根据验证任务的实际需要来确定该相位校准精度。
在一些实施例中,该相位校准精度的最小值可以由校准系统200中的电子控制装置201产生该同步时钟信号的控制精度(例如,20ppm)和多条传输线(例如,图2A中的连接电子控制装置201与FPGA 204、205的传输线,连接时钟分发装置203与FPGA 204、205的传输线)的长度控制精度确定。
在步骤404,校准系统200可以根据该同步时钟信号的周期和该相位校准精度确定参考时间长度(例如,图3A、3B、3C中的参考时间长度)。
在一些实施例中,该参考时间长度可以为该同步时钟信号的周期(例如,同步时钟信号CLK_SYNC的周期为99999.5ns)与该相位校准精度(例如,0.5ns)的和(例如,100000ns)。
在步骤405,校准系统200可以在给定时间长度内分别确定该第一时钟信号和第二时钟信号经过的参考时间长度的数量为第一计数值和第二计数值。
在一些实施例中,该给定时间长度内可以为初始时刻到与所述同步时钟信号的第N个上升沿对应时刻的时长。其中,初始时刻可以为时钟信号的起始时间(例如,图3A中的CLK-1的初始时刻和CLK-2的初始时刻)。
在给定时间长度内分别确定该第一时钟信号和该第二时钟信号经过的参考时间长度的数量为第一计数值和第二计数值可以进一步包括:在该同步时钟信号的第N个上升沿处,所述第一时钟信号从初始时刻到与所述第N个上升沿对应时刻(例如,图3A的时刻①、②,图3B的时刻①、②、N)的时长内经过的参考时间长度的数量为第一计数值(例如,图3A的第一计数值为0、0,图3B的第一计数值0、0、n);在该同步时钟信号的第N个上升沿处,所述第二时钟信号从初始时刻到与所述第N个上升沿对应时刻(例如,图3A的时刻①、②,图3B的时刻①、②、N)的时长内经过的参考时间长度的数量为第二计数值(例如,图3A的第二计数值为0、1,图3B的第二计数值0、0、n)。其中,N的取值可以为小于等于所述参考时间长度和所述相位校准精度的商的整数。具体计数方法可以参考图3A或图3B的描述,在此不再赘述。
在步骤406,校准系统200可以基于该第一计数值和该第二计数值,生成并发送修改初始相位的指令至该第二FPGA。在一些实施例中,响应于该第一计数值(例如,图3A中的时刻②的第一计数值0)和该第二计数值(例如,图3A中的时刻②的第二计数值1)不一致,校准系统200可以确定该第一时钟信号和该第二时钟信号的相位差(例如,图2A中的相位差TD1)大于用户设置的相位校准精度。校准系统200可以生成并发送增加该第二时钟信号(例如,图3A中的时钟信号CLK-2)的输入延时的指令至所述第二FPGA。
在一些实施例中,从同步时钟信号CLK-SYNC的第一个上升沿对应的时刻①直至第N个上升沿对应的时刻N的时间长度内,该第一计数值始终与该第二计数值相等,校准系统200可以确定该第一时钟信号和该第二时钟信号的相位差(例如,图2B中的相位差TD2)小于用户设置的相位校准精度,进而确定无需调整该第二时钟信号。
在一些实施例中,该多个FPGA还包括第三FPGA(未在图2A中示出),该方法可以进一步包括:校准系统200可以获取施加在该第三FPGA上的第三时钟信号(例如,图3C中的时钟信号CLK-3),其中,该同步时钟信号与该第一时钟信号初始相位差小于该同步时钟信号与该第三时钟信号的初始相位差。也就是说,该第一时钟信号的输入延时大于该第三时钟信号的输入延时。校准系统200可以在给定时间长度内确定该第三时钟信号经过的参考时间长度的数量为第三计数值。校准系统200可以基于该第一计数值和该第三计数值,生成并发送修改初始行为的指令至该第三FPGA。其中,该给定长度可以是该第三时钟信号的初始时刻(例如,图3C中的CLK-3的初始时刻)到与该同步时钟信号的第N个上升沿对应时刻的时长。
这样,通过在给定时间长度内判断不同时钟信号经过的参考时间长度的数量,校准系统200可以确定不同时钟信号之间的相位差是否大于相位校准精度,进而给出是否调整时钟信号的初始相位的指令。
本申请实施例还提供一种电子控制装置。该电子控制装置可以是图1的电子控制装置100。该电子控制装置100可以包括存储器,用于存储一组指令;以及至少一个处理器,配置为执行该组指令以使得所述电子设备执行方法400。
本申请实施例还提供一种校准多个FPGA的时钟相位的系统。该系统可以是图2A的校准系统200。该校准系统200可以包括电子控制装置(例如,图2A中的电子控制装置201),该电子控制装置与该第一FPGA(例如,图2A中的FPGA 204)和该第二FPGA(例如,图2A中的FPGA 205)连接;时钟分发装置(例如,图2A中的时钟分发装置203),配置为与该第一FPGA和该第二FPGA连接,以及基于源时钟信号生成并分别发送第一时钟信号(例如,图2A中的时钟信号CLK-1)、第二时钟信号(例如,图2A中的时钟信号CLK-2)至该第一FPGA、该第二FPGA;多条传输线,其中,连接该电子控制装置与该第一FPGA、该第二FPGA的该多条传输线等长,连接该时钟分发装置与该第一FPGA、该第二FPGA的该多条传输线等长;以及多个接口(例如,图2A中的接口2041、2042、2051、2052),用于连接该多条传输线和该第一FPGA、该第二FPGA。
在一些实施例中,时钟分发装置接收的源时钟信号可以复用验证平台内的时钟源所产生的的源时钟信号。在另一些实施例中,该校准系统200可以进一步包括时钟源(例如,图2A中的时钟源202),用于产生该源时钟信号(例如,图2A或图2B中的源时钟信号)。该时钟源可以是独立于验证平台的时钟源。
本申请实施例还提供一种非暂态计算机可读存储介质。该非暂态计算机可读存储介质存储计算机的一组指令,该组指令用于在被执行时使该电子控制装置执行方法400。
上述对本申请的一些实施例进行了描述。其他实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请的不同方面的许多其它变化,为了简明它们没有在细节中提供。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (11)

1.一种校准多个FPGA的时钟相位的方法,其中,所述多个FPGA包括第一FPGA和第二FPGA,所述方法包括:
获取施加在所述第一FPGA上的第一时钟信号和施加在所述第二FPGA上的第二时钟信号,其中,所述第一时钟信号和所述第二时钟信号的周期相同;
根据所述第一时钟信号和所述第二时钟信号生成同步时钟信号,所述同步时钟信号与所述第一时钟信号的初始相位差小于所述同步时钟信号与所述第二时钟信号的初始相位差;
接收用户设置的相位校准精度;
根据所述同步时钟信号的周期和所述相位校准精度确定参考时间长度;
在给定时间长度内分别确定所述第一时钟信号和所述第二时钟信号经过的参考时间长度的数量为第一计数值和第二计数值;以及
基于所述第一计数值和所述第二计数值,生成并发送修改初始相位的指令至所述第二FPGA。
2.如权利要求1所述的方法,其中,所述同步时钟信号的周期为固定周期,或与所述第一时钟信号的周期相关联的周期。
3.如权利要求1所述的方法,其中,所述给定时间长度内为初始时刻到与所述同步时钟信号的第N个上升沿对应时刻的时长,并且在给定时间长度内分别确定所述第一时钟信号和所述第二时钟信号经过的参考时间长度的数量为第一计数值和第二计数值进一步包括:
在所述同步时钟信号的第N个上升沿处,所述第一时钟信号从初始时刻到与所述第N个上升沿对应时刻的时长内经过的参考时间长度的数量为第一计数值;
在所述同步时钟信号的第N个上升沿处,所述第二时钟信号从初始时刻到与所述第N个上升沿对应时刻的时长内经过的参考时间长度的数量为第二计数值,其中,所述N的取值为小于等于所述参考时间长度和所述相位校准精度的商的整数。
4.如权利要求3所述的方法,其中,所述参考时间长度为所述同步时钟信号的周期与所述相位校准精度的和。
5.如权利要求4所述的方法,其中,基于所述第一计数值和所述第二计数值,生成并发送修改初始相位的指令至所述第二FPGA进一步包括:
响应于所述第一计数值和所述第二计数值不一致,生成并发送增加所述第二时钟信号的输入延时的指令至所述第二FPGA。
6.如权利要求1所述的方法,其中,所述多个FPGA还包括第三FPGA,所述方法进一步包括:
获取施加在所述第三FPGA上的第三时钟信号,其中,所述同步时钟信号与所述第一时钟信号初始相位差小于所述同步时钟信号与所述第三时钟信号的初始相位差;
在给定时间长度内确定所述第三时钟信号经过的参考时间长度的数量为第三计数值;以及
基于所述第一计数值和所述第三计数值,生成并发送修改初始相位的指令至所述第三FPGA。
7.一种电子控制装置,包括:
存储器,用于存储一组指令;以及
至少一个处理器,配置为执行所述一组指令以使得所述电子控制装置执行如权利要求1至6任一项所述的方法。
8.一种校准多个FPGA的时钟相位的系统,所述多个FPGA包括第一FPGA和第二FPGA,所述系统包括:
如权利要求7所述的电子控制装置,所述电子控制装置与所述第一FPGA和所述第二FPGA连接;
时钟分发装置,配置为与所述第一FPGA和所述第二FPGA连接,以及基于源时钟信号生成并分别发送第一时钟信号、第二时钟信号至所述第一FPGA、所述第二FPGA;
多条传输线,其中,连接所述电子控制装置与所述第一FPGA、所述第二FPGA的所述多条传输线等长,连接所述时钟分发装置与所述第一FPGA、所述第二FPGA的所述多条传输线等长;以及
多个接口,用于连接所述多条传输线和所述第一FPGA、所述第二FPGA。
9.如权利要求8所述的系统,进一步包括:
时钟源,用于产生所述源时钟信号。
10.如权利要求8或9所述的系统,进一步包括:
相位校准精度的最小值由所述电子控制装置产生所述同步时钟信号的控制精度和所述多条传输线的长度控制精度确定。
11.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储电子设备的一组指令,所述一组指令在被执行时使得所述电子控制装置执行权利要求1至6任一项所述方法。
CN202211262365.2A 2022-10-14 2022-10-14 校准多个fpga的时钟相位的方法、装置、系统及存储介质 Pending CN115826678A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211262365.2A CN115826678A (zh) 2022-10-14 2022-10-14 校准多个fpga的时钟相位的方法、装置、系统及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211262365.2A CN115826678A (zh) 2022-10-14 2022-10-14 校准多个fpga的时钟相位的方法、装置、系统及存储介质

Publications (1)

Publication Number Publication Date
CN115826678A true CN115826678A (zh) 2023-03-21

Family

ID=85524806

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211262365.2A Pending CN115826678A (zh) 2022-10-14 2022-10-14 校准多个fpga的时钟相位的方法、装置、系统及存储介质

Country Status (1)

Country Link
CN (1) CN115826678A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116631469A (zh) * 2023-07-19 2023-08-22 长鑫存储技术有限公司 时钟信号生成电路、方法及存储器

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116631469A (zh) * 2023-07-19 2023-08-22 长鑫存储技术有限公司 时钟信号生成电路、方法及存储器
CN116631469B (zh) * 2023-07-19 2023-12-01 长鑫存储技术有限公司 时钟信号生成电路、方法及存储器

Similar Documents

Publication Publication Date Title
TWI821549B (zh) 相位預測器及相關使用方法
JP4998699B2 (ja) 半導体装置、及び通信制御方法
JP5522050B2 (ja) クロック分周回路、クロック分配回路、クロック分周方法及びクロック分配方法
JP6812781B2 (ja) 遅延回路、カウント値生成回路および物理量センサー
JP2007108172A (ja) 半導体回路のオンチップ特性を測定するための装置及びそれに関する方法
US9369363B2 (en) Apparatus and methods for determining latency of a network port
US9250859B2 (en) Deterministic FIFO buffer
CN115826678A (zh) 校准多个fpga的时钟相位的方法、装置、系统及存储介质
US20070129923A1 (en) Dynamic synchronizer simulation
US9047934B1 (en) Timing signal adjustment for data storage
US20230195162A1 (en) Synchronous reset deassertion circuit
US8930739B2 (en) Memory controller
US8294504B2 (en) Methods and systems related to a configurable delay counter used with variable frequency clocks
US8867698B2 (en) Counting circuit, delay value quantization circuit, and latency control circuit
KR101323372B1 (ko) 신호 발생 장치 및 이를 이용한 자동 테스트 장치
JP7040572B2 (ja) 遅延回路、カウント値生成回路および物理量センサー
JP2010021950A (ja) 非同期インターフェース回路、および、非同期インターフェース方法
KR100917391B1 (ko) 시리얼 통신에서 수신되는 신호의 주파수를 판단하는 장치
JP6289110B2 (ja) 集積回路
US9178685B1 (en) Techniques to determine signal timing
JP2016039423A (ja) クロック信号分配回路、クロック信号分配方法、及びクロック信号分配プログラム
JP6530288B2 (ja) 半導体装置および半導体装置のテスト方法
US20080297207A1 (en) Double data rate transmitter and clock converter circuit thereof
CN114185396A (zh) 设计的时钟域转换方法、验证系统及存储介质
US20120300882A1 (en) Synchronization circuit and synchronization method

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