diff options
author | David Shah <davey1576@gmail.com> | 2018-09-29 18:29:23 +0100 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-09-29 18:29:23 +0100 |
commit | 11cdc197bc48c9ce10dd9b718d44603adf2591b9 (patch) | |
tree | eba1823ba164e94877baf77009385629c21fd483 /ecp5/arch.cc | |
parent | f46f205782a8f2e977fefe8161ad7ff1a9ec6ad1 (diff) | |
download | nextpnr-11cdc197bc48c9ce10dd9b718d44603adf2591b9.tar.gz nextpnr-11cdc197bc48c9ce10dd9b718d44603adf2591b9.tar.bz2 nextpnr-11cdc197bc48c9ce10dd9b718d44603adf2591b9.zip |
ecp5: Fix global buffer connectivity and timing
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ecp5/arch.cc')
-rw-r--r-- | ecp5/arch.cc | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc index 1479e6ca..d42e77fa 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -28,6 +28,7 @@ #include "router1.h" #include "util.h" #include "globals.h" +#include "timing.h" NEXTPNR_NAMESPACE_BEGIN @@ -393,6 +394,7 @@ bool Arch::place() { return placer1(getCtx(), Placer1Cfg(getCtx())); } bool Arch::route() { route_ecp5_globals(getCtx()); + assign_budget(getCtx(), true); return router1(getCtx(), Router1Cfg(getCtx())); } @@ -523,6 +525,12 @@ bool Arch::getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort return true; } return false; + } else if (cell->type == id_DCCA) { + if (fromPort == id_CLKI && toPort == id_CLKO) { + delay.delay = 0; + return true; + } + return false; } else { return false; } @@ -569,6 +577,10 @@ TimingPortClass Arch::getPortTimingClass(const CellInfo *cell, IdString port, Id return TMG_STARTPOINT; return TMG_IGNORE; } else if (cell->type == id_DCCA) { + if (port == id_CLKI) + return TMG_COMB_INPUT; + if (port == id_CLKO) + return TMG_COMB_OUTPUT; return TMG_IGNORE; } else { NPNR_ASSERT_FALSE_STR("no timing data for cell type '" + cell->type.str(this) + "'"); |