diff options
author | Clifford Wolf <clifford@clifford.at> | 2018-02-20 13:43:50 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-20 13:43:50 +0100 |
commit | 54511ff50852632fd3cdfe63757a2e1090ac7460 (patch) | |
tree | 7532b60e8910f1e8313d9abce94e562ed7c885a2 | |
parent | 1d84b7a53183df3d2d620d5633ca82db6ab90186 (diff) | |
parent | 4cdf41c8408c092e69b819bdbad5a39c1e43943b (diff) | |
download | icestorm-54511ff50852632fd3cdfe63757a2e1090ac7460.tar.gz icestorm-54511ff50852632fd3cdfe63757a2e1090ac7460.tar.bz2 icestorm-54511ff50852632fd3cdfe63757a2e1090ac7460.zip |
Merge pull request #126 from daveshah1/icetime_bfix
Properly ignore unsupported cell types
-rw-r--r-- | icetime/icetime.cc | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/icetime/icetime.cc b/icetime/icetime.cc index cdec43e..9caf82b 100644 --- a/icetime/icetime.cc +++ b/icetime/icetime.cc @@ -1293,6 +1293,8 @@ std::string ecnetname_to_vlog(std::string ec_name) std::string make_dsp_ip(int x, int y, std::string net, std::string &primnet) { + // Don't generate excessive warnings about unknown cells + static std::set<std::string> unsupported_cells; std::tuple<int, int, std::string> ecnet(x, y, net); std::tuple<std::string, int, int, int> key("", -1, -1, -1); bool found = false; @@ -1423,9 +1425,11 @@ std::string make_dsp_ip(int x, int y, std::string net, std::string &primnet) return cell; } else { - netlist_cell_types[cell] = "SB_" + ectype; - fprintf(stderr, "Warning: timing analysis not supported for cell type %s\n", ectype.c_str()); - return cell; + if (unsupported_cells.find(ectype) == unsupported_cells.end()) { + fprintf(stderr, "Warning: timing analysis not supported for cell type %s\n", ectype.c_str()); + unsupported_cells.insert(ectype); + } + return ""; } } @@ -1567,8 +1571,8 @@ void make_seg_cell(int net, const net_segment_t &seg) if(device_type == "up5k" && ((seg.x == 0) || (seg.x == int(config_tile_type.size()) - 1))) { std::string primnet; auto cell = make_dsp_ip(seg.x, seg.y, seg.name, primnet); - netlist_cell_ports[cell][primnet] = net_name(net); if(cell != "") { + netlist_cell_ports[cell][primnet] = net_name(net); make_inmux(seg.x, seg.y, net); } return; |