Skip to content

Commit 8e07833

Browse files
committed
Revert master+wip to master (2780988)
Signed-off-by: Keith Rothman <[email protected]>
1 parent 00847b7 commit 8e07833

File tree

103 files changed

+2298
-15019
lines changed

Some content is hidden

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

103 files changed

+2298
-15019
lines changed

.github/ISSUE_TEMPLATE/bug_report.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
---
22
name: Bug report
33
about: Create a report to help us improve
4-
title: ''
5-
labels: ''
6-
assignees: ''
74

85
---
96

.github/ISSUE_TEMPLATE/feature_request.md

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
---
22
name: Feature request
33
about: Suggest an idea for this project
4-
title: ''
5-
labels: ''
6-
assignees: ''
74

85
---
96

.github/ISSUE_TEMPLATE/vtr-change.md

Lines changed: 0 additions & 25 deletions
This file was deleted.

README.md

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,5 @@
1-
2-
SymbiFlow WIP changes for Verilog to Routing (VTR)
3-
==================================================
4-
5-
This branch contains work in progress changes for using Verilog to Routing
6-
(VTR) as part of SymbiFlow.
7-
8-
---
9-
101
# Verilog to Routing (VTR)
11-
[![Build Status](https://travis-ci.com/SymbiFlow/vtr-verilog-to-routing.svg?branch=master)](https://travis-ci.com/SymbiFlow/vtr-verilog-to-routing) [![Documentation Status](https://readthedocs.org/projects/vtr/badge/?version=latest)](http://docs.verilogtorouting.org/en/latest/?badge=latest)
2+
[![Build Status](https://travis-ci.com/verilog-to-routing/vtr-verilog-to-routing.svg?branch=master)](https://travis-ci.org/verilog-to-routing/vtr-verilog-to-routing) [![Documentation Status](https://readthedocs.org/projects/vtr/badge/?version=latest)](http://docs.verilogtorouting.org/en/latest/?badge=latest)
123

134
## Introduction
145
The Verilog-to-Routing (VTR) project is a world-wide collaborative effort to provide a open-source framework for conducting FPGA architecture and CAD research and development.

libs/EXTERNAL/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ add_subdirectory(libsdcparse)
88
add_subdirectory(libblifparse)
99
add_subdirectory(libtatum)
1010

11-
#VPR_USE_EZGL is initialized in the root CMakeLists.
11+
#VPR_USE_EZGL is initialized in the root CMakeLists.
1212
#compile libezgl only if the user asks for or has its dependencies installed.
1313
if(VPR_USE_EZGL STREQUAL "on")
1414
add_subdirectory(libezgl)

libs/EXTERNAL/libsdcparse/src/sdc_lexer.l

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ FLOAT_EXP ([eE][-+]?{DIGIT10}+)
5656
FLOAT_NUMBER ({NAN}|([-+]?({INF}|({FLOAT_BASE}{FLOAT_EXP}?))))
5757
INT_NUMBER ([-+]?{DIGIT10}+)
5858
ALPHA [a-zA-Z_]
59-
SYMBOL [-~|:*\\/^\$\.]
60-
ID_FIRST ({ALPHA}|{SYMBOL})
59+
SYMBOL [-~|:*\\/^]
60+
ID_FIRST ({ALPHA})
6161
ID_MID ({ALPHA}|{DIGIT10}|{SYMBOL})
6262
ID_INDEX (\[{DIGIT10}+\])
6363
ID ({ID_FIRST}{ID_MID}*{ID_INDEX}?)

libs/EXTERNAL/libtatum/libtatum/tatum/TimingGraph.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -731,8 +731,9 @@ bool TimingGraph::validate_structure() const {
731731

732732
} else if (src_type == NodeType::CPIN) {
733733
if( sink_type != NodeType::SOURCE
734-
&& sink_type != NodeType::SINK) {
735-
throw tatum::Error("CPIN nodes should only drive SOURCE or SINK nodes", src_node, out_edge);
734+
&& sink_type != NodeType::SINK
735+
&& sink_type != NodeType::OPIN) {
736+
throw tatum::Error("CPIN nodes should only drive SOURCE, OPIN or SINK nodes", src_node, out_edge);
736737
}
737738

738739
if(sink_type == NodeType::SOURCE && out_edge_type != EdgeType::PRIMITIVE_CLOCK_LAUNCH) {

libs/libarchfpga/src/arch_util.cpp

Lines changed: 0 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1321,38 +1321,3 @@ bool is_library_model(const char* model_name) {
13211321
bool is_library_model(const t_model* model) {
13221322
return is_library_model(model->name);
13231323
}
1324-
1325-
//Returns true if the specified block type contains the specified blif model name
1326-
bool block_type_contains_blif_model(t_logical_block_type_ptr type, const std::string& blif_model_name) {
1327-
return pb_type_contains_blif_model(type->pb_type, blif_model_name);
1328-
}
1329-
1330-
//Returns true of a pb_type (or it's children) contain the specified blif model name
1331-
bool pb_type_contains_blif_model(const t_pb_type* pb_type, const std::string& blif_model_name) {
1332-
if (!pb_type) {
1333-
return false;
1334-
}
1335-
1336-
if (pb_type->blif_model != nullptr) {
1337-
//Leaf pb_type
1338-
VTR_ASSERT(pb_type->num_modes == 0);
1339-
if (blif_model_name == pb_type->blif_model
1340-
|| ".subckt " + blif_model_name == pb_type->blif_model) {
1341-
return true;
1342-
} else {
1343-
return false;
1344-
}
1345-
} else {
1346-
for (int imode = 0; imode < pb_type->num_modes; ++imode) {
1347-
const t_mode* mode = &pb_type->modes[imode];
1348-
1349-
for (int ichild = 0; ichild < mode->num_pb_type_children; ++ichild) {
1350-
const t_pb_type* pb_type_child = &mode->pb_type_children[ichild];
1351-
if (pb_type_contains_blif_model(pb_type_child, blif_model_name)) {
1352-
return true;
1353-
}
1354-
}
1355-
}
1356-
}
1357-
return false;
1358-
}

libs/libarchfpga/src/arch_util.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
#ifndef ARCH_UTIL_H
22
#define ARCH_UTIL_H
33

4-
#include <regex>
54
#include "physical_types.h"
65

76
class InstPort {
@@ -75,11 +74,4 @@ bool segment_exists(const t_arch* arch, std::string name);
7574
const t_segment_inf* find_segment(const t_arch* arch, std::string name);
7675
bool is_library_model(const char* model_name);
7776
bool is_library_model(const t_model* model);
78-
79-
//Returns true if the specified block type contains the specified blif model name
80-
bool block_type_contains_blif_model(t_logical_block_type_ptr type, const std::string& blif_model_name);
81-
82-
//Returns true of a pb_type (or it's children) contain the specified blif model name
83-
bool pb_type_contains_blif_model(const t_pb_type* pb_type, const std::string& blif_model_name);
84-
8577
#endif

libs/libarchfpga/src/physical_types.cpp

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,7 @@ std::vector<int> t_physical_tile_type::get_clock_pins_indices() const {
110110
int clock_pins_start_idx = 0;
111111
int clock_pins_stop_idx = 0;
112112

113-
int num_capacity = 1;
114-
if (capacity_type == e_capacity_type::DUPLICATE) {
115-
num_capacity = this->capacity;
116-
}
117-
118-
for (int capacity_num = 0; capacity_num < num_capacity; capacity_num++) {
113+
for (int capacity_num = 0; capacity_num < this->capacity; capacity_num++) {
119114
// Ranges are picked on the basis that pins are ordered: inputs, outputs, then clock pins
120115
// This is because ProcessPb_type assigns pb_type port indices in that order and
121116
// SetupPinLocationsAndPinClasses assigns t_logical_block_type_ptr pin indices in the order of port indices

libs/libarchfpga/src/physical_types.h

Lines changed: 15 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@
3939
#include "vtr_ndmatrix.h"
4040
#include "vtr_hash.h"
4141
#include "vtr_bimap.h"
42-
#include "vtr_string_interning.h"
4342

4443
#include "logic_types.h"
4544
#include "clock_types.h"
@@ -91,32 +90,31 @@ enum class e_sb_type;
9190
// Metadata value storage.
9291
class t_metadata_value {
9392
public:
94-
explicit t_metadata_value(vtr::interned_string v)
93+
explicit t_metadata_value(std::string v)
9594
: value_(v) {}
9695
explicit t_metadata_value(const t_metadata_value& o)
9796
: value_(o.value_) {}
9897

9998
// Return string value.
100-
vtr::interned_string as_string() const { return value_; }
99+
std::string as_string() const { return value_; }
101100

102101
private:
103-
vtr::interned_string value_;
102+
std::string value_;
104103
};
105104

106105
// Metadata storage dictionary.
107-
struct t_metadata_dict : vtr::flat_map<
108-
vtr::interned_string,
109-
std::vector<t_metadata_value>,
110-
vtr::interned_string_less> {
106+
struct t_metadata_dict : std::unordered_map<
107+
std::string,
108+
std::vector<t_metadata_value>> {
111109
// Is this key present in the map?
112-
inline bool has(vtr::interned_string key) const {
110+
inline bool has(std::string key) const {
113111
return this->count(key) >= 1;
114112
}
115113

116114
// Get all metadata values matching key.
117115
//
118116
// Returns nullptr if key is not found.
119-
inline const std::vector<t_metadata_value>* get(vtr::interned_string key) const {
117+
inline const std::vector<t_metadata_value>* get(std::string key) const {
120118
auto iter = this->find(key);
121119
if (iter != this->end()) {
122120
return &iter->second;
@@ -128,7 +126,7 @@ struct t_metadata_dict : vtr::flat_map<
128126
//
129127
// Returns nullptr if key is not found or if multiple values are prsent
130128
// per key.
131-
inline const t_metadata_value* one(vtr::interned_string key) const {
129+
inline const t_metadata_value* one(std::string key) const {
132130
auto values = get(key);
133131
if (values == nullptr) {
134132
return nullptr;
@@ -140,10 +138,11 @@ struct t_metadata_dict : vtr::flat_map<
140138
}
141139

142140
// Adds value to key.
143-
void add(vtr::interned_string key, vtr::interned_string value) {
141+
void add(std::string key, std::string value) {
144142
// Get the iterator to the key, which may already have elements if
145143
// add was called with this key in the past.
146-
(*this)[key].emplace_back(t_metadata_value(value));
144+
auto iter_inserted = this->emplace(key, std::vector<t_metadata_value>());
145+
iter_inserted.first->second.push_back(t_metadata_value(value));
147146
}
148147
};
149148

@@ -524,12 +523,6 @@ enum class e_sb_type {
524523

525524
};
526525

527-
enum class e_capacity_type {
528-
DUPLICATE, // Capacity duplicates ports.
529-
EXPLICIT // Capacity increases the number of logical tiles, but does not
530-
// modify the physical ports.
531-
};
532-
533526
constexpr int NO_SWITCH = -1;
534527
constexpr int DEFAULT_SWITCH = -2;
535528

@@ -584,7 +577,6 @@ struct t_physical_tile_type {
584577
int num_clock_pins = 0;
585578

586579
int capacity = 0;
587-
e_capacity_type capacity_type = e_capacity_type::DUPLICATE;
588580

589581
int width = 0;
590582
int height = 0;
@@ -626,30 +618,25 @@ struct t_physical_tile_type {
626618

627619
/* Returns the indices of pins that contain a clock for this physical logic block */
628620
std::vector<int> get_clock_pins_indices() const;
629-
630-
bool is_input_type;
631-
bool is_output_type;
632621
};
633622

634623
/** A logical pin defines the pin index of a logical block type (i.e. a top level PB type)
635624
* This structure wraps the int value of the logical pin to allow its storage in the
636625
* vtr::bimap container.
637626
*/
638627
struct t_logical_pin {
639-
int z_index = -1;
640628
int pin = -1;
641629

642-
t_logical_pin(int z_index_value, int value) {
643-
z_index = z_index_value;
630+
t_logical_pin(int value) {
644631
pin = value;
645632
}
646633

647634
bool operator==(const t_logical_pin o) const {
648-
return z_index == o.z_index && pin == o.pin;
635+
return pin == o.pin;
649636
}
650637

651638
bool operator<(const t_logical_pin o) const {
652-
return std::make_pair(z_index, pin) < std::make_pair(o.z_index, o.pin);
639+
return pin < o.pin;
653640
}
654641
};
655642

@@ -1387,7 +1374,6 @@ struct t_arch_switch_inf {
13871374
float Cin = 0.;
13881375
float Cout = 0.;
13891376
float Cinternal = 0.;
1390-
float penalty_cost = 0.;
13911377
float mux_trans_size = 1.;
13921378
BufferSize buf_size_type = BufferSize::AUTO;
13931379
float buf_size = 0.;
@@ -1452,7 +1438,6 @@ struct t_rr_switch_inf {
14521438
float Cout = 0.;
14531439
float Cinternal = 0.;
14541440
float Tdel = 0.;
1455-
float penalty_cost = 0.;
14561441
float mux_trans_size = 0.;
14571442
float buf_size = 0.;
14581443
const char* name = nullptr;
@@ -1600,8 +1585,6 @@ struct t_clock_arch_spec {
16001585

16011586
/* Detailed routing architecture */
16021587
struct t_arch {
1603-
mutable vtr::string_internment strings;
1604-
16051588
char* architecture_id; //Secure hash digest of the architecture file to uniquely identify this architecture
16061589

16071590
t_chan_width_dist Chans;

0 commit comments

Comments
 (0)