aboutsummaryrefslogtreecommitdiffstats
path: root/machxo2/arch.cc
diff options
context:
space:
mode:
Diffstat (limited to 'machxo2/arch.cc')
-rw-r--r--machxo2/arch.cc28
1 files changed, 3 insertions, 25 deletions
diff --git a/machxo2/arch.cc b/machxo2/arch.cc
index ed62ed37..0b6b448e 100644
--- a/machxo2/arch.cc
+++ b/machxo2/arch.cc
@@ -342,35 +342,13 @@ ArcBounds Arch::getRouteBoundingBox(WireId src, WireId dst) const
bool Arch::place()
{
std::string placer = str_or_default(settings, id("placer"), defaultPlacer);
- if (placer == "heap") {
- bool have_iobuf_or_constr = false;
- for (auto cell : sorted(cells)) {
- CellInfo *ci = cell.second;
- if (ci->type == id("GENERIC_IOB") || ci->bel != BelId() || ci->attrs.count(id("BEL"))) {
- have_iobuf_or_constr = true;
- break;
- }
- }
- bool retVal;
- if (!have_iobuf_or_constr) {
- log_warning("Unable to use HeAP due to a lack of IO buffers or constrained cells as anchors; reverting to "
- "SA.\n");
- retVal = placer1(getCtx(), Placer1Cfg(getCtx()));
- } else {
- PlacerHeapCfg cfg(getCtx());
- cfg.ioBufTypes.insert(id("GENERIC_IOB"));
- retVal = placer_heap(getCtx(), cfg);
- }
- getCtx()->settings[getCtx()->id("place")] = 1;
- archInfoToAttributes();
- return retVal;
- } else if (placer == "sa") {
+ if (placer == "sa") {
bool retVal = placer1(getCtx(), Placer1Cfg(getCtx()));
getCtx()->settings[getCtx()->id("place")] = 1;
archInfoToAttributes();
return retVal;
} else {
- log_error("Generic architecture does not support placer '%s'\n", placer.c_str());
+ log_error("MachXO2 architecture does not support placer '%s'\n", placer.c_str());
}
}
@@ -384,7 +362,7 @@ bool Arch::route()
router2(getCtx(), Router2Cfg(getCtx()));
result = true;
} else {
- log_error("iCE40 architecture does not support router '%s'\n", router.c_str());
+ log_error("MachXO2 architecture does not support router '%s'\n", router.c_str());
}
getCtx()->settings[getCtx()->id("route")] = 1;
archInfoToAttributes();