CN114781316B - Networking layout method, device, equipment and storage medium - Google Patents
Networking layout method, device, equipment and storage medium Download PDFInfo
- Publication number
- CN114781316B CN114781316B CN202210701089.9A CN202210701089A CN114781316B CN 114781316 B CN114781316 B CN 114781316B CN 202210701089 A CN202210701089 A CN 202210701089A CN 114781316 B CN114781316 B CN 114781316B
- Authority
- CN
- China
- Prior art keywords
- networking
- layout
- logic
- segmentation
- segmentation result
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/392—Floor-planning or layout, e.g. partitioning or placement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/39—Circuit design at the physical level
- G06F30/398—Design verification or optimisation, e.g. using design rule check [DRC], layout versus schematics [LVS] or finite element methods [FEM]
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)
- Architecture (AREA)
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
The invention provides a networking layout method, a networking layout device, networking layout equipment and a storage medium, which belong to the field of integrated circuit chip design, wherein the networking layout method comprises the steps of carrying out networking segmentation on a design file according to a networking file to obtain a networking segmentation result, wherein the networking segmentation result is used for describing corresponding distribution positions, logical groups and connection relations among nodes of a hypergraph in a logical array system; acquiring physical networking data of the logic array; distributing each logic group in the networking segmentation result based on the physical networking data to obtain at least one first layout; and setting the first layout with the minimum interconnection cost as a final layout. Through the processing scheme, the number of transfer routing paths, interconnection cost and communication delay are reduced, and the communication efficiency of the verification system is improved, so that the verification frequency is improved, and the verification process is accelerated.
Description
Technical Field
The invention relates to the field of integrated circuit chip design, in particular to a networking layout method, a networking layout device, networking layout equipment and a storage medium.
Background
When the resource consumed by the user chip design logic is larger than the upper limit of one editable logic device (FPGA), the user chip design needs to be divided into a plurality of parts, each part is called a logic group, each logic group is allocated to a corresponding FPGA, and the groups communicate with each other through the physical interconnection lines between the FPGAs. In the existing segmentation process, a user chip design is directly segmented into N groups, and then the N groups are randomly distributed to a networking of verification systems of M logic arrays. If the logic connection (communication signal) between the groups does not have direct physical connection, the path of the logic signal is adjusted, so that the logic signal is subjected to route transfer through other intermediate FPGAs. This may cause a large number of logical packets having external connection relations to be allocated to an edge of the networking topology, which is equivalent to a connection critical packet and a connection hot-spot packet, to be allocated to an edge zone, such as an edge of a matrix-type authentication array, which not only generates more routing relays and needs to span more interconnect lines, thereby increasing interconnection costs and increasing signal transmission delay, but also causes low communication efficiency, for example, other packets connected thereto need to communicate for a long distance to reach the edge, and then retrieve the signal processing result from the edge. Moreover, the loose arrangement method may occupy more FPGAs, and the edge zone of the system array needs to perform signal routing through the transit FPGA, and the transit path occupies the FPGA that should not be used, which not only increases unnecessary device loss, but also causes resource waste.
Disclosure of Invention
Therefore, in order to overcome the disadvantages of the prior art, the invention provides a networking layout method, a networking layout device, networking layout equipment and a networking layout storage medium, wherein the number of transit routing paths, interconnection cost and communication delay are reduced, and the communication efficiency of a verification system is improved, so that the verification frequency is improved, and the verification process is accelerated.
In order to achieve the above object, the present invention provides a networking layout method, comprising: networking and segmenting the design file according to the networking file to obtain a networking and segmenting result, wherein the networking and segmenting result is used for describing corresponding distribution positions of the hypergraph nodes in the logic array system and the connection relation between the hypergraph nodes and each other; acquiring physical networking data of the logic array; distributing each logic group in the networking segmentation result based on the physical networking data to obtain at least one first layout; and setting the first layout with the minimum interconnection cost as a final layout.
In one embodiment, the allocating each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes: respectively setting each logic group in the networking segmentation result as a first layout node; traversing the rest of the logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
In one embodiment, the allocating each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes: traversing all nodes, and taking the logic group with the largest selection value as a first layout node; determining the layout sequence of the logic groups of different levels according to the breadth-first access sequence; and distributing the logic groups based on the physical networking data and the layout sequence to obtain a first layout.
In one embodiment, the performing networking segmentation on the design file according to the networking file to obtain a networking segmentation result includes: performing networking segmentation on the design file according to the networking file to obtain a first segmentation result and a corresponding first segmentation negative influence function value; clustering the first segmentation result; performing node position theoretical adjustment on hypergraph nodes in each logic grouping in the clustered first segmentation result, calculating a segmentation negative influence function value after each adjustment, determining a minimum negative influence function value and actually adjusting the node positions in the logic grouping; re-clustering and iterating the previous operation until the reduction value with the minimum negative influence function value of the adjusted segmentation does not exceed the preset threshold value, and obtaining the networking segmentation result according to the logic grouping at the moment.
A networking arrangement comprising:
the networking segmentation module is used for performing networking segmentation on the design file according to the networking file to obtain a networking segmentation result, and the networking segmentation result is used for describing corresponding distribution positions, logic groups and connection relations among the corresponding distribution positions, logic groups and the logic groups of the hypergraph nodes in the logic array system; the physical data acquisition module is used for acquiring physical networking data of the logic array; the distribution module is used for distributing all logic groups in the networking segmentation result based on the physical networking data to obtain at least one first layout; and the layout module is used for setting the first layout with the minimum interconnection cost as a final layout.
A computer device comprising a memory and a processor, the memory storing a computer program, characterized in that the processor realizes the steps of the above method when executing the computer program.
A computer-readable storage medium, on which a computer program is stored which, when being executed by a processor, carries out the steps of the above-mentioned method.
Compared with the prior art, the invention has the advantages that: the connection relation between the physical networking data and the logic grouping of the networking file is combined, the layout with the minimum interconnection cost is generated, the number of transfer routing paths, the interconnection cost and the communication delay are reduced, and the communication efficiency of the verification system is improved, so that the verification frequency is improved, and the verification process is accelerated; meanwhile, the layout of the logic grouping is more compact and concentrated, the use number of logic arrays is saved, and the resource use efficiency is improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present application, the drawings required to be used in the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present application, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
Fig. 1 is a flow chart of a networking layout method in an embodiment of the invention;
FIG. 2 is a schematic diagram of logical groupings in an embodiment of the present invention;
FIG. 3 is a schematic diagram of an editable logic array in an embodiment of the invention;
FIG. 4 is a flow diagram of a networking arrangement in an embodiment of the invention;
FIG. 5 is a schematic illustration of the results of a logical grouping layout in an embodiment of the invention;
FIG. 6 is a flow diagram illustrating networking segmentation in an embodiment of the invention;
fig. 7 is a block diagram of a networking layout apparatus in an embodiment of the present invention;
fig. 8 is an internal structural diagram of a computer device in an embodiment of the present invention.
Detailed Description
The embodiments of the present application will be described in detail below with reference to the accompanying drawings.
The following description of the embodiments of the present application is provided by way of specific examples, and other advantages and effects of the present application will be readily apparent to those skilled in the art from the disclosure herein. It should be apparent that the described embodiments are only a few embodiments of the present application, and not all embodiments. The present application is capable of other and different embodiments and its several details are capable of modifications and/or changes in various respects, all without departing from the spirit of the present application. It is to be noted that the features in the following embodiments and examples may be combined with each other without conflict. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present application.
It is noted that various aspects of the embodiments are described below within the scope of the appended claims. It should be apparent that the aspects described herein may be embodied in a wide variety of forms and that any specific structure and/or function described herein is merely illustrative. Based on the present application, one skilled in the art should appreciate that one aspect described herein may be implemented independently of any other aspects and that two or more of these aspects may be combined in various ways. For example, an apparatus may be implemented and/or a method practiced using any number and aspects set forth herein. Additionally, such an apparatus may be implemented and/or such a method may be practiced using other structure and/or functionality in addition to one or more of the aspects set forth herein.
It should be noted that the drawings provided in the following embodiments are only for illustrating the basic idea of the present application, and the drawings only show the components related to the present application rather than the number, shape and size of the components in actual implementation, and the type, amount and ratio of the components in actual implementation may be changed arbitrarily, and the layout of the components may be more complicated.
In addition, in the following description, specific details are provided to facilitate a thorough understanding of the examples. However, it will be understood by those skilled in the art that the aspects may be practiced without these specific details.
As shown in fig. 1, an embodiment of the present application provides a networking layout method, which may be applied to a terminal or a server, where the terminal may be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, and portable smart devices, and the server may be implemented by an independent server or a server cluster formed by multiple servers, where the method includes the following steps:
And the server performs networking segmentation on the design file according to the networking file. The networking file is used for describing hardware resource information of the verification system, and may include the number of arrays of the editable logic devices, a topology structure between the editable logic devices, resource capacity and interconnection relationship of each editable logic device, and the like. The networking division number is N, the hardware resource information comprises the total number M of the editable logic devices, a layout topological structure among the editable logic devices, interconnection line connection relation and the like, wherein M is larger than or equal to N. The logic grouping refers to a set of hypergraph nodes distributed on a certain FPGA, the logic grouping is a set of a plurality of hypergraph nodes, a plurality of hypergraph nodes are arranged in one logic grouping, and the connection weight between the two logic groupings is the sum of connections of the hypergraph nodes between the two hypergraph node sets.
The server may generate a networking layout file from the design file. The networking layout file may be a combination of the networking file and the layout file. The layout file contains a layout of logical groupings on the editable logical array. The design file is used for describing the structure of each circuit node of the circuit system and the connection relation between the circuit nodes. The design file contains a plurality of logic program blocks (modules), nesting or parallel relation exists among the logic program blocks, and each logic program block corresponds to each circuit node of the circuit system. A circuit node may be one or more electronic components. The design file can be a format file such as Verilog, vhdl, systemVerilog and the like; the netlist is a mesh data structure formed by RTL after RTL logic synthesis, the design logic of a user is also described, and the RTL or netlist design forms a syntax tree diagram in a memory through a syntax parser. The RTL may be converted to a netlist by a logic synthesis process. The RTL and the netlist both have a hierarchical nested structure and both have logic program blocks containing logic functions, communication signals are arranged between the logic program blocks, and the signals can also pass through the logic program blocks to be transmitted into the logic program blocks. Thus, the server can convert the design file into a hypergraph structure through modeling and abstraction; and then, networking and segmenting the design file according to the networking file to obtain a networking segmentation result.
And 102, acquiring physical networking data of the logic array.
And the server acquires the physical networking data of the logic array from the hardware resource information. The physical networking data is the topology structure between the editable logic devices, the resource capacity and interconnection relationship of each editable logic device, and the like.
And 103, distributing each logic group in the networking division result based on physical networking data to obtain at least one first layout.
The server distributes each logic group in the networking segmentation result based on the physical networking data to obtain at least one first layout. The server determines the placement order of the logical groups, i.e., which logical group is assigned first. For example, when a hypergraph structure of a design file after hypergraph modeling is shown in fig. 2, nodes represent logical groups, connection lines between the nodes represent communication relationships between the logical groups, and connection weights represent communication traffic volumes. The design file of fig. 2 is laid out in a matrix type FPGA array as shown in fig. 3. The server can determine the layout sequence of the nodes in different levels according to the breadth-first access sequence, and determine the access sequence in the nodes on the same layer searched by the breadth-first according to the sequence of the edge weights from large to small. Then, the server puts the logic groups into the center of the matrix, and then carries out layout in sequence according to the determined access sequence to obtain at least one first layout.
And step 104, setting the first layout with the minimum interconnection cost as a final layout.
The server sets the first layout with the minimum interconnection cost as the final layout. The interconnection cost is the number of times the edge weight crosses the logic array boundary times the edge weight, while the route distance is the manhattan distance of the direct turn, since there is only a physical interconnection line between adjacent logic arrays in the matrix.
According to the method, the layout with the minimum interconnection cost is generated by combining the connection relation between the physical networking data and the logic grouping of the networking file, the number of transfer routing paths, the interconnection cost and the communication delay are reduced, and the communication efficiency of the verification system is improved, so that the verification frequency is improved, and the verification process is accelerated; meanwhile, the layout of the logic grouping is more compact and concentrated, the use number of logic arrays is saved, and the resource use efficiency is improved.
In one embodiment, the allocating each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes: respectively setting each logic group in the networking segmentation result as a first layout node; and traversing the rest of logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
The server sets each logic group in the networking segmentation result as a first layout node respectively; and traversing the rest of logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts. Therefore, in this embodiment, the server generates a corresponding first layout according to each logical grouping, so as to perform the subsequent computational verification of the interconnection cost.
As shown in fig. 4, in one embodiment, the allocating each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes:
and step 401, traversing all nodes, and taking the logic group with the largest selection value as a first layout node.
And traversing all the nodes by the server, and taking the logic group with the maximum selection value as a first layout node. The selection value refers to the number of external connecting lines of the hypergraph node. Taking fig. 2 as an example, the selectivity value of node D is 4, and node D is the first layout node.
And step 402, determining the layout sequence of the logic groups of different levels according to the breadth-first access sequence.
And the server determines the layout sequence of the logic groups of different layers according to the breadth-first access sequence. The server determines the layout sequence of nodes in different levels according to the breadth-first access sequence by taking the point D as a starting point, determines the access sequence in the breadth-first searched nodes in the same level according to the order of the edge weights from large to small (because the interconnection cost possibly caused by the large edge weight is large, placing the corresponding nodes is beneficial to reducing the interconnection cost and reducing extra FPGA crossing connecting lines caused by position preemption/limitation), and the access sequences are respectively E, B, C, G, F and A.
Based on the rectangular logic array matrix with the side length of 4 × 3 in fig. 3, the server firstly puts the first layout node D in the center of the matrix, and then performs layout according to E, B, C, G, F and a in sequence. Specifically, the server refers to a first access circle, where the server is connected with other nodes in a distance order according to a breadth-first access order, that is, according to a distance order in which a certain point is used as a starting point, such as D, and if the point D walks over an edge once, the point B, C, E, and G can be reached; starting from any point of B, C, E and G, and walking once again to reach all points of a second access circle; if a point can be contained from different paths by multiple access circles, then the smallest access circle is taken as the criterion. Then, the server randomly selects one of the regions with 3 same costs that B can select according to the access order, and gradually follows the access order until the last node. Thus in the figure, the server may obtain at least one first layout centred on node D.
In one embodiment, when the nodes are placed in step 403, the principle of "finding the position where the interconnection cost generated by the new nodes to be allocated and the placed nodes in the matrix is the minimum" may also be followed, and then the final initial placement and routing result is fig. 5. When placing G, the selectable area of G is unique, otherwise placing any other unoccupied location will result in a greater interconnection cost with the placed node. When E, B, C are assigned in order, then G is assigned: the step G is tried to be allocated to any FPGA which is not allocated yet, for example, the second FPGA in the first row in FIG. 5, and the interconnection cost generated with the existing layout nodes is 4+1=9; g if allocated to the upper left corner, the resulting interconnection cost is 4+1+1=6; and if the G is placed at other positions, the positions with interconnection cost less than 6 can not be found, the allocation positions of all the G are the upper left corners and the configuration is completed, and a new existing layout state is formed with the existing nodes in the matrix and is named as state _ G temporarily. When the subsequent node A to be allocated is allocated, the node A attempts to select the position with the minimum interconnection cost on other unallocated FPGAs in the state _ G.
Moreover, a right-angle path between the white node G and the node D is also called a transit path, a formed distance is called a manhattan distance, and an FPGA (FPGA where G is located) between the white node G and the node D, which completes a connection transit, is called a transit FPGA between the GD. As shown in fig. 5, the three FPGAs on the right side are not used, and if all nodes are arranged according to random positions, it is very likely to form a dispersed arrangement, at that time, the relay connection line has to pass through the FPGAs that should not be used, and the FPGAs that should not be used are added into the verification system due to relay, which causes waste of system hardware resources.
As shown in fig. 6, in an embodiment, the networking and segmenting the design file according to the networking file to obtain a networking and segmenting result includes:
And the server performs initial segmentation on the design file according to the hardware resource information in the networking file to obtain an initial segmentation result and a corresponding initial segmentation negative influence function value. And the server reads in the design file, performs initial segmentation on the design file according to the hardware resource information and the minimum segmentation principle to obtain an initial segmentation result, and calculates a segmentation negative influence function value Bad _ mul of the initial segmentation result. And the server generates a segmentation result variable Group _ var, wherein the segmentation result variable Group _ var describes the corresponding distribution positions of the hypergraph nodes in the logic array system, the connection relation among the hypergraph nodes and the corresponding segmentation negative influence function values. The set of all the segmentation result variables Group _ var constitutes the initial segmentation result.
And clustering the initial segmentation result by the server. The server can cluster a plurality of small nodes which are tightly connected into a large node according to the connection relation tightness degree of each node, the weight of the large node is the sum of the weights of the small nodes, the external connection relation of the large node inherits the external connection relation of all the small nodes, and the connection relation between the small nodes and the internal connection relation of the small nodes is hidden, so that the node packaging and clustering operation is realized.
And the server carries out node position theoretical adjustment on each logic grouping in the clustered initial segmentation result, calculates the segmentation negative influence function value after each adjustment, determines the minimum negative influence function value and actually adjusts the node position in the logic grouping. Assuming that the number of the clustered nodes is N, and numbering the nodes from 1 to N in sequence; the number of logic arrays of the verification system is M, and the logic arrays are numbered from 1 to M in sequence. M queue structures are created, each queue structure having a length of N. Starting from the node 1, keeping the positions of other nodes unchanged, sequentially trying to allocate the node 1 in a 1 st block of logic array and a 2 nd block of logic array, \8230, until the position of other nodes in an M block of logic array is kept unchanged, dispersing large nodes after each allocation, calculating a negative impact function value Bad _ mul of the allocation attempt, and storing the value in a first position of a corresponding queue, wherein if the node 1 is tried to be allocated in an x block of logic array, the function value is stored in a 1 st position of the x block of logic array; if the node with the number e attempts to be allocated in the x-th block logic array, the function value is stored in the e-th position of the x-th block logic array. That is, the node's sequence number represents its position in the queue, and the logical array position that the node attempts to assign represents its position in the queue. According to the method, position adjustment is tried on each node from 1 to N, the correspondingly adjusted negative influence function value Bad _ mul is stored in a queue, and in the process of trying to distribute a certain node, other nodes keep the position unchanged. The scatter operation is the inverse operation of the clustering operation in step 302, that is, the large node is restored to the form of the small node set, so as to facilitate the calculation of the negative impact function value.
When the server determines the minimum negative impact function value and actually adjusts the node position in the logical grouping. Taking the minimum value of all elements in the M queues, and if the minimum value is larger than the negative influence function value of the initial segmentation in the Group _ var, terminating the flow; otherwise, continuing. For example, if the jth element of the ith queue is the minimum, the optimal operation in this iteration may be determined as: and moving the jth large node to the ith logic array. And the server updates the segmentation result variable obtained after the logic grouping adjustment into a Group _ var.
And step 604, re-clustering and iterating the previous operation until the reduction value with the minimum segmentation negative influence function value after adjustment does not exceed a preset threshold value, and obtaining a networking segmentation result according to the logic grouping at the moment.
And re-clustering the servers, and iterating the previous operation until the reduction value with the minimum function value of the adjusted segmentation negative influence does not exceed a preset threshold value, and obtaining an optimized networking segmentation result according to the logic grouping at the moment.
According to the method, the version with better performance is obtained step by means of node clustering and dispersion and continuous adjustment of positions to optimize the segmentation result.
In one embodiment, the segmentation negative impact function value Bad _ mul may represent the magnitude of the negative impact on the verification system from the perspective of different segmentation method principles. Bad _ mul = k1, bad _ ffd + k2, bad _ clk + k3, bad _ delay + k4, bad _ tdm +/8230, + kn Bad _
Bad _ mul can refer to overall negative influence, which includes user-specifiable configuration influencing factors Bad _ and corresponding influencing system kn, and the influencing factors should keep the principle and the segmentation target isolated and independent from each other as much as possible, so as to avoid errors introduced by repeated analysis.
Wherein Bad _ ffd is a cutting strategy influence value based on the register distribution position. In a digital logic circuit designed by a user, a plurality of registers are usually arranged, data are regularly and periodically transferred among the registers under a clock with a certain beat, in one clock cycle, the data have a certain preparation time to achieve the cooperative work of a circuit system, paths with less combinational logic exist among the registers, the data waiting interval is larger, and the paths can be cut on the paths to utilize the interval redundancy. The calculation method of Bad _ ffd is as follows: identifying logic in user design, screening paths between register pairs, and calculating delay generated by combinational logic on the paths between the register pairs; traversing and listing the cut path, namely crossing the path between the logic arrays, and summing the delays generated by the combinational logic passing through the path to obtain Bad _ ffd.
Bad _ clk is a clock domain based cut policy impact value. If the areas are cut, i.e. a large delay is added in the clock domain, the delay is transferred to the logic circuit which receives and uses the clock domain to output clock signals, so that the limitation to the system frequency is caused, and therefore, the cutting method protects the clock domain, i.e. the clock domain is not cut. The calculation method of Bad _ clk comprises the following steps: identifying all clock domains, and defining the importance weight of each clock domain according to the range covered by the clock signal output by the clock domain; and traversing the cutting times of each clock domain, cutting the clock domain once, and accumulating the weight value of the corresponding clock domain by the aid of the Bad _ clk.
Bad _ delay is a partitioning policy impact value based on a timing analysis critical path. The segmentation method takes the time sequence performance as an optimization target, carries out advanced time sequence analysis on user design logic before segmentation, and identifies a critical path, namely a circuit path with higher requirements on key and time in a digital circuit, wherein if excessive time delay is introduced into the path of the type, the working frequency of the whole system is influenced. The partitioning method needs to allocate the critical path to the logic array as much as possible to avoid being partitioned. The calculation method of Bad _ delay comprises the following steps: firstly, carrying out static Time sequence analysis on a user logic circuit to obtain a margin value (Slack) of a Setup Time (Setup Time) and a Hold Time (Hold Time) of each Time sequence path; dividing the time sequence path into a critical path and a non-critical path according to a preset margin threshold, wherein the margin of the critical path is smaller than the threshold; all the cut critical paths are counted (namely the paths cross the logic array), and the cable delay generated by crossing the logic array is calculated and accumulated to obtain Bad delay.
Bad _ TDM is a TDM-based cutting strategy impact value. TDM is a time division multiplexing device, actually an IP core capable of performing serial-to-parallel conversion, running in a logic array with user design. The occurrence of the method is to solve the bottleneck that the number of physical cables between logic arrays is limited, parallel-parallel serial connection is carried out on signals needing to be transmitted between the logic arrays before transmission, and serial-parallel operation is carried out after the signals reach a target FPGA through interconnection lines to separate the signals. The time division multiplexing ratio, i.e. how many signals share a cable, often determines the operating frequency of the whole system, the local maximum time division multiplexing ratio will cause the local maximum delay, and the local maximum delay determines the highest operating frequency of the whole system. The calculation method of Bad _ tdm is as follows: and calculating the number of logic signals and the number of actual physical cables which need to be transmitted through the interconnection line between each pair of logic arrays by combining networking information, dividing the number of the logic signals by the number of the actual physical cables to obtain a TDM Ratio, and taking the maximum Ratio between the pairs of logic arrays as Bad _ TDM.
In one embodiment, as shown in fig. 7, a networking layout apparatus is provided, and the apparatus includes a networking partitioning module 701, a physical data obtaining module 702, an allocating module 703 and a layout module 704.
And the networking segmentation module 701 is used for performing networking segmentation on the design file according to the networking file to obtain a networking segmentation result, and the networking segmentation result is used for describing corresponding distribution positions, logic groups and connection relations among the hypergraph nodes in the logic array system.
A physical data obtaining module 702, configured to obtain physical networking data of the logical array.
An allocating module 703 is configured to allocate each logical grouping in the networking segmentation result based on the physical networking data, so as to obtain at least one first layout.
And a layout module 704, configured to set the first layout with the smallest interconnection cost as the final layout.
In one embodiment, the assignment module includes:
and a first node setting unit, configured to set each logical grouping in the networking division result as a first layout node.
And the layout unit is used for traversing the remaining logic groups according to the breadth first and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
In one embodiment, the assignment module includes:
and the first node setting unit is used for traversing all the nodes and taking the logic group with the maximum selection value as a first layout node.
And the sequence determining unit is used for determining the layout sequence of the logic groups of different layers according to the breadth-first access sequence.
And the layout unit is used for distributing the logic grouping based on the physical networking data and the layout sequence to obtain a first layout.
In one embodiment, the networking split module includes:
and the segmentation unit is used for performing networking segmentation on the design file according to the networking file to obtain a first segmentation result and a corresponding first segmentation negative influence function value.
And the clustering unit is used for clustering the first segmentation result.
And the adjusting unit is used for carrying out node position theoretical adjustment on the hypergraph nodes in each logic grouping in the clustered first segmentation result, calculating the segmentation negative influence function value after each adjustment, determining the minimum negative influence function value and actually adjusting the node positions in the logic grouping.
And the iteration unit is used for re-clustering and iterating the previous operation until the reduction value with the minimum segmentation negative influence function value after adjustment does not exceed a preset threshold value, and obtaining a networking segmentation result according to the logic grouping at the moment.
For specific definition of the networking layout device, reference may be made to the above definition of the networking layout method, which is not described herein again. All or part of each module in the networking layout device can be realized by software, hardware and a combination thereof. The modules can be embedded in a hardware form or independent from a processor in the computer device, and can also be stored in a memory in the computer device in a software form, so that the processor can call and execute operations corresponding to the modules.
In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as shown in fig. 8. The computer device includes a processor, a memory, a network interface, and a database connected by a system bus. Wherein the processor of the computer device is configured to provide computing and control capabilities. The memory of the computer device comprises a nonvolatile storage medium and an internal memory. The non-volatile storage medium stores an operating system, a computer program, and a database. The internal memory provides an environment for the operation of an operating system and computer programs in the non-volatile storage medium. The database of the computer device is used for storing data such as networking files and the like. The network interface of the computer device is used for communicating with an external terminal through a network connection. The computer program is executed by a processor to implement a method of networking.
It will be appreciated by those skilled in the art that the configuration shown in fig. 8 is a block diagram of only a portion of the configuration associated with the present application, and is not intended to limit the computing device to which the present application may be applied, and that a particular computing device may include more or less components than those shown, or may combine certain components, or have a different arrangement of components.
In one embodiment, there is provided a computer device comprising a memory storing a computer program and a processor implementing the following steps when the processor executes the computer program: networking and segmenting the design file according to the networking file to obtain a networking and segmenting result, wherein the networking and segmenting result is used for describing corresponding distribution positions of the hypergraph nodes in the logic array system and the connection relation between the hypergraph nodes and each other; acquiring physical networking data of the logic array; distributing each logic group in the networking segmentation result based on physical networking data to obtain at least one first layout; and setting the first layout with the minimum interconnection cost as the final layout.
In one embodiment, the allocating, by the processor when executing the computer program, each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes: respectively setting each logic group in the networking segmentation result as a first layout node; and traversing the rest of logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
In one embodiment, the allocating, by the processor when executing the computer program, each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout includes: traversing all nodes, and taking the logic group with the largest selection value as a first layout node; determining the layout sequence of the logic groups of different levels according to the breadth-first access sequence; and distributing the logic groups based on the physical networking data and the layout sequence to obtain a first layout.
In one embodiment, the performing, by a processor executing a computer program, networking segmentation on a design file according to a networking file to obtain a networking segmentation result includes: performing networking segmentation on the design file according to the networking file to obtain a first segmentation result and a corresponding first segmentation negative influence function value; clustering the first segmentation result; performing node position theoretical adjustment on hypergraph nodes in each logic grouping in the clustered first segmentation result, calculating a segmentation negative influence function value after each adjustment, determining a minimum negative influence function value and actually adjusting the node positions in the logic grouping; re-clustering and iterating the previous operation until the reduction value with the minimum negative influence function value of the adjusted segmentation does not exceed the preset threshold value, and obtaining the networking segmentation result according to the logic grouping at the moment.
In one embodiment, a computer-readable storage medium is provided, having a computer program stored thereon, which when executed by a processor, performs the steps of: networking and segmenting the design file according to the networking file to obtain a networking segmentation result, wherein the networking segmentation result is used for describing corresponding distribution positions of the hypergraph nodes in the logic array system and the connection relation among the hypergraph nodes; acquiring physical networking data of the logic array; distributing each logic group in the networking segmentation result based on physical networking data to obtain at least one first layout; and setting the first layout with the minimum interconnection cost as the final layout.
In one embodiment, the computer program, when executed by the processor, performs the assigning of each logical grouping in the networking segmentation result based on the physical networking data, to obtain at least one first layout, including: respectively setting each logic group in the networking segmentation result as a first layout node; and traversing the rest of logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
In one embodiment, the computer program, when executed by the processor, performs the assigning of each logical grouping in the networking segmentation result based on physical networking data, and obtains at least one first layout, including: traversing all nodes, and taking the logic group with the largest selection value as a first layout node; determining the layout sequence of the logic groups of different levels according to the breadth-first access sequence; and distributing the logic groups based on the physical networking data and the layout sequence to obtain a first layout.
In one embodiment, the implementation of the computer program when executed by a processor for performing networking segmentation on a design file according to a networking file to obtain a networking segmentation result includes: performing networking segmentation on the design file according to the networking file to obtain a first segmentation result and a corresponding first segmentation negative influence function value; clustering the first segmentation result; performing node position theoretical adjustment on hypergraph nodes in each logic grouping in the clustered first segmentation result, calculating a segmentation negative influence function value after each adjustment, determining a minimum negative influence function value and actually adjusting the node positions in the logic grouping; re-clustering and iterating the previous operation until the reduction value with the minimum negative influence function value of the adjusted segmentation does not exceed the preset threshold value, and obtaining the networking segmentation result according to the logic grouping at the moment.
It will be understood by those skilled in the art that all or part of the processes of the methods of the embodiments described above can be implemented by hardware instructions of a computer program, which can be stored in a non-volatile computer-readable storage medium, and when executed, can include the processes of the embodiments of the methods described above. Any reference to memory, storage, database or other medium used in the embodiments provided herein can include non-volatile and/or volatile memory. Non-volatile memory can include read-only memory (ROM), programmable ROM (PROM), electrically Programmable ROM (EPROM), electrically Erasable Programmable ROM (EEPROM), or flash memory. Volatile memory can include Random Access Memory (RAM) or external cache memory. By way of illustration and not limitation, RAM is available in a variety of forms such as Static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double Data Rate SDRAM (DDRSDRAM), enhanced SDRAM (ESDRAM), synchronous Link DRAM (SLDRAM), rambus (Rambus) direct RAM (RDRAM), direct Rambus Dynamic RAM (DRDRAM), and Rambus Dynamic RAM (RDRAM), among others.
The above description is only for the specific embodiments of the present application, but the scope of the present application is not limited thereto, and any changes or substitutions that can be easily conceived by those skilled in the art within the technical scope of the present application should be covered within the scope of the present application. Therefore, the protection scope of the present application shall be subject to the protection scope of the claims.
Claims (7)
1. A networking layout method, comprising:
networking and segmenting the design file according to the networking file to obtain a networking and segmenting result, wherein the networking and segmenting result is used for describing corresponding distribution positions, logic groups and connection relations among the corresponding distribution positions, logic groups and the logic groups of the hypergraph nodes in the logic array system; the logic groups refer to a set of hypergraph nodes distributed on a certain FPGA, and the connection weight between the two logic groups is the sum of hypergraph node connections between the two hypergraph node sets;
acquiring physical networking data of the logic array;
distributing each logic group in the networking segmentation result based on the physical networking data to obtain at least one first layout;
and setting the first layout with the minimum interconnection cost as a final layout.
2. The method of claim 1, wherein the assigning each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout comprises:
respectively setting each logic group in the networking segmentation result as a first layout node;
and traversing the rest of the logic groups according to the breadth first, and distributing the logic groups of the networking segmentation result based on the physical networking data to obtain a plurality of first layouts.
3. The method of claim 1, wherein the assigning each logical grouping in the networking segmentation result based on the physical networking data to obtain at least one first layout comprises:
traversing all nodes, and taking the logic group with the largest selection value as a first layout node;
determining the layout sequence of the logic groups of different levels according to the breadth-first access sequence;
and distributing the logic groups based on the physical networking data and the layout sequence to obtain a first layout.
4. The method of claim 1, wherein the networking and segmenting the design file according to the networking file to obtain a networking and segmenting result comprises:
performing networking segmentation on the design file according to the networking file to obtain a first segmentation result and a corresponding first segmentation negative influence function value;
clustering the first segmentation result;
performing node position theoretical adjustment on hypergraph nodes in each logic grouping in the clustered first segmentation result, calculating a segmentation negative influence function value after each adjustment, determining a minimum negative influence function value and actually adjusting the node positions in the logic grouping;
and re-clustering and iterating the previous operation until the reduction value with the minimum adjusted segmentation negative influence function value does not exceed a preset threshold value, and obtaining a networking segmentation result according to the logic grouping at the moment.
5. A networking arrangement, comprising:
the networking segmentation module is used for performing networking segmentation on the design file according to the networking file to obtain a networking segmentation result, and the networking segmentation result is used for describing corresponding distribution positions, logic groups and connection relations among the corresponding distribution positions, logic groups and the logic groups of the hypergraph nodes in the logic array system; the logic groups refer to a set of hypergraph nodes distributed on a certain FPGA, and the connection weight between the two logic groups is the sum of hypergraph node connections between the two hypergraph node sets;
the physical data acquisition module is used for acquiring physical networking data of the logic array;
the distribution module is used for distributing all logic groups in the networking segmentation result based on the physical networking data to obtain at least one first layout;
and the layout module is used for setting the first layout with the minimum interconnection cost as a final layout.
6. A computer device comprising a memory and a processor, the memory storing a computer program, wherein the processor implements the steps of the method of any one of claims 1 to 4 when executing the computer program.
7. A computer-readable storage medium, on which a computer program is stored, which, when being executed by a processor, carries out the steps of the method of any one of claims 1 to 4.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701089.9A CN114781316B (en) | 2022-06-21 | 2022-06-21 | Networking layout method, device, equipment and storage medium |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210701089.9A CN114781316B (en) | 2022-06-21 | 2022-06-21 | Networking layout method, device, equipment and storage medium |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114781316A CN114781316A (en) | 2022-07-22 |
CN114781316B true CN114781316B (en) | 2022-10-11 |
Family
ID=82420793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210701089.9A Active CN114781316B (en) | 2022-06-21 | 2022-06-21 | Networking layout method, device, equipment and storage medium |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114781316B (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115879400B (en) * | 2022-12-21 | 2024-07-23 | 广东高云半导体科技股份有限公司 | Method, device, computer storage medium and terminal for realizing netlist file processing |
CN116894424B (en) * | 2023-06-25 | 2024-05-17 | 广东高云半导体科技股份有限公司 | Wiring method and device of FPGA |
CN117272892B (en) * | 2023-11-21 | 2024-03-26 | 芯瞳半导体技术(山东)有限公司 | Circuit verification method and device, storage medium and electronic equipment |
CN118069447B (en) * | 2024-04-12 | 2024-07-16 | 济南智多晶微电子有限公司 | Automatic FPGA wiring resource testing method and device, electronic equipment and storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112183000A (en) * | 2020-10-10 | 2021-01-05 | 上海国微思尔芯技术股份有限公司 | Hypergraph partitioning method supporting interconnection constraint |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080336B2 (en) * | 2000-12-06 | 2006-07-18 | Cadence Design Systems, Inc. | Method and apparatus for computing placement costs |
US7360190B1 (en) * | 2003-07-11 | 2008-04-15 | Altera Corporation | Method and apparatus for performing retiming on field programmable gate arrays |
US9594859B1 (en) * | 2006-03-29 | 2017-03-14 | Altera Corporation | Apparatus and associated methods for parallelizing clustering and placement |
US8234612B2 (en) * | 2010-08-25 | 2012-07-31 | International Business Machines Corporation | Cone-aware spare cell placement using hypergraph connectivity analysis |
US10509883B2 (en) * | 2016-11-28 | 2019-12-17 | Taiwan Semiconductor Manufacturing Co., Ltd. | Method for layout generation with constrained hypergraph partitioning |
US10649996B2 (en) * | 2016-12-09 | 2020-05-12 | Futurewei Technologies, Inc. | Dynamic computation node grouping with cost based optimization for massively parallel processing |
EP3333735B1 (en) * | 2016-12-12 | 2021-07-07 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Method and computer program for determining a placement of at least one circuit for a reconfigurable logic device |
CN109284578B (en) * | 2018-02-27 | 2021-06-01 | 上海安路信息科技股份有限公司 | Logic circuit layout and wiring method, graphical display method and system thereof |
US10831953B1 (en) * | 2019-09-03 | 2020-11-10 | International Business Machines Corporation | Logic partition identifiers for integrated circuit design |
CN112232010B (en) * | 2020-12-21 | 2021-03-05 | 上海国微思尔芯技术股份有限公司 | Programmable logic device grouping method and device |
-
2022
- 2022-06-21 CN CN202210701089.9A patent/CN114781316B/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112183000A (en) * | 2020-10-10 | 2021-01-05 | 上海国微思尔芯技术股份有限公司 | Hypergraph partitioning method supporting interconnection constraint |
Non-Patent Citations (1)
Title |
---|
可配置宏的快速FPGA布局算法;徐嘉伟等;《计算机工程》;20090820(第16期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114781316A (en) | 2022-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114781316B (en) | Networking layout method, device, equipment and storage medium | |
CN107888425B (en) | network slice deployment method and device for mobile communication system | |
Alicherry et al. | Network aware resource allocation in distributed clouds | |
Li et al. | Routability-driven placement and white space allocation | |
Dave et al. | COSYN: Hardware-software co-synthesis of heterogeneous distributed embedded systems | |
RU2479158C2 (en) | Device and method of hierarchical routing in multiprocessor system with cellular structure | |
US20040068331A1 (en) | System and method for reducing wire delay or congestion during synthesis of hardware solvers | |
US9904577B2 (en) | Hybrid heterogeneous host system, resource configuration method and task scheduling method | |
CN111669787A (en) | Resource allocation method and device based on time delay sensitive network slice | |
CN108829738A (en) | Date storage method and device in a kind of ceph | |
Bhatt et al. | Tight bounds for on-line tree embeddings | |
CN112232010B (en) | Programmable logic device grouping method and device | |
US7376921B2 (en) | Methods for tiling integrated circuit designs | |
CN109729731B (en) | Accelerated processing method and device | |
WO2018170732A1 (en) | Method and device for service deployment under edge cloud architecture | |
Gaffour et al. | Dynamic clustering approach for run-time applications mapping on NoC-based multi/many-core systems | |
CN113255265B (en) | Segmentation and verification method, device, electronic equipment and storage medium | |
CN108601027B (en) | Spectrum resource allocation method and device, computer equipment and storage medium | |
Yook et al. | Scheduling GEN_BLOCK array redistribution | |
Bouhraoua et al. | Improved modified fat-tree topology network-on-chip | |
Turki et al. | An Interconnect-Centric Approach to the Flexible Partitioning and Isolation of Many-Core Accelerators for Fog Computing | |
Tino et al. | Power and performance tabu search based multicore network-on-chip design | |
Seo et al. | Improving system performance in contiguous processor allocation for mesh-connected parallel systems | |
CN113329446B (en) | Resource allocation method and device for network slices | |
CN114338503B (en) | Method and device for adjusting domain resources in communication network |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant after: Shanghai Sierxin Technology Co.,Ltd. Address before: Room 27, 6th floor, No. 29 and 30, Lane 1775, Qiushan Road, Lingang New District, China (Shanghai) pilot Free Trade Zone, Pudong New Area, Shanghai, 201306 Applicant before: Shanghai Guowei silcore Technology Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |