一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

设计的时钟域转换方法、验证系统及存储介质与流程

2022-03-16 02:50:21 来源:中国专利 TAG:


1.本公开实施例涉及逻辑系统设计技术领域,尤其涉及一种设计的时钟域转换方法、验证系统及存储介质。


背景技术:

2.逻辑系统设计(简称设计)是指用于asic(application specific integrated circuit,专用集成电路)、soc(system-on-chip,片上系统芯片)等电路的设计。设计一般通过专门的hdl(hardware description language,硬件描述语言)来完成。利用hdl可逐层具体化描述设计,使得设计复杂的电路结构可使用一系列的模块来表示。
3.随着设计的功能越来越强大,设计往往具有多个时钟域,以满足设计中模块的工作需求,这就涉及到设计的时钟域变换。因此在对设计进行验证时,需要保障设计在不同时钟域下的行为一致性。


技术实现要素:

4.本公开实施例提出一种设计的时钟域转换方法、验证系统及存储介质。
5.第一方面,本公开实施例提供一种设计的时钟域转换方法,该方法用于将设计从第一时钟域转换到第二时钟域,第一时钟域与第一时钟信号关联,第二时钟域与第二时钟信号关联,第二时钟信号的频率高于第一时钟信号的频率,该方法包括:获取设计的寄存器的描述;基于第一时钟信号生成使能信号,该使能信号用于使能设计的寄存器;以及更新设计以施加使能信号到寄存器的使能端。
6.第二方面,本公开实施例提供一种验证系统,该验证系统被配置为执行如上述第一方面所述的设计的时钟域转换方法。
7.第三方面,本公开实施例提供一种存储介质,该存储介质存储至少一组指令,该至少一组指令被执行时使得验证系统执行如上述第一方面所述的设计的时钟域转换方法。
8.本公开实施例提供的设计的时钟域转换方法可用于将设计从第一时钟域转换到第二时钟域,其中,第一时钟域与第一时钟信号关联,第二时钟域与第二时钟信号关联。由于第二时钟信号的频率高于第一时钟信号的频率,因此设计在从第一时钟域转换到第二时钟域时,设计的寄存器行为将被提前(即,寄存器在第一时钟域的行为相比于在第二时钟域存在延迟),使得设计在第二时钟域的行为与第一时钟域的行为出现不一致。基于此,本公开实施例在将设计从第一时钟域转换到第二时钟域时,可获取设计的寄存器的描述;基于第一时钟域下的第一时钟信号生成用于使能寄存器的使能信号,以使得寄存器读取数据和存储处理的数据。进而,在寄存器存储处理的数据之后,基于第二时钟域下的第二时钟信号,使能寄存器输出处理的数据。也就是说,基于第一时钟信号使能设计的寄存器读取数据、存储处理的数据,基于第二时钟信号使能寄存器输出处理的数据,从而平衡寄存器在第一时钟域与第二时钟域的行为延迟时间,保证设计在从第一时钟域转换到第二时钟域时的
行为一致性。
附图说明
9.为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
10.图1为本公开实施例提供的主机的结构示意图。
11.图2为本公开实施例提供的验证系统的示意图。
12.图3a为验证系统基于用户时钟信号使能寄存器的示意图。
13.图3b为验证系统基于用户时钟信号使能寄存器的波形图。
14.图4a为验证系统基于系统时钟信号使能寄存器的一示意图。
15.图4b示出了本公开实施例提供的验证系统基于使能信号对设计进行验证的波形图。
16.图5示出了根据本公开实施例的一种设计的时钟域转换的示例性方法的流程图。
具体实施方式
17.为使本公开实施例的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开实施例进一步详细说明。
18.需要说明的是,除非另外定义,本公开实施例使用的技术术语或者科学术语应当为本公开实施例所属领域内具有一般技能的人士所理解的通常意义。本公开实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。“连接”或者“相连”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电性的连接,不管是直接的还是间接的。
19.验证设计本质上是在运行验证系统的主机上对设计进行模拟。
20.图1示出了根据本公开实施例的主机100的示意图。主机100可以是运行验证系统的电子设备。如图1所示,主机100可以包括:处理器102、存储器104、网络接口106、外围接口108和总线110。其中,处理器102、存储器104、网络接口106和外围接口108通过总线110实现彼此之间在主机内部的通信连接。
21.处理器102可以是中央处理器(central processing unit,cpu)、图像处理器、神经网络处理器(npu)、微控制器(mcu)、可编程逻辑器件、数字信号处理器(dsp)、应用专用集成电路(application specific integrated circuit,asic)、或者一个或多个集成电路。处理器102可以用于执行与本公开实施例描述的技术相关的功能。在一些实施例中,处理器102还可以包括集成为单一逻辑组件的多个处理器。如图1所示,处理器102可以包括多个处理器102a、102b和102c。
22.存储器104可以配置为存储数据(例如,指令集、计算机代码、中间数据等)。在设计领域,用于仿真验证的验证系统可以是存储器104中存储的计算机程序。如图1所示,存储器
存储的数据可以包括程序指令(例如,用于实现本公开实施例的技术方案的程序指令)以及要处理的数据(例如,存储器可以存储在编译过程产生的临时代码)。处理器102也可以访问存储器存储的程序指令和数据,并且执行程序指令以对要处理的数据进行操作。存储器104可以包括易失性存储装置或非易失性存储装置。在一些实施例中,存储器104可以包括随机访问存储器(ram)、只读存储器(rom)、光盘、磁盘、硬盘、固态硬盘(ssd)、闪存、存储棒等。
23.网络接口106可以配置为经由网络向主机100提供与其他外部设备的通信。该网络可以是能够传输和接收数据的任何有线或无线的网络。例如,该网络可以是有线网络、本地无线网络(例如,蓝牙、wifi、近场通信(nfc)等)、蜂窝网络、因特网、或上述的组合。可以理解的是,网络的类型不限于上述具体示例。在一些实施例中,网络接口106可以包括任意数量的网络接口控制器(nic)、射频模块、接收发器、调制解调器、路由器、网关、适配器、蜂窝网络芯片等的任意组合。
24.外围接口108可以配置为将主机100与一个或多个外围装置连接,以实现信息输入及输出。例如,外围装置可以包括键盘、鼠标、触摸板、触摸屏、麦克风、各类传感器等输入设备以及显示器、扬声器、振动器、指示灯等输出设备。
25.总线110可以被配置为在主机100的各个组件(例如处理器102、存储器104、网络接口106和外围接口108)之间传输信息,诸如内部总线(例如,处理器-存储器总线)、外部总线(usb端口、pci-e总线)等。
26.需要说明的是,尽管上述主机架构仅示出了处理器102、存储器104、网络接口106、外围接口108和总线110,但是在具体实施过程中,该主机架构还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述主机架构中也可以仅包含实现本公开实施例方案所必需的组件,而不必包含图中所示的全部组件。
27.在设计领域(例如芯片设计领域),可以利用验证系统对设计进行验证。
28.图2示出了根据本公开实施例的验证系统200的示意图。如图2所示,验证系统200可以包括编译器210和验证工具220。
29.编译器210可以基于待编译的计算机代码来生成目标代码。待编译的计算机代码又可以称为源代码,例如编写的设计。通常,编写源代码的源语言是高级编程语言。高级编程语言可以例如是c 、java等软件编程语言或vhdl、verilog、systemverilog等硬件描述语言。在公开实施例中,设计可以是用例如verilog描述的。目标代码则可以是例如汇编代码、机器码、门级网表等。在本公开实施例中,目标代码以门级网表为例进行描述,但是本领域技术人员应该理解本公开实施例中的门级网表可以用其他类型的目标代码代替。通常的,编译器210可以存储在图1所示的存储器104中,并且由处理器102执行,以将设计编译为目标代码。
30.验证工具220可以根据目标代码进行仿真验证,并输出验证结果。有时候,验证工具220可以包括模拟器(emulator)或原型仿真器(prototyping)。在一些实施例中,验证工具220可以包括一个或多个现场可编程门阵列(field programmable gate array, fpga),用于在验证工具220上实现目标代码。例如,可以将门级网表载入到验证工具220的fpga,从而使得验证工具220可以实现设计的部分或全部功能。通过在验证工具220上模拟设计的部分或全部功能,相应信号(例如,运行过程中的中间信号或最终输出信号)可以被读取。通过分析所读取的相应信号,工程师可以判断设计是否正确以及在设计不正确时进行相应的调
试。
31.在一些实施例中,设计可以是一个用systemverilog语言编写的验证环境,例如通用验证方法学(universal verification methodology,uvm)环境。通过利用验证系统200对设计进行验证,可以构建一个uvm环境,并可以在该uvm环境中对一个待测设备(device under test,简称dut)进行验证。设计的描述(例如,hdl描述)通过编译可以形成仿真程序。该仿真程序在uvm环境中可以被用作dut。
32.在一些实施例中,在仿真验证过程中,验证工具220可基于用户时钟域下的用户时钟,对设计中的寄存器进行使能,以实现设计的仿真验证。时钟域指的是电路设计中由同一个时钟信号控制的区域。跨越时钟域的信号需要特别处理,才能确保该信号传输的正确。用户时钟域可由用户定义,用户时钟可以是用户定义的时钟。
33.在仿真验证过程中,为了加速验证的过程,可以在设计的部分或全部模块中,将频率较慢的用户时钟换成频率较快的系统时钟(有时候也称为根时钟)。也就说,验证系统200可以将频率较慢的用户时钟域替换为由验证系统200提供的、频率较快的系统时钟域。通常,系统时钟的频率是用户时钟的至少2倍。在数字电路设计中,电路的动作通常由时钟的跳变沿(例如,上升沿或下降沿)激发。可以理解的是,由于存在频率的差异,系统时钟域中的跳变沿到来会比用户时钟域更快。也就是说,设计的行为会由于时钟域的替换而出现变化。由于仿真验证的目的在于真实地模仿设计的行为,所以需要避免出现仿真验证过程中与实际电路行为的差异。
34.验证系统200通常会分析设计的所有数据通路的延迟信息来确定系统时钟域下应当将信号延迟多少个周期。但是这种做法对人力消耗巨大,而且伴随着电路设计的规模越发庞大,亟需找到一种新的方式来快速同步不同时钟域之间的行为。
35.本公开实施例提供了一种设计的时钟域转换方法、验证系统及存储介质。
36.图3a示出了验证系统基于用户时钟信号使能寄存器的示意图。参考图3a所示,验证系统200可以获取用户时钟信号310。用户时钟信号310可以具有上升沿和下降沿。验证系统200基于用户时钟信号310的上升沿和下降沿的变化,可生成高电平和低电平的使能信号330。验证系统200向设计300的寄存器301使能端传输高电平和低电平的使能信号330,从而使能寄存器301处于不同状态。
37.在一些实施例中,使能信号330的高电平的持续时间可以由系统时钟信号来确定。例如,使能信号330的高电平的持续时间可以是系统时钟信号的一个周期。
38.可以理解的是,这里的寄存器301可以指代设计300中与时钟域切换相关的寄存器。在一些实施例中,寄存器301可以是设计300中的全部寄存器。
39.寄存器301的不同状态可以包括:导通状态和截止状态。在寄存器301的导通状态下,设计300可以经由寄存器301读取和输出数据。在寄存器301的截止状态,设计300则无法读取和输出数据,即使设计300已经完成了对数据的处理。这样,通过控制寄存器301的导通和截止,设计300的输出传递和输出可以受到控制。例如,在基于用户时钟信号310使能寄存器301的过程中,寄存器301处于截止状态就不能实现读取和输出数据,实现了对设计的控制。
40.寄存器301不同状态之间的切换可由高电平状态或者低电平状态的使能信号触发,高电平状态的使能信号用于使能寄存器处于导通状态,低电平状态的使能信号用于使
能寄存器处于截止状态,验证系统200在寄存器的导通状态下,实现对设计300进行仿真验证。
41.图3b示出了验证系统基于用户时钟信号使能寄存器的波形图。结合图3a和图3b,在用户时钟信号310的第一个时钟周期的上升沿311到来时,验证系统200的使能信号330跳变到高电平状态331,从而寄存器301被使能进入导通状态。寄存器301在导通状态下,通过使能信号的高电平状态的上升沿或者下降沿的变化实现对数据的处理,在使能信号的第一个时钟周期的上升沿读取数据din。在用户时钟信号310的第二个时钟周期的上升沿312到来时,验证系统200的使能信号330从低电平状态332跳变到高电平状态333,从而寄存器301被使能进入导通状态。寄存器301在使能信号的第二个时钟周期的上升沿输出数据dout。
42.如上所述,由于用户时钟域通常是低频时钟域,在低频时钟域下,用户时钟信号的时钟周期通常较长。因此基于用户时钟信号控制使能信号的状态变化,来使能寄存器处于不同工作状态,会使得寄存器的导通状态和输出状态之间具有较长的时钟间隔。基于此,可以将设计从低频的用户时钟域转换到高频的系统时钟域,以通过增加时钟信号的频率,来缩短寄存器的导通状态和输出状态之间的时钟间隔。
43.在仿真验证过程中,设计300可以从用户时钟域转换到验证系统提供的系统时钟(root clock)域,以将设计从低频时钟域转换到高频时钟域。从而,验证系统还可以基于系统时钟域下的系统时钟信号,对设计中的寄存器进行使能,以实现设计的仿真验证。系统时钟可由验证系统200生成。图4a示出了验证系统由用户时钟域转换到系统时钟域下的寄存器使能示意图。
44.结合图4a所示,验证系统200可以获取系统时钟信号320。系统时钟信号320可以具有上升沿和下降沿。验证系统200基于系统时钟信号320的上升沿和下降沿的变化,可生成高电平和低电平的使能信号。验证系统200向设计的寄存器使能端传输高电平和低电平的使能信号,从而使能寄存器301处于不同状态。
45.在系统时钟域下,设计300的寄存器301的状态也可以包括导通状态和截止状态。在寄存器301的导通状态下,设计300可以经由寄存器301读取和输出数据。在寄存器301的截止状态,设计300则无法读取和输出数据。
46.图4b示出了本公开实施例提供的验证系统基于使能信号对设计进行验证的波形图400。
47.波形图400包括用户时钟下的第一时钟域401和系统时钟下的第二时钟域402。
48.如图4b所示,在第一时钟域401下,用户时钟信号310可以包括上升沿311、312和313。在一些实施例中,设计300可以在上升沿311读取输入din 41,并在下一个上升沿312输出dout 44。类似地,设计300可以在上升沿312读取输入din 42,并在下一个上升沿313输出dout 45。也就是说,设计300是在第一个上升沿读取数据(例如,din 41),并在一个周期内完成处理后,在下一个上升沿输出处理结果(例如,dout 44)。
49.可以理解的是,上述示例仅作为例子用于说明使能信号的作用原理。
50.如图4b所示,在第二时钟域402下,在进行时钟域的替换后,系统时钟信号320替代了原来的用户时钟信号310。为了使得设计300在新时钟域下的行为符合设计本意,引入了使能信号330。在一些实施例中,使能信号330是一个高电平使能的信号,也就说,使能信号330包括高电平状态和低电平状态。其中,响应于用户时钟信号310的上升沿到来,将使能信
号330置于高电平状态。也就是说,使能信号330的周期可以被设置为与用户时钟信号310相同。即,使能信号330的上升沿与用户时钟信号310的上升沿分别对应。
51.使能信号330的高电平可以使得寄存器301导通,从而数据可以经由寄存器301传输、读取、处理或输出。而使能信号330的低电平可以使得寄存器301截止,从而数据无法经由寄存器301传输、读取、处理或输出。在一些实施例中,使能信号330的高电平可以持续系统时钟信号320的一个周期。
52.可以理解的是,这里的寄存器301指代与时钟域切换有关的寄存器。
53.如上所述,设计300是在第一个上升沿读取数据(例如,din 41),并在一个周期内完成处理后,在下一个上升沿输出处理结果(例如,dout 44)。因此,当用系统时钟信号320替代原来的用户时钟信号310时,设计300本该在第一个上升沿321到来后读取输入din 41,并在第二个上升沿322到来后输出dout 44。但是由于第二个上升沿322到来后,使能信号330经过下降沿处于低电平状态,也就是说,寄存器301处于截止状态。此时,本该被输出的dout 44被暂时存储在寄存器301中,等待下一个高电平。
54.使能信号330的下一个高电平被设置为与原用户时钟信号310的第二个上升沿312同步。这样,当使能信号330的下一个高电平到来时,寄存器301可以相应地输出原本被暂存在寄存器301中的dout 44。为了区分不同的信号,寄存器301的输出在图4b中显示为dout_temp 46。值得注意的是,此时dout_temp 46仅为寄存器301的输出,而非设计300的输出。
55.寄存器301的输出还要经过设计300的采样后被设计300获得。而设计300会响应于寄存器301输出dout_temp 46后的下一个系统时钟信号320的上升沿(也就是上升沿323),对dout_temp 46进行采样。
56.因此,设计300会在与系统时钟信号320的上升沿323对应的时刻开始输出dout 48。可以理解的是,dout 48与dout 44具有相同的值。
57.与用户时钟信号310驱动下的设计300相比,dout 48比dout 44延迟了一个系统时钟信号320的周期。但是,由于该dout 48在用户时钟信号310下被读取是在下一个时钟信号(例如,用户时钟信号310的上升沿313),所以对于用户时钟信号310的视角下,dout 48的行为与dout 44的行为是一致的。也就是说,在对应于用户时钟信号310的上升沿313的时刻,从外部观察设计300的行为是相同的。
58.因此,通过向寄存器301提供使能信号330可以使得设计300在系统时钟域下(即,由系统时钟信号320激励)保持与用户时钟域下(即,由用户时钟信号310激励)相同的行为。
59.在一些实施例中,验证系统200可以包括数字信号处理器或先进先出存储器。其中,数字信号处理器(digital signal processing,又可以称为dsp处理器)为用数值计算的方式对信号进行加工的处理器;先进先出存储器(first input first output)为采用先入先出的方式对信号进行处理的处理器。
60.图5示出了根据本公开实施例的一种设计的时钟域转换的示例性方法500的流程图。该方法500可以由图2的验证系统200实施。具体地,方法500可以由图2所示的验证系统200实施。该方法500用于将设计(例如,图3a的设计300)从第一时钟域(例如,图4b的第一时钟域401)转换到第二时钟域(例如,图4b的第二时钟域402)。第一时钟域与第一时钟信号(例如,图4b的用户时钟信号310)关联,第二时钟域与第二时钟信号(例如,图4b的系统时钟信号320)关联,第二时钟信号的频率高于第一时钟信号的频率。方法500可以包括如下步
骤。
61.在步骤s502,验证系统200获取设计的寄存器(例如图4a和4b中的寄存器301)的描述。通过获取寄存器的描述,可以让验证系统200可以在后续步骤中修改设计(例如,向寄存器施加使能信号)以实现信号域的转换。
62.在步骤s504,验证系统200基于第一时钟信号(例如图4b示的用户时钟信号310)生成使能信号(例如图4b所示的使能信号330)。第一时钟信号包括第一跳变沿和与第一跳变沿相反的第二跳变沿。例如,第一跳变沿可以是上升沿,而第二跳变沿可以是下降沿。
63.该使能信号用于使能设计的寄存器。也就说,该使能信号可以使得寄存器处于导通状态。在一些实施例中,使能信号包括第一状态(例如图4b所示高电平状态)和第二状态(例如图4b所示低电平状态)。其中,第一状态使得寄存器导通,第二状态使得寄存器截止。所述寄存器包括与将设计从第一时钟域转换到第二时钟域有关的全部寄存器。
64.在一些实施例中,基于第一时钟信号生成使能信号进一步包括:响应于第一时钟信号的第一跳变沿到来,将使能信号置于第一状态(例如图4b所示高电平状态);以及响应于第一状态持续给定时间周期,将使能信号置于第二状态(例如图4b所示低电平状态)。其中,给定时间周期为第二时钟信号的一个时钟周期(例如图4b所示系统时钟信号320的一个周期)。
65.设计可以包括数字信号处理器或先进先出存储器。其中,数字信号处理器(digital signal processing,又可以称为dsp处理器)为用数值计算的方式对信号进行加工的处理器;先进先出存储器(first input first output)为采用先入先出的方式对信号进行处理的处理器。
66.在步骤s506,验证系统200可以更新设计(如图4b中的设计300)以施加使能信号(如图4b中的使能信号330)到寄存器的使能端。
67.可以理解的是,验证系统200可以运行上述更新的设计以在第二时钟域(即,系统时钟域)下仿真设计。
68.本公开实施例提供的时钟域转换方法,基于第一时钟信号使能设计的寄存器读取数据、存储处理的数据,基于第二时钟信号使能寄存器输出处理的数据,从而平衡寄存器在第一时钟域与第二时钟域的行为延迟时间,保证设计在从第一时钟域转换到第二时钟域时的行为一致性。
69.基于同一发明构思,与上述任意实施例方法相对应的,本公开实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例方法。
70.本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
71.上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施
例所述方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
72.所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本公开实施例的范围(包括权利要求)被限于这些例子;在本公开实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本公开实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
73.另外,为简化说明和讨论,并且为了不会使本公开实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(ic)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本公开实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本公开实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本公开实施例的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本公开实施例。因此,这些描述应被认为是说明性的而不是限制性的。
74.尽管已经结合了本公开实施例的具体实施例对本公开实施例进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态ram(dram))可以使用所讨论的实施例。
75.本公开实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本公开实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本公开实施例的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献