CN113626994B - 一种寄存器时序约束灵活建模方法 - Google Patents
一种寄存器时序约束灵活建模方法 Download PDFInfo
- Publication number
- CN113626994B CN113626994B CN202110835923.9A CN202110835923A CN113626994B CN 113626994 B CN113626994 B CN 113626994B CN 202110835923 A CN202110835923 A CN 202110835923A CN 113626994 B CN113626994 B CN 113626994B
- Authority
- CN
- China
- Prior art keywords
- relaxation
- search
- output end
- time
- clock
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3308—Design verification, e.g. functional simulation or model checking using simulation
- G06F30/3312—Timing analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
- G06F30/27—Design optimisation, verification or simulation using machine learning, e.g. artificial intelligence, neural networks, support vector machines [SVM] or training a model
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
- G06F30/3315—Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2119/00—Details relating to the type or aim of the analysis or the optimisation
- G06F2119/12—Timing analysis or timing optimisation
Abstract
本发明公开了一种寄存器时序约束灵活建模方法,首先确定寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容的仿真范围,并在每种输入端过渡时间、时钟端过渡时间、输出负载电容组合下仿真得到时序约束范围,然后在此约束范围内以一定间距提取建立松弛和保持松弛并仿真得到时钟端到输出端延时。最后,利用人工神经网络建立寄存器的相互依赖的时序模型,其中时钟端到输出端延时被建模为输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛和输出端状态的函数。本发明中灵活的时序约束模型具有仿真开销低,预测效果精度较高的优点,对于数字集成电路的静态时序分析时序签核有重要意义。
Description
技术领域
本发明属于电子设计自动化领域,尤其涉及一种寄存器时序约束灵活建模方法。
背景技术
在静态时序分析(STA)中,建立和保持同步时序检查是验证基于寄存器的时序电路的时序是否正确所必须的。寄存器建立时间(setup time)为在时钟翻转(对于正沿触发寄存器为0→1的翻转)之前数据输入(D)必须有效的时间,寄存器维持时间(hold time)是在时钟边沿之后数据输入必须仍然有效的时间。只有建立和保持时间都满足要求时,输入端(D)处的数据才会被复制到输出端(Q)。如果违反了这两个约束中的任意一个,则认为寄存器工作不正常,报告时序违规。
在传统的静态时序分析(STA)中,寄存器被假定工作在有恒定寄存器延时即时钟端到输出端延时Tcq的区域(即稳态区),寄存器的假定工作点在寄存器建立松弛或保持松弛足够大时得到,此时对应的时钟端到输出端延时是寄存器在改变建立松弛和保持松弛时最小的Tcq,记为同时在保持松弛设置为足够大值时,逐渐减小建立松弛,在一般情况下,以Tcq恰好达到 时的建立松弛定为建立时间;同样的,在建立松弛设置为足够大值时,逐渐减小保持松弛,在一般情况下,以Tcq恰好达到时的保持松弛定为保持时间。这种简化没有利用建立时间和保持时间之外的可行区域,忽略了建立松弛、保持松弛和寄存器延时之间的相互依赖关系,因此电路性能可能会被悲观估计。
事实上,寄存器的建立松弛、保持松弛和寄存器延时之间有着相互依赖的关系。如图1所示,当建立松弛和保持松弛足够大时,寄存器时钟端到输出端的延时为寄存器最小延时。如果建立松弛和保持松弛变到足够小的话,寄存器延时会变大,直到寄存器进入亚稳态区。如果允许寄存器在建立松弛小于建立时间的区域工作,则电路的关键路径的时钟周期可以更小。即使这一级寄存器的建立松弛较小,会使这一级寄存器延时变大,但这个增加的延迟时间仅影响这一级寄存器和下一级寄存器之间的组合路径,若此组合路径延迟不大,则不会出现时序违规。
发明内容
本发明目的在于提供一种寄存器时序约束灵活建模方法,以解决传统静态时序分析方法中的由于寄存器的建立松弛、保持松弛和时钟端到输出端延时三者之间相关性被忽略进而使得电路性能被悲观估计的技术问题和减小建立灵活模型所需的仿真开销的技术问题。
为解决上述技术问题,本发明的具体技术方案如下:
一种寄存器时序约束灵活建模方法,包括以下步骤:
步骤1、在每种SQ、Tdi、Tckj、CLk组合的情况下分别仿真得到建立模型的时序约束范围,其中SQ表示寄存器输出端状态;Tdi表示p种寄存器输入端的过渡时间Td,i为整数,1≤i≤p;Tckj表示q种寄存器时钟端的过渡时间Tck,j为整数,1≤j≤q;CLk表示m种寄存器输出负载电容CL,k为整数,1≤k≤m;
步骤2、在得到的每种SQ、Tdi、Tckj、CLk组合下的时序约束范围中,设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,通过晶体管级仿真工具仿真分别得到N个寄存器时钟端到输出端的延时,之后将所有的SQ、Tdi、Tckj、CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时参数;
步骤3、以寄存器输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态为模型特征,以对应的步骤2中得到的寄存器时钟端到输出端延时为模型标签,利用神经网络进行训练并建立寄存器的相互依赖的时序模型;
步骤4、通过静态时序分析工具获得时序约束,包括寄存器的输出端状态、输入端过渡时间、时钟端过渡时间和输出负载电容,通过步骤3中得到的寄存器相互依赖的时序模型,推理得到当建立松弛为时寄存器时钟端到输出端延时和保持松弛为时寄存器时钟端到输出端延时。
进一步的,所述步骤1具体包括以下步骤:
步骤1.1、在每一种SQ、Tdi、Tckj、CLk组合下,先用晶体管级仿真工具仿真得到建立松弛足够大值Tsu(max)和保持松弛足够大值Thd(max)时的时钟端到输出端延时Tcq,此处所述建立松弛足够大值指的是此时若继续增大Tsu,Tcq并不会继续减小,所述保持松弛足够大值指的是此时若继续增大Thd,Tcq并不会继续减小,具体来说,就是当建立松弛自Tsu(max)增大至δsu×Tsu(max)和保持松弛自Thd(max)增大至δhd×Thd(max)时,Tcq保持不变,其中δsu为建立松弛验证系数,1≤δsu≤1.1,δhd为保持松弛验证系数,1≤δhd≤1.1,此时寄存器工作在稳定区,记此时的Tcq为保持松弛为建立松弛为
步骤1.3、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对特定的建立松弛通过晶体管级仿真工具仿真得到Tcq,将Tcq的目标值定为其中Bcq为建立松弛第一目标系数,1≤Bcq≤1.1,将二分搜索到的建立松弛的值记为
步骤1.5、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对特定的保持松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Fcq为保持松弛第一目标系数,1≤Fcq≤1.1,将二分搜索到的保持松弛的值记为
步骤1.6、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对特定的保持松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Dcq为保持松弛第二目标系数,Bcq≤Dcq≤1.1,将二分搜索到的保持松弛的值记为
步骤1.7、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对特定的建立松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Hcq为建立松弛第二目标系数,Fcq≤Hcq≤1.1,将二分搜索到的建立时间的值记为
步骤1.8、在SQ、Tdi、Tckj、CLk组合下保持松弛Thd和建立松弛Tsu对的模拟范围由以下各式组成约束条件:
上式即为在这种SQ、Tdi、Tckj、CLk组合的情况下的建立模型的时序约束范围。
进一步的,步骤2具体包括以下步骤:
步骤2.1、设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,通过晶体管级仿真工具仿真分别得到N个寄存器的时钟端到输出端延时;此时得到的每组仿真数据包括输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共七个参数;
步骤2.2、给定一个时钟端到输出端延时的阈值为其中Mth为延时阈值系数,1≤Mth≤10;将晶体管级仿真失败和时钟端到输出端延时大于时对应的这些组仿真数据去除掉,把去除之后的数据保存为神经网络模型的训练和测试样本,将上述过程在每种不同的SQ、Tdi、Tckj、CLk组合下重复进行;
步骤2.3、将所有的寄存器输出端状态SQ、输入端过渡时间Tdi、时钟端过渡时间Tckj、输出负载电容CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共7个参数。
进一步的,步骤1.3中二分搜索具体步骤如下:开始搜索的区间为 在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索更新为然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束;记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的建立松弛为
进一步的,步骤1.5中二分搜索具体步骤如下:开始搜索的区间为 在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为 然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束;记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的保持松弛为
进一步的,步骤1.6中二分搜索具体步骤如下:开始搜索的区间为 在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为 然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间元素通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束,记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的保持松弛为
进一步的,步骤1.7中二分搜索具体步骤如下:开始搜索的区间为 在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为 然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束,记最后一次二分搜索区间的中间即时钟端到输出端延时为时对应的建立松弛为
本发明的一种寄存器时序约束灵活建模方法,具有以下优点:
1、本发明建立的寄存器时序模型将时钟端到输出端延时建模为输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛和输出端状态的函数,而传统寄存器时序约束模型中的时钟端到输出端延时为时钟端过渡时间、输出负载电容和输出端状态的函数,本发明建立的寄存器时序模型能有效表征寄存器的建立松弛、保持松弛和时钟端到输出端延时三者之间的相关性,且考虑了输入端过渡时间对时钟端到输出端延时的影响,更全面描述寄存器的时序约束,克服传统寄存器时序约束模型的悲观性,有益于提高静态时序分析的精度;
2、本发明通过多次二分搜索不断缩小寄存器灵活时序约束建模的仿真范围,有效减少了稳态区的仿真,并且避免了亚稳态区的仿真,从而有效降低了仿真开销,缓解了寄存器时序约束灵活建模导致的仿真开销增长的问题,有益于该建模方法实际应用于静态时序分析流程。
附图说明
图1为现有技术中寄存器建立松弛、保持松弛和时钟端到输出端延时相互依赖关系图;
图2为本发明的寄存器灵活时序约束建模所需仿真范围的示意图;
图3为本发明推理得到寄存器时钟端到输出端延时Tcq的神经网络模型结构示意图。
具体实施方式
为了更好地了解本发明的目的、结构及功能,下面结合附图,对本发明一种寄存器时序约束灵活建模方法做进一步详细的描述。
本发明的一种寄存器时序约束灵活建模方法,包括以下步骤:
步骤1、在每种SQ、Tdi、Tckj、CLk组合的情况下分别仿真得到建立模型的时序约束范围,时序约束范围为图2所示的多边形DHIJKE,其中SQ表示寄存器输出端状态;Tdi表示p种寄存器输入端的过渡时间Td,i为整数,1≤i≤p;Tckj表示q种寄存器时钟端的过渡时间Tck,j为整数,1≤j≤q;CLk表示m种寄存器输出负载电容CL,k为整数,1≤k≤m;
而传统寄存器时序约束模型中,寄存器被假定工作在有恒定寄存器延时即时钟端到输出端延时Tcq的区域(即稳态区),寄存器的假定工作点在寄存器建立松弛或保持松弛足够大时得到,此时对应的时钟端到输出端延时是寄存器在改变建立松弛和保持松弛时最小的Tcq,记为同时在保持松弛设置为足够大值时,逐渐减小建立松弛,在一般情况下,以Tcq恰好达到时的建立松弛定为建立时间,对应图2中L点的建立松弛;同样的,在建立松弛设置为足够大值时,逐渐减小保持松弛,在一般情况下,以Tcq恰好达到时的保持松弛定为保持时间,对应图2中O点的保持松弛。
步骤1具体包括以下步骤:
步骤1.1、在每一种SQ、Tdi、Tckj、CLk组合下,先用晶体管级仿真工具仿真得到建立松弛足够大值Tsu(max)和保持松弛足够大值Thd(max)时的时钟端到输出端延时Tcq,此处所述建立松弛足够大值指的是此时若继续增大Tsu,Tcq并不会继续减小,所述保持松弛足够大值指的是此时若继续增大Thd,Tcq并不会继续减小,具体来说,就是当建立松弛自Tsu(max)增大至δsu×Tsu(max)和保持松弛自Thd(max)增大至δhd×Thd(max)时,Tcq保持不变,其中δsu为建立松弛验证系数,1≤δsu≤1.1,δhd为保持松弛验证系数,1≤δhd≤1.1,此时寄存器工作在稳定区,记此时的Tcq为保持松弛为建立松弛为对应图2所示的A点;
步骤1.3、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对特定的建立松弛可通过晶体管级仿真工具仿真得到Tcq,将Tcq的目标值定为其中Bcq为建立松弛第一目标系数,1≤Bcq≤1.1,将二分搜索到的建立松弛的值记为对应图2所示的B点。二分搜索具体步骤如下:开始搜索的区间为在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索更新为然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束;记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的建立松弛为对应图2所示的B点。
步骤1.5、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对特定的保持松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Fcq为保持松弛第一目标系数,1≤Fcq≤1.1,将二分搜索到的保持松弛的值记为对应图2所示的F点;二分搜索具体步骤如下:开始搜索的区间为在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束;记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的保持松弛为对应图2所示的F点。
步骤1.6、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对特定的保持松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Dcq为保持松弛第二目标系数,Bcq≤Dcq≤1.1,将二分搜索到的保持松弛的值记为对应图2所示的D点;二分搜索具体步骤如下:开始搜索的区间为在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间元素通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束,记最后一次二分搜索区间的中间位置即时钟端到输出端延时为时对应的保持松弛为对应图2所示的D点。
步骤1.7、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对特定的建立松弛可通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Hcq为建立松弛第二目标系数,Fcq≤Hcq≤1.1,将二分搜索到的建立时间的值记为对应图2所示的H点;二分搜索具体步骤如下:开始搜索的区间为在该搜索区间的中间位置仿真得到时钟端到输出端延时,如果此时时钟端到输出端延时为则搜索过程结束;如果此时时钟端到输出端延时大于则搜索区间更新为如果此时时钟端到输出端延时小于则搜索区间更新为然后以新的搜索区间重复上述过程,每次将搜索区间减半,直至某一次搜索过程中的中间位置通过晶体管级仿真工具仿真得到的时钟端到输出端延时为搜索结束,记最后一次二分搜索区间的中间即时钟端到输出端延时为时对应的建立松弛为对应图2所示的H点。
步骤1.8、在SQ、Tdi、Tckj、CLk组合下保持松弛Thd和建立松弛Tsu对的模拟范围由以下各式组成约束条件:
上式即为在这种SQ、Tdi、Tckj、CLk组合的情况下的建立模型的时序约束范围,即为图2所示的多边形DHIJKE所在区域。
步骤2、在得到的每种SQ、Tdi、Tckj、CLk组合下的时序约束范围中,设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,如图2所示,建立松弛和保持松弛的组合对即为图2所示的多边形DHIJKE中的横虚线和竖虚线的N个交点的对应的建立松弛和保持松弛的组合,通过晶体管级仿真工具仿真分别得到N个寄存器时钟端到输出端的延时,之后将所有的SQ、Tdi、Tckj、CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时参数;
具体包括以下步骤:
步骤2.1、如图2所示,设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,通过晶体管级仿真工具仿真分别得到N个寄存器的时钟端到输出端延时;此时得到的每组仿真数据包括输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共七个参数;
步骤2.2、给定一个时钟端到输出端延时的阈值为其中Mth为延时阈值系数,1≤Mth≤10;将晶体管级仿真失败和时钟端到输出端延时大于时对应的这些组仿真数据去除掉,把去除之后的数据保存为神经网络模型的训练和测试样本,将上述过程在每种不同的SQ、Tdi、Tckj、CLk组合下重复进行;
步骤2.3、将所有的寄存器输出端状态SQ、输入端过渡时间Tdi、时钟端过渡时间Tckj、输出负载电容CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共7个参数。
步骤3、以寄存器输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态为模型特征,以对应的步骤2中得到的寄存器时钟端到输出端延时为模型标签,利用神经网络进行训练并建立寄存器的相互依赖的时序模型,神经网络模型结构如图3所示,神经网络输入层参数包括寄存器输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态,图3中所示神经网络包含2层隐含层(事实上隐含层层数和每层隐含层的神经元个数可根据具体情况进行调整),输出层为寄存器时钟端到输出端延时;
步骤4、通过静态时序分析工具获得时序约束,包括寄存器的输出端状态、输入端过渡时间、时钟端过渡时间和输出负载电容通过步骤3中得到的寄存器相互依赖的时序模型,推理得到当建立松弛为时寄存器时钟端到输出端延时和保持松弛为时寄存器时钟端到输出端延时,如图3所示,将寄存器输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态作为神经网络模型输入,通过神经网络计算输出时钟端到输出端延时。
可以理解,本发明是通过一些实施例进行描述的,本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (7)
1.一种寄存器时序约束灵活建模方法,其特征在于,包括以下步骤:
步骤1、在每种SQ、Tdi、Tckj、CLk组合的情况下分别仿真得到建立模型的时序约束范围,其中SQ表示寄存器输出端状态;Tdi表示p种寄存器输入端的过渡时间Td,i为整数,1≤i≤p;Tckj表示q种寄存器时钟端的过渡时间Tck,j为整数,1≤j≤q;CLk表示m种寄存器输出负载电容CL,k为整数,1≤k≤m;
步骤2、在得到的每种SQ、Tdi、Tckj、CLk组合下的时序约束范围中,设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,通过晶体管级仿真工具仿真分别得到N个寄存器时钟端到输出端的延时,之后将所有的SQ、Tdi、Tckj、CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时参数;
步骤3、以寄存器输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态为模型特征,以对应的步骤2中得到的寄存器时钟端到输出端延时为模型标签,利用神经网络进行训练并建立寄存器的相互依赖的时序模型;
2.根据权利要求1所述的寄存器时序约束灵活建模方法,其特征在于,所述步骤1具体包括以下步骤:
步骤1.1、在每一种SQ、Tdi、Tckj、CLk组合下,先用晶体管级仿真工具仿真得到建立松弛足够大值Tsu(max)和保持松弛足够大值Thd(max)时的时钟端到输出端延时Tcq,所述建立松弛足够大值指的是此时若继续增大Tsu,Tcq不会继续减小,所述保持松弛足够大值指的是此时若继续增大Thd,Tcq不会继续减小,即当建立松弛自Tsu(max)增大至δsu×Tsu(max)和保持松弛自Thd(max)增大至δhd×Thd(max)时,Tcq保持不变,其中δsu为建立松弛验证系数,1≤δsu≤1.1,δhd为保持松弛验证系数,1≤δhd≤1.1,此时寄存器工作在稳定区,记此时的Tcq为保持松弛为建立松弛为
步骤1.3、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对建立松弛通过晶体管级仿真工具仿真得到Tcq,将Tcq的目标值定为其中Bcq为建立松弛第一目标系数,1≤Bcq≤1.1,将二分搜索到的建立松弛的值记为
步骤1.5、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对保持松弛通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Fcq为保持松弛第一目标系数,1≤Fcq≤1.1,将二分搜索到的保持松弛的值记为
步骤1.6、以为固定的建立松弛,使用二分法搜索保持松弛的值,开始搜索的区间为对保持松弛通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Dcq为保持松弛第二目标系数,Bcq≤Dcq≤1.1,将二分搜索到的保持松弛的值记为
步骤1.7、以为固定的保持松弛,使用二分法搜索建立松弛的值,开始搜索的区间为对建立松弛通过晶体管级仿真工具仿真得到时钟端到输出端延时Tcq,将时钟端到输出端延时Tcq的目标值定为其中Hcq为建立松弛第二目标系数,Fcq≤Hcq≤1.1,将二分搜索到的建立时间的值记为
步骤1.8、在SQ、Tdi、Tckj、CLk组合下保持松弛Thd和建立松弛Tsu对的模拟范围由以下各式组成约束条件:
上式即为在这种SQ、Tdi、Tckj、CLk组合的情况下的建立模型的时序约束范围。
3.根据权利要求1所述的寄存器时序约束灵活建模方法,其特征在于,所述步骤2具体包括以下步骤:
步骤2.1、设定Tstep为建立松弛和保持松弛的采样间距,对建立松弛和保持松弛均以设定的Tstep为间距提取出N个建立松弛和保持松弛的组合对,通过晶体管级仿真工具仿真分别得到N个寄存器的时钟端到输出端延时;此时得到的每组仿真数据包括输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共七个参数;
步骤2.2、给定一个时钟端到输出端延时的阈值为其中Mth为延时阈值系数,1≤Mth≤10;将晶体管级仿真失败和时钟端到输出端延时大于时对应的这些组仿真数据去除掉,把去除之后的数据保存为神经网络模型的训练和测试样本,将上述过程在每种不同的SQ、Tdi、Tckj、CLk组合下重复进行;
步骤2.3、将所有的寄存器输出端状态SQ、输入端过渡时间Tdi、时钟端过渡时间Tckj、输出负载电容CLk组合下的所有仿真数据合并到一起得到Ns组模型训练样本数据,其中每组训练样本数据都包括寄存器的输入端过渡时间、时钟端过渡时间、输出负载电容、建立松弛、保持松弛、输出端状态和时钟端到输出端延时共7个参数。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110835923.9A CN113626994B (zh) | 2021-07-23 | 2021-07-23 | 一种寄存器时序约束灵活建模方法 |
PCT/CN2022/079941 WO2023000684A1 (zh) | 2021-07-23 | 2022-03-09 | 一种寄存器时序约束灵活建模方法 |
US18/014,002 US11790142B2 (en) | 2021-07-23 | 2022-03-09 | Flexible modeling method for timing constraint of register |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110835923.9A CN113626994B (zh) | 2021-07-23 | 2021-07-23 | 一种寄存器时序约束灵活建模方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113626994A CN113626994A (zh) | 2021-11-09 |
CN113626994B true CN113626994B (zh) | 2022-11-22 |
Family
ID=78380677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110835923.9A Active CN113626994B (zh) | 2021-07-23 | 2021-07-23 | 一种寄存器时序约束灵活建模方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11790142B2 (zh) |
CN (1) | CN113626994B (zh) |
WO (1) | WO2023000684A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626994B (zh) | 2021-07-23 | 2022-11-22 | 东南大学 | 一种寄存器时序约束灵活建模方法 |
CN116090399B (zh) * | 2023-04-06 | 2023-06-16 | 中国人民解放军国防科技大学 | 基于数据输出端建立时间裕量的触发器转换方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985257A (zh) * | 2004-05-28 | 2007-06-20 | 高通股份有限公司 | 用于修改电路设计中的保持时间违反的方法和设备 |
CN105138774A (zh) * | 2015-08-25 | 2015-12-09 | 中山大学 | 一种基于集成电路层次化设计的时序后仿真方法 |
CN109446673A (zh) * | 2018-11-01 | 2019-03-08 | 京微齐力(北京)科技有限公司 | 一种通过部分映射时钟使能信号来改善布局完成率的方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109255160B (zh) * | 2018-08-17 | 2020-10-16 | 东南大学 | 基于神经网络的单元延时预测方法和单元延时灵敏度计算方法 |
CN112464599B (zh) | 2020-11-26 | 2023-04-11 | 海光信息技术股份有限公司 | 应用在电路的静态时序分析中确定电源电压数据的方法 |
CN113626994B (zh) | 2021-07-23 | 2022-11-22 | 东南大学 | 一种寄存器时序约束灵活建模方法 |
-
2021
- 2021-07-23 CN CN202110835923.9A patent/CN113626994B/zh active Active
-
2022
- 2022-03-09 US US18/014,002 patent/US11790142B2/en active Active
- 2022-03-09 WO PCT/CN2022/079941 patent/WO2023000684A1/zh unknown
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985257A (zh) * | 2004-05-28 | 2007-06-20 | 高通股份有限公司 | 用于修改电路设计中的保持时间违反的方法和设备 |
CN105138774A (zh) * | 2015-08-25 | 2015-12-09 | 中山大学 | 一种基于集成电路层次化设计的时序后仿真方法 |
CN109446673A (zh) * | 2018-11-01 | 2019-03-08 | 京微齐力(北京)科技有限公司 | 一种通过部分映射时钟使能信号来改善布局完成率的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113626994A (zh) | 2021-11-09 |
WO2023000684A1 (zh) | 2023-01-26 |
US11790142B2 (en) | 2023-10-17 |
US20230195985A1 (en) | 2023-06-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113626994B (zh) | 一种寄存器时序约束灵活建模方法 | |
US10521536B2 (en) | RTL verification using computational complexity-based property ranking and scheduling | |
US8375343B1 (en) | Methods and apparatus for waveform based variational static timing analysis | |
CN110290021B (zh) | 基于动态规划算法的跨链共识时延优化方法 | |
CN108446770B (zh) | 一种基于采样的分布式机器学习慢节点处理系统及方法 | |
Li et al. | Statistical timing analysis and criticality computation for circuits with post-silicon clock tuning elements | |
Zhang et al. | Design-phase buffer allocation for post-silicon clock binning by iterative learning | |
US20080126066A1 (en) | Method for Modeling an HDL Design Using Symbolic Simulation | |
JP5229119B2 (ja) | モデル生成プログラム、方法及び装置 | |
CN107844678B (zh) | 包含IP/Memory时序路径的spice仿真方法 | |
CN114004191A (zh) | 一种延迟电路宏模型提取方法、系统、设备以及介质 | |
CN107517055B (zh) | 一种cmos数字逻辑电路的设计方法 | |
Wang et al. | Finite-time stochastic synchronization of fuzzy bi-directional associative memory neural networks with Markovian switching and mixed time delays via intermittent quantized control | |
Basheer | Stress-strain behavior of geomaterials in loading reversal simulated by time-delay neural networks | |
Zhang et al. | Distributed parallel computing technique for EM modeling | |
CN115146580A (zh) | 基于特征选择和深度学习的集成电路路径延时预测方法 | |
US8185369B2 (en) | Method and apparatus for characterizing properties of electronic devices depending on device parameters | |
CN116542196B (zh) | 基于有效时钟路径的集成电路时序分析方法、系统及介质 | |
CN110738014A (zh) | 一种时序电路统计分析中的关键工艺波动确定方法 | |
CN114970431B (zh) | Mos管参数估计模型的训练方法和装置 | |
CN113361084B (zh) | 芯片设计方法、装置、设备、可读存储介质以及程序产品 | |
JP2001357093A (ja) | 回路シミュレーション方法、回路シミュレーション装置、及び記憶媒体 | |
CN111695230B (zh) | 一种用于微波无源器件的神经网络空间映射多物理建模方法 | |
US8140316B2 (en) | Systems and methods for improving digital system simulation speed by clock phase gating | |
CN117031228A (zh) | 一种基于FEDformer模型的三极管可靠性分析方法 |
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 |