From 4cbdc388b860ca5f5af5e99c2bc7b21ff6b461bd Mon Sep 17 00:00:00 2001 From: Miodrag Milanovic Date: Sat, 12 Oct 2019 17:53:46 +0200 Subject: Add more types of wires --- ecp5/arch.cc | 367 +++++++++++++++++++++++++++++++---------------------------- ecp5/gfx.h | 31 ++++- 2 files changed, 221 insertions(+), 177 deletions(-) (limited to 'ecp5') diff --git a/ecp5/arch.cc b/ecp5/arch.cc index 3afaffa8..80dc8817 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -649,204 +649,219 @@ std::vector Arch::getDecalGraphics(DecalId decal) const el.y2 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_DUMMY_100 + 1) + 3*slice_pitch; ret.push_back(el); } - } - if (tilewire >= TILE_WIRE_FCO && tilewire <=TILE_WIRE_FCI) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + switchbox_x2; - el.x2 = x + slice_x1 - 0.005f; - el.y1 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; - el.y2 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; - ret.push_back(el); - } - if (tilewire >= TILE_WIRE_FCO_SLICE && tilewire <=TILE_WIRE_FCOA_SLICE) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + slice_x1 + 0.005f; - el.x2 = x + slice_x1 + 0.005f; - if (tilewire==TILE_WIRE_FCO_SLICE) - el.y1 = y + slice_y2 + 0.0017f + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; - else - el.y1 = y + slice_y2 + 0.00125f + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; - el.y2 = y + slice_y2 + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; - ret.push_back(el); - if (tilewire==TILE_WIRE_FCO_SLICE) { - el.x1 = x + slice_x1 - 0.005f; + if (tilewire >= TILE_WIRE_FCID_SLICE && tilewire <=TILE_WIRE_FCI_SLICE) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + slice_x1 + 0.005f; el.x2 = x + slice_x1 + 0.005f; - el.y2 = el.y1; + if (tilewire==TILE_WIRE_FCI_SLICE) + el.y1 = y + slice_y1 - 0.0007f + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; + else + el.y1 = y + slice_y1 - 0.00125f + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; + el.y2 = y + slice_y1 + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; ret.push_back(el); + if (tilewire==TILE_WIRE_FCI_SLICE) { + el.x1 = x + slice_x1 - 0.005f; + el.x2 = x + slice_x1 + 0.005f; + el.y2 = el.y1; + ret.push_back(el); + } } } - if (tilewire >= TILE_WIRE_FCID_SLICE && tilewire <=TILE_WIRE_FCI_SLICE) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + slice_x1 + 0.005f; - el.x2 = x + slice_x1 + 0.005f; - if (tilewire==TILE_WIRE_FCI_SLICE) - el.y1 = y + slice_y1 - 0.0007f + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; - else - el.y1 = y + slice_y1 - 0.00125f + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; - el.y2 = y + slice_y1 + (3-(tilewire - TILE_WIRE_FCID_SLICE))*slice_pitch; - ret.push_back(el); - if (tilewire==TILE_WIRE_FCI_SLICE) { - el.x1 = x + slice_x1 - 0.005f; + if (wire_type == id_WIRE_TYPE_V01) { + if (tilewire >= TILE_WIRE_V01N0001 && tilewire <=TILE_WIRE_V01S0100) + //if (tilewire >= TILE_WIRE_V01N0000 && tilewire <=TILE_WIRE_V01S0101) // not existing in trellis + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + switchbox_x1 + 0.005f + 0.0017f * (tilewire - TILE_WIRE_V01N0001); + el.x2 = el.x1; + el.y1 = y + switchbox_y1; + el.y2 = y + switchbox_y2 - 1; + ret.push_back(el); + } + } + if (wire_type == id_WIRE_TYPE_NONE) { + if (tilewire >= TILE_WIRE_FCO && tilewire <=TILE_WIRE_FCI) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + switchbox_x2; + el.x2 = x + slice_x1 - 0.005f; + el.y1 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; + el.y2 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; + ret.push_back(el); + } + if (tilewire >= TILE_WIRE_FCO_SLICE && tilewire <=TILE_WIRE_FCOA_SLICE) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + slice_x1 + 0.005f; el.x2 = x + slice_x1 + 0.005f; - el.y2 = el.y1; + if (tilewire==TILE_WIRE_FCO_SLICE) + el.y1 = y + slice_y2 + 0.0017f + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; + else + el.y1 = y + slice_y2 + 0.00125f + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; + el.y2 = y + slice_y2 + (3-(tilewire - TILE_WIRE_FCO_SLICE))*slice_pitch; ret.push_back(el); + if (tilewire==TILE_WIRE_FCO_SLICE) { + el.x1 = x + slice_x1 - 0.005f; + el.x2 = x + slice_x1 + 0.005f; + el.y2 = el.y1; + ret.push_back(el); + } } - } - - if (tilewire >= TILE_WIRE_LSR1 && tilewire <=TILE_WIRE_CLK0) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + switchbox_x2; - el.x2 = x + switchbox_x2 + 0.0017f * (6-(tilewire-TILE_WIRE_LSR1)); - el.y1 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; - el.y2 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; - ret.push_back(el); - - if (tilewire == TILE_WIRE_LSR1 || tilewire==TILE_WIRE_LSR0) { - el.x1 = el.x2; - el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 1) + 3*slice_pitch; + if (tilewire >= TILE_WIRE_LSR1 && tilewire <=TILE_WIRE_CLK0) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + switchbox_x2; + el.x2 = x + switchbox_x2 + 0.0017f * (6-(tilewire-TILE_WIRE_LSR1)); + el.y1 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; + el.y2 = y + slice_y2 - 0.0017f * (tilewire - TILE_WIRE_LSR1 - 5) + 3*slice_pitch; ret.push_back(el); - if (tilewire == TILE_WIRE_LSR1) { - for (int i=0;i<2;i++){ - el.x2 = x + slice_x1 - 0.005f; - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 - 2) + (3+i)*slice_pitch; - el.y2 = el.y1; - ret.push_back(el); + + if (tilewire == TILE_WIRE_LSR1 || tilewire==TILE_WIRE_LSR0) { + el.x1 = el.x2; + el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 1) + 3*slice_pitch; + ret.push_back(el); + if (tilewire == TILE_WIRE_LSR1) { + for (int i=0;i<2;i++){ + el.x2 = x + slice_x1 - 0.005f; + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 - 2) + (3+i)*slice_pitch; + el.y2 = el.y1; + ret.push_back(el); + } } - } - } else { - el.x1 = el.x2; - el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 -5 + 2) + 3*slice_pitch; - ret.push_back(el); - if (tilewire == TILE_WIRE_CLK1) { - for (int i=0;i<2;i++){ - el.x2 = x + slice_x1 - 0.005f; - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 - 1) + (3+i)*slice_pitch; - el.y2 = el.y1; - ret.push_back(el); + } else { + el.x1 = el.x2; + el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 -5 + 2) + 3*slice_pitch; + ret.push_back(el); + if (tilewire == TILE_WIRE_CLK1) { + for (int i=0;i<2;i++){ + el.x2 = x + slice_x1 - 0.005f; + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 - 1) + (3+i)*slice_pitch; + el.y2 = el.y1; + ret.push_back(el); + } } - } + } + } + if (tilewire >= TILE_WIRE_MUXCLK3 && tilewire <=TILE_WIRE_MUXCLK0) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + switchbox_x2 + 0.0017f * 3; + el.x2 = x + slice_x1 - 0.005f; + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 2) + (3 + 3 - (tilewire - TILE_WIRE_MUXCLK3))*slice_pitch; + el.y2 = el.y1; + ret.push_back(el); } - } - if (tilewire >= TILE_WIRE_MUXCLK3 && tilewire <=TILE_WIRE_MUXCLK0) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + switchbox_x2 + 0.0017f * 3; - el.x2 = x + slice_x1 - 0.005f; - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 2) + (3 + 3 - (tilewire - TILE_WIRE_MUXCLK3))*slice_pitch; - el.y2 = el.y1; - ret.push_back(el); - } - if (tilewire >= TILE_WIRE_MUXLSR3 && tilewire <=TILE_WIRE_MUXLSR0) - { - GraphicElement el; - el.type = GraphicElement::TYPE_LINE; - el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el.x1 = x + switchbox_x2 + 0.0017f * 5; - el.x2 = x + slice_x1 - 0.005f; - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 1) + (3 + 3 - (tilewire - TILE_WIRE_MUXLSR3))*slice_pitch; - el.y2 = el.y1; - ret.push_back(el); - } + if (tilewire >= TILE_WIRE_MUXLSR3 && tilewire <=TILE_WIRE_MUXLSR0) + { + GraphicElement el; + el.type = GraphicElement::TYPE_LINE; + el.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el.x1 = x + switchbox_x2 + 0.0017f * 5; + el.x2 = x + slice_x1 - 0.005f; + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_CE0 - TILE_WIRE_LSR1 - 5 + 1) + (3 + 3 - (tilewire - TILE_WIRE_MUXLSR3))*slice_pitch; + el.y2 = el.y1; + ret.push_back(el); + } - if (tilewire >= TILE_WIRE_F7 && tilewire <=TILE_WIRE_F0) - { - int group = (tilewire - TILE_WIRE_F7) / 4; - int part = (tilewire - TILE_WIRE_F7) % 4; - float offset = 0; - if (part == 0) offset = -0.0017f/2; - if (part == 3) offset = +0.0017f/2; - GraphicElement el; - 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 * (7 *(4-group)-part)); - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_F7_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + (3 - group )*slice_pitch - offset; - el.y2 = el.y1; - ret.push_back(el); + if (tilewire >= TILE_WIRE_F7 && tilewire <=TILE_WIRE_F0) + { + int group = (tilewire - TILE_WIRE_F7) / 4; + int part = (tilewire - TILE_WIRE_F7) % 4; + float offset = 0; + if (part == 0) offset = -0.0017f/2; + if (part == 3) offset = +0.0017f/2; + GraphicElement el; + 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 * (7 *(4-group)-part)); + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_F7_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + (3 - group )*slice_pitch - offset; + el.y2 = el.y1; + ret.push_back(el); - if (part == 0 || part == 3) { - GraphicElement el2; - el2.type = GraphicElement::TYPE_LINE; - el2.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; - el2.x1 = x + slice_x2 + 0.005f; - el2.x2 = el2.x1; - el2.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_F7_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + (3 - group )*slice_pitch; - el2.y2 = el2.y1 + 0.0017f * (part==3 ? -1 : 1); - ret.push_back(el2); - } + if (part == 0 || part == 3) { + GraphicElement el2; + el2.type = GraphicElement::TYPE_LINE; + el2.style = decal.active ? GraphicElement::STYLE_ACTIVE : GraphicElement::STYLE_INACTIVE; + el2.x1 = x + slice_x2 + 0.005f; + el2.x2 = el2.x1; + el2.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_F7_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + (3 - group )*slice_pitch; + el2.y2 = el2.y1 + 0.0017f * (part==3 ? -1 : 1); + ret.push_back(el2); + } - el.x1 = el.x2; - el.y2 = el.y1 - (0.0017f * (30 *(3-group) + (3-part)*2 + 10)) + offset; - ret.push_back(el); + el.x1 = el.x2; + el.y2 = el.y1 - (0.0017f * (30 *(3-group) + (3-part)*2 + 10)) + offset; + ret.push_back(el); - el.x1 = x + switchbox_x2; - el.y1 = el.y2; - ret.push_back(el); - } - if (tilewire >= TILE_WIRE_WD3 && tilewire <=TILE_WIRE_WD0) - { - GraphicElement el; - int part = (tilewire - TILE_WIRE_WD3) % 4; - int group = (tilewire - TILE_WIRE_WD3) / 2; - 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 *(4 - part); - el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_WDO3C_SLICE - TILE_WIRE_DUMMY_100 + 1 + part) + 3*slice_pitch; - el.y2 = el.y1; - ret.push_back(el); + el.x1 = x + switchbox_x2; + el.y1 = el.y2; + ret.push_back(el); + } + if (tilewire >= TILE_WIRE_WD3 && tilewire <=TILE_WIRE_WD0) + { + GraphicElement el; + int part = (tilewire - TILE_WIRE_WD3) % 4; + int group = (tilewire - TILE_WIRE_WD3) / 2; + 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 *(4 - part); + el.y1 = y + slice_y2 - 0.0017f * (TILE_WIRE_WDO3C_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_WD1B_SLICE - TILE_WIRE_DUMMY_100 + 1 + (part & 1)) + (3-group)*slice_pitch; - ret.push_back(el); + el.x1 = el.x2; + el.y2 = y + slice_y2 - 0.0017f * (TILE_WIRE_WD1B_SLICE - TILE_WIRE_DUMMY_100 + 1 + (part & 1)) + (3-group)*slice_pitch; + ret.push_back(el); - el.x1 = x + slice_x2 + 0.005f; - 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 = x + slice_x2 + 0.005f; + 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 = 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); + 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); - } + // 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; diff --git a/ecp5/gfx.h b/ecp5/gfx.h index 7cbb6eab..f030d9c8 100644 --- a/ecp5/gfx.h +++ b/ecp5/gfx.h @@ -387,7 +387,36 @@ enum GfxTileWireId TILE_WIRE_WAD3, TILE_WIRE_WAD2, TILE_WIRE_WAD1, - TILE_WIRE_WAD0 + TILE_WIRE_WAD0, + + + TILE_WIRE_V01N0000, + TILE_WIRE_V01N0100, + TILE_WIRE_V01S0001, + TILE_WIRE_V01S0101, + + TILE_WIRE_V01N0001, + TILE_WIRE_V01N0101, + TILE_WIRE_V01S0000, + TILE_WIRE_V01S0100, + + TILE_WIRE_V00T0000, + TILE_WIRE_V00T0100, + + TILE_WIRE_V00B0000, + TILE_WIRE_V00B0100, + + TILE_WIRE_H00L0000, + TILE_WIRE_H00L0100, + + TILE_WIRE_H00R0000, + TILE_WIRE_H00R0100, + + TILE_WIRE_NBOUNCE, + TILE_WIRE_SBOUNCE, + TILE_WIRE_WBOUNCE, + TILE_WIRE_EBOUNCE + }; NEXTPNR_NAMESPACE_END -- cgit v1.2.3