Skip to content

Commit ccf8c1a

Browse files
[LibArchFPGA] Updating Model Data Structures
The logical models (the technology-mapped logical blocks) for an architecture were stored using two independent linked lists. One for the library models (the models that all architectures have, such as luts and ffs) and one of the user models. This linked lists were hard to traverse and were injecting pointers all across VPR. Created a new class to store and manage the logical models. This class maintains a unique ID for each logical model (similar to the netlist data structures in VPR). It also contains helper methods to make working with the logical models easier.
1 parent 7b9808c commit ccf8c1a

File tree

98 files changed

+2192
-2175
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

98 files changed

+2192
-2175
lines changed

libs/libarchfpga/src/arch_check.cpp

+43-52
Large diffs are not rendered by default.

libs/libarchfpga/src/arch_check.h

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ extern "C" {
2626
* @param file architecture file
2727
* @param line line in the architecture file that generates the failure
2828
*/
29-
bool check_model_clocks(t_model* model, const char* file, uint32_t line);
29+
bool check_model_clocks(const t_model& model, const char* file, uint32_t line);
3030

3131
/**
3232
* @brief Checks the correctness of the combinational sinks in the model inputs to outputs connections
@@ -35,7 +35,7 @@ bool check_model_clocks(t_model* model, const char* file, uint32_t line);
3535
* @param file architecture file
3636
* @param line line in the architecture file that generates the failure
3737
*/
38-
bool check_model_combinational_sinks(const t_model* model, const char* file, uint32_t line);
38+
bool check_model_combinational_sinks(const t_model& model, const char* file, uint32_t line);
3939

4040
/**
4141
* @brief Checks whether the I/O ports can have timing specifications based on their connectivity.
@@ -47,7 +47,7 @@ bool check_model_combinational_sinks(const t_model* model, const char* file, uin
4747
* @param file architecture file
4848
* @param line line in the architecture file that generates the failure
4949
*/
50-
void warn_model_missing_timing(const t_model* model, const char* file, uint32_t line);
50+
void warn_model_missing_timing(const t_model& model, const char* file, uint32_t line);
5151

5252
/**
5353
* @brief Checks the consistency of the mappings between a logical block and the corresponding physical tile.

libs/libarchfpga/src/arch_types.h

-9
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,9 @@
1818
/* Value for UNDEFINED data */
1919
constexpr int UNDEFINED = -1;
2020

21-
/** The total number of predefined blif models */
22-
constexpr int NUM_MODELS_IN_LIBRARY = 4;
23-
2421
/* Maximum value for minimum channel width to avoid overflows of short data type. */
2522
constexpr int MAX_CHANNEL_WIDTH = 8000;
2623

27-
/* Built-in library models */
28-
constexpr const char* MODEL_NAMES = ".names";
29-
constexpr const char* MODEL_LATCH = ".latch";
30-
constexpr const char* MODEL_INPUT = ".input";
31-
constexpr const char* MODEL_OUTPUT = ".output";
32-
3324
enum class e_arch_format {
3425
VTR, ///<VTR-specific device XML format
3526
FPGAInterchange ///<FPGA Interchange device format

0 commit comments

Comments
 (0)