aboutsummaryrefslogtreecommitdiffstats
path: root/generic/arch.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2019-04-03 16:08:33 +0100
committerDavid Shah <dave@ds0.me>2019-04-03 16:08:33 +0100
commit6fffe24177f9b99d6c332c18e343648cf33d4397 (patch)
treea75edfc7a224b588af0d7d7656915db8246d4506 /generic/arch.cc
parenta05593da624d08e6b5c0356448238639479dd250 (diff)
downloadnextpnr-6fffe24177f9b99d6c332c18e343648cf33d4397.tar.gz
nextpnr-6fffe24177f9b99d6c332c18e343648cf33d4397.tar.bz2
nextpnr-6fffe24177f9b99d6c332c18e343648cf33d4397.zip
generic: GUI Python bindings
Signed-off-by: David Shah <dave@ds0.me>
Diffstat (limited to 'generic/arch.cc')
-rw-r--r--generic/arch.cc14
1 files changed, 12 insertions, 2 deletions
diff --git a/generic/arch.cc b/generic/arch.cc
index 01f7ef55..08146b65 100644
--- a/generic/arch.cc
+++ b/generic/arch.cc
@@ -18,6 +18,7 @@
*/
#include <math.h>
+#include <iostream>
#include "nextpnr.h"
#include "placer1.h"
#include "router1.h"
@@ -201,7 +202,10 @@ void Arch::setDelayScaling(double scale, double offset)
// ---------------------------------------------------------------
-Arch::Arch(ArchArgs args) : chipName("generic"), args(args) {}
+Arch::Arch(ArchArgs args) : chipName("generic"), args(args) {
+ // Dummy for empty decals
+ decal_graphics[IdString()];
+}
void IdString::initialize_arch(const BaseCtx *ctx) {}
@@ -469,7 +473,13 @@ bool Arch::route() { return router1(getCtx(), Router1Cfg(getCtx())); }
// ---------------------------------------------------------------
-const std::vector<GraphicElement> &Arch::getDecalGraphics(DecalId decal) const { return decal_graphics.at(decal); }
+const std::vector<GraphicElement> &Arch::getDecalGraphics(DecalId decal) const {
+ if (!decal_graphics.count(decal)) {
+ std::cerr << "No decal named " << decal.str(this) << std::endl;
+ log_error("No decal named %s!\n", decal.c_str(this));
+ }
+ return decal_graphics.at(decal);
+}
DecalXY Arch::getBelDecal(BelId bel) const { return bels.at(bel).decalxy; }