[go: up one dir, main page]

CN118569176B - Incremental boxing method and device capable of automatically optimizing time sequence performance - Google Patents

Incremental boxing method and device capable of automatically optimizing time sequence performance Download PDF

Info

Publication number
CN118569176B
CN118569176B CN202411045308.8A CN202411045308A CN118569176B CN 118569176 B CN118569176 B CN 118569176B CN 202411045308 A CN202411045308 A CN 202411045308A CN 118569176 B CN118569176 B CN 118569176B
Authority
CN
China
Prior art keywords
slack
incremental
packing
connection
worst
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
Application number
CN202411045308.8A
Other languages
Chinese (zh)
Other versions
CN118569176A (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.)
Ehiway Microelectronic Science And Technology Suzhou Co ltd
Original Assignee
Ehiway Microelectronic Science And Technology Suzhou 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 Ehiway Microelectronic Science And Technology Suzhou Co ltd filed Critical Ehiway Microelectronic Science And Technology Suzhou Co ltd
Priority to CN202411045308.8A priority Critical patent/CN118569176B/en
Publication of CN118569176A publication Critical patent/CN118569176A/en
Application granted granted Critical
Publication of CN118569176B publication Critical patent/CN118569176B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

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

一种自动优化时序性能的增量装箱方法及装置,在整体布局完成后对关键路径上BLE增量调整CLB的位置,根据调整后时序是否变化来决定是否接受此次调整;调用时序分析获取建立时间裕度最小的连接集合C,对C中的每条连接,执行增量装箱将该连接起点的BLE移动到该连接终点BLE所在的CLB,增量装箱将该连接终点的BLE移动到该连接起点BLE所在的CLB;如果2次增量装箱中有一次可行,并使建立时间裕度最小值worst_slack变好或slack最小连接数量变少,则保持结果,更新C,转入下一轮;否则还原增量装箱前结果,转入C中下一条连接的优化中,通过这样迭代优化来进一步减少关键路径的延时,提高电路的时序性能。

An incremental packing method and device for automatically optimizing timing performance, after the overall layout is completed, the position of the CLB of the BLE on the critical path is incrementally adjusted, and whether to accept the adjustment is determined according to whether the timing changes after the adjustment; the timing analysis is called to obtain the connection set C with the smallest establishment time margin, and for each connection in C, incremental packing is performed to move the BLE at the starting point of the connection to the CLB where the BLE at the end point of the connection is located, and the incremental packing moves the BLE at the end point of the connection to the CLB where the BLE at the starting point of the connection is located; if one of the two incremental packings is feasible and makes the minimum value of the establishment time margin worst_slack better or the minimum number of slack connections is reduced, the result is maintained, C is updated, and the next round is entered; otherwise, the result before incremental packing is restored, and the optimization of the next connection in C is entered, and the delay of the critical path is further reduced through such iterative optimization, and the timing performance of the circuit is improved.

Description

Incremental boxing method and device capable of automatically optimizing time sequence performance
Technical Field
The invention relates to the technical field of Field Programmable Gate Arrays (FPGA) in digital integrated circuits, in particular to an incremental boxing method capable of automatically optimizing time sequence performance and an incremental boxing device capable of automatically optimizing time sequence performance.
Background
An FPGA (Field-Programmable GATE ARRAY) is a general-purpose logic circuit, and a CPU, a DSP, and is called a three-large general-purpose signal processing device. The method has the advantages of high flexibility, high parallelism and low development risk, is widely applied to the fields of industrial control, aerospace, communication, automotive electronics, data centers, intelligent processing and the like, and occupies more and more market share.
The design flow of the FPGA EDA (Electronic Design Automation ) software mainly comprises a plurality of steps of design input, synthesis, mapping, boxing, layout, wiring, time sequence analysis, code stream generation, downloading and the like. The packing stage is to divide the basic logic unit BLE (Basic Logic Element) in the synthesized netlist into boxes, so that each box can be mapped to one programmable logic block CLB (Configurable Logic Block) inside the FPGA chip, while meeting the constraint condition of the resources to ensure that the logic of the box can be implemented in the CLB unit. The layout stage is to correspond each CLB to a physical coordinate location inside the FPGA chip and meet constraint and optimization objectives such as area or timing.
The processing stage of a conventional FPGA binning is completed before the layout stage, which means that the binning result cannot be modified after the layout stage is completed. If the delay on the critical path is still large after the layout stage is completed, the time sequence requirement of the user cannot be met, and at the moment, the number of CLBs on the critical path cannot be reduced because the boxing result cannot be modified any more, so that the delay of the critical path cannot be obviously reduced, and the time sequence requirement of the user cannot be met.
Disclosure of Invention
In order to overcome the defects of the prior art, the technical problem to be solved by the invention is to provide an incremental boxing method capable of automatically optimizing the time sequence performance, which can further reduce the delay of a critical path through iterative optimization and improve the time sequence performance of a circuit.
The technical scheme of the invention is that the incremental boxing method for automatically optimizing the time sequence performance comprises the following steps:
(1) Running time sequence analysis, obtaining a connection set C with a minimum setup time margin value of worst_slot and a setup time margin equal to worst_slot, and marking that each connection in C is optimizable;
(2) Judging whether the optimized connection exists in the C, if so, finding out the first optimized connection C in the C, otherwise, stopping;
(3) Performing incremental boxing, and moving BLE of the starting point c to CLB where BLE of the ending point c is located;
(4) Judging whether the boxing is feasible or not, if so, executing the step (5), otherwise, executing the step (7);
(5) Running a time sequence analysis, and acquiring the latest establishment time margin minimum value of the word_slot ́ and a connection set C ́ with the establishment time margin equal to the word_slot ́;
(6) Judging whether the word_slot ́ > word_slot or the connection number of C ́ < the connection number of C, if so, executing the step (11), otherwise, executing the step (7);
(7) Performing incremental boxing, and moving BLE of the c end point to CLB where BLE of the c start point is located;
(8) Judging whether the boxing is feasible or not, if so, executing the step (9), otherwise, executing the step (12);
(9) Running a time sequence analysis, and acquiring the latest establishment time margin minimum value of the word_slot ́ and a connection set C ́ with the establishment time margin equal to the word_slot ́;
(10) Judging whether the word_slot ́ > word_slot or the connection number of C ́ < the connection number of C, if so, executing the step (11), otherwise, executing the step (12);
(11) Reserving an incremental boxing result, and updating a slack minimum connection set C of the latest time sequence analysis result;
(12) Restoring the boxing result, marking c as non-optimizable, and switching to the step (2).
After the whole layout is finished, the invention adjusts the positions of the CLBs of the BLEs on the critical paths in an incremental way, decides whether to accept or reject the adjustment according to whether the adjusted time sequence changes, and further reduces the delay of the critical paths through iterative optimization so as to improve the time sequence performance of the circuit.
There is also provided an incremental boxing apparatus for automatically optimizing timing performance, comprising:
A first operation time sequence analysis unit configured to acquire a connection set C with a setup time margin minimum value of w_slot and a setup time margin equal to w_slot, and mark each connection in C as optimizable;
the first judging unit is configured to judge whether the optimizable connection exists in the C, if so, the first optimizable connection C in the C is found, and if not, stopping;
A first delta boxing unit configured to perform delta boxing, moving BLE at the c start point to CLB where BLE at the c end point is located;
A second judging unit configured to judge whether this boxing is possible, if so, execute the second operation timing analysis unit, otherwise execute the second increment boxing unit;
a second operation timing analysis unit configured to operate timing analysis, obtain the latest setup time margin minimum value of the word_slot ́ and the connection set C ́ with the setup time margin equal to the word_slot ́;
A third judging unit configured to judge whether the number of connections of the word_slot ́ > word_slot, or the number of connections of the C ́ < the number of connections of the C, if so, executing the reservation unit, otherwise, executing the second delta boxing unit;
A second delta boxing unit configured to perform delta boxing, moving BLE at c-end to CLB where BLE at c-start is located;
a fourth judging unit configured to judge whether this time of packing is possible, and if so, execute the third operation timing analysis unit, otherwise execute the restoring unit;
A third operation timing analysis unit configured to operate timing analysis, obtain the latest setup time margin minimum value of the word_slot ́ and the connection set C ́ with the setup time margin equal to the word_slot ́;
A fifth judging unit configured to judge whether the number of connections of the C ́ is greater than the number of connections of the w rst_slot, or whether the number of connections of the C ́ is greater than the number of connections of the C, if so, executing the reservation unit, otherwise, executing the restoration unit;
The reservation unit is configured to reserve the incremental boxing result and update a slack minimum connection set C of the latest time sequence analysis result;
and the restoring unit is configured to restore the boxing result and mark c as non-optimizable, and the first judging unit is shifted to.
Drawings
FIG. 1 illustrates a flow chart of an incremental boxing method that automatically optimizes timing performance in accordance with the present invention.
Fig. 2 is a flowchart of acquiring a connection set C with a minimum setup time margin by performing timing analysis.
Fig. 3 is a schematic flow chart of the incremental binning to move a basic logic unit BLE1 from the original programmable logic block CLB1 to CLB 2.
Detailed Description
As shown in fig. 1, this incremental boxing method for automatically optimizing timing performance includes the steps of:
(1) Running time sequence analysis, obtaining a connection set C with a minimum setup time margin value of worst_slot and a setup time margin equal to worst_slot, and marking that each connection in C is optimizable;
(2) Judging whether the optimized connection exists in the C, if so, finding out the first optimized connection C in the C, otherwise, stopping;
(3) Performing incremental boxing, and moving BLE of the starting point c to CLB where BLE of the ending point c is located;
(4) Judging whether the boxing is feasible or not, if so, executing the step (5), otherwise, executing the step (7);
(5) Running a time sequence analysis, and acquiring the latest establishment time margin minimum value of the word_slot ́ and a connection set C ́ with the establishment time margin equal to the word_slot ́;
(6) Judging whether the word_slot ́ > word_slot or the connection number of C ́ < the connection number of C, if so, executing the step (11), otherwise, executing the step (7);
(7) Performing incremental boxing, and moving BLE of the c end point to CLB where BLE of the c start point is located;
(8) Judging whether the boxing is feasible or not, if so, executing the step (9), otherwise, executing the step (12);
(9) Running a time sequence analysis, and acquiring the latest establishment time margin minimum value of the word_slot ́ and a connection set C ́ with the establishment time margin equal to the word_slot ́;
(10) Judging whether the word_slot ́ > word_slot or the connection number of C ́ < the connection number of C, if so, executing the step (11), otherwise, executing the step (12);
(11) Reserving an incremental boxing result, and updating a slack minimum connection set C of the latest time sequence analysis result;
(12) Restoring the boxing result, marking c as non-optimizable, and switching to the step (2).
After the whole layout is finished, the invention adjusts the positions of the CLBs of the BLEs on the critical paths in an incremental way, decides whether to accept or reject the adjustment according to whether the adjusted time sequence changes, and further reduces the delay of the critical paths through iterative optimization so as to improve the time sequence performance of the circuit.
Preferably, in the step (1), the step of obtaining the connection set C with the smallest setup time margin by running the time sequence analysis includes:
(1.1) traversing the timing diagram G from front to back, and calculating the arrival time Tarrival of each node;
(1.2) traversing the time sequence diagram G from back to front, and calculating the required arrival time Trequired of each node;
(1.3) calculating a setup time margin, slack, for each connection;
(1.4) ordering each connection in order of slots from small to large;
(1.5) obtaining a minimum value of the slots, the minimum value of the slots being equal to the slots of the first connection after ordering;
(1.6) obtaining a first connection c after sequencing;
(1.7) judging that if the slot of c is equal to the word_slot, executing the step (1.8), otherwise, exiting;
(1.8) adding C to set C and forwarding to the next connection.
Preferably, in the step (3), the step of moving the basic logic unit BLE1 from the original programmable logic block CLB1 to CLB2 by incremental boxing includes:
(3.1) removing BLE1 from the list of subunits of CLB 1;
(3.2) updating the attributes of CLB 1;
(3.3) adding BLE1 from the list of subunits of CLB 2;
(3.4) updating the attributes of CLB 2;
(3.5) signal i for each input port in BLE 1;
(3.6) finding the sink reaching the CLB1 in the final node sink list in the signal i, and modifying the sink reaching the CLB 2;
(3.7) outputting a signal o for each of BLE 1;
(3.8) modifying the origin source information in signal o to CLB2.
Preferably, in the step (4), it is possible to determine that the incremental bin where the c start point BLE1 moves to the c end point BLE2 is located is that the bin of BLE1 is of CLB type, the bin of BLE2 is of CLB type, BLE1 is not on a carry chain, BLE2 is not on a carry chain, the number of BLE of CLB2 does not reach the maximum capacity, the maximum limit of CLB data signals is satisfied after BLE1 is added to CLB2, and the maximum limit of CLB control signals is satisfied after BLE1 is added to CLB 2.
It will be appreciated by those of ordinary skill in the art that implementing all or part of the steps of the methods of the above embodiments may be accomplished by a program that is stored in a computer readable storage medium that, when executed, comprises the steps of the methods of the above embodiments, and that the storage medium may be a ROM/RAM, magnetic disk, optical disk, memory card, etc. Accordingly, the present invention also includes, corresponding to the method of the present invention, an incremental boxing apparatus for automatically optimizing timing performance, typically in the form of functional blocks corresponding to the steps of the method. The device comprises:
there is also provided an incremental boxing apparatus for automatically optimizing timing performance, comprising:
A first operation time sequence analysis unit configured to acquire a connection set C with a setup time margin minimum value of w_slot and a setup time margin equal to w_slot, and mark each connection in C as optimizable;
the first judging unit is configured to judge whether the optimizable connection exists in the C, if so, the first optimizable connection C in the C is found, and if not, stopping;
A first delta boxing unit configured to perform delta boxing, moving BLE at the c start point to CLB where BLE at the c end point is located;
A second judging unit configured to judge whether this boxing is possible, if so, execute the second operation timing analysis unit, otherwise execute the second increment boxing unit;
a second operation timing analysis unit configured to operate timing analysis, obtain the latest setup time margin minimum value of the word_slot ́ and the connection set C ́ with the setup time margin equal to the word_slot ́;
A third judging unit configured to judge whether the number of connections of the word_slot ́ > word_slot, or the number of connections of the C ́ < the number of connections of the C, if so, executing the reservation unit, otherwise, executing the second delta boxing unit;
A second delta boxing unit configured to perform delta boxing, moving BLE at c-end to CLB where BLE at c-start is located;
a fourth judging unit configured to judge whether this time of packing is possible, and if so, execute the third operation timing analysis unit, otherwise execute the restoring unit;
A third operation timing analysis unit configured to operate timing analysis, to obtain a latest setup time margin minimum value of the word_slot ́ and a connection set C ́ with a setup time margin equal to the word_slot ́;
A fifth judging unit configured to judge whether the number of connections of the C ́ is greater than the number of connections of the w rst_slot, or whether the number of connections of the C ́ is greater than the number of connections of the C, if so, executing the reservation unit, otherwise, executing the restoration unit;
The reservation unit is configured to reserve the incremental boxing result and update a slack minimum connection set C of the latest time sequence analysis result;
and the restoring unit is configured to restore the boxing result and mark c as non-optimizable, and the first judging unit is shifted to.
Preferably, in the first operation timing analysis unit, the step of obtaining the connection set C with the smallest setup time margin by operation timing analysis includes:
(1.1) traversing the timing diagram G from front to back, and calculating the arrival time Tarrival of each node;
(1.2) traversing the time sequence diagram G from back to front, and calculating the required arrival time Trequired of each node;
(1.3) calculating a setup time margin, slack, for each connection;
(1.4) ordering each connection in order of slots from small to large;
(1.5) obtaining a minimum value of the slots, the minimum value of the slots being equal to the slots of the first connection after ordering;
(1.6) obtaining a first connection c after sequencing;
(1.7) judging that if the slot of c is equal to the word_slot, executing the step (1.8), otherwise, exiting;
(1.8) add C to C and transfer to the next connection.
Preferably, in the first incremental boxing unit, the step of moving a basic logic unit BLE1 from the original programmable logic block CLB1 to CLB2 by incremental boxing includes:
(3.1) removing BLE1 from the list of subunits of CLB 1;
(3.2) updating the attributes of CLB 1;
(3.3) adding BLE1 from the list of subunits of CLB 2;
(3.4) updating the attributes of CLB 2;
(3.5) signal i for each input port in BLE 1;
(3.6) finding the sink reaching the CLB1 in the final node sink list in the signal i, and modifying the sink reaching the CLB 2;
(3.7) outputting a signal o for each of BLE 1;
(3.8) modifying the origin source information in signal o to CLB2.
Preferably, in the second judging unit, it is possible to judge that the incremental bin where the c start point BLE1 moves to the c end point BLE2 is located is that the bin of BLE1 is of CLB type, the bin of BLE2 is of CLB type, BLE1 is not on a carry chain, BLE2 is not on a carry chain, the number of BLE of CLB2 does not reach the maximum capacity, the maximum limit of CLB data signals is satisfied after BLE1 is added to CLB2, and the maximum limit of CLB control signals is satisfied after BLE1 is added to CLB 2.
The present invention is not limited to the preferred embodiments, but can be modified in any way according to the technical principles of the present invention, and all such modifications, equivalent variations and modifications are included in the scope of the present invention.

Claims (8)

1.一种自动优化时序性能的增量装箱方法,其特征在于:其包括以下步骤:1. An incremental packing method for automatically optimizing timing performance, characterized in that it comprises the following steps: (1)运行时序分析,获取建立时间裕度最小值worst_slack和建立时间裕度等于worst_slack的连接集合C,并标记C中的每条连接是可优化的;(1) Run timing analysis to obtain the connection set C with the minimum setup time margin worst_slack and the connection set C with the setup time margin equal to worst_slack, and mark each connection in C as optimizable; (2)判断C中是否有可优化的连接,如果有,找到C中的第一条可优化连接c;否则停止;(2) Determine whether there is an optimizable connection in C. If so, find the first optimizable connection c in C; otherwise, stop; (3)执行增量装箱,将c起点的基本逻辑单元BLE移动到c终点BLE所在的可编程逻辑块CLB;(3) Perform incremental packing to move the basic logic unit BLE at the starting point c to the programmable logic block CLB where the BLE at the end point c is located; (4)判断此次装箱是否是可行的,如果是,执行步骤(5),否则执行步骤(7);(4) Determine whether the packing is feasible. If so, execute step (5); otherwise, execute step (7); (5)运行时序分析,获取最新的建立时间裕度最小值worst_slack´和建立时间裕度等于worst_slack´的连接集合C´;(5) Run timing analysis to obtain the latest minimum value of the setup time margin, worst_slack´, and the connection set C´ whose setup time margin is equal to worst_slack´; (6)判断是否worst_slack´>worst_slack,或者C´的连接数量<C的连接数量,如果是,执行步骤(11),否则执行步骤(7);(6) Determine whether worst_slack´ > worst_slack, or the number of connections of C´ < the number of connections of C. If so, execute step (11); otherwise, execute step (7). (7)执行增量装箱,将c终点的BLE移动到c起点BLE所在的CLB;(7) Perform incremental packing to move the BLE at the end of c to the CLB where the BLE at the start of c is located; (8)判断此次装箱是否是可行的,如果是,执行步骤(9),否则执行步骤(12);(8) Determine whether the packing is feasible. If so, execute step (9); otherwise, execute step (12); (9)运行时序分析,获取最新的建立时间裕度最小值worst_slack´和建立时间裕度等于worst_slack´的连接集合C´;(9) Run timing analysis to obtain the latest minimum value of the setup time margin, worst_slack´, and the connection set C´ whose setup time margin is equal to worst_slack´; (10)判断是否worst_slack´>worst_slack,或者C´的连接数量<C的连接数量,如果是,执行步骤(11),否则执行步骤(12);(10) Determine whether worst_slack´ > worst_slack, or the number of connections of C´ < the number of connections of C. If so, execute step (11); otherwise, execute step (12). (11)保留增量装箱结果,并更新最新时序分析结果的slack最小连接集合C;转入步骤(3);(11) Keep the incremental packing results and update the slack minimum connection set C of the latest timing analysis results; go to step (3); (12)还原装箱结果,并标记c为不可优化的;转入步骤(2)。(12) Restore the packing result and mark c as non-optimizable; go to step (2). 2.根据权利要求1所述的自动优化时序性能的增量装箱方法,其特征在于:所述步骤(1)中,运行时序分析获取建立时间裕度最小的连接集合C的步骤包括:2. The incremental packing method for automatically optimizing timing performance according to claim 1, characterized in that: in the step (1), the step of performing timing analysis to obtain a connection set C with the minimum establishment time margin comprises: (1.1)对时序图G进行从前到后的遍历,计算每个节点的到达时间Tarrival;(1.1) Traverse the time series graph G from front to back and calculate the arrival time Tarrival of each node; (1.2)对时序图G进行从后到前的遍历,计算每个节点的要求到达时间Trequired;(1.2) Traverse the timing graph G from back to front and calculate the required arrival time Trequired of each node; (1.3)计算每条连接的建立时间裕度slack;(1.3) Calculate the establishment time margin slack of each connection; (1.4)将每条连接按照slack从小到大的顺序排序;(1.4) Sort each connection in ascending order of slack; (1.5)获取slack最小值worst_slack,worst_slack 等于排序后的第一条连接的slack;(1.5) Get the minimum slack value worst_slack, which is equal to the slack of the first connection after sorting; (1.6)获取排序后的第一条连接c;(1.6) Get the first connection c after sorting; (1.7)判断如果c的slack等于worst_slack,执行步骤(1.8);否则退出;(1.7) If the slack of c is equal to worst_slack, execute step (1.8); otherwise exit; (1.8) 将c添加到C中,并转入下一条连接中。(1.8) Add c to C and move on to the next connection. 3.根据权利要求1所述的自动优化时序性能的增量装箱方法,其特征在于:所述步骤(3)中,增量装箱将一个基本逻辑单元BLE1从原来的可编程逻辑块CLB1移动到CLB2的步骤包括:3. The incremental packing method for automatically optimizing timing performance according to claim 1, characterized in that: in the step (3), the step of incremental packing to move a basic logic unit BLE1 from the original programmable logic block CLB1 to CLB2 comprises: (3.1)从CLB1的子单元列表中去掉BLE1;(3.1) Remove BLE1 from the subunit list of CLB1; (3.2)更新CLB1的属性;(3.2) Update the properties of CLB1; (3.3)从CLB2的子单元列表中添加BLE1;(3.3) Add BLE1 from the subunit list of CLB2; (3.4)更新CLB2的属性;(3.4) Update the properties of CLB2; (3.5)对BLE1中每个输入端口的信号i;(3.5) For the signal i of each input port in BLE1; (3.6)在信号i中的终节点sink列表中找到到达CLB1的sink,修改成到达CLB2的sink;(3.6) Find the sink that reaches CLB1 in the terminal node sink list of signal i and change it to the sink that reaches CLB2; (3.7)对BLE1中每个输出信号o;(3.7) For each output signal o in BLE1; (3.8)将信号o中的起点source信息修改成CLB2。(3.8) Change the starting point source information in signal o to CLB2. 4.根据权利要求1所述的自动优化时序性能的增量装箱方法,其特征在于:所述步骤(4)中,判断c起点BLE1移动到c终点BLE2所在箱子的增量装箱是可行的规则为:BLE1的箱子是CLB类型;BLE2的箱子是CLB类型;BLE1不在某条进位链上;BLE2不在某条进位链上;CLB2的BLE数量没有达到最大容量;BLE1添加到CLB2后,满足CLB数据信号的最大数量限制;BLE1添加到CLB2后,满足CLB控制信号的最大数量限制。4. The incremental packing method for automatically optimizing timing performance according to claim 1 is characterized in that: in the step (4), the rule for judging whether the incremental packing from the c-starting point BLE1 to the c-end point BLE2 is feasible is: the box of BLE1 is of CLB type; the box of BLE2 is of CLB type; BLE1 is not on a certain carry chain; BLE2 is not on a certain carry chain; the number of BLEs in CLB2 does not reach the maximum capacity; after BLE1 is added to CLB2, the maximum number limit of CLB data signals is met; after BLE1 is added to CLB2, the maximum number limit of CLB control signals is met. 5.一种自动优化时序性能的增量装箱装置,其特征在于:其包括:5. An incremental packing device for automatically optimizing timing performance, characterized in that it comprises: 第一运行时序分析单元,其配置来获取建立时间裕度最小值worst_slack和建立时间裕度等于worst_slack的连接集合C,并标记C中的每条连接是可优化的;A first running timing analysis unit is configured to obtain a set C of connections having a minimum setup time margin of worst_slack and a setup time margin equal to worst_slack, and mark each connection in C as being optimizable; 第一判断单元,其配置来判断C中是否有可优化的连接,如果有,找到C中的第一条可优化连接c;否则停止;A first judgment unit is configured to judge whether there is an optimizable connection in C, and if so, find the first optimizable connection c in C; otherwise, stop; 第一增量装箱单元,其配置来执行增量装箱,将c起点的基本逻辑单元BLE移动到c终点BLE所在的可编程逻辑块CLB;A first incremental packing unit is configured to perform incremental packing to move a basic logic unit BLE of a starting point c to a programmable logic block CLB where the end point c BLE is located; 第二判断单元,其配置来判断此次装箱是否是可行的,如果是,执行第二运行时序分析单元,否则执行第二增量装箱单元;A second judgment unit configured to judge whether the packing is feasible, and if so, execute the second runtime analysis unit, otherwise execute the second incremental packing unit; 第二运行时序分析单元,其配置来运行时序分析,获取最新的建立时间裕度最小值worst_slack´和建立时间裕度等于worst_slack´的连接集合C´;A second running timing analysis unit is configured to run timing analysis to obtain the latest minimum value of the setup time margin worst_slack´ and a connection set C´ whose setup time margin is equal to worst_slack´; 第三判断单元,其配置来判断是否worst_slack´>worst_slack,或者C´的连接数量<C的连接数量,如果是,执行保留单元,否则执行第二增量装箱单元;A third judging unit is configured to judge whether worst_slack´>worst_slack, or the number of connections of C´<the number of connections of C, if yes, execute the retaining unit, otherwise execute the second incremental packing unit; 第二增量装箱单元,其配置来执行增量装箱,将c终点的BLE移动到c起点BLE所在的CLB;A second incremental packing unit is configured to perform incremental packing to move the BLE at the c end point to the CLB where the c start point BLE is located; 第四判断单元,其配置来判断此次装箱是否是可行的,如果是,执行第三运行时序分析单元,否则执行还原单元;a fourth judgment unit configured to judge whether the packing is feasible, and if so, to execute the third operation timing analysis unit, otherwise to execute the restoration unit; 第三运行时序分析单元,其配置来运行时序分析,获取最新的建立时间裕度最小值worst_slack´和建立时间裕度等于worst_slack´的连接集合C´;A third running timing analysis unit is configured to run timing analysis to obtain the latest minimum value of the setup time margin worst_slack´ and a connection set C´ whose setup time margin is equal to worst_slack´; 第五判断单元,其配置来判断是否worst_slack´>worst_slack,或者C´的连接数量<C的连接数量,如果是,执行保留单元,否则执行还原单元;a fifth judging unit, configured to judge whether worst_slack´>worst_slack, or the number of connections of C´<the number of connections of C, and if so, execute the retaining unit, otherwise execute the restoring unit; 保留单元,其配置来保留增量装箱结果,并更新最新时序分析结果的slack最小连接集合C;转入第一增量装箱单元;A retention unit is configured to retain the incremental binning results and update the slack minimum connection set C of the latest timing analysis results; transfer to the first incremental binning unit; 还原单元,其配置来还原装箱结果,并标记c为不可优化的;转入第一判断单元。A restoration unit is configured to restore the packing result and mark c as non-optimizable; and the process proceeds to the first judgment unit. 6.根据权利要求5所述的自动优化时序性能的增量装箱装置,其特征在于:所述第一运行时序分析单元中,运行时序分析获取建立时间裕度最小的连接集合C的步骤包括:6. The incremental packing device for automatically optimizing timing performance according to claim 5, characterized in that: in the first running timing analysis unit, the step of running timing analysis to obtain the connection set C with the minimum establishment time margin comprises: (1.1)对时序图G进行从前到后的遍历,计算每个节点的到达时间Tarrival;(1.1) Traverse the time series graph G from front to back and calculate the arrival time Tarrival of each node; (1.2)对时序图G进行从后到前的遍历,计算每个节点的要求到达时间Trequired;(1.2) Traverse the timing graph G from back to front and calculate the required arrival time Trequired of each node; (1.3)计算每条连接的建立时间裕度slack;(1.3) Calculate the establishment time margin slack of each connection; (1.4)将每条连接按照slack从小到大的顺序排序;(1.4) Sort each connection in ascending order of slack; (1.5)获取slack最小值worst_slack,worst_slack等于排序后的第一条连接的slack;(1.5) Get the minimum slack value worst_slack, which is equal to the slack of the first connection after sorting; (1.6)获取排序后的第一条连接c;(1.6) Get the first connection c after sorting; (1.7)判断如果c的slack等于worst_slack,执行步骤(1.8);否则退出;(1.7) If the slack of c is equal to worst_slack, execute step (1.8); otherwise exit; (1.8)将c添加到C中,并转入下一条连接中。(1.8) Add c to C and move on to the next connection. 7.根据权利要求5所述的自动优化时序性能的增量装箱装置,其特征在于:所述第一增量装箱单元中,增量装箱将一个基本逻辑单元BLE1从原来的可编程逻辑块CLB1移动到CLB2的步骤包括:7. The incremental packing device for automatically optimizing timing performance according to claim 5, characterized in that: in the first incremental packing unit, the step of incremental packing to move a basic logic unit BLE1 from the original programmable logic block CLB1 to CLB2 comprises: (3.1)从CLB1的子单元列表中去掉BLE1;(3.1) Remove BLE1 from the subunit list of CLB1; (3.2)更新CLB1的属性;(3.2) Update the properties of CLB1; (3.3)从CLB2的子单元列表中添加BLE1;(3.3) Add BLE1 from the subunit list of CLB2; (3.4)更新CLB2的属性;(3.4) Update the properties of CLB2; (3.5)对BLE1中每个输入端口的信号i;(3.5) For the signal i of each input port in BLE1; (3.6)在信号i中的终节点sink列表中找到到达CLB1的sink,修改成到达CLB2的sink;(3.6) Find the sink that reaches CLB1 in the terminal node sink list of signal i and change it to the sink that reaches CLB2; (3.7)对BLE1中每个输出信号o;(3.7) For each output signal o in BLE1; (3.8)将信号o中的起点source信息修改成CLB2。(3.8) Change the starting point source information in signal o to CLB2. 8.根据权利要求5所述的自动优化时序性能的增量装箱装置,其特征在于:所述第二判断单元中,判断连接c起点BLE1移动到c终点BLE2所在箱子的增量装箱是可行的规则为:BLE1的箱子是CLB类型;BLE2的箱子是CLB类型;BLE1不在某条进位链上;BLE2不在某条进位链上;CLB2的BLE数量没有达到最大容量;BLE1添加到CLB2后,满足CLB数据信号的最大数量限制;BLE1添加到CLB2后,满足CLB控制信号的最大数量限制。8. The incremental packing device for automatically optimizing timing performance according to claim 5 is characterized in that: in the second judgment unit, the rule for judging whether the incremental packing of the box connecting the starting point c BLE1 to the end point c BLE2 is feasible is: the box of BLE1 is of CLB type; the box of BLE2 is of CLB type; BLE1 is not on a certain carry chain; BLE2 is not on a certain carry chain; the number of BLEs in CLB2 does not reach the maximum capacity; after BLE1 is added to CLB2, the maximum number limit of CLB data signals is met; after BLE1 is added to CLB2, the maximum number limit of CLB control signals is met.
CN202411045308.8A 2024-08-01 2024-08-01 Incremental boxing method and device capable of automatically optimizing time sequence performance Active CN118569176B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202411045308.8A CN118569176B (en) 2024-08-01 2024-08-01 Incremental boxing method and device capable of automatically optimizing time sequence performance

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202411045308.8A CN118569176B (en) 2024-08-01 2024-08-01 Incremental boxing method and device capable of automatically optimizing time sequence performance

Publications (2)

Publication Number Publication Date
CN118569176A CN118569176A (en) 2024-08-30
CN118569176B true CN118569176B (en) 2024-12-20

Family

ID=92473315

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202411045308.8A Active CN118569176B (en) 2024-08-01 2024-08-01 Incremental boxing method and device capable of automatically optimizing time sequence performance

Country Status (1)

Country Link
CN (1) CN118569176B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282471A (en) * 2021-11-19 2022-04-05 中科亿海微电子科技(苏州)有限公司 A Packing Method for FPGA Adaptive Logic Module
CN115392168A (en) * 2022-09-01 2022-11-25 北京工商大学 Boxing method for FPGA (field programmable Gate array) chips

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017113058A1 (en) * 2015-12-28 2017-07-06 京微雅格(北京)科技有限公司 Fpga chip wiring method based on plb
CN116579280B (en) * 2023-07-11 2023-10-20 中科亿海微电子科技(苏州)有限公司 Time sequence performance adjusting method and device
CN117574820B (en) * 2024-01-15 2024-09-17 中科亿海微电子科技(苏州)有限公司 Incremental time sequence analysis method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114282471A (en) * 2021-11-19 2022-04-05 中科亿海微电子科技(苏州)有限公司 A Packing Method for FPGA Adaptive Logic Module
CN115392168A (en) * 2022-09-01 2022-11-25 北京工商大学 Boxing method for FPGA (field programmable Gate array) chips

Also Published As

Publication number Publication date
CN118569176A (en) 2024-08-30

Similar Documents

Publication Publication Date Title
US12073157B2 (en) Automated circuit generation
US6536023B1 (en) Method and system for hierarchical metal-end, enclosure and exposure checking
CN110442884B (en) Optimization method and device of sub-threshold digital sequential circuit
CN114492282B (en) Signal line layout processing method and device, chip and storage medium
CN116401987A (en) Chip time sequence optimization method, system, equipment and medium
CN118569176B (en) Incremental boxing method and device capable of automatically optimizing time sequence performance
US7168057B2 (en) Targeted optimization of buffer-tree logic
US20200050730A1 (en) Re-routing time critical multi-sink nets in chip design
US8127259B2 (en) Synthesis constraint creating device, behavioral synthesis device, synthesis constraint creating method and recording medium
CN116911224B (en) Method for optimizing digital logic circuit, computer device and storage medium
US7526743B2 (en) Method for routing data paths in a semiconductor chip with a plurality of layers
CN111539176A (en) Multi-instance time budget for integrated circuit design and fabrication
CN111159967A (en) FPGA circuit layout and resource allocation method based on webpage ranking algorithm
US20140033155A1 (en) Systems and methods for generating a higher level description of a circuit design based on connectivity strengths
CN115563116A (en) Database table scanning method, device and equipment
CN115470740A (en) Time sequence analysis method and device, electronic equipment and storage medium
US7320117B2 (en) Design method for semiconductor integrated circuit device using path isolation
CN114021518B (en) Path expansion method and device of programmable logic device and related equipment
CN118194792A (en) FPGA delay optimization method and device based on node replication
CN118070724B (en) FPGA delay optimization method and device, computer equipment and storage medium
US20220114321A1 (en) Systems And Methods For Generating Placements For Circuit Designs Using Pyramidal Flows
CN117787172B (en) Construction method and device of wiring resource diagram, computer equipment and storage medium
CN117436374B (en) Circuit synthesis method, device, equipment and storage medium
CN113408223B (en) Chip design method based on intelligent analysis
US20240193323A1 (en) Method of semiconductor process simulation

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