CN115859886B - Design splitting method for high-efficiency low coupling based on multiple fanout logic - Google Patents

Design splitting method for high-efficiency low coupling based on multiple fanout logic Download PDF

Info

Publication number
CN115859886B
CN115859886B CN202310120421.7A CN202310120421A CN115859886B CN 115859886 B CN115859886 B CN 115859886B CN 202310120421 A CN202310120421 A CN 202310120421A CN 115859886 B CN115859886 B CN 115859886B
Authority
CN
China
Prior art keywords
module
fanout
devices
netlist
modules
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
CN202310120421.7A
Other languages
Chinese (zh)
Other versions
CN115859886A (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.)
Shandong Qixin Software Technology Co ltd
Original Assignee
Shandong Qixin Software Technology 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 Shandong Qixin Software Technology Co ltd filed Critical Shandong Qixin Software Technology Co ltd
Priority to CN202310120421.7A priority Critical patent/CN115859886B/en
Publication of CN115859886A publication Critical patent/CN115859886A/en
Application granted granted Critical
Publication of CN115859886B publication Critical patent/CN115859886B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

The invention discloses a design splitting method of high-efficiency low coupling based on multiple fanout logic, which belongs to the technical field of chip design and comprises the following steps of (1) constructing a module according to multiple fanout devices; (2) analyzing inputs and outputs of the netlist; (3) building a module according to the device hierarchy relation; (4) merging the modules according to the fanout device number of the modules; (5) whether to resize the module: if no adjustment is needed, the step (6) is directly carried out; if the adjustment is needed, the module is adjusted; and (6) ending. The invention provides a method for splitting a netlist through lower coupling strength with high linearity complexity based on a coupling relation index of logic netlist splitting, which is applicable to any netlist formed by a group of devices, can realize high-efficiency module splitting, and meets the requirements of low coupling degree, balanced module size and the like of a module.

Description

Design splitting method for high-efficiency low coupling based on multiple fanout logic
Technical Field
The invention discloses a high-efficiency low-coupling design splitting method based on multiple fanout logic, and belongs to the technical field of chip design.
Background
Splitting refers to splitting a logic netlist according to a certain method and rule in the EDA field, and aims to split a large netlist into several small modules so as to perform parallel processing or blocking processing on the netlist, wherein the splitting requirement is that the smaller and the better the coupling relation among the modules is, and the coupling relation can be measured by the number of wires connected among the modules: the more the connection inside the modules, the fewer the number of connection wires between the modules, the stronger the independence between the modules, and the more ideal the splitting result.
Existing resolution methods are generally divided into two types:
the method has the advantages that the splitting is directly carried out through the hierarchy relation of the logic netlist, the splitting boundary is clear, the splitting result is difficult to directly meet the splitting requirement, for example, the splitting requirement has strong independence among modules, the coupling relation among the modules is weak, namely, the connection relation among the modules is as little as possible; for example, the splitting requires that the sizes of the modules are similar, and the hierarchy relationship is often divided according to the designed module functions, and the requirements of the coupling relationship and the module size cannot be met.
The other splitting method is to split through analyzing the structural relation of netlists, has the advantages of being applicable to the flatten design and the hierarchy design, and has the disadvantages that due to the complex relation between netlists, a general heuristic algorithm generally has the problems of long execution time, low efficiency, difficulty in finding out a good result and the like.
As shown in fig. 1, an example of a connection relationship of a netlist is shown, the entire netlist is formed by connecting 20 devices, each device has a respective number, and from 1 to 20, a complex connection relationship exists between the devices, and the example is as follows:
in fig. 1, the wire (wire) between devices represents the connection between the two, the device 1 is connected to the device 4 through the wire (wire), and the arrow of the wire (wire) is directed from the device 1 to the device 4, indicating that the output (fanout) of the device 1 goes to the device 4, i.e. the output (fanout) of the device 1 is the device 4, and the input (fanin) of the device 4 comes from the device 1, i.e. the input (fanin) of the device 4 is the device 1.
As can be seen in fig. 1, there are devices that have only output (fanout) devices and no input (fanin) devices, such as device 1, such devices being referred to as inputs to the netlist; some devices have only input (fanin) devices and no output (fanout) devices, such as device 18, such devices being referred to as outputs of the netlist; there may be 1 or more input (fanin) devices and one or more output (fanout) devices in addition to the input and output of the netlist.
fanout and fanin refer to fan-in and fan-out of devices, respectively, as in fig. 1, the fanin device of device 11 is device 20 and the fanout devices of device 11 are devices 13, 14 and 17, i.e., device 11 has 1 fanin device and 3 fanout devices, and is referred to as a multiple fanout device when the fanout devices of the device are more than 1.
In summary, in the splitting process, the coupling relationship between the split modules is generally one of the key indexes of splitting, and the fewer the connection relationship between the split modules is, the more the functions are facilitated to be realized, the performance is improved, and the like, whether in the FPGA prototype verification process or the digital back-end layout wiring process; for the logic optimization process, the fewer the connection relations among the modules, the fewer the logic among the optimizable modules, and the realization of logic optimization flow is facilitated, so how to split the netlist into the modules with low coupling strength with high efficiency becomes an important technical problem to be considered in many scenes.
Disclosure of Invention
Aiming at the problems in the prior art, the invention provides a design splitting method with high efficiency and low coupling based on multiple fanout logic. Based on the coupling relation index of logic netlist splitting, the invention designs a method which is linear in complexity and can efficiently split the netlist through lower coupling strength.
The detailed technical scheme of the invention is as follows:
a design splitting method of high efficiency low coupling based on multiple fanout logic, comprising:
the invention is applicable to any netlist formed by a group of devices, the flow of the splitting method is shown in figure 2, and the devices in the device or module in the flow refer to devices which are not added into the module;
(1) Starting and constructing a module according to the multiple fanout devices;
(2) Analyzing the input and output of the netlist;
(3) Constructing a module according to the device hierarchy relation;
(4) Combining the modules according to the fanout device quantity of the modules;
(5) Whether to adjust the module size:
if no adjustment is needed, the step (6) is directly carried out;
if the adjustment is needed, the module is adjusted;
(6) And (5) ending.
According to the invention, the specific method for constructing the module according to the multi-fanout device in the step (1) comprises the following steps:
the analysis steps are shown in fig. 3:
(1-1) starting and traversing each device in the netlist to obtain traversed devices;
(1-2) determining whether the obtained device has a plurality of fanout devices:
if the device has only one fanout device, continuing to traverse the rest devices in the netlist;
if the device has a plurality of fanout devices, continuing to perform the step (1-3);
(1-3) determining whether a device having a plurality of fanout has been added to the module:
if the device is added to the module, acquiring the module where the current device is located;
if the device is not added to the module, a new module is constructed, and the current device is added to the constructed new module;
(1-4) adding the fanout device of the current device to the module in which the current device is located;
(1-5) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, continuing the traversal;
if the traversing is finished, executing the step (1-6);
and (1-6) ending to obtain a new netlist.
After the steps are completed, the device which is not added into the module and the module coexist in the obtained new netlist; devices that are not added to a module will have only one output and the module may have multiple outputs.
According to the invention, the specific steps of analyzing the inputs and outputs of the netlist for step (2) are as follows:
(2-1) traversing each device or module in the netlist to obtain traversed devices or modules;
(2-2) determining whether the traversed device or module has only fanin devices:
if only fanin devices, then the flag is output;
if not, continuing to execute the step (2-3);
(2-3) determining whether the traversed device or module has only fanout devices:
if only the fanout device is used, the input device is marked and stored for later use;
if not, continuing to execute the step (2-4);
(2-4) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, returning to the step (2-1) to continue the traversal;
if the traversing is finished, the executing step (2-5) is finished;
(2-5) ending.
After the above steps are performed, the inputs and outputs in the netlist are labeled, and the input devices or modules in the netlist are obtained.
According to the present invention, the specific method for constructing the module according to the device hierarchy relation in the step (3) includes:
(3-1) starting and creating a module a into which the input device or module marked as input in step (2-3) is placed;
(3-2) determining whether the module a has a fanout device or module:
if not, the module A is the last layer module of the netlist, and the executing step (3-5) is finished;
if yes, continuing to execute the step (3-3);
(3-3) creating a module B, placing all fanout devices or modules of said module a;
(3-4) marking the current B module as an A module, returning to the step (3-2), and continuously judging whether the A module has a fanout device or module;
and (3-5) ending to obtain a new netlist.
After the steps are completed, no device which is not added to the module is in the obtained new netlist, only the module is provided, the device and the module exist in the module, and the module in the module is split into the devices.
According to the present invention, the step of merging the modules according to the fanout device number of the modules in step (4) is preferably as follows:
(4-1) obtaining an input device in the netlist, and obtaining a module in which the input device is located, which is denoted as a module A;
(4-2) judging whether the A module has a fanout module:
if the A module has a fanout module, executing the step (4-3);
if the A module does not have the fanout module, the module in the netlist is completely traversed, and the executing step (4-7) is finished;
(4-3) obtaining the fanout device number num1 of the A module as a comparison value;
(4-4) obtaining a fanout module of the A module, which is marked as a B module, and obtaining the fanout device number num2 of the B module;
(4-5) determining whether num1 is greater than num2:
if yes, combining the A module with the B module, taking the A module and the B module as the B module, and executing the step (4-6);
if not, directly performing the step (4-6);
(4-6) taking the B module as the A module, and returning to the step (4-2) for detection;
(4-7) ending to obtain a new netlist.
After the steps are completed, no device which is not added to the module is in the obtained new netlist, only the module is provided, the device and the module exist in the module, and the module in the module is split into the devices.
According to the present invention, preferably, the step (5) is to select whether to adjust the size of the module according to actual requirements:
(5-1) if the module size is selected to be adjusted, two adjacent modules that need to be adjusted are designated, and the next operation is performed: an adjustment module; the modules designated in the step (5-1) are not necessarily the same size, and the purpose of adjusting the modules is to make the two modules equal as much as possible;
(5-2) if the module is selected not to be resized, the whole process is completed.
According to the present invention, preferably, the step (5-1) adjusts the modules according to the sizes of the adjacent modules as follows:
(5-1-1) obtaining two adjacent modules designated in (5-1), comparing the sizes of the two modules according to the number of devices contained in the two modules, and marking the smaller module of the two modules as an A module; the larger of the two modules is denoted as the B module; wherein the A module and the B module have the same meaning as the aforementioned meaning, and are all an aggregate of a group of devices;
(5-1-2) determining whether the a module is a fanin module of the B module:
if the module is a fanin module of the B module, the fanout is marked as a searching appointed type;
if the fanin module is not the B module, namely the fanout module of the B module (two adjacent modules only have two cases), the fanin is marked as a search appointed type;
(5-1-3) traversing the search of the A module for devices of the specified type; the search for the specified type is specified in step (5-1-2);
(5-1-4) obtaining the number of the traversed devices and the corresponding devices of the designated type of the search, and executing the step (5-1-5);
(5-1-5) sorting the number of devices obtained in the step (5-1-4) to obtain the device having the smallest number of devices corresponding to the search designation type:
if the number of the devices with the least number of the corresponding devices of the designated type is more, arbitrarily selecting one device, and executing the step (5-1-8);
(5-1-6) moving the obtained device into the A module, and judging whether the A module is larger than the B module:
if the device is larger than the module A, the device moving to the module A is moved back to the module B again, and execution is finished;
if not, returning to the step (5-1-3), and continuously adjusting the sizes of the current A module and the current B module;
(5-1-7) ending, and finishing the adjustment of the designated two adjacent modules;
(5-1-8) after all operations are performed, the netlist is split into target blocks.
After the above steps are performed, the given netlist is split into: several modules with low coupling degree and relatively balanced module size, namely target modules.
The invention has the beneficial effects that:
aiming at the problem that the prior art cannot generally meet the requirement of EDA development flow by carrying out module division through Hierarchy relation, heuristic algorithm has low execution efficiency. The method has the characteristics of high execution efficiency, low module coupling degree, balanced support module size and the like, can meet more scene requirements on design netlist splitting, and can be widely applied to the research and development flow of EDA tools, such as parallel acceleration or parallel optimization realized by logic synthesis splitting of RTL netlist.
Drawings
FIG. 1 is a schematic diagram of a prior art netlist connection relationship;
FIG. 2 is a schematic diagram of a splitting flow corresponding to the splitting method according to the present invention;
FIG. 3 is a schematic flow diagram of a device building block according to multiple fanout in accordance with the present invention;
FIG. 4 is a schematic flow chart of analyzing netlist inputs and outputs in the present invention;
FIG. 5 is a schematic flow chart of a module for constructing a hierarchical relationship according to a device in the present invention;
FIG. 6 is a schematic flow chart of a merging module according to the present invention;
FIG. 7 is a flow chart of the adjusting module according to the present invention;
FIG. 8 is a schematic diagram of an exemplary multi-fanout-based building block according to embodiment 1 of the present invention;
FIG. 9 is a schematic diagram of an example of input and output of an analytical netlist in accordance with embodiment 1 of the present invention;
FIG. 10 is a schematic diagram of an example 1 of a hierarchy building block of devices according to the present invention;
FIG. 11 is a schematic diagram of an example of a hierarchy building block of devices according to the present invention 2;
FIG. 12 is a schematic diagram of an exemplary merge module 1 of the invention;
FIG. 13 is a schematic diagram of an exemplary merge module 2 of the invention;
fig. 14 is a schematic diagram of an exemplary adjustment module of the present invention.
Reference numerals:
in fig. 1-14, reference numerals 1-20 are all connected devices in the netlist.
Detailed Description
The present invention will be described in detail with reference to examples and drawings, but is not limited thereto.
Example 1, described below, is described below in connection with the accompanying drawings for decomposing a given netlist into modules of low coupling and relatively uniform module size:
example 1,
As shown in fig. 2, a design splitting method of high-efficiency low coupling based on multiple fanout logic includes:
(1) Starting and constructing a module according to the multiple fanout devices;
as shown in fig. 3, the specific method for constructing the module according to the multiple fanout device in the step (1) includes:
(1-1) starting and traversing each device in the netlist to obtain traversed devices;
(1-2) determining whether the obtained device has a plurality of fanout devices:
if the device has only one fanout device, continuing to traverse the rest devices in the netlist;
if the device has a plurality of fanout devices, continuing to perform the step (1-3);
(1-3) determining whether a device having a plurality of fanout has been added to the module:
if the device is added to the module, acquiring the module where the current device is located;
if the device is not added to the module, a new module is constructed, and the current device is added to the constructed new module;
(1-4) adding the fanout device of the current device to the module in which the current device is located;
(1-5) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, continuing the traversal;
if the traversing is finished, executing the step (1-6);
and (1-6) ending to obtain a new netlist.
After the steps are completed, the device which is not added into the module and the module coexist in the obtained new netlist; devices that are not added to a module will have only one output and the module may have multiple outputs.
For a given netlist, as shown in fig. 1, the devices in each netlist are traversed, if a device has multiple fanout devices, the device and the fanout devices are placed in the same module, as shown in fig. 8, device 2, device 5 and device 6 are placed in the same module, device 8, device 9 and device 10 are placed in the same module, and device 11, device 13, device 17 and device 14 are placed in the same module.
(2) Analyzing the input and output of the netlist;
as shown in fig. 4, the specific steps of analyzing the inputs and outputs of the netlist for step (2) are as follows:
(2-1) traversing each device or module in the netlist to obtain traversed devices or modules;
(2-2) determining whether the traversed device or module has only fanin devices:
if only fanin devices, then the flag is output;
if not, continuing to execute the step (2-3);
(2-3) determining whether the traversed device or module has only fanout devices:
if only the fanout device is used, the input device is marked and stored for later use;
if not, continuing to execute the step (2-4);
(2-4) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, returning to the step (2-1) to continue the traversal;
if the traversing is finished, the executing step (2-5) is finished;
(2-5) ending.
After the above steps are performed, the inputs and outputs in the netlist are labeled, and the input devices or modules in the netlist are obtained.
As shown in FIG. 9, the module obtained in step (1) is seen as a whole, the netlist is analyzed, and if one device or module has only fanout devices, no fanin devices are labeled as inputs. If one device or module has only fanin devices, no fanout devices, labeled as output. The input devices or modules are device 1, device 3, device 2, device 5, device 6, respectively, and the output devices or modules are device 15, device 16, and device 18, respectively.
(3) Constructing a module according to the device hierarchy relation;
as shown in fig. 5, the specific method for constructing the module according to the device hierarchy relation in the step (3) includes:
(3-1) starting and creating a module a into which the input device or module marked as input in step (2-3) is placed;
(3-2) determining whether the module a has a fanout device or module:
if not, the module A is the last layer module of the netlist, and the executing step (3-5) is finished;
if yes, continuing to execute the step (3-3);
(3-3) creating a module B, placing all fanout devices or modules of said module a;
(3-4) marking the current B module as an A module, returning to the step (3-2), and continuously judging whether the A module has a fanout device or module;
and (3-5) ending to obtain a new netlist.
After the steps are completed, no device which is not added to the module is in the obtained new netlist, only the module is provided, the device and the module exist in the module, and the module in the module is split into the devices.
All input devices or modules are put into the same module as the current module. The fanout device or module of the current module is placed in the new module, and the new module is treated as the current module until the current module has no fanout device or module. After the processing is finished, the module is sleeved in the module, and the module sleeved in the module is split into devices, as shown in fig. 11.
(4) Combining the modules according to the fanout device quantity of the modules;
as shown in fig. 6, the step of merging the modules according to the fanout device number of the modules in step (4) is as follows:
(4-1) obtaining an input device in the netlist, and obtaining a module in which the input device is located, which is denoted as a module A;
(4-2) judging whether the A module has a fanout module:
if the A module has a fanout module, executing the step (4-3);
if the A module does not have the fanout module, the module in the netlist is completely traversed, and the executing step (4-7) is finished;
(4-3) obtaining the fanout device number num1 of the A module as a comparison value;
(4-4) obtaining a fanout module of the A module, which is marked as a B module, and obtaining the fanout device number num2 of the B module;
(4-5) determining whether num1 is greater than num2:
if yes, combining the A module with the B module, taking the A module and the B module as the B module, and executing the step (4-6);
if not, directly performing the step (4-6);
(4-6) taking the B module as the A module, and returning to the step (4-2) for detection;
(4-7) ending to obtain a new netlist.
After the steps are completed, no device which is not added to the module is in the obtained new netlist, only the module is provided, the device and the module exist in the module, and the module in the module is split into the devices.
And obtaining the module where the input device is located as the current processing module. Comparing the quantity of fanout devices of the fanout module of the current module with the quantity of fanout devices of the fanout module of the current module, if the quantity of the fanout devices of the fanout module of the current module is small, combining the fanout module of the current module with the fanout module of the current module, and then continuing to process as the current module; if the fanout device of the current module is less, the fanout module of the current module is treated as the current module continuously until the current module has no fanout module. After the processing is completed, the modules are sleeved in the modules, and the modules in the modules are separated into single devices as shown in fig. 12. The devices in the module also have input/output flags, the input/output flags are cleared, and the resulting module is shown in fig. 13.
(5) Whether to adjust the module size:
if no adjustment is needed, the step (6) is directly carried out;
if the adjustment is needed, the module is adjusted;
as shown in fig. 7: the step (5) is to select whether to adjust the size of the module according to actual requirements:
(5-1) if the module size is selected to be adjusted, two adjacent modules that need to be adjusted are designated, and the next operation is performed: an adjustment module; the modules designated in the step (5-1) are not necessarily the same size, and the purpose of adjusting the modules is to make the two modules equal as much as possible;
(5-2) if the module is selected not to be resized, the whole process is completed.
The step (5-1) is to adjust the modules according to the sizes of the adjacent modules as follows:
(5-1-1) obtaining two adjacent modules designated in (5-1), comparing the sizes of the two modules according to the number of devices contained in the two modules, and marking the smaller module of the two modules as an A module; the larger of the two modules is denoted as the B module; wherein the A module and the B module have the same meaning as the aforementioned meaning, and are all an aggregate of a group of devices;
(5-1-2) determining whether the a module is a fanin module of the B module:
if the module is a fanin module of the B module, the fanout is marked as a searching appointed type;
if the fanin module is not the B module, namely the fanout module of the B module (two adjacent modules only have two cases), the fanin is marked as a search appointed type;
(5-1-3) traversing the search of the A module for devices of the specified type; the search for the specified type is specified in step (5-1-2);
(5-1-4) obtaining the number of the traversed devices and the corresponding devices of the designated type of the search, and executing the step (5-1-5);
(5-1-5) sorting the number of devices obtained in the step (5-1-4) to obtain the device having the smallest number of devices corresponding to the search designation type:
if the number of the devices with the least number of the corresponding devices of the designated type is more, arbitrarily selecting one device, and executing the step (5-1-8);
(5-1-6) moving the obtained device into the A module, and judging whether the A module is larger than the B module:
if the device is larger than the module A, the device moving to the module A is moved back to the module B again, and execution is finished;
if not, returning to the step (5-1-3), and continuously adjusting the sizes of the current A module and the current B module;
(5-1-7) ending, and finishing the adjustment of the designated two adjacent modules;
(5-1-8) after all operations are performed, the netlist is split into target blocks.
After the above steps are performed, the given netlist is split into: several modules with low coupling degree and relatively balanced module size, namely target modules.
(6) And (5) ending.
Two appointed modules are obtained, the sizes of the two modules are compared by comparing the number of devices in the modules, the smaller module is marked as an A module, and the larger module is marked as a B module. As shown in fig. 13, the left module is denoted as the B module, and the right module is denoted as the a module. And then judging the relation between the A module and the B module, taking the adjustment A module as an example, if the A module is a fanin module of the B module, recording and searching the appointed type as fanout, and if the A module is a fanout module of the B module, recording and searching the appointed type as fanin. As shown in fig. 14, in this example, the a module is a small module on the right, the B module is a large module on the left, it can be seen from the figure that the left module drives the right module, the left module is fanin of the right module, the right module is fanout of the left module, and taking the small adjustment module a as an example, the a module is fanout module of the B module, and the search designated type is fanin. Traversing the devices of the designated types in the A module, obtaining the traversed devices and the number of the devices of the designated types in the corresponding search, and obtaining the devices with the minimum number of the devices of the designated types in the corresponding search. As shown in fig. 13, in this example, the number of fanin devices traversing the fanin devices of the a module is the number of devices 12 and 20, and the number of fanin devices corresponding to the devices 12 and 20 is 2 and 1, respectively. It is known that the number of fanin devices corresponding to the device 20 is small, resulting in the device 20. Moving the obtained device into a B module, judging the sizes of the A module and the B module after the change, and if the A module is still smaller than the B module, continuing to traverse the device of the designated type searched by the A module until the A module is larger than the B module; if the module A is larger than the module B, the last device to be moved is moved back to the module A, execution is ended, and the adjusted module is as shown in FIG. 14.

