Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion libs/libarchfpga/src/physical_types.h
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,6 @@ struct t_pin_to_pin_annotation;
struct t_interconnect;
class t_pb_graph_pin;
class t_pb_graph_edge;
struct t_cluster_placement_primitive;
struct t_arch;
enum class e_sb_type;
struct t_interposer_cut_inf;
Expand Down
3 changes: 2 additions & 1 deletion vpr/src/analytical_place/model_grouper.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,9 @@
#include <queue>
#include <unordered_set>
#include <vector>
#include "cad_types.h"
#include "logic_types.h"
#include "pack_patterns.h"
#include "physical_types.h"
#include "prepack.h"
#include "vtr_assert.h"
#include "vtr_log.h"
Expand Down
1 change: 0 additions & 1 deletion vpr/src/pack/cluster_legalizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
#include <vector>
#include "atom_lookup.h"
#include "atom_netlist.h"
#include "cad_types.h"
#include "cluster_placement.h"
#include "cluster_router.h"
#include "globals.h"
Expand Down
14 changes: 14 additions & 0 deletions vpr/src/pack/cluster_placement.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,20 @@
// Forward declarations
class AtomBlockId;

/**
* Keeps track of locations that a primitive can go to during packing
* Linked list for easy insertion/deletion
*/
struct t_cluster_placement_primitive {
t_cluster_placement_primitive() {
pb_graph_node = nullptr;
}
t_pb_graph_node* pb_graph_node;
bool valid;
float base_cost; /* cost independent of current status of packing */
float incremental_cost; /* cost dependent on current status of packing */
};

/**
* @brief Stats keeper for placement within the cluster during packing
*
Expand Down
21 changes: 5 additions & 16 deletions libs/libarchfpga/src/cad_types.h → vpr/src/pack/pack_patterns.h
Original file line number Diff line number Diff line change
@@ -1,10 +1,13 @@
#pragma once
/*
* Data types used to give architectural hints for the CAD algorithm
* Data types used to give architectural hints for the CAD algorithm through pack
* patterns.
*/

#include "physical_types.h"
#include <vector>

struct t_pb_type;
struct t_pb_graph_pin;
struct t_pack_pattern_connections;

/**
Expand Down Expand Up @@ -112,17 +115,3 @@ struct t_pack_patterns {
is_chain = false;
}
};

/**
* Keeps track of locations that a primitive can go to during packing
* Linked list for easy insertion/deletion
*/
struct t_cluster_placement_primitive {
t_cluster_placement_primitive() {
pb_graph_node = nullptr;
}
t_pb_graph_node* pb_graph_node;
bool valid;
float base_cost; /* cost independent of current status of packing */
float incremental_cost; /* cost dependent on current status of packing */
};
4 changes: 3 additions & 1 deletion vpr/src/pack/prepack.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@
*/

#include <algorithm>
#include <map>
#include "atom_netlist_fwd.h"
#include "cad_types.h"
#include "pack_patterns.h"
#include "vtr_assert.h"
#include "vtr_range.h"
#include "vtr_strong_id.h"
Expand All @@ -21,6 +22,7 @@
class t_pack_molecule;
class LogicalModels;
struct t_logical_block_type;
struct t_pb_graph_node;

// A unique ID used to identify a molecule generated by the prepacker.
typedef vtr::StrongId<struct pack_molecule_id_tag, size_t> PackMoleculeId;
Expand Down