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

同时钟域下寄存器的逻辑解耦方法与流程

2021-02-05 15:22:00 来源:中国专利 TAG:寄存器 时钟 电路设计 逻辑 数字


[0001]
本发明涉及数字电路设计技术领域,尤其涉及同时钟域下寄存器的逻辑解耦方法。


背景技术:

[0002]
在网络通讯领域,atm交换机、核心路由器、千兆以太网以及各种网关设备中,系统数据速率、时钟速率不断提高,相应处理器的工作频率也越来越高;数据、语音、图像的传输速度已经远远高于500mbps,数百兆乃至数吉的背板也越来越普遍。数字系统速度的提高意味着信号的升降时间尽可能短,由数字信号频率和边沿速率提高而产生的一系列高速设计问题也变得越来越突出。当信号的互连延迟大于边沿信号翻转时间的20%时,板上的信号导线就会呈现出传输线效应,这样的设计就成为高速设计。高速问题的出现给硬件设计带来了更大的挑战,有许多从逻辑角度看来正确的设计,如果在实际pcb设计中处理不当就会导致整个设计失败,这种情形在日益追求高速的网络通信领域更加明显。因高速问题产生的信号过冲、下冲、反射、振铃、串扰等将严重影响系统的正常时序,系统时序余量的减少迫使人们关注影响数字波形时序和质量的各种现象。由于速度的提高使时序变得苛刻时,无论事先对系统原理理解得多么透彻,任何忽略和简化都可能给系统带来严重的后果。在高速设计中,时序问题的影响更为关键。
[0003]
目前,业内普遍采用在芯片设计过程中在时序路径上每个寄存器的cp端插入缓冲器(buffer)来保证在同一时钟域下全部寄存器的时钟同步。数字电路中的缓冲器一般有两个作用:一是提高驱动能力,二是确保信号时序正确,比如当一条走线上有保持时间违规(hold violation)(表现为数据到达过快,需要滞后到达),则可插入缓冲器,利用缓冲器的延时来修正这个保持时间违规(hold violation)。这一做法非常有效的解决了时钟同步的要求。
[0004]
但是随着芯片规模越来越大,在一个时钟域内往往需要插入大量的缓冲器以满足时钟同步的需求,这样导致了大量缓冲器对芯片面积的占用,使得设计结构复杂,也带来了芯片功耗大等问题。


技术实现要素:

[0005]
本发明的目的是提供一种同时钟域下寄存器的逻辑解耦方法,通过将同时钟域下的寄存器按照逻辑关系进行解耦,划分为多簇,对于每簇使用子根缓冲器(sub-root buffer)接入时钟树,并使每簇中的寄存器在子时钟域下进行同步,也就是说通过构建子时钟域,允许逻辑解耦的各子时钟域之间存在时延偏差。这样在能够满足逻辑功能的前提下,既可以减少整个时钟域内的缓冲器(buffer)用量,降低功耗,又可节省芯片面积,使时钟树结构简化。
[0006]
为此,第一方面,本发明实施例提供了一种同时钟域下寄存器的逻辑解耦方法,包括:
[0007]
获取同时钟域下的接入时钟树的全部寄存器信息;
[0008]
对每个寄存器赋予一个不同的簇识别标记;
[0009]
从每个寄存器的输出向后级查找所连接的寄存器,当确定后级的第二寄存器与前级的第一寄存器之间存在时序路径(timing path)时,将后级的第二寄存器的簇识别标记修改为第一寄存器的簇识别标记;
[0010]
遍历全部寄存器后,将具有相同簇识别标记的寄存器分为一簇,不在同一簇的寄存器之间互为逻辑解耦;
[0011]
根据簇识别标记对预布局进行调整,将同一簇的多个寄存器的物理位置按照设计规则调整在一定区域内,构建成一个子时钟域;
[0012]
对每个子时钟域插入一个或多个子根缓冲器(sub-root buffer),以将每个子时钟域独立接入所述时钟树,并通过插入的一个或多个子根缓冲器驱动所述子时钟域内的各寄存器。
[0013]
优选的,所述方法还包括:
[0014]
在所述在子时钟域下对每个子时钟域内的多个寄存器进行时钟同步。
[0015]
进一步优选的,所述时钟同步的方法具体包括:
[0016]
对每个子时钟域内的多个寄存器根据时钟同步要求插入一个或多个缓冲器。
[0017]
优选的,所述将同一簇的多个寄存器的物理位置按照设计规则调整在一定区域内具体为:
[0018]
按照同一簇下的多个寄存器中各个单个寄存器的面积之和与预设系数之比计算每一簇的区域约束面积,并根据计算得到的区域约束面积确定所述一定区域;
[0019]
将同一簇的多个寄存器的物理位置按照设计规则调整在不大于所述区域约束面积的一定区域内。
[0020]
进一步优选的,所述预设系数为0.5。
[0021]
优选的,所述子根缓冲器的物理位置也设置在所连接的子时钟域对应的一定区域内。
[0022]
本发明实施例提供的同时钟域下寄存器的逻辑解耦方法,通过将同时钟域下的寄存器按照逻辑关系进行解耦,划分为多簇,对于每簇使用子根缓冲器(sub-root buffer)接入时钟树,并使每簇中的寄存器在子时钟域下进行同步,也就是说通过构建子时钟域,允许逻辑解耦的各子时钟域之间存在时延偏差。这样在能够满足逻辑功能的前提下,既可以减少整个时钟域内的缓冲器(buffer)用量,降低功耗,又可节省芯片面积,使时钟树结构简化。
附图说明
[0023]
图1为本发明实施例提供的同时钟域下寄存器的逻辑解耦方法流程图。
具体实施方式
[0024]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
[0025]
本发明实施例提供了一种同时钟域下寄存器的逻辑解耦方法,用于数字电路后端设计过程中。其主要方法步骤如图1所示,包括:
[0026]
步骤110,获取同时钟域下的接入时钟树的全部寄存器信息;
[0027]
具体的,大部分的同步数字系统由级联的时序寄存器组及它们之间的组合电路组成,每个寄存器组包括多个寄存器,不同寄存器组之间的数据可能存在逻辑关系或不存在逻辑关系,每个数据信号都所存在一个双稳态下的寄存器中,当寄存器的时能时钟信号一到达,数据信号就离开寄存器,进入到下一个寄存器。理论上讲,在系统中,时钟树用以产生同步于每一个寄存器的特定时钟信号。同步事件在同一时刻发生在所有寄存器上,同步时钟信号到每一个寄存器的时间都基于一个全局时间基准来定义。
[0028]
步骤120,对每个寄存器赋予一个不同的簇识别标记;
[0029]
具体的,可以预先设定簇识别标记的生成规则,然后基于规则来生成簇识别标记。或者随机生成簇识别标记。在初始状态下,对每个寄存器赋予的簇识别标记都是不同的。
[0030]
步骤130,从每个寄存器的输出向后级查找所连接的寄存器,当确定后级的第二寄存器与前级的第一寄存器之间存在时序路径(timing path)时,将后级的第二寄存器的簇识别标记修改为第一寄存器的簇识别标记;
[0031]
具体的,对每个寄存器按照输出向后级查找的过程,即是时序路径的追溯过程。时序路径是指设计中数据信号传播过程中所经过的逻辑路径。每一条时序路径都存在与之对应的一个始发点和一个终止点。通过本步骤的实施,最终可以实现同一个时序路径上的全部寄存器被赋成同样的簇识别标记,即作为其始发点的寄存器的簇识别标记。而对于不存在逻辑关系的两条时序路径,最终获得的簇识别标记是不同的。
[0032]
步骤140,遍历全部寄存器后,将具有相同簇识别标记的寄存器分为一簇,不在同一簇的寄存器之间互为逻辑解耦;
[0033]
步骤150,根据簇识别标记对预布局进行调整,将同一簇的多个寄存器的物理位置按照设计规则调整在一定区域内,构建成一个子时钟域;
[0034]
具体的,可按照同一簇下的多个寄存器中各个单个寄存器的面积之和与预设系数之比计算每一簇的区域约束面积,并根据计算得到的区域约束面积确定步骤中所述的一定区域;然后将同一簇的多个寄存器的物理摆放位置按照设计规则调整在不大于区域约束面积的该一定区域内。
[0035]
在本发明的具体实现中,预设系数优选为0.5。
[0036]
步骤160,对每个子时钟域插入一个或多个子根缓冲器(sub-root buffer),以将每个子时钟域独立接入时钟树,并通过插入的一个或多个子根缓冲器驱动子时钟域内的各寄存器。
[0037]
具体的,子根缓冲器(sub-root buffer)也是前面所述的缓冲器(buffer),用于驱动子时钟域内的各寄存器。在这里称为子根缓冲器仅为强调其作用是将每个子时钟域独立接入时钟树。优选的,子根缓冲器的物理位置也设置在所连接的子时钟域对应的一定区域内。
[0038]
通过构建子时钟域,允许逻辑解耦的各子时钟域之间存在时延偏差,即对各子根缓冲器(sub-root buffer)带来的时延偏差不需要进行纠正。
[0039]
步骤170,在子时钟域下对每个子时钟域内的多个寄存器进行时钟同步。
[0040]
子时钟域下时钟同步的方法具体包括:对每个子时钟域内的多个寄存器根据时钟同步要求插入一个或多个缓冲器。
[0041]
为了更好的理解,以一个具体例子进行说明。
[0042]
在一个同时钟域下,具有五个寄存器,分别为s1、s2、s3、s4和s5。其中s1、s2、s3相互级联,s4和s5级联。每个寄存器都通过其cp端连接的一个或多个缓冲器连接到时钟树,即五个寄存器的时钟都同步。
[0043]
通过采用本发明的逻辑解耦方法,首先对s1、s2、s3、s4和s5分别赋予一个不同的簇识别标记,然后根据时序路径的关系,将s2、s3的簇识别标记修改为与s1的相同,将s5的簇识别标记修改为与s4的相同。即将s1、s2、s3分为一簇,s4和s5分为一簇。将s1、s2、s3的物理位置按照设计规则调整在一定区域内,这个区域面积小于等于寄存器s1、s2、s3的面积和的两倍,构建成第一个子时钟域;将s4、s5的物理位置按照设计规则调整在一定区域内,这个区域面积小于等于寄存器s4、s5的面积和的两倍,构建成第二个子时钟域。对这两个子时钟域分别插入子根缓冲器以使其独立接入时钟树,然后再在第一子时钟域下对寄存器s1、s2、s3进行时钟同步,以及在第二子时钟域下对寄存器s4、s5进行时钟同步。
[0044]
本发明实施例提供的同时钟域下寄存器的逻辑解耦方法,通过将同时钟域下的寄存器按照逻辑关系进行解耦,划分为多簇,对于每簇使用子根缓冲器(sub-root buffer)接入时钟树,并使每簇中的寄存器在子时钟域下进行同步,也就是说通过构建子时钟域,允许逻辑解耦的各子时钟域之间存在时延偏差。为各子时钟域提供驱动的子根缓冲器的数量远远小于要对每个寄存器分别进行驱动和时序调整(如时延)的缓冲器的数量。因此这样在能够满足逻辑功能的前提下,既可以减少整个时钟域内的缓冲器(buffer)用量,降低功耗,又可节省芯片面积,使时钟树结构简化。
[0045]
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
[0046]
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
[0047]
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

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

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

相关文献

  • 日榜
  • 周榜
  • 月榜