AMF-Placer  2.0
An Open-Source Timing-driven Analytical Mixed-size FPGA Placer
ParallelCLBPacker.h File Reference

This header file contains the definitions of ParallelCLBPacker class and its internal modules and APIs which finally packs LUT/FF/MUX/CARRY elements into legal CLB sites in a parallel approach. More...

#include "DesignInfo.h"
#include "DeviceInfo.h"
#include "KDTree/KDTree.h"
#include "MaximalCardinalityMatching/MaximalCardinalityMatching.h"
#include "PlacementInfo.h"
#include "PlacementTimingOptimizer.h"
#include "WirelengthOptimizer.h"
#include "const.h"
#include "dumpZip.h"
#include "readZip.h"
#include "strPrint.h"
#include "stringCheck.h"
#include <assert.h>
#include <cmath>
#include <fstream>
#include <iostream>
#include <map>
#include <omp.h>
#include <queue>
#include <set>
#include <sstream>
#include <string>
#include <vector>
Include dependency graph for ParallelCLBPacker.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Packing_PUcompare
 a utility struct for the comparison between PlacementInfo::PlacementUnit according to PU ID More...
 
struct  Packing_Netcompare
 
class  ParallelCLBPacker
 ParallelCLBPacker will finally pack LUT/FF/MUX/CARRY elements into legal CLB sites in a parallel approach. More...
 
class  ParallelCLBPacker::PackedControlSet
 PackedControlSet stores the data of a combination of FFs within one control set (clock enable/preset-reset/clock) that can be packed in a site. More...
 
class  ParallelCLBPacker::PackingCLBSite
 PackingCLBSite is a container for the packing information (parameters, candidates and packing status) of a specific DeviceInfo::DeviceSite. More...
 
class  ParallelCLBPacker::PackingCLBSite::PackingCLBCluster
 PackingCLBCluster is a container of cells/PlacementUnits which can be packed in the corresponding CLB site. More...
 
class  ParallelCLBPacker::PackingCLBSite::SiteBELMapping
 SiteBELMapping is a contain recording the mapping between cells and BELs. More...
 
struct  ParallelCLBPacker::_siteWithScore
 helper struct for candidate site sorting More...
 
struct  ParallelCLBPacker::_PUWithScore
 helper struct for candidate site sorting More...
 
class  ParallelCLBPacker::PULocation
 PULocation is a helper class to find the neighbor PlacementUnits with KD-Tree. More...
 

Functions

std::ostream & operator<< (std::ostream &os, const ParallelCLBPacker::PackingCLBSite::PackingCLBCluster *tmpCluster)
 

Detailed Description

This header file contains the definitions of ParallelCLBPacker class and its internal modules and APIs which finally packs LUT/FF/MUX/CARRY elements into legal CLB sites in a parallel approach.

Author
Tingyuan LIANG (tlian.nosp@m.g@co.nosp@m.nnect.nosp@m..ust.nosp@m..hk)
Version
0.1
Date
2021-10-02

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Definition in file ParallelCLBPacker.h.

Function Documentation

◆ operator<<()

std::ostream& operator<< ( std::ostream &  os,
const ParallelCLBPacker::PackingCLBSite::PackingCLBCluster tmpCluster 
)

Definition at line 923 of file ParallelCLBPacker_PackingCLBCluster.cc.

Here is the call graph for this function: