From be73894bea1c5719eccfad6b8c7e7ae44798a68a Mon Sep 17 00:00:00 2001 From: Clifford Wolf Date: Mon, 11 Jun 2018 20:12:57 +0200 Subject: Add "nextpnr.h" Signed-off-by: Clifford Wolf --- common/design.cc | 2 +- common/design.h | 47 +++-------------------------------- common/log.cc | 1 - common/log.h | 2 +- common/nextpnr.h | 69 ++++++++++++++++++++++++++++++++++++++++++++++++++++ common/place.cc | 1 - common/place.h | 2 +- common/pybindings.cc | 7 ++---- common/rulecheck.cc | 2 +- 9 files changed, 78 insertions(+), 55 deletions(-) create mode 100644 common/nextpnr.h (limited to 'common') diff --git a/common/design.cc b/common/design.cc index 6ab122df..8fc3a781 100644 --- a/common/design.cc +++ b/common/design.cc @@ -17,4 +17,4 @@ * */ -#include "design.h" +#include "nextpnr.h" diff --git a/common/design.h b/common/design.h index d05e6095..ae2657f2 100644 --- a/common/design.h +++ b/common/design.h @@ -20,50 +20,9 @@ #ifndef DESIGN_H #define DESIGN_H -#include -#include -#include -#include -#include -#include - -// replace with proper IdString later -typedef std::string IdString; - -struct GraphicElement -{ - // This will control colour, and there should be separate - // visibility controls in some cases also - enum - { - // Wires entirely inside tiles, e.g. between switchbox and bels - G_LOCAL_WIRES, - // Standard inter-tile routing - G_GENERAL_WIRES, - // Special inter-tile wires, e.g. carry chains - G_DEDICATED_WIRES, - G_BEL_OUTLINE, - G_SWITCHBOX_OUTLINE, - G_TILE_OUTLINE, - G_BEL_PINS, - G_SWITCHBOX_PINS, - G_BEL_MISC, - G_TILE_MISC, - } style; - - enum - { - G_LINE, - G_BOX, - G_CIRCLE, - G_LABEL - } type; - - float x1, y1, x2, y2, z; - std::string text; -}; - -#include "chip.h" +#ifndef NEXTPNR_H +#error Include "design.h" via "nextpnr.h" only. +#endif struct CellInfo; diff --git a/common/log.cc b/common/log.cc index 7a411fb2..e72633bc 100644 --- a/common/log.cc +++ b/common/log.cc @@ -26,7 +26,6 @@ #include #include -#include "design.h" #include "log.h" std::vector log_files; diff --git a/common/log.h b/common/log.h index c3c05c11..085f72ee 100644 --- a/common/log.h +++ b/common/log.h @@ -27,7 +27,7 @@ #include #include -#include "design.h" +#include "nextpnr.h" // from libs/sha1/sha1.h diff --git a/common/nextpnr.h b/common/nextpnr.h new file mode 100644 index 00000000..453af496 --- /dev/null +++ b/common/nextpnr.h @@ -0,0 +1,69 @@ +/* + * nextpnr -- Next Generation Place and Route + * + * Copyright (C) 2018 Clifford Wolf + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + * + */ + +#include +#include +#include +#include +#include +#include + +#ifndef NEXTPNR_H +#define NEXTPNR_H + +// replace with proper IdString later +typedef std::string IdString; + +struct GraphicElement +{ + // This will control colour, and there should be separate + // visibility controls in some cases also + enum + { + // Wires entirely inside tiles, e.g. between switchbox and bels + G_LOCAL_WIRES, + // Standard inter-tile routing + G_GENERAL_WIRES, + // Special inter-tile wires, e.g. carry chains + G_DEDICATED_WIRES, + G_BEL_OUTLINE, + G_SWITCHBOX_OUTLINE, + G_TILE_OUTLINE, + G_BEL_PINS, + G_SWITCHBOX_PINS, + G_BEL_MISC, + G_TILE_MISC, + } style; + + enum + { + G_LINE, + G_BOX, + G_CIRCLE, + G_LABEL + } type; + + float x1, y1, x2, y2, z; + std::string text; +}; + +#include "chip.h" +#include "design.h" + +#endif diff --git a/common/place.cc b/common/place.cc index 17b31c69..0223c78f 100644 --- a/common/place.cc +++ b/common/place.cc @@ -28,7 +28,6 @@ #include #include -#include "design.h" #include "log.h" #include "place.h" diff --git a/common/place.h b/common/place.h index 8d3b4c42..a8b86595 100644 --- a/common/place.h +++ b/common/place.h @@ -19,7 +19,7 @@ #ifndef PLACE_H #define PLACE_H -#include "design.h" +#include "nextpnr.h" extern void place_design(Design *design); diff --git a/common/pybindings.cc b/common/pybindings.cc index 82f35421..d941436b 100644 --- a/common/pybindings.cc +++ b/common/pybindings.cc @@ -18,13 +18,10 @@ * */ -#include "chip.h" -#include "design.h" +#include "pybindings.h" #include "emb.h" #include "jsonparse.h" - -// include after design.h/chip.h -#include "pybindings.h" +#include "nextpnr.h" #include diff --git a/common/rulecheck.cc b/common/rulecheck.cc index ca0fb76c..4fc3f73a 100644 --- a/common/rulecheck.cc +++ b/common/rulecheck.cc @@ -1,7 +1,7 @@ #include #include -#include "design.h" #include "log.h" +#include "nextpnr.h" bool check_all_nets_driven(Design *design) { -- cgit v1.2.3