diff options
author | David Shah <davey1576@gmail.com> | 2018-07-17 16:18:06 +0200 |
---|---|---|
committer | David Shah <davey1576@gmail.com> | 2018-07-17 16:18:06 +0200 |
commit | 2b86800c0f7a66409d3d294b4e4d380594c2062e (patch) | |
tree | c2095285b17675e8d3204b0ce42c94f4b34172dc /ecp5/arch.cc | |
parent | 6c54d4f93c4f76db0280af73d9a84fcbde1d74f6 (diff) | |
download | nextpnr-2b86800c0f7a66409d3d294b4e4d380594c2062e.tar.gz nextpnr-2b86800c0f7a66409d3d294b4e4d380594c2062e.tar.bz2 nextpnr-2b86800c0f7a66409d3d294b4e4d380594c2062e.zip |
ecp5: Adding a slow and conservative placement validity checker
Signed-off-by: David Shah <davey1576@gmail.com>
Diffstat (limited to 'ecp5/arch.cc')
-rw-r--r-- | ecp5/arch.cc | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/ecp5/arch.cc b/ecp5/arch.cc index cdffad69..0ffede3b 100644 --- a/ecp5/arch.cc +++ b/ecp5/arch.cc @@ -118,6 +118,14 @@ Arch::Arch(ArchArgs args) : args(args) log_error("Unsupported ECP5 chip type.\n"); } #endif + + id_trellis_slice = id("TRELLIS_SLICE"); + id_clk = id("CLK"); + id_lsr = id("LSR"); + id_clkmux = id("CLKMUX"); + id_lsrmux = id("LSRMUX"); + id_srmode = id("SRMODE"); + id_mode = id("MODE"); } // ----------------------------------------------------------------------- @@ -181,7 +189,10 @@ BelRange Arch::getBelsAtSameTile(BelId bel) const br.b.cursor_tile = bel.location.y * chip_info->width + bel.location.x; br.e.cursor_tile = bel.location.y * chip_info->width + bel.location.x; br.b.cursor_index = 0; - br.e.cursor_index = locInfo(bel)->num_bels; + br.e.cursor_index = locInfo(bel)->num_bels - 1; + br.b.chip = chip_info; + br.e.chip = chip_info; + ++br.e; return br; } @@ -315,12 +326,6 @@ DecalXY Arch::getGroupDecal(GroupId pip) const { return {}; }; // ----------------------------------------------------------------------- -bool Arch::isValidBelForCell(CellInfo *cell, BelId bel) const { return true; } - -bool Arch::isBelLocationValid(BelId bel) const { return true; } - -// ----------------------------------------------------------------------- - bool Arch::getCellDelay(const CellInfo *cell, IdString fromPort, IdString toPort, delay_t &delay) const { return false; |