WO2023015878A1 - 一种基于寄存器灵活时序库的电路时序优化方法 - Google Patents

一种基于寄存器灵活时序库的电路时序优化方法 Download PDF

Info

Publication number
WO2023015878A1
WO2023015878A1 PCT/CN2022/079945 CN2022079945W WO2023015878A1 WO 2023015878 A1 WO2023015878 A1 WO 2023015878A1 CN 2022079945 W CN2022079945 W CN 2022079945W WO 2023015878 A1 WO2023015878 A1 WO 2023015878A1
Authority
WO
WIPO (PCT)
Prior art keywords
register
time
slack
hold
setup
Prior art date
Application number
PCT/CN2022/079945
Other languages
English (en)
French (fr)
Inventor
曹鹏
王家豪
姜海洋
Original Assignee
东南大学
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 东南大学 filed Critical 东南大学
Priority to US18/011,443 priority Critical patent/US11829693B2/en
Publication of WO2023015878A1 publication Critical patent/WO2023015878A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/337Design optimisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/3312Timing analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3315Design verification, e.g. functional simulation or model checking using static timing analysis [STA]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2119/00Details relating to the type or aim of the analysis or the optimisation
    • G06F2119/12Timing analysis or timing optimisation

Definitions

  • the invention relates to a digital integrated circuit timing optimization method, which belongs to the technical field of EDA.
  • Static timing analysis is an important step in verifying whether the circuit timing constraints are satisfied in digital integrated circuit circuits.
  • the propagation delay of the register is considered to be related to the setup time (the minimum time for the input data to remain stable before the clock signal jumps) and the hold time (the minimum time for the input data to remain stable after the clock signal jumps).
  • the shortest time to maintain stability) is irrelevant, and the three are uniquely determined by the input signal conversion time of the register, the clock signal conversion time and the register load capacitance.
  • the propagation delay of a register is related to both the setup slack (the time the input data is actually stable before the clock signal transitions) and the hold slack (the clock signal It is related to the time when the input data actually remains stable after the jump).
  • the setup slack the time the input data is actually stable before the clock signal transitions
  • the hold slack the clock signal It is related to the time when the input data actually remains stable after the jump.
  • the propagation delay of the register is independent of the setup time and hold time, which is determined by the setup time, hold time and propagation delay in the traditional register timing library
  • the setup time check and hold time check Check whether all register paths in the circuit meet the setup time check and hold time check.
  • a circuit timing optimization method based on a register flexible timing library the setup time T setup , hold time T hold and propagation delay T cq of the register respectively refer to the specific input signal conversion in the traditional timing library of the register
  • the minimum time for input data to remain stable before clock signal jumps, the minimum time for input data to remain stable after clock signal jumps, and the minimum time for slave clock signal jumps under the combination of time S data, clock signal transition time S ck , and register load capacitance C L time interval to output data;
  • the registers are established to relax the stay loose and the actual propagation delay Respectively refer to the time when the input data is actually stable before the clock signal jumps and the input data is actually kept stable after the clock signal jumps under the combination of the specific input signal conversion time S data , the clock signal conversion time S ck and the register load capacitance C L time to stabilize and build up slack at a specific and stay slack In the case, the time interval from the clock signal transition to the output data;
  • the register flexible timing library refers to a variety of corresponding establishment relaxations under a specific combination of input signal transition time S data , clock signal transition time S ck and register load capacitance C L stay loose and the actual propagation delay combination;
  • the register path refers to the data path in the circuit with the register as the starting point and the ending point, wherein the starting point register is marked as FF i , and the ending point register is marked as FF j , i and j are the numbers of the starting point register and the ending point register respectively, 1 ⁇ i , j ⁇ N FF , N FF is the number of registers in the circuit;
  • the setup time margin based on the register traditional timing library and hold time margin Respectively as shown in (1) and as follows:
  • T is the clock period, and Respectively represent the time when the clock signal arrives at the start register FF i and the end register FF j , and Denote the maximum delay and minimum delay of the data path in all register paths between the start register FF i and the end register FF j , respectively, and Indicate the setup time and hold time of the terminal register FF j respectively, Indicates the propagation delay of the starting point register FF i ;
  • the setup time margin based on the register flexible timing library and hold time margin Respectively as shown in (3) and as follows:
  • the methods include:
  • a circuit timing optimization method based on a register flexible timing library of the present invention is to characterize the correlation between register establishment slack, hold slack, and actual propagation delay, and establish slack and hold slack simulation when changing registers On the basis of obtaining the corresponding actual propagation delay, the actual propagation delay of different setup and hold slacks can be obtained by linear interpolation method. Compared with the traditional register timing library, it can be more comprehensive by characterizing the correlation between the three Reflect the timing characteristics of registers and provide a basis for timing optimization. Secondly, the present invention uses the correlation between establishing slack, maintaining slack, and actual propagation delay to perform static timing analysis on the register path in the circuit.
  • the present invention can fully Using the setup time margin and the hold time margin of the adjacent register path, on the premise that the setup time margin and the hold time margin of all the register paths are greater than zero, the clock cycle is reduced to the minimum, thereby improving the circuit performance.
  • Figure 1 is a schematic diagram of register setup time, hold time, setup slack, hold slack, and propagation delay;
  • Figure 2 is a schematic diagram of the correlation between register establishment slack (setup slack), hold slack (hold slack) and actual propagation delay (clock-to-q delay);
  • FIG. 3 is a schematic diagram of adjacent register paths.
  • a circuit timing optimization method based on a register flexible timing library wherein the register setup time T setup , hold time T hold and propagation delay T cq respectively refer to the specific input signal transition time S data in the traditional timing library of the register , the combination of clock signal conversion time S ck and register load capacitance C L , the minimum time for the input data to remain stable before the clock signal jumps, the minimum time for the input data to remain stable after the clock signal jumps, and the minimum time from the clock signal to the output The time interval of the data.
  • Register establishment slack stay loose and the actual propagation delay Respectively refer to the time when the input data is actually stable before the clock signal jumps and the input data is actually kept stable after the clock signal jumps under the combination of the specific input signal conversion time S data , the clock signal conversion time S ck and the register load capacitance C L time to stabilize and build up slack at a specific and stay slack case, the time interval from a clock signal transition to output data.
  • the register flexible timing library refers to a variety of corresponding set-up relaxations under a specific combination of input signal transition time S data , clock signal transition time S ck , and register load capacitance C L stay loose and the actual propagation delay combination.
  • the register path refers to the data path with the register as the starting point and the ending point in the circuit, where the starting point register is marked as FF i and the ending point register is marked as FF j , i and j are the numbers of the starting point register and the ending point register respectively, 1 ⁇ i,j ⁇ N FF , N FF is the number of registers in the circuit.
  • the setup time margin based on the register traditional timing library and hold time margin Respectively as shown in (1) and as follows:
  • T is the clock period, and Respectively represent the time when the clock signal arrives at the start register FF i and the end register FF j , and Denote the maximum delay and minimum delay of the data path in all register paths between the start register FF i and the end register FF j , respectively, and Indicate the setup time and hold time of the terminal register FF j respectively, Indicates the propagation delay of the origin register FF i .
  • the setup time margin based on the register flexible timing library and hold time margin Respectively as shown in (3) and as follows:
  • Circuit timing optimization methods based on the register flexible timing library include:
  • step S1 for each combination of input signal transition time, clock signal transition time and register load capacitance in the register traditional timing library, determine the establishment slack stay slack with is valid for
  • the specific method is as follows: firstly, build the slack stay slack with Take a sufficiently large value for simulation to obtain the corresponding actual propagation delay A sufficiently large value means that when the value continues to increase or increase hour no longer decreases; then maintains constant decrease simulation until began to increase, at this time the corresponding for Keep constant decrease simulation until began to increase, at this time the corresponding for then keep unchanged continue to decrease simulation, Continue to increase until the simulation fails, that is, the output data cannot be obtained when the register clock signal jumps, and the corresponding for Keep unchanged continue to decrease simulation, Continue to increase until the simulation fails, at this time the corresponding for
  • step S1 for each combination of input signal transition time, clock signal transition time and register load capacitance in the traditional timing library of registers, in and The effective range is simulated to obtain all effective and corresponding to the combination
  • the specific method is as follows: firstly, take T step as the interval and Select the simulation point in the valid range of , where There are N setups of simulation points, which are respectively Where 0 ⁇ n setup ⁇ N setup -1, n setup is The nth simulation point, N setup is to satisfy The largest positive integer of , There are N hold simulation points, respectively Where 0 ⁇ n hold ⁇ N hold -1, n hold is The nth simulation point of , N hold is to satisfy The largest positive integer; then for N setup Simulation points and N hold The simulation points are combined in pairs, and the simulation is performed under all combinations to obtain the corresponding
  • step S2 for all register paths in the circuit, use the traditional register timing library for timing analysis to obtain the clock period T of the circuit, and for the register paths between the start register FF i and the end register FF j , obtain the setup time margin and hold time margin Data Path Maximum Latency and minimum delay Setup time of end point register FF j and hold time Propagation delay of start register FF i and the input signal transition time of the start register FF i Clock Signal Transition Time and load capacitance Input signal transition time of end point register j Clock Signal Transition Time and load capacitance
  • the input signal conversion time are respectively S data and
  • the clock signal conversion time is respectively S ck and register load capacitors are C L and build slack for and keep slack for and
  • the actual propagation delay of the register in 32 cases, the conversion time of the input signal obtained by linear interpolation is The clock signal transition time is The register load capacitance is build slack is stay slack yes The actual propagation delay of the corresponding register FF i when
  • the linear interpolation method is specifically:
  • Step 1 Treat each of the 32 combinations and the target combination as a spatial coordinate, then there are at most 4 identical coordinate values in any two spatial coordinates, and there will be registers corresponding to the two coordinates in this case
  • the propagation delay is denoted as and And perform one-dimensional linear interpolation for each pair in the dimensions with different coordinate values, and the different dimensions are respectively recorded as And use x 1 to represent the coordinate value of the target combination on this dimension to get the new interpolation coordinate and the register delay corresponding to the interpolation coordinate 1 ⁇ i ⁇ 16, the formula is as follows:
  • Step 2 For the 16 spatial coordinates obtained in the first step, any two spatial coordinates still have the same value in up to four dimensions, and the common dimension of the two coordinates that meets this condition is the value of the target combination. Dimensions with different coordinate values are denoted as and Use x 2 to represent the coordinate value of the target combination in this dimension, and perform one-dimensional linear interpolation to obtain the new space coordinates and the corresponding register propagation delay 1 ⁇ j ⁇ 8, the formula is as follows:
  • the third step In the second step, 8 spatial coordinates are obtained. Any two spatial coordinates still have the same value in four dimensions at most, and the two coordinates that meet this condition have the same two-dimensional value as the target combination value. Dimensions with different coordinate values are denoted as and Use x 3 to represent the coordinate value of the target combination in this dimension, and perform one-dimensional linear interpolation to obtain the new space coordinates and the corresponding register propagation delay 1 ⁇ m ⁇ 4, the formula is as follows:
  • Step 4 Obtain 4 spatial coordinates from the second step. Any two spatial coordinates still have at most four dimensions with the same value, and the common three dimensions of the two coordinates satisfying this condition are the values of the target combination.
  • the dimensions with different coordinate values in the coordinates are denoted as and Use x 4 to represent the coordinate value of the target combination in this dimension, and perform one-dimensional linear interpolation to obtain the new space coordinates and the corresponding register propagation delay 1 ⁇ n ⁇ 2, the formula is as follows:
  • Step 5 Obtain two coordinates from the fourth step. Only one dimension of the two coordinates has a different value, and the values of the other four dimensions are the same as the target combination. Record the dimension with different coordinate values in the two coordinates as and Use x 5 to represent the coordinate value of the target combination on this dimension, and perform interpolation on dimensions with different coordinate values to obtain the interpolation target
  • step S2 for all register paths in the circuit, the slack is established by changing the destination register FF j and stay slack At the same time change the establishment slack of the start register FF i and stay slack So that the corresponding actual propagation delay can be obtained by interpolation calculation Enables setup time margins in the register-based flexible timing library that satisfies each register path and hold time margin When both are greater than zero, the clock period can be changed to make it the minimum, that is, in the case of satisfying (10) and (11), the minimum value of the clock period T is obtained, where the establishment of the start register i and the end register j are relaxed and maintained The slack change range satisfies (12) and (13).
  • the data signal conversion time is set at 50 ps to 800 ps, and the value is uniformly taken in this range with a step size of 50 ps, and there are 16 value points;
  • the step size is evenly selected in this range, and there are 5 value points in total;
  • the register load capacitance is set from 1fF to 5fF, and the value is uniformly selected in this range with a step size of 1fF, and there are 5 value points in total. Any combination of the above values can get 400 combinations.
  • the clock signal transition time of 247ps the register load capacitance of 2.1fF
  • the setup slack of 284ps the hold slack of 384ps register propagation delay
  • the clock signal transition time is 200ps
  • the register load capacitance is 2fF
  • the combination of setup slack and hold slack is 280ps and 380ps respectively
  • the data signal transition time is 200ps
  • the clock signal transition time is 250ps
  • the register load capacitance is 3fF
  • the setup slack and Keep the combinations with slack of 300ps and 400ps respectively and use these data as interpolation points to obtain the register propagation delay of the target combination through linear interpolation.
  • the setup time of the DFF1 register 422ps, hold time 300ps, input signal transition time 307ps, clock signal transition time 181ps, the register load capacitance is 2Ff, the corresponding register propagation delay 2.066ns
  • the setup time of the DFF2 register 457ps, hold time 213ps, input signal transition time 160ps, clock signal transition time 197ps, the register load capacitance is 2fF, the corresponding register propagation delay is 1.818ns

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

本发明公开了一种基于寄存器灵活时序库的电路时序优化方法,首先通过在多组输入信号转换时间、时钟信号转换时间和寄存器负载电容情况下分别对寄存器仿真,通过改变寄存器的建立松弛和保持松弛,获得此时对应的实际传播延时,并通过线性插值获得特定的输入信号转换时间、时钟信号转换时间、寄存器负载电容、建立松弛和保持松弛下寄存器实际传播延时,从而建立寄存器灵活时序库;然后利用该库对电路中的所有寄存器路径进行静态时序分析,通过改变寄存器的建立松弛和保持松弛,找到满足建立时间余量和保持时间余量均大于零条件的最小时钟周期,从而在不改变电路设计、不增加电路面积开销的情况下提高电路性能。

Description

一种基于寄存器灵活时序库的电路时序优化方法 技术领域
本发明涉及一种数字集成电路时序优化方法,属于EDA技术领域。
背景技术
静态时序分析是数字集成电路电路中验证电路时序约束是否满足的重要步骤。当采用传统的寄存器时序库进行静态时序分析时,寄存器的传播延时被认为与建立时间(时钟信号跳变前输入数据需保持稳定的最短时间)和保持时间(时钟信号跳变后输入数据需保持稳定的最短时间)无关,三者由寄存器的输入信号转换时间、时钟信号转换时间和寄存器负载电容唯一决定。然而,实际情况下对于特定的输入信号转换时间、时钟信号转换时间和寄存器负载电容,寄存器的传播延时与建立松弛(时钟信号跳变前输入数据实际保持稳定的时间)和保持松弛(时钟信号跳变后输入数据实际保持稳定的时间)有关。考虑三者相关性建立寄存器时序库被称为寄存器灵活时序库,在该库中,当建立松弛和保持松弛改变时,寄存器实际传播延时随之发生变化。
当采用传统寄存器时序库对数字集成电路进行静态时序分析时,即认为寄存器的传播延时与建立时间和保持时间无关时,由传统的寄存器时序库中的建立时间、保持时间和传播延时决定了电路中所有寄存器路径是否满足建立时间检查和保持时间检查。在满足所有寄存器路径的建立时间检查条件下,确定电路时序正确所需的最小时钟周期。如果该最小时钟周期(对应最高工作频率)不满足设计要求,则需对电路进行优化,付出额外的设计迭代时间及电路面积开销。
发明内容
发明目的:针对上述现有技术,提出一种基于寄存器灵活时序库的电路时序优化方法,采用更小的时钟周期满足建立时间和保持时间检查,在不改变电路设计、不增加电路面积开销的情况下提高电路性能。
技术方案:一种基于寄存器灵活时序库的电路时序优化方法,所述寄存器的建立时间T setup、保持时间T hold和传播延时T cq分别指的是寄存器传统时序库中在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据需保持稳定的最短时间、时钟信号跳变后输入数据需保持稳定的最短时间以及从时钟信号跳变到输出数据的时间间隔;
所述寄存器的建立松弛
Figure PCTCN2022079945-appb-000001
保持松弛
Figure PCTCN2022079945-appb-000002
和实际传播延时
Figure PCTCN2022079945-appb-000003
分别指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据实际保持稳定的时间、时钟信号跳变后输入数据实际保持稳定的时间以及在特定建立松弛
Figure PCTCN2022079945-appb-000004
和保持松弛
Figure PCTCN2022079945-appb-000005
情况下,从时钟信号跳变到输出数据的时间间隔;
所述寄存器灵活时序库指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下,对应的多种不同的建立松弛
Figure PCTCN2022079945-appb-000006
保持松弛
Figure PCTCN2022079945-appb-000007
和实际传播延时
Figure PCTCN2022079945-appb-000008
组合;
所述寄存器路径指的是电路中以寄存器为起点和终点的数据路径,其中起点寄存器记为FF i,终点寄存器记为FF j,i和j分别是起点寄存器和终点寄存器的编号,1≤i,j≤N FF,N FF是电路中寄存器的个数;
对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器传统时序库的建立时间余量
Figure PCTCN2022079945-appb-000009
和保持时间余量
Figure PCTCN2022079945-appb-000010
分别如下(1)和所示:
Figure PCTCN2022079945-appb-000011
Figure PCTCN2022079945-appb-000012
其中,T表示时钟周期,
Figure PCTCN2022079945-appb-000013
Figure PCTCN2022079945-appb-000014
分别表示时钟信号到达起点寄存器FF i和终点寄存器FF j的时间,
Figure PCTCN2022079945-appb-000015
Figure PCTCN2022079945-appb-000016
分别表示起点寄存器FF i和终点寄存器FF j之间所有寄存器路径中数据路径的最大延时和最小延时,
Figure PCTCN2022079945-appb-000017
Figure PCTCN2022079945-appb-000018
分别表示终点寄存器FF j的建立时间和保持时间,
Figure PCTCN2022079945-appb-000019
表示起点寄存器FF i的传播延时;
对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器灵活时序库的建立时间余量
Figure PCTCN2022079945-appb-000020
和保持时间余量
Figure PCTCN2022079945-appb-000021
分别如下(3)和所示:
Figure PCTCN2022079945-appb-000022
Figure PCTCN2022079945-appb-000023
其中,
Figure PCTCN2022079945-appb-000024
Figure PCTCN2022079945-appb-000025
分别表示终点寄存器FF j的建立松弛和保持松弛,
Figure PCTCN2022079945-appb-000026
表示起点寄存器FF i的实际传播延时,随该寄存器的建立松弛和保持松弛变化;
所述方法包括:
S1:对于电路中的所有寄存器,确定其输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L的范围,在该范围内选择多组输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,仿真获得所有有效的建立松弛和保持松弛对,及对应的实际传播延时;
S2:对于电路中所有寄存器路径,根据每个起点寄存器和终点寄存器的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L,改变起点寄存器和终点寄存器的建立松弛和保持松弛,在满足每条寄存器路径基于寄存器灵活时序库的建立时间余量和保持时间余量都大于零的情况下,使得时钟周期最小。
有益效果:本发明的一种基于寄存器灵活时序库的电路时序优化方法,首先本发明为表征寄存器建立松弛、保持松弛和实际传播延时之间的相关性,在改变寄存器建立松弛和保持松弛仿真获得对应的实际传播延时的基础上,通过线性插值的方法获得不同建立松弛和保持松弛时的实际传播延时,和传统寄存器时序库相比,通过表征三者之间的相关性能够更全面反映寄存器时序特征,为时序优化提供依据。其次,本发明利用建立松弛、保持松弛和实际传播延时之间的相关性,对电路中的寄存器路径进行静态时序分析,与基于传统寄存器时序库的静态时序分析方法相比,本发明能够充分利用相邻寄存器路径的建立时间余量和保持时间余量,在满足所有寄存器路径的建立时间余量和保持时间余量都大于零的前提下,将时钟周期降低至最小,从而提高电路性能。
附图说明
图1为寄存器建立时间、保持时间、建立松弛、保持松弛、传播延时示意图;
图2为寄存器建立松弛(setup slack)、保持松弛(hold slack)和实际传播延时(clock-to-q delay)之间的相关性示意图;
图3为相邻寄存器路径示意图。
具体实施方式
下面结合附图对本发明做更进一步的解释。
一种基于寄存器灵活时序库的电路时序优化方法,其中,寄存器的建立时间T setup、保持时间T hold和传播延时T cq分别指的是寄存器传统时序库中在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据需保持稳定的最短时间、时钟信号跳变后输入数据需保持稳定的最短时间以及从时钟信号 跳变到输出数据的时间间隔。
寄存器的建立松弛
Figure PCTCN2022079945-appb-000027
保持松弛
Figure PCTCN2022079945-appb-000028
和实际传播延时
Figure PCTCN2022079945-appb-000029
分别指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据实际保持稳定的时间、时钟信号跳变后输入数据实际保持稳定的时间以及在特定建立松弛
Figure PCTCN2022079945-appb-000030
和保持松弛
Figure PCTCN2022079945-appb-000031
情况下,从时钟信号跳变到输出数据的时间间隔。
寄存器灵活时序库指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下,对应的多种不同的建立松弛
Figure PCTCN2022079945-appb-000032
保持松弛
Figure PCTCN2022079945-appb-000033
和实际传播延时
Figure PCTCN2022079945-appb-000034
组合。
寄存器路径指的是电路中以寄存器为起点和终点的数据路径,其中起点寄存器记为FF i,终点寄存器记为FF j,i和j分别是起点寄存器和终点寄存器的编号,1≤i,j≤N FF,N FF是电路中寄存器的个数。
对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器传统时序库的建立时间余量
Figure PCTCN2022079945-appb-000035
和保持时间余量
Figure PCTCN2022079945-appb-000036
分别如下(1)和所示:
Figure PCTCN2022079945-appb-000037
Figure PCTCN2022079945-appb-000038
其中,T表示时钟周期,
Figure PCTCN2022079945-appb-000039
Figure PCTCN2022079945-appb-000040
分别表示时钟信号到达起点寄存器FF i和终点寄存器FF j的时间,
Figure PCTCN2022079945-appb-000041
Figure PCTCN2022079945-appb-000042
分别表示起点寄存器FF i和终点寄存器FF j之间所有寄存器路径中数据路径的最大延时和最小延时,
Figure PCTCN2022079945-appb-000043
Figure PCTCN2022079945-appb-000044
分别表示终点寄存器FF j的建立时间和保持时间,
Figure PCTCN2022079945-appb-000045
表示起点寄存器FF i的传播延时。
对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器灵活时序库的建立时间余量
Figure PCTCN2022079945-appb-000046
和保持时间余量
Figure PCTCN2022079945-appb-000047
分别如下(3)和所示:
Figure PCTCN2022079945-appb-000048
Figure PCTCN2022079945-appb-000049
其中,
Figure PCTCN2022079945-appb-000050
Figure PCTCN2022079945-appb-000051
分别表示终点寄存器FF j的建立松弛和保持松弛,
Figure PCTCN2022079945-appb-000052
表示起点寄存器FF i的实际传播延时,随该寄存器的建立松弛和保持松弛变化;
基于寄存器灵活时序库的电路时序优化方法包括:
S1:对于电路中的所有寄存器,确定其输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L的范围,在该范围内选择多组输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,仿真获得所有有效的建立松弛和保持松弛对,及对应的实际传播延时。
S2:对于电路中所有寄存器路径,根据每个起点寄存器和终点寄存器的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L,改变起点寄存器和终点寄存器的建立松弛和保持松弛,在满足每条寄存器路径基于寄存器灵活时序库的建立时间余量和保持时间余量都大于零的情况下,使得时钟周期最小。
步骤S1中,对于寄存器传统时序库中每种输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,确定建立松弛
Figure PCTCN2022079945-appb-000053
与保持松弛
Figure PCTCN2022079945-appb-000054
的有效范围为
Figure PCTCN2022079945-appb-000055
具体方法为:首先将建立松弛
Figure PCTCN2022079945-appb-000056
与保持松弛
Figure PCTCN2022079945-appb-000057
取足够大值进行仿真获得对应的实际传播延时
Figure PCTCN2022079945-appb-000058
足够大值指的是当继续增加
Figure PCTCN2022079945-appb-000059
或增加
Figure PCTCN2022079945-appb-000060
Figure PCTCN2022079945-appb-000061
不再减小;然后保持
Figure PCTCN2022079945-appb-000062
不变减小
Figure PCTCN2022079945-appb-000063
仿真,直至
Figure PCTCN2022079945-appb-000064
开始增加,此时对应的
Figure PCTCN2022079945-appb-000065
Figure PCTCN2022079945-appb-000066
保持
Figure PCTCN2022079945-appb-000067
不变减小
Figure PCTCN2022079945-appb-000068
仿真,直至
Figure PCTCN2022079945-appb-000069
开始增加,此时对应的
Figure PCTCN2022079945-appb-000070
Figure PCTCN2022079945-appb-000071
然后保持
Figure PCTCN2022079945-appb-000072
不变继续减小
Figure PCTCN2022079945-appb-000073
仿真,
Figure PCTCN2022079945-appb-000074
继续增加直至仿真失败,即寄存器时钟信号跳变时无法得到输出数据,此时对应的
Figure PCTCN2022079945-appb-000075
Figure PCTCN2022079945-appb-000076
保持
Figure PCTCN2022079945-appb-000077
不变继续减小
Figure PCTCN2022079945-appb-000078
仿真,
Figure PCTCN2022079945-appb-000079
继续增加直至仿真失败,此时对应的
Figure PCTCN2022079945-appb-000080
Figure PCTCN2022079945-appb-000081
步骤S1中,对于寄存器传统时序库中每种输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,在
Figure PCTCN2022079945-appb-000082
Figure PCTCN2022079945-appb-000083
的有效范围进行仿真获得所有有效的
Figure PCTCN2022079945-appb-000084
Figure PCTCN2022079945-appb-000085
组合下对应的
Figure PCTCN2022079945-appb-000086
具体方法为:首先以T step为间隔在
Figure PCTCN2022079945-appb-000087
Figure PCTCN2022079945-appb-000088
的有效范围中选择仿真点,其中
Figure PCTCN2022079945-appb-000089
的仿真点有N setup个,分别为
Figure PCTCN2022079945-appb-000090
其中0≤n setup≤N setup-1, n setup
Figure PCTCN2022079945-appb-000091
的第n个仿真点,N setup是满足
Figure PCTCN2022079945-appb-000092
的最大正整数,
Figure PCTCN2022079945-appb-000093
的仿真点有N hold个,分别为
Figure PCTCN2022079945-appb-000094
其中0≤n hold≤N hold-1,n hold
Figure PCTCN2022079945-appb-000095
的第n个仿真点,N hold是满足
Figure PCTCN2022079945-appb-000096
的最大正整数;然后对于N setup
Figure PCTCN2022079945-appb-000097
仿真点和N hold
Figure PCTCN2022079945-appb-000098
仿真点两两组合,在所有组合下进行仿真获得对应的
Figure PCTCN2022079945-appb-000099
步骤S2中,对于电路中所有寄存器路径,采用寄存器传统时序库进行时序分析,获得电路的时钟周期T,对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,获得建立时间余量
Figure PCTCN2022079945-appb-000100
和保持时间余量
Figure PCTCN2022079945-appb-000101
数据路径的最大延时
Figure PCTCN2022079945-appb-000102
和最小延时
Figure PCTCN2022079945-appb-000103
终点寄存器FF j的建立时间
Figure PCTCN2022079945-appb-000104
和保持时间
Figure PCTCN2022079945-appb-000105
起点寄存器FF i的传播延时
Figure PCTCN2022079945-appb-000106
以及起点寄存器FF i的输入信号转换时间
Figure PCTCN2022079945-appb-000107
时钟信号转换时间
Figure PCTCN2022079945-appb-000108
和负载电容
Figure PCTCN2022079945-appb-000109
终点寄存器j的输入信号转换时间
Figure PCTCN2022079945-appb-000110
时钟信号转换时间
Figure PCTCN2022079945-appb-000111
和负载电容
Figure PCTCN2022079945-appb-000112
根据寄存器传统时序库中所有输入信号转换时间、时钟信号转换时间和寄存器负载电容及步骤S1中所有仿真所得的有效的建立松弛、保持松弛及对应的实际传播延时进行插值计算,获得起点寄存器FF i的建立松弛和保持松弛分别为
Figure PCTCN2022079945-appb-000113
Figure PCTCN2022079945-appb-000114
时,对应的实际传播延时
Figure PCTCN2022079945-appb-000115
具体过程为:
首先,选取寄存器传统时序中最接近
Figure PCTCN2022079945-appb-000116
且小于
Figure PCTCN2022079945-appb-000117
的输入信号转换时间 S data,最接近
Figure PCTCN2022079945-appb-000118
且小于
Figure PCTCN2022079945-appb-000119
的时钟信号转换时间 S ck,最接近
Figure PCTCN2022079945-appb-000120
且小于
Figure PCTCN2022079945-appb-000121
的负载电容 C L;选取寄存器传统时序中最接近
Figure PCTCN2022079945-appb-000122
且大于
Figure PCTCN2022079945-appb-000123
的输入信号转换时间
Figure PCTCN2022079945-appb-000124
最接近
Figure PCTCN2022079945-appb-000125
且大于
Figure PCTCN2022079945-appb-000126
的时钟信号转换时间
Figure PCTCN2022079945-appb-000127
最接近
Figure PCTCN2022079945-appb-000128
且大于
Figure PCTCN2022079945-appb-000129
的负载电容
Figure PCTCN2022079945-appb-000130
然后,当寄存器FF i的建立松弛和保持松弛分别为
Figure PCTCN2022079945-appb-000131
Figure PCTCN2022079945-appb-000132
时,选取N setup
Figure PCTCN2022079945-appb-000133
仿真点中最接近
Figure PCTCN2022079945-appb-000134
且小于
Figure PCTCN2022079945-appb-000135
的建立松弛
Figure PCTCN2022079945-appb-000136
选取N hold
Figure PCTCN2022079945-appb-000137
仿真点中最接近
Figure PCTCN2022079945-appb-000138
且小于
Figure PCTCN2022079945-appb-000139
的建立松弛
Figure PCTCN2022079945-appb-000140
选取N setup
Figure PCTCN2022079945-appb-000141
仿真点中最接近
Figure PCTCN2022079945-appb-000142
且大于
Figure PCTCN2022079945-appb-000143
的建立松弛
Figure PCTCN2022079945-appb-000144
选取N hold
Figure PCTCN2022079945-appb-000145
仿真点中最接近
Figure PCTCN2022079945-appb-000146
且大于
Figure PCTCN2022079945-appb-000147
的建立松弛
Figure PCTCN2022079945-appb-000148
最后,根据输入信号转换时间分别为 S data
Figure PCTCN2022079945-appb-000149
时钟信号转换时间分别为 S ck
Figure PCTCN2022079945-appb-000150
寄存器负载电容分别为 C L
Figure PCTCN2022079945-appb-000151
建立松弛分别为
Figure PCTCN2022079945-appb-000152
Figure PCTCN2022079945-appb-000153
保持松弛分别为
Figure PCTCN2022079945-appb-000154
Figure PCTCN2022079945-appb-000155
时共32种情况下的寄存器实际传播延时,通过线性插值方式得到输入信号转换时间是
Figure PCTCN2022079945-appb-000156
时钟信号转换时间是
Figure PCTCN2022079945-appb-000157
寄存器负载电容是
Figure PCTCN2022079945-appb-000158
建立松弛是
Figure PCTCN2022079945-appb-000159
保持松弛是
Figure PCTCN2022079945-appb-000160
时对应的寄存器FF i的实际传播延时
Figure PCTCN2022079945-appb-000161
线性插值方式具体为:
第一步:将32种组合中的每一个组合以及目标组合都视为一个空间坐标,则任意两个空间坐标最多存在4个相同的坐标值,将存在这种情况的两坐标相对应的寄存器传播延时记为
Figure PCTCN2022079945-appb-000162
Figure PCTCN2022079945-appb-000163
并在坐标值不同的维度上对每一对进行一维线性插值,不同的维度上分别记为
Figure PCTCN2022079945-appb-000164
并用x 1表示目标组合在该维度上的坐标值,得到新的插值坐标以及该插值坐标对应的寄存器延时
Figure PCTCN2022079945-appb-000165
1≤i≤16,公式如下:
Figure PCTCN2022079945-appb-000166
第二步:第一步得到的16个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的一维就是目标组合的值,将两坐标中坐标值不同的维度记为
Figure PCTCN2022079945-appb-000167
Figure PCTCN2022079945-appb-000168
用x 2表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
Figure PCTCN2022079945-appb-000169
1≤j≤8,公式如下:
Figure PCTCN2022079945-appb-000170
第三步:第二步得到8个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的两维为目标组合的值,将两坐标中坐标值不同的维度记为
Figure PCTCN2022079945-appb-000171
Figure PCTCN2022079945-appb-000172
用x 3表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
Figure PCTCN2022079945-appb-000173
1≤m≤4,公式如下:
Figure PCTCN2022079945-appb-000174
第四步:由第二步得到4个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的三个维度为目标组合的值,将两坐标中坐标值不同的维度记为
Figure PCTCN2022079945-appb-000175
Figure PCTCN2022079945-appb-000176
用x 4表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
Figure PCTCN2022079945-appb-000177
1≤n≤2,公式如下:
Figure PCTCN2022079945-appb-000178
第五步:由第四步得到两个坐标,两坐标只有一个维度的值不同,其余四个维度的值与目标组合的值相同,将两坐标中坐标值不同的维度记为
Figure PCTCN2022079945-appb-000179
Figure PCTCN2022079945-appb-000180
用x 5表示目标组合在该维度上的坐标值,在坐标值不同的维度上进行插值,得到插值目标
Figure PCTCN2022079945-appb-000181
Figure PCTCN2022079945-appb-000182
步骤S2中,对于电路中所有寄存器路径,通过改变终点寄存器FF j的建立松弛
Figure PCTCN2022079945-appb-000183
和保持松弛
Figure PCTCN2022079945-appb-000184
同时改变起点寄存器FF i的建立松弛
Figure PCTCN2022079945-appb-000185
和保持松弛
Figure PCTCN2022079945-appb-000186
从而通过插值计算得到对应的实际传播延时
Figure PCTCN2022079945-appb-000187
使得在满足每条寄存器路径的基于寄存器灵活时序库的建立时间余量
Figure PCTCN2022079945-appb-000188
和保持时间余量
Figure PCTCN2022079945-appb-000189
都大于零的情况下,能够改变时钟周期使得其最小,即在满足(10)和(11)的情况下,取得时钟周期T的最小值,其中起点寄存器i和终点寄存器j的建立松弛和保持松弛改变范围满足(12)和(13)。
Figure PCTCN2022079945-appb-000190
Figure PCTCN2022079945-appb-000191
Figure PCTCN2022079945-appb-000192
Figure PCTCN2022079945-appb-000193
本实施例中,将数据信号转换时间设置在50ps至800ps,以50ps为步长在该范围均匀取值,共有16个取值点;将时钟信号转换时间设置在100ps至500ps,同样以50ps为步长在该范围均匀取值,共有5个取值点;将寄存器负载电容设置在1fF至5fF,以1fF为步长在该范围内均匀取值,共有5个取值点。将以上取值任意组合可得到400种 组合。
对每一种组合,将寄存器的建立松弛设为3ns,保持松弛从3ns逐渐减小至100ps,记录寄存器传播延时刚开始增大的保持松弛以及仿真失败时的保持松弛,即为保持松弛的范围,为200ps至1000ps;将寄存器的保持松弛设为3ns,建立松弛从3ns逐渐减小至100ps,记录寄存器传播延时刚开始增大的建立松弛以及仿真失败时的建立松弛,即为建立松弛的范围,为200ps至1000ps。以20ps为步长对建立松弛与保持松弛取值,共1296中组合,仿真得到所有组合的寄存器传播延时。
要得到数据信号转换时间为153ps,时钟信号转换时间为247ps,寄存器负载电容为2.1fF,建立松弛为284ps,保持松弛为384ps的寄存器传播延时,首先在上述组合中选取数据信号转换时间为150ps,时钟信号转换时间为200ps,寄存器负载电容为2fF,建立松弛与保持松弛分别为280ps与380ps的组合以及数据信号转换时间为200ps,时钟信号转换时间为250ps,寄存器负载电容为3fF,建立松弛与保持松弛分别为300ps与400ps的组合,以这些数据为插值点通过线性插值得到目标组合的寄存器传播延时。
以图3中三个寄存器连接路径作为说明,时钟信号的周期为5ns,其中寄存器DFF1至寄存器DFF2的路径不存在建立时间违规,该路径建立时间余量为0.785ns,寄存器DFF2至寄存器DFF3的路径存在建立时间违规,建立时间余量为-0.917ns。其中DFF1寄存器的建立时间
Figure PCTCN2022079945-appb-000194
为422ps,保持时间
Figure PCTCN2022079945-appb-000195
为300ps,输入信号转换时间
Figure PCTCN2022079945-appb-000196
为307ps,时钟信号转换时间
Figure PCTCN2022079945-appb-000197
为181ps,寄存器负载电容
Figure PCTCN2022079945-appb-000198
为2Ff,对应的寄存器传播延时
Figure PCTCN2022079945-appb-000199
为2.066ns;DFF2寄存器的建立时间
Figure PCTCN2022079945-appb-000200
为457ps,保持时间
Figure PCTCN2022079945-appb-000201
为213ps,输入信号转换时间
Figure PCTCN2022079945-appb-000202
为160ps,时钟信号转换时间
Figure PCTCN2022079945-appb-000203
为197ps,寄存器负载电容
Figure PCTCN2022079945-appb-000204
为2fF,对应的寄存器传播延时
Figure PCTCN2022079945-appb-000205
为1.818ns;DFF3寄存器的建立时间
Figure PCTCN2022079945-appb-000206
为388ps,保持时间
Figure PCTCN2022079945-appb-000207
为100ps,输入信号转换时间
Figure PCTCN2022079945-appb-000208
为267ps,时钟信号转换时间
Figure PCTCN2022079945-appb-000209
为224ps,寄存器负载电容
Figure PCTCN2022079945-appb-000210
为2fF,对应的寄存器传播延时
Figure PCTCN2022079945-appb-000211
为2.038ns;分别保持三个寄存器的输入信号转换时间,时钟信号转换时间,寄存器负载电容不变,取DFF1的建立松弛
Figure PCTCN2022079945-appb-000212
与保持松弛
Figure PCTCN2022079945-appb-000213
为930ps与500ps,通过寄存器灵活时序库插值得到该取值下对应的寄存 器实际传播延时
Figure PCTCN2022079945-appb-000214
为2.065ns,取DFF2的建立松弛
Figure PCTCN2022079945-appb-000215
与保持松弛
Figure PCTCN2022079945-appb-000216
为950ps与950ps,通过寄存器灵活时序库插值得到该取值下对应的寄存器实际传播延时
Figure PCTCN2022079945-appb-000217
为1.533ns,取DFF3的建立松弛
Figure PCTCN2022079945-appb-000218
与保持松弛
Figure PCTCN2022079945-appb-000219
为300ps与540ps,通过寄存器灵活时序库插值得到该取值下对应的寄存器实际传播延时
Figure PCTCN2022079945-appb-000220
为3.082ns;上述取值使得寄存器DFF1至寄存器DFF2路径以及寄存器DFF2至寄存器DFF3路径的建立时间余量分别变为893ps与56ps,从而消除了时序违规,此时可得时钟周期最小值T min为5.6ns。与基于寄存器传统时序库相比,消除时序违规所需时钟周期最小值为5.917ns,降低了5.4%。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

  1. 一种基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述寄存器的建立时间T setup、保持时间T hold和传播延时T cq分别指的是寄存器传统时序库中在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据需保持稳定的最短时间、时钟信号跳变后输入数据需保持稳定的最短时间以及从时钟信号跳变到输出数据的时间间隔;
    所述寄存器的建立松弛
    Figure PCTCN2022079945-appb-100001
    保持松弛
    Figure PCTCN2022079945-appb-100002
    和实际传播延时
    Figure PCTCN2022079945-appb-100003
    分别指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下时钟信号跳变前输入数据实际保持稳定的时间、时钟信号跳变后输入数据实际保持稳定的时间以及在特定建立松弛
    Figure PCTCN2022079945-appb-100004
    和保持松弛
    Figure PCTCN2022079945-appb-100005
    情况下,从时钟信号跳变到输出数据的时间间隔;
    所述寄存器灵活时序库指的是在特定的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L组合下,对应的多种不同的建立松弛
    Figure PCTCN2022079945-appb-100006
    保持松弛
    Figure PCTCN2022079945-appb-100007
    和实际传播延时
    Figure PCTCN2022079945-appb-100008
    组合;
    所述寄存器路径指的是电路中以寄存器为起点和终点的数据路径,其中起点寄存器记为FF i,终点寄存器记为FF j,i和j分别是起点寄存器和终点寄存器的编号,1≤i,j≤N FF,N FF是电路中寄存器的个数;
    对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器传统时序库的建立时间余量
    Figure PCTCN2022079945-appb-100009
    和保持时间余量
    Figure PCTCN2022079945-appb-100010
    分别如下(1)和所示:
    Figure PCTCN2022079945-appb-100011
    Figure PCTCN2022079945-appb-100012
    其中,T表示时钟周期,
    Figure PCTCN2022079945-appb-100013
    Figure PCTCN2022079945-appb-100014
    分别表示时钟信号到达起点寄存器FF i和终点寄存器FF j的时间,
    Figure PCTCN2022079945-appb-100015
    Figure PCTCN2022079945-appb-100016
    分别表示起点寄存器FF i和终点寄存器FF j之间所有寄存器路径中数据路径的最大延时和最小延时,
    Figure PCTCN2022079945-appb-100017
    Figure PCTCN2022079945-appb-100018
    分别表示终点寄存器FF j的建立时间和保持时间,
    Figure PCTCN2022079945-appb-100019
    表示起点寄存器FF i的传播延时;
    对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,基于寄存器灵活时序库的建立时间余量
    Figure PCTCN2022079945-appb-100020
    和保持时间余量
    Figure PCTCN2022079945-appb-100021
    分别如下(3)和所示:
    Figure PCTCN2022079945-appb-100022
    Figure PCTCN2022079945-appb-100023
    其中,
    Figure PCTCN2022079945-appb-100024
    Figure PCTCN2022079945-appb-100025
    分别表示终点寄存器FF j的建立松弛和保持松弛,
    Figure PCTCN2022079945-appb-100026
    表示起点寄存器FF i的实际传播延时,随该寄存器的建立松弛和保持松弛变化;
    所述方法包括:
    S1:对于电路中的所有寄存器,确定其输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L的范围,在该范围内选择多组输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,仿真获得所有有效的建立松弛和保持松弛对,及对应的实际传播延时;
    S2:对于电路中所有寄存器路径,根据每个起点寄存器和终点寄存器的输入信号转换时间S data、时钟信号转换时间S ck和寄存器负载电容C L,改变起点寄存器和终点寄存器的建立松弛和保持松弛,在满足每条寄存器路径基于寄存器灵活时序库的建立时间余量和保持时间余量都大于零的情况下,使得时钟周期最小。
  2. 根据权利要求1所述的基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述步骤S1中,对于寄存器传统时序库中每种输入信号转换时间、时钟信号转换时间和寄存器负载电容组合,确定建立松弛
    Figure PCTCN2022079945-appb-100027
    与保持松弛
    Figure PCTCN2022079945-appb-100028
    的有效范围为
    Figure PCTCN2022079945-appb-100029
    具体方法为:首先将建立松弛
    Figure PCTCN2022079945-appb-100030
    与保持松弛
    Figure PCTCN2022079945-appb-100031
    取足够大值进行仿真获得对应的实际传播延时
    Figure PCTCN2022079945-appb-100032
    所述足够大值指的是当继续增加
    Figure PCTCN2022079945-appb-100033
    或增加
    Figure PCTCN2022079945-appb-100034
    Figure PCTCN2022079945-appb-100035
    不再减小;然后保持
    Figure PCTCN2022079945-appb-100036
    不变减小
    Figure PCTCN2022079945-appb-100037
    仿真,直至
    Figure PCTCN2022079945-appb-100038
    开始增加,此时对应的
    Figure PCTCN2022079945-appb-100039
    Figure PCTCN2022079945-appb-100040
    保持
    Figure PCTCN2022079945-appb-100041
    不变减小
    Figure PCTCN2022079945-appb-100042
    仿真,直至
    Figure PCTCN2022079945-appb-100043
    开始增加,此时对应的
    Figure PCTCN2022079945-appb-100044
    Figure PCTCN2022079945-appb-100045
    然后保持
    Figure PCTCN2022079945-appb-100046
    不变继续减小
    Figure PCTCN2022079945-appb-100047
    仿真,
    Figure PCTCN2022079945-appb-100048
    继续增加直至仿真失败,即寄存器时钟信号跳变时无法得到输出数据,此时对应的
    Figure PCTCN2022079945-appb-100049
    Figure PCTCN2022079945-appb-100050
    保持
    Figure PCTCN2022079945-appb-100051
    不变继续减小
    Figure PCTCN2022079945-appb-100052
    仿真,
    Figure PCTCN2022079945-appb-100053
    继续增加直至仿真失败,此时对应的
    Figure PCTCN2022079945-appb-100054
    Figure PCTCN2022079945-appb-100055
  3. 根据权利要求2所述的基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述步骤S1中,对于寄存器传统时序库中每种输入信号转换时间、时钟信号转换时间 和寄存器负载电容组合,在
    Figure PCTCN2022079945-appb-100056
    Figure PCTCN2022079945-appb-100057
    的有效范围进行仿真获得所有有效的
    Figure PCTCN2022079945-appb-100058
    Figure PCTCN2022079945-appb-100059
    组合下对应的
    Figure PCTCN2022079945-appb-100060
    具体方法为:首先以T step为间隔在
    Figure PCTCN2022079945-appb-100061
    Figure PCTCN2022079945-appb-100062
    的有效范围中选择仿真点,其中
    Figure PCTCN2022079945-appb-100063
    的仿真点有N setup个,分别为
    Figure PCTCN2022079945-appb-100064
    其中0≤n setup≤N setup-1,n setup
    Figure PCTCN2022079945-appb-100065
    的第n个仿真点,N setup是满足
    Figure PCTCN2022079945-appb-100066
    的最大正整数,
    Figure PCTCN2022079945-appb-100067
    的仿真点有N hold个,分别为
    Figure PCTCN2022079945-appb-100068
    其中0≤n hold≤N hold-1,n hold
    Figure PCTCN2022079945-appb-100069
    的第n个仿真点,N hold是满足
    Figure PCTCN2022079945-appb-100070
    的最大正整数;然后对于N setup
    Figure PCTCN2022079945-appb-100071
    仿真点和N hold
    Figure PCTCN2022079945-appb-100072
    仿真点两两组合,在所有组合下进行仿真获得对应的
    Figure PCTCN2022079945-appb-100073
  4. 根据权利要求1所述的基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述步骤S2中,对于电路中所有寄存器路径,采用寄存器传统时序库进行时序分析,获得电路的时钟周期T,对于起点寄存器FF i和终点寄存器FF j间的寄存器路径,获得建立时间余量
    Figure PCTCN2022079945-appb-100074
    和保持时间余量
    Figure PCTCN2022079945-appb-100075
    数据路径的最大延时
    Figure PCTCN2022079945-appb-100076
    和最小延时
    Figure PCTCN2022079945-appb-100077
    终点寄存器FF j的建立时间
    Figure PCTCN2022079945-appb-100078
    和保持时间
    Figure PCTCN2022079945-appb-100079
    起点寄存器FF i的传播延时
    Figure PCTCN2022079945-appb-100080
    以及起点寄存器FF i的输入信号转换时间
    Figure PCTCN2022079945-appb-100081
    时钟信号转换时间
    Figure PCTCN2022079945-appb-100082
    和负载电容
    Figure PCTCN2022079945-appb-100083
    终点寄存器j的输入信号转换时间
    Figure PCTCN2022079945-appb-100084
    时钟信号转换时间
    Figure PCTCN2022079945-appb-100085
    和负载电容
    Figure PCTCN2022079945-appb-100086
    根据寄存器传统时序库中所有输入信号转换时间、时钟信号转换时间和寄存器负载电容及步骤S1中所有仿真所得的有效的建立松弛、保持松弛及对应的实际传播延时进行插值计算,获得起点寄存器FF i的建立松弛和保持松弛分别为
    Figure PCTCN2022079945-appb-100087
    Figure PCTCN2022079945-appb-100088
    时,对应的实际传播延时
    Figure PCTCN2022079945-appb-100089
    具体过程为:
    首先,选取寄存器传统时序中最接近
    Figure PCTCN2022079945-appb-100090
    且小于
    Figure PCTCN2022079945-appb-100091
    的输入信号转换时间 S data,最接近
    Figure PCTCN2022079945-appb-100092
    且小于
    Figure PCTCN2022079945-appb-100093
    的时钟信号转换时间 S ck,最接近
    Figure PCTCN2022079945-appb-100094
    且小于
    Figure PCTCN2022079945-appb-100095
    的负载电容 C L;选取寄存器传统时序中最接近
    Figure PCTCN2022079945-appb-100096
    且大于
    Figure PCTCN2022079945-appb-100097
    的输入信号转换时间
    Figure PCTCN2022079945-appb-100098
    最接近
    Figure PCTCN2022079945-appb-100099
    且大于
    Figure PCTCN2022079945-appb-100100
    的时钟信号转换时间
    Figure PCTCN2022079945-appb-100101
    最接近
    Figure PCTCN2022079945-appb-100102
    且大于
    Figure PCTCN2022079945-appb-100103
    的负载电容
    Figure PCTCN2022079945-appb-100104
    然后,当寄存器FF i的建立松弛和保持松弛分别为
    Figure PCTCN2022079945-appb-100105
    Figure PCTCN2022079945-appb-100106
    时,选取N setup
    Figure PCTCN2022079945-appb-100107
    仿真点中最接近
    Figure PCTCN2022079945-appb-100108
    且小于
    Figure PCTCN2022079945-appb-100109
    的建立松弛
    Figure PCTCN2022079945-appb-100110
    选取N hold
    Figure PCTCN2022079945-appb-100111
    仿真点中最接近
    Figure PCTCN2022079945-appb-100112
    且小于
    Figure PCTCN2022079945-appb-100113
    的建立松弛
    Figure PCTCN2022079945-appb-100114
    选取N setup
    Figure PCTCN2022079945-appb-100115
    仿真点中最接近
    Figure PCTCN2022079945-appb-100116
    且大于
    Figure PCTCN2022079945-appb-100117
    的建立松弛
    Figure PCTCN2022079945-appb-100118
    选取N hold
    Figure PCTCN2022079945-appb-100119
    仿真点中最接近
    Figure PCTCN2022079945-appb-100120
    且大于
    Figure PCTCN2022079945-appb-100121
    的建立松弛
    Figure PCTCN2022079945-appb-100122
    最后,根据输入信号转换时间分别为 S data
    Figure PCTCN2022079945-appb-100123
    时钟信号转换时间分别为 S ck
    Figure PCTCN2022079945-appb-100124
    寄存器负载电容分别为 C L
    Figure PCTCN2022079945-appb-100125
    建立松弛分别为
    Figure PCTCN2022079945-appb-100126
    Figure PCTCN2022079945-appb-100127
    保持松弛分别为
    Figure PCTCN2022079945-appb-100128
    Figure PCTCN2022079945-appb-100129
    时共32种情况下的寄存器实际传播延时,通过线性插值方式得到输入信号转换时间是
    Figure PCTCN2022079945-appb-100130
    时钟信号转换时间是
    Figure PCTCN2022079945-appb-100131
    寄存器负载电容是
    Figure PCTCN2022079945-appb-100132
    建立松弛是
    Figure PCTCN2022079945-appb-100133
    保持松弛是
    Figure PCTCN2022079945-appb-100134
    时对应的寄存器FF i的实际传播延时
    Figure PCTCN2022079945-appb-100135
  5. 根据权利要求4所述的基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述步骤S2中,对于电路中所有寄存器路径,通过改变终点寄存器FF j的建立松弛
    Figure PCTCN2022079945-appb-100136
    和保持松弛
    Figure PCTCN2022079945-appb-100137
    同时改变起点寄存器FF i的建立松弛
    Figure PCTCN2022079945-appb-100138
    和保持松弛
    Figure PCTCN2022079945-appb-100139
    从而通过插值计算得到对应的实际传播延时
    Figure PCTCN2022079945-appb-100140
    使得在满足每条寄存器路径的基于寄存器灵活时序库的建立时间余量
    Figure PCTCN2022079945-appb-100141
    和保持时间余量
    Figure PCTCN2022079945-appb-100142
    都大于零的情况下,能够改变时钟周期使得其最小,即取得时钟周期T的最小值。
  6. 根据权利要求4所述的基于寄存器灵活时序库的电路时序优化方法,其特征在于,所述线性插值方式具体为:
    第一步:将32种组合中的每一个组合以及目标组合都视为一个空间坐标,则任意两个空间坐标最多存在4个相同的坐标值,将存在这种情况的两坐标相对应的寄存器传播延时记为
    Figure PCTCN2022079945-appb-100143
    Figure PCTCN2022079945-appb-100144
    并在坐标值不同的维度上对每一对进行一维线性插值,不同的维度上分别记为
    Figure PCTCN2022079945-appb-100145
    并用x 1表示目标组合在该维度上的坐标值,得到新的插值坐标以及该插值坐标对应的寄存器延时
    Figure PCTCN2022079945-appb-100146
    公式如下:
    Figure PCTCN2022079945-appb-100147
    第二步:第一步得到的16个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的一维就是目标组合的值,将两坐标中坐标值不同的维度记为
    Figure PCTCN2022079945-appb-100148
    Figure PCTCN2022079945-appb-100149
    用x 2表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
    Figure PCTCN2022079945-appb-100150
    公式如下:
    Figure PCTCN2022079945-appb-100151
    第三步:第二步得到8个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的两维为目标组合的值,将两坐标中坐标值不同的维度记为
    Figure PCTCN2022079945-appb-100152
    Figure PCTCN2022079945-appb-100153
    用x 3表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
    Figure PCTCN2022079945-appb-100154
    公式如下:
    Figure PCTCN2022079945-appb-100155
    第四步:由第二步得到4个空间坐标,任意两个空间坐标仍最多存在四个维度的值相同,且满足这种条件的两坐标共同的三个维度为目标组合的值,将两坐标中坐标值不同的维度记为
    Figure PCTCN2022079945-appb-100156
    Figure PCTCN2022079945-appb-100157
    用x 4表示目标组合在该维度上的坐标值,并做一维线性插值得到新的空间坐标以及对应的寄存器传播延时
    Figure PCTCN2022079945-appb-100158
    公式如下:
    Figure PCTCN2022079945-appb-100159
    第五步:由第四步得到两个坐标,两坐标只有一个维度的值不同,其余四个维度的值与目标组合的值相同,将两坐标中坐标值不同的维度记为
    Figure PCTCN2022079945-appb-100160
    Figure PCTCN2022079945-appb-100161
    用x 5表示目标组合在该维度上的坐标值,在坐标值不同的维度上进行插值,得到插值目标
    Figure PCTCN2022079945-appb-100162
    Figure PCTCN2022079945-appb-100163
PCT/CN2022/079945 2021-08-09 2022-03-09 一种基于寄存器灵活时序库的电路时序优化方法 WO2023015878A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US18/011,443 US11829693B2 (en) 2021-08-09 2022-03-09 Method for optimizing circuit timing based on flexible register timing library

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN202110906714.9A CN113673193B (zh) 2021-08-09 2021-08-09 一种基于寄存器灵活时序库的电路时序优化方法
CN202110906714.9 2021-08-09

Publications (1)

Publication Number Publication Date
WO2023015878A1 true WO2023015878A1 (zh) 2023-02-16

Family

ID=78541828

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2022/079945 WO2023015878A1 (zh) 2021-08-09 2022-03-09 一种基于寄存器灵活时序库的电路时序优化方法

Country Status (3)

Country Link
US (1) US11829693B2 (zh)
CN (1) CN113673193B (zh)
WO (1) WO2023015878A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306416A (zh) * 2023-05-17 2023-06-23 芯耀辉科技有限公司 用于生成静态时序分析时序库的方法、设备及介质

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113673193B (zh) * 2021-08-09 2022-11-22 东南大学 一种基于寄存器灵活时序库的电路时序优化方法
CN115048889B (zh) * 2022-08-16 2022-11-01 井芯微电子技术(天津)有限公司 基于后端时序收敛仿真的异步路径提取方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336205B1 (en) * 1998-11-12 2002-01-01 Matsushita Electric Industrial Co., Ltd. Method for designing semiconductor integrated circuit
CN1985257A (zh) * 2004-05-28 2007-06-20 高通股份有限公司 用于修改电路设计中的保持时间违反的方法和设备
CN103324774A (zh) * 2012-12-29 2013-09-25 东南大学 一种基于时钟规划偏差算法的处理器性能优化方法
CN103632001A (zh) * 2013-11-27 2014-03-12 中国人民解放军国防科学技术大学 基于缓冲单元复用的保持时间时序优化方法
CN113673193A (zh) * 2021-08-09 2021-11-19 东南大学 一种基于寄存器灵活时序库的电路时序优化方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105138774B (zh) * 2015-08-25 2018-07-06 中山大学 一种基于集成电路层次化设计的时序后仿真方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6336205B1 (en) * 1998-11-12 2002-01-01 Matsushita Electric Industrial Co., Ltd. Method for designing semiconductor integrated circuit
CN1985257A (zh) * 2004-05-28 2007-06-20 高通股份有限公司 用于修改电路设计中的保持时间违反的方法和设备
CN103324774A (zh) * 2012-12-29 2013-09-25 东南大学 一种基于时钟规划偏差算法的处理器性能优化方法
CN103632001A (zh) * 2013-11-27 2014-03-12 中国人民解放军国防科学技术大学 基于缓冲单元复用的保持时间时序优化方法
CN113673193A (zh) * 2021-08-09 2021-11-19 东南大学 一种基于寄存器灵活时序库的电路时序优化方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116306416A (zh) * 2023-05-17 2023-06-23 芯耀辉科技有限公司 用于生成静态时序分析时序库的方法、设备及介质
CN116306416B (zh) * 2023-05-17 2023-08-18 芯耀辉科技有限公司 用于生成静态时序分析时序库的方法、设备及介质

Also Published As

Publication number Publication date
CN113673193A (zh) 2021-11-19
CN113673193B (zh) 2022-11-22
US11829693B2 (en) 2023-11-28
US20230214567A1 (en) 2023-07-06

Similar Documents

Publication Publication Date Title
WO2023015878A1 (zh) 一种基于寄存器灵活时序库的电路时序优化方法
Hand et al. Blade--a timing violation resilient asynchronous template
US10990121B2 (en) Apparatus and method for achieving glitch-free clock domain crossing signals
US8095900B2 (en) Achieving clock timing closure in designing an integrated circuit
US7917882B2 (en) Automated digital circuit design tool that reduces or eliminates adverse timing constraints due to an inherent clock signal skew, and applications thereof
Hu et al. TAU 2015 contest on incremental timing analysis
CN115017846A (zh) 基于接口的时序修复方法、设备及介质
US8539413B1 (en) Frequency optimization using useful skew timing
WO2023000684A1 (zh) 一种寄存器时序约束灵活建模方法
JP6301363B2 (ja) 有用なスキューで最適化を導くためのパイプラインに沿ったタイミングボトルネックの分析
CN112783065B (zh) 一种时序电路优化方法、装置及其存储介质
US20070129923A1 (en) Dynamic synchronizer simulation
US20150248513A1 (en) Integrated circuit design timing path verification tool
US8839061B2 (en) System and method for scan chain re-ordering
US20100262939A1 (en) System and method for clock optimization to achieve timing signoff in an electronic circuit and electronic design automation tool incorporating the same
Chaturvedi Static analysis of asynchronous clock domain crossings
Semba et al. Comparison of RTL conversion and GL conversion from synchronous circuits to asynchronous circuits
Tarawneh et al. An RTL method for hiding clock domain crossing latency
CN109871611A (zh) 一种异步电路自动延迟匹配的方法
Garg Common path pessimism removal: An industry perspective: Special session: Common path pessimism removal
Ewetz et al. Construction of reconfigurable clock trees for MCMM designs
Lin et al. Self-adjusting mechanism to dynamically suppress the effect of PVT variations on clock skew
Semba et al. A study on the design of interface circuits between synchronous-asynchronous modules using click elements
CN116861842B (zh) 一种可调节分段式反向时钟树的实现方法及相关装置
Sato et al. Performance improvement of general-synchronous circuits by variable latency technique using dynamic timing-error detection

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22854883

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE