aboutsummaryrefslogtreecommitdiffstats
path: root/ecp5/pio.cc
diff options
context:
space:
mode:
authorDavid Shah <dave@ds0.me>2020-01-16 09:38:00 +0000
committerGitHub <noreply@github.com>2020-01-16 09:38:00 +0000
commit54c1bc1538342e8680f9c228795f3f1b1d9fd7bb (patch)
treed4d980f7d0f1cacea9dff555bee8eb79a4700706 /ecp5/pio.cc
parent44cbc5121b431c7b24df03060f4a1cc50fa0abb0 (diff)
parentf513d5fff41a180fdde7d19c8db0c688c656f183 (diff)
downloadnextpnr-54c1bc1538342e8680f9c228795f3f1b1d9fd7bb.tar.gz
nextpnr-54c1bc1538342e8680f9c228795f3f1b1d9fd7bb.tar.bz2
nextpnr-54c1bc1538342e8680f9c228795f3f1b1d9fd7bb.zip
Merge pull request #382 from YosysHQ/ecp5-psuedodiff
ecp5: Add support for top pseudo diff outputs
Diffstat (limited to 'ecp5/pio.cc')
-rw-r--r--ecp5/pio.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/ecp5/pio.cc b/ecp5/pio.cc
index 65dcd704..5ff375e3 100644
--- a/ecp5/pio.cc
+++ b/ecp5/pio.cc
@@ -109,6 +109,7 @@ IOVoltage get_vccio(IOType type)
case IOType::SSTL18D_II:
return IOVoltage::VCC_1V8;
case IOType::LVCMOS15:
+ case IOType::LVCMOS15D:
case IOType::SSTL15_I:
case IOType::SSTL15_II:
case IOType::SSTL15D_I:
@@ -120,6 +121,7 @@ IOVoltage get_vccio(IOType type)
case IOType::SSTL135D_II:
return IOVoltage::VCC_1V35;
case IOType::LVCMOS12:
+ case IOType::LVCMOS12D:
case IOType::HSUL12:
case IOType::HSUL12D:
return IOVoltage::VCC_1V2;
@@ -159,6 +161,8 @@ bool is_differential(IOType type)
switch (type) {
case IOType::LVCMOS33D:
case IOType::LVCMOS25D:
+ case IOType::LVCMOS15D:
+ case IOType::LVCMOS12D:
case IOType::LVPECL33:
case IOType::LVDS:
case IOType::MLVDS25:
@@ -207,7 +211,7 @@ bool valid_loc_for_io(IOType type, PortType dir, IOSide side, int z)
bool is_lr = side == IOSide::LEFT || side == IOSide::RIGHT;
if (is_referenced(type) && !is_lr)
return false;
- if (is_differential(type) && (!is_lr || ((z % 2) == 1)))
+ if (is_differential(type) && ((!is_lr && dir != PORT_OUT) || ((z % 2) == 1)))
return false;
if ((type == IOType::LVCMOS18D || type == IOType::LVDS) && (dir == PORT_OUT || dir == PORT_INOUT) && z != 0)
return false;