CN114282474A - FPGA wiring resource data compression method - Google Patents
FPGA wiring resource data compression method Download PDFInfo
- Publication number
- CN114282474A CN114282474A CN202111354448.XA CN202111354448A CN114282474A CN 114282474 A CN114282474 A CN 114282474A CN 202111354448 A CN202111354448 A CN 202111354448A CN 114282474 A CN114282474 A CN 114282474A
- Authority
- CN
- China
- Prior art keywords
- tile
- fpga
- resource data
- array
- data compression
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 17
- 238000013144 data compression Methods 0.000 title claims abstract description 11
- 239000002184 metal Substances 0.000 claims description 3
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000002370 liquid polymer infiltration Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
Abstract
The invention relates to a method for compressing FPGA wiring resource data, which comprises the following steps: defining an object, defining an array, searching through key value pairs and the like. The FPGA wiring resource data compression method provided by the invention takes the Type information as an index and searches for Wire information; therefore, the occupation of the memory can be greatly reduced. Memory usage is also significantly slowed as FPGA scales grow.
Description
Technical Field
The invention relates to a method for compressing FPGA wiring resource data, and belongs to the technical field of integrated circuit design.
Background
At present, ten million gate-level FPGAs are mainstream, and the wiring resource scale is large. For example, a total of 32568 Tile 95t in the xilinx v5 series; each Tile has hundreds to thousands of different interconnection points (Wire points), tiles and PIPs in the whole FPGA form a huge graph, and the tiles are all communicated. Therefore, the corresponding routing software is required to quickly find the most available path, and meanwhile, more severe requirements are provided for modeling of routing resources.
In the layout and routing software, if each Tile in the FPGA is mapped into an object instance, a large memory overhead is caused. Assuming that a Wire object contains string and bolt flag bits, it is estimated that each Tile contains 700 wires and id of a string type. In a 64-bit operating system, the string variable is 32 bytes in size and the bootean variable is 1byte in size. Taking v 595 t as an example, the memory overhead for instantiating all tiles is about 700 MB; and the memory overhead of the actual running of the software can exceed 1GB by adding intermediate variables in the process of laying out and wiring. For a larger 240t, the memory overhead of the routing resources may approach 2 GB.
In the actual production process, considering the factors of time delay and power consumption, the wiring resource occupied by the circuit designed by the user is usually lower than 50% of the total wiring resource. Therefore, in the wiring process, the large memory overhead means the waste of memory resources.
Disclosure of Invention
The invention aims to solve the technical problems that: the defects of the technology are overcome, and a modeling method is provided, so that the wiring resources are compressed to a certain extent on the premise of not reducing the query speed, and the aim of saving the memory is fulfilled.
In order to solve the technical problems, the technical scheme provided by the invention is as follows: an FPGA wiring resource data compression method comprises the following steps:
step 1: defining an object Tile, wherein the coordinate, the binary bit stream wireUsage and the type index TileTypeIndex of each Tile in the FPGA are stored;
step 2: defining a two-dimensional array TileMap, wherein each array element corresponds to the coordinate of each TILE in the FPGA one to one;
and step 3: defining an array WirelList, and identifying interconnection information of tiles and channels;
and 4, step 4: defining an array TileTypeToWirelList, and storing the WirelLists corresponding to all TileTypes;
and 5: the position of Tile and the position of Wire endpoint can be uniquely positioned through the key-value pair TW; through a group of key value pairs TW, a metal interconnection line can be uniquely determined;
step 6: the WireaUsage length in the object Tile is consistent with the WirelList length, and the initial values are all 0; in the wiring process, when a certain Wire of the Tile is selected, the corresponding binary position in the WireaUage is set to be 1; indicating that the current Wire is occupied.
The scheme is further improved in that: the memory estimation formula under a 64-bit system is:
wherein L iswireListDenotes the length, L, of a wireListTileTypeListDenotes the length of TileTypeList, NTileIs the total number of tiles.
The scheme is further improved in that: searching information by using an array subscript; the lookup time complexity is O (1).
The scheme is further improved in that: the same type of Tile, the coordinates may be different but the Wire information is identical, and a certain Wire endpoint of the Tile may be indexed by its WireList subscript.
The scheme is further improved in that: the type index TileTypeIndex in step 1 is an index of the Tile type in the array.
The FPGA wiring resource data compression method is suitable for island-type FPGAs, the module structure inside the FPGA is more regular and suitable for compression, and tiles can be classified according to function and position distribution; because the Type information and the Wire information have strong association and the Wire information occupies a memory, the Wire information is shared by the tiles of the same Type, and the Tile object only stores a small number of fields such as coordinates, types and the like. Searching for Wire information by taking the Type information as an index; therefore, the occupation of the memory can be greatly reduced. Memory usage is also significantly slowed as FPGA scales grow.
Detailed Description
Examples
The FPGA wiring resource data compression method of the present embodiment is suitable for island FPGAs, and therefore, the FPGA type needs to be determined first. After the FPGA hardware framework information is acquired, whether the FPGA hardware framework information is an island type is judged, and if the FPGA hardware framework information is the island type, the method continues. Defining basic classes of Tile, TileMap, Wire and WirelList according to requirements; define API GetSegment (TileIndex, WireIndex), GetSource (WireIndex), GetSinks (WireIndex), GetWireInfo (TileTypeIndex).
The wiring algorithm can frequently search the Tile and Wire information; so this scheme uses array subscripts to lookup information. The lookup time complexity is O (1).
Modeling a routing resource as follows:
step 1: defining an object Tile, wherein the coordinate, the binary bit stream wireUsage and the type index TileTypeIndex of each Tile in the FPGA are stored;
step 2: defining a two-dimensional array TileMap, wherein each array element corresponds to the coordinate of each TILE in the FPGA one to one;
and step 3: defining an array WirelList, and identifying interconnection information of tiles and channels; the coordinates of the tiles of the same type may be different but the Wire information is completely the same, and a certain Wire endpoint of the Tile may be indexed by its WireList subscript (WireIndex);
and 4, step 4: defining an array TileTypeToWirelList, and storing the WirelLists corresponding to all TileTypes; the type index TileTypeIndex in step 1 is the index of the Tile type in the array.
And 5: the position of the Tile and the position of the Wire endpoint can be uniquely located through a key-value pair TW (WireIndex @ Tile); through a group of key value pairs TW, a metal interconnection line can be uniquely determined; for example, Segment [ TW0(ES2BEG0@ INT _ X5Y10), TW1(ES2MID0@ INT _ X6Y10), TW2(ES2END0@ INT _ X6Y9) ] represents an interconnect where a Begin node is located at INT _ X5Y10, a Middle node is located at INT _ X6Y10, and an END node is located at INT _ X6Y 9;
step 6: the WireaUsage length in the object Tile is consistent with the WirelList length, and the initial values are all 0; in the wiring process, when a certain Wire of the Tile is selected, the corresponding binary position in the WireaUage is set to be 1; indicating that the current Wire is occupied.
The memory estimation formula under a 64-bit system is:
wherein L iswireListDenotes the length, L, of a wireListTileTypeListDenotes the length of TileTypeList, NTileIs the total number of tiles. For v 595 t as an example, the total number of tiles is 32568; the number of Tile types is 111; estimating the average wireList length to be 700; the memory occupied by the wiring resources is calculated by substituting the formula to be about 6.2MB, and the memory occupation is greatly reduced compared with the prior method for establishing the WirelList for each Tile.
The present invention is not limited to the above-described embodiments. All technical solutions formed by equivalent substitutions fall within the protection scope of the claims of the present invention.
Claims (5)
1. An FPGA wiring resource data compression method is characterized by comprising the following steps:
step 1: defining an object Tile, wherein the coordinate, the binary bit stream wireUsage and the type index TileTypeIndex of each Tile in the FPGA are stored;
step 2: defining a two-dimensional array TileMap, wherein each array element corresponds to the coordinate of each TILE in the FPGA one to one;
and step 3: defining an array WirelList, and identifying interconnection information of tiles and channels;
and 4, step 4: defining an array TileTypeToWirelList, and storing the WirelLists corresponding to all TileTypes;
and 5: the position of Tile and the position of Wire endpoint can be uniquely positioned through the key-value pair TW; through a group of key value pairs TW, a metal interconnection line can be uniquely determined;
step 6: the WireaUsage length in the object Tile is consistent with the WirelList length, and the initial values are all 0; in the wiring process, when a certain Wire of the Tile is selected, the corresponding binary position in the WireaUage is set to be 1; indicating that the current Wire is occupied.
3. The FPGA wiring resource data compression approach of claim 1, wherein: searching information by using an array subscript; the lookup time complexity is O (1).
4. The FPGA wiring resource data compression approach of claim 1, wherein: the same type of Tile, the coordinates may be different but the Wire information is identical, and a certain Wire endpoint of the Tile may be indexed by its WireList subscript.
5. The FPGA wiring resource data compression approach of claim 1, wherein: the type index TileTypeIndex in step 1 is an index of the Tile type in the array.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111354448.XA CN114282474B (en) | 2021-11-16 | 2021-11-16 | FPGA wiring resource data compression method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111354448.XA CN114282474B (en) | 2021-11-16 | 2021-11-16 | FPGA wiring resource data compression method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114282474A true CN114282474A (en) | 2022-04-05 |
CN114282474B CN114282474B (en) | 2022-08-09 |
Family
ID=80869203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111354448.XA Active CN114282474B (en) | 2021-11-16 | 2021-11-16 | FPGA wiring resource data compression method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282474B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366029A (en) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | On-site programmable gate array chip layout method |
CN110472340A (en) * | 2019-08-16 | 2019-11-19 | 中科亿海微电子科技(苏州)有限公司 | A kind of modeling method and device of wire structures |
CN111414725A (en) * | 2020-03-13 | 2020-07-14 | 中科亿海微电子科技(苏州)有限公司 | Software wiring structure modeling method and device for FPGA (field programmable Gate array) capable of being dynamically expanded |
-
2021
- 2021-11-16 CN CN202111354448.XA patent/CN114282474B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103366029A (en) * | 2012-03-31 | 2013-10-23 | 中国科学院微电子研究所 | On-site programmable gate array chip layout method |
CN110472340A (en) * | 2019-08-16 | 2019-11-19 | 中科亿海微电子科技(苏州)有限公司 | A kind of modeling method and device of wire structures |
CN111414725A (en) * | 2020-03-13 | 2020-07-14 | 中科亿海微电子科技(苏州)有限公司 | Software wiring structure modeling method and device for FPGA (field programmable Gate array) capable of being dynamically expanded |
Also Published As
Publication number | Publication date |
---|---|
CN114282474B (en) | 2022-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | A novel framework for online amnesic trajectory compression in resource-constrained environments | |
CN103020296B (en) | The large data processing method of a kind of High-precision multi-dimensional counting Bloom Filter | |
CN104035949A (en) | Similarity data retrieval method based on locality sensitive hashing (LASH) improved algorithm | |
CN111915091A (en) | Parking space arrangement method, device, terminal and medium | |
CN110874429A (en) | Distributed web crawler performance optimization method oriented to mass data acquisition | |
CN105515997A (en) | BF_TCAM (Bloom Filter-Ternary Content Addressable Memory)-based high-efficiency range matching method for realizing zero range expansion | |
CN113190939A (en) | Large sparse complex network topology analysis and simplification method based on polygon coefficient | |
CN116962528A (en) | Network computing power arranging method, device, equipment and computer storage medium | |
CN114282474B (en) | FPGA wiring resource data compression method | |
CN105359142A (en) | Hash join method, device and database management system | |
CN106874479A (en) | The improved method and device of the FP Growth algorithms based on FPGA | |
CN106599049A (en) | Decision table data reduction method | |
CN112527950B (en) | Map data deleting method and system based on MapReduce | |
CN113645137A (en) | Software defined network multi-level flow table compression method and system | |
CN108335312A (en) | The design and implementation methods of the quantum Morphological Gradient algorithm of gray level image | |
CN111782645B (en) | Data processing method and device | |
CN110995876A (en) | Method and device for storing and searching IP | |
CN109256774A (en) | A kind of power grid subgraph partitioning method and device based on voltage class | |
CN104683806B (en) | MQ arithmetic encoder high speed FPGA implementation methods based on depth flowing water | |
CN108932251A (en) | A kind of k- on the frequent updating data set based on sequence dominates search algorithm Skyline | |
CN113486063A (en) | Method and device for processing flow data in power internet of things and terminal equipment | |
WO2021012211A1 (en) | Method and apparatus for establishing index for data | |
CN114625801A (en) | Block chain cloud-edge cooperative consensus method based on directed acyclic graph | |
CN106027032A (en) | RM logic circuit delay optimization method in unit delay model | |
CN107807963A (en) | A kind of method of the power grids circuits pooling zone fast search based on divide-and-conquer strategy |
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 | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A Data Compression Method for FPGA Cabling Resources Effective date of registration: 20231226 Granted publication date: 20220809 Pledgee: Rizhao Bank Co.,Ltd. Jinan Branch Pledgor: Shandong Xinhui Microelectronics Technology Co.,Ltd. Registration number: Y2023370000137 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |