aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiodrag Milanovic <mmicko@gmail.com>2019-10-12 13:56:13 +0200
committerMiodrag Milanovic <mmicko@gmail.com>2019-10-20 09:41:48 +0200
commit966d0dec193150fe4fab6cc64a70c4d860885bf6 (patch)
treea420f66b9ed15113c8ff09c0cfe0a03665e99757
parent74da9cc4241197b43d424ef039ed030fc602dc05 (diff)
downloadnextpnr-966d0dec193150fe4fab6cc64a70c4d860885bf6.tar.gz
nextpnr-966d0dec193150fe4fab6cc64a70c4d860885bf6.tar.bz2
nextpnr-966d0dec193150fe4fab6cc64a70c4d860885bf6.zip
finixed slice wires
-rw-r--r--ecp5/arch.cc27
1 files changed, 27 insertions, 0 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc
index ac4326f2..3afaffa8 100644
--- a/ecp5/arch.cc
+++ b/ecp5/arch.cc
@@ -820,6 +820,33 @@ std::vector<GraphicElement> Arch::getDecalGraphics(DecalId decal) const
el.y1 = el.y2;
ret.push_back(el);
}
+ if (tilewire >= TILE_WIRE_WAD3 && tilewire <=TILE_WIRE_WAD0)
+ {
+ GraphicElement el;
+ int part = (tilewire - TILE_WIRE_WAD3) % 4;
+ el.type = GraphicElement::TYPE_LINE;
+ el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE;
+ el.x1 = x + slice_x2 + 0.005f;
+ el.x2 = x + slice_x2 + 0.005f + 0.0017f *(8 - part);
+ el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_WADO3C_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + 3*slice_pitch;
+ el.y2 = el.y1;
+ ret.push_back(el);
+
+ el.x1 = el.x2;
+ el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_WAD3B_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + 2*slice_pitch;
+ ret.push_back(el);
+
+ el.x1 = x + slice_x2 + 0.005f;
+ el.y1 = el.y2;
+ ret.push_back(el);
+
+ // middle line
+ el.x1 = x + slice_x2 + 0.005f;
+ el.x2 = x + slice_x2 + 0.005f + 0.0017f *(8 - part);
+ el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_WAD3B_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + 3*slice_pitch;
+ el.y1 = el.y2;
+ ret.push_back(el);
+ }
}
if (decal.type == DecalId::TYPE_BEL) {
BelId bel;