Claims (1)

1. A design splitting method of high efficiency low coupling based on multiple fanout logic, comprising:
(1) Starting and constructing a module according to the multiple fanout devices;
(2) Analyzing the input and output of the netlist;
(3) Constructing a module according to the device hierarchy relation;
(4) Combining the modules according to the fanout device quantity of the modules;
(5) Whether to adjust the module size:
if no adjustment is needed, the step (6) is directly carried out;
if the adjustment is needed, the module is adjusted;
(6) Ending;
the specific method for constructing the module according to the multi-fanout device in the step (1) comprises the following steps:
(1-1) starting and traversing each device in the netlist to obtain traversed devices;
(1-2) determining whether the obtained device has a plurality of fanout devices:
if the device has only one fanout device, continuing to traverse the rest devices in the netlist;
if the device has a plurality of fanout devices, continuing to perform the step (1-3);
(1-3) determining whether a device having a plurality of fanout has been added to the module:
if the device is added to the module, acquiring the module where the current device is located;
if the device is not added to the module, a new module is constructed, and the current device is added to the constructed new module;
(1-4) adding the fanout device of the current device to the module in which the current device is located;
(1-5) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, continuing the traversal;
if the traversing is finished, executing the step (1-6);
(1-6) ending to obtain a new netlist;
the specific steps of analyzing the inputs and outputs of the netlist for step (2) are as follows:
(2-1) traversing each device or module in the netlist to obtain traversed devices or modules;
(2-2) determining whether the traversed device or module has only fanin devices:
if only fanin devices, then the flag is output;
if not, continuing to execute the step (2-3);
(2-3) determining whether the traversed device or module has only fanout devices:
if only the fanout device is used, the input device is marked and stored for later use;
if not, continuing to execute the step (2-4);
(2-4) checking whether all devices in the netlist have been traversed:
if the traversal is not completed, returning to the step (2-1) to continue the traversal;
if the traversing is finished, the executing step (2-5) is finished;
(2-5) ending;
the specific method for constructing the module according to the device hierarchy relation in the step (3) comprises the following steps:
(3-1) starting and creating a module a into which the input device or module marked as input in step (2-3) is placed;
(3-2) determining whether the module a has a fanout device or module:
if not, the module A is the last layer module of the netlist, and the executing step (3-5) is finished;
if yes, continuing to execute the step (3-3);
(3-3) creating a module B, placing all fanout devices or modules of said module a;
(3-4) marking the current B module as an A module, returning to the step (3-2), and continuously judging whether the A module has a fanout device or module;
(3-5) ending to obtain a new netlist;
the step of merging the modules according to the fanout device number of the modules in the step (4) is as follows:
(4-1) obtaining an input device in the netlist, and obtaining a module in which the input device is located, which is denoted as a module A;
(4-2) judging whether the A module has a fanout module:
if the A module has a fanout module, executing the step (4-3);
if the A module does not have the fanout module, the step (4-7) is executed to finish;
(4-3) obtaining the fanout device number num1 of the A module as a comparison value;
(4-4) obtaining a fanout module of the A module, which is marked as a B module, and obtaining the fanout device number num2 of the B module;
(4-5) determining whether num1 is greater than num2:
if yes, combining the A module with the B module, taking the A module and the B module as the B module, and executing the step (4-6);
if not, directly performing the step (4-6);
(4-6) taking the B module as the A module, and returning to the step (4-2) for detection;
(4-7) ending to obtain a new netlist;
the step (5) is to select whether to adjust the size of the module according to actual requirements:
(5-1) if the module size is selected to be adjusted, two adjacent modules that need to be adjusted are designated, and the next operation is performed: an adjustment module;
(5-2) if the size of the module is not selected to be adjusted, finishing the whole process;
the step (5-1) is to adjust the modules according to the sizes of the adjacent modules as follows:
(5-1-1) obtaining two adjacent modules designated in (5-1), comparing the sizes of the two modules according to the number of devices contained in the two modules, and marking the smaller module of the two modules as an A module; the larger of the two modules is denoted as the B module;
(5-1-2) determining whether the a module is a fanin module of the B module:
if the module is a fanin module of the B module, the fanout is marked as a searching appointed type;
if the fan module is not the fan module of the B module, namely the fan module of the B module, the fan is marked as a search appointed type;
(5-1-3) traversing the search of the A module for devices of the specified type; the search for the specified type is specified in step (5-1-2);
(5-1-4) obtaining the number of the traversed devices and the corresponding devices of the designated type of the search, and executing the step (5-1-5);
(5-1-5) sorting the number of devices obtained in the step (5-1-4) to obtain the device having the smallest number of devices corresponding to the search designation type:
if the number of the devices with the least number of the corresponding devices of the designated type is more, arbitrarily selecting one device, and executing the step (5-1-8);
(5-1-6) moving the obtained device into the A module, and judging whether the A module is larger than the B module:
if the device is larger than the module A, the device moving to the module A is moved back to the module B again, and execution is finished;
if not, returning to the step (5-1-3), and continuously adjusting the sizes of the current A module and the current B module;
(5-1-7) ending, and finishing the adjustment of the designated two adjacent modules;
(5-1-8) after all operations are performed, the netlist is split into target blocks.
CN202310120421.7A 2023-02-16 2023-02-16 Design splitting method for high-efficiency low coupling based on multiple fanout logic Active CN115859886B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310120421.7A CN115859886B (en) 2023-02-16 2023-02-16 Design splitting method for high-efficiency low coupling based on multiple fanout logic

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310120421.7A CN115859886B (en) 2023-02-16 2023-02-16 Design splitting method for high-efficiency low coupling based on multiple fanout logic

Publications (2)

Publication Number Publication Date
CN115859886A CN115859886A (en) 2023-03-28
CN115859886B true CN115859886B (en) 2023-05-09

Family

ID=85658143

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310120421.7A Active CN115859886B (en) 2023-02-16 2023-02-16 Design splitting method for high-efficiency low coupling based on multiple fanout logic

Country Status (1)

Country Link
CN (1) CN115859886B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113128149A (en) * 2021-04-21 2021-07-16 无锡中微亿芯有限公司 Power consumption-based netlist partitioning method for multi-die FPGA
CN114330174A (en) * 2021-11-18 2022-04-12 国微集团(深圳)有限公司 Parallel RTL (real time language) comprehensive method based on multi-FPGA (field programmable gate array) system and storage medium

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8104000B2 (en) * 2008-10-27 2012-01-24 Synopsys, Inc. Method and apparatus for memory abstraction and for word level net list reduction and verification using same
CN105404728B (en) * 2015-11-03 2018-12-21 京微雅格(北京)科技有限公司 A kind of layout method more controlling signal based on fpga chip
CN106326553B (en) * 2016-08-23 2019-09-06 西安空间无线电技术研究所 A kind of distributed signal topological relation construction method for propagating analysis for single-particle soft error failure
CN110046394B (en) * 2019-03-20 2019-12-27 广东高云半导体科技股份有限公司 Integrated circuit network table generating method and device, computer equipment and storage medium
CN111177991B (en) * 2019-12-27 2022-08-19 广东高云半导体科技股份有限公司 Method, device and system for realizing fan-out optimization in FPGA (field programmable Gate array) logic synthesis
CN112527505B (en) * 2020-12-18 2021-11-26 广东高云半导体科技股份有限公司 Multithreading comprehensive control method and device
CN113128150A (en) * 2021-04-21 2021-07-16 无锡中微亿芯有限公司 Clock domain-based netlist partitioning method for multi-die FPGA
CN115048893A (en) * 2022-06-27 2022-09-13 无锡中微亿芯有限公司 FPGA layout method for simplifying layout by modifying netlist

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113128149A (en) * 2021-04-21 2021-07-16 无锡中微亿芯有限公司 Power consumption-based netlist partitioning method for multi-die FPGA
CN114330174A (en) * 2021-11-18 2022-04-12 国微集团(深圳)有限公司 Parallel RTL (real time language) comprehensive method based on multi-FPGA (field programmable gate array) system and storage medium

Also Published As

Publication number Publication date
CN115859886A (en) 2023-03-28

Similar Documents

Publication Publication Date Title
Chaudhary et al. A near optimal algorithm for technology mapping minimizing area under delay constraints
US20190303762A1 (en) Methods of optimization of computational graphs of neural networks
US6421815B1 (en) Method and apparatus for optimized partitioning of finite state machines synthesized from hierarchical high-level descriptions
CN102915299B (en) Word segmentation method and device
US5991524A (en) Cluster determination for circuit implementation
CN101308496A (en) Large scale text data external clustering method and system
Tan et al. Elastic bands across the path: A new framework and method to lower bound DTW
Chaudhary et al. Computing the area versus delay trade-off curves in technology mapping
US6543037B1 (en) Delay estimation for restructuring the technology independent circuit
Bo et al. Entity resolution acceleration using Micron’s Automata Processor
CN115859886B (en) Design splitting method for high-efficiency low coupling based on multiple fanout logic
US20120005643A1 (en) System and Method for Placing Integrated Circuit Functional Blocks According to Dataflow Width
US20110022906A1 (en) Method and system for test point insertion
US6438730B1 (en) RTL code optimization for resource sharing structures
CN116628136A (en) Collaborative query processing method, system and electronic equipment based on declarative reasoning
CN109684761B (en) Wide exclusive nor circuit optimization method
KR102325249B1 (en) Method for providing enhanced search result by fusioning passage-based and document-based information retrievals
US20150379175A1 (en) Ic design synthesis using slack diagrams
CN107391250B (en) Controller scheduling method for improving performance of Mapreduce task Shuffle
KR100993297B1 (en) A Preprocessing Method for Panel Code using CATIA
US7100125B2 (en) Aggressor classification method for analyzing crosstalk of circuit
Sklyarov et al. Hardware accelerators for information retrieval and data mining
JP2877087B2 (en) Logic synthesis method and logic synthesis device using similar partial circuit extraction
US6463572B1 (en) IC timing analysis with known false paths
Ashar et al. Implicit state transition graphs: Applications to sequential logic synthesis and test

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