aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgatecat <gatecat@ds0.me>2021-04-30 20:52:52 +0100
committergatecat <gatecat@ds0.me>2021-05-15 14:54:33 +0100
commit7e57196cf924237a5b6c77025768fcf225b9aa9d (patch)
tree2d19e6c5fc588bce47e59e0ece31456355fde758
parent0533818ceead805b9afc749d3a23e571e4a21543 (diff)
downloadnextpnr-7e57196cf924237a5b6c77025768fcf225b9aa9d.tar.gz
nextpnr-7e57196cf924237a5b6c77025768fcf225b9aa9d.tar.bz2
nextpnr-7e57196cf924237a5b6c77025768fcf225b9aa9d.zip
cyclonev: Add some useful constids
Signed-off-by: gatecat <gatecat@ds0.me>
-rw-r--r--cyclonev/arch.cc9
-rw-r--r--cyclonev/archdefs.h16
-rw-r--r--cyclonev/constids.inc51
3 files changed, 76 insertions, 0 deletions
diff --git a/cyclonev/arch.cc b/cyclonev/arch.cc
index 3f728b91..683118b2 100644
--- a/cyclonev/arch.cc
+++ b/cyclonev/arch.cc
@@ -26,6 +26,15 @@ NEXTPNR_NAMESPACE_BEGIN
using namespace mistral;
+void IdString::initialize_arch(const BaseCtx *ctx)
+{
+#define X(t) initialize_add(ctx, #t, ID_##t);
+
+#include "constids.inc"
+
+#undef X
+}
+
Arch::Arch(ArchArgs args)
{
this->args = args;
diff --git a/cyclonev/archdefs.h b/cyclonev/archdefs.h
index d8fd3160..71948ca1 100644
--- a/cyclonev/archdefs.h
+++ b/cyclonev/archdefs.h
@@ -33,6 +33,22 @@ using mistral::CycloneV;
typedef int delay_t;
+// https://bugreports.qt.io/browse/QTBUG-80789
+
+#ifndef Q_MOC_RUN
+enum ConstIds
+{
+ ID_NONE
+#define X(t) , ID_##t
+#include "constids.inc"
+#undef X
+};
+
+#define X(t) static constexpr auto id_##t = IdString(ID_##t);
+#include "constids.inc"
+#undef X
+#endif
+
struct DelayInfo
{
delay_t delay = 0;
diff --git a/cyclonev/constids.inc b/cyclonev/constids.inc
new file mode 100644
index 00000000..7efee143
--- /dev/null
+++ b/cyclonev/constids.inc
@@ -0,0 +1,51 @@
+X(MISTRAL_COMB)
+X(MISTRAL_FF)
+X(LAB)
+X(MLAB)
+
+X(A)
+X(B)
+X(C)
+X(D)
+X(E)
+X(F)
+X(E0)
+X(F0)
+X(E1)
+X(F1)
+X(DATAIN)
+X(FFT0)
+X(FFT1)
+X(FFB0)
+X(FFB1)
+X(FFT1L)
+X(FFB1L)
+X(CLKIN)
+X(ACLR)
+X(CLK)
+X(ENA)
+X(SCLR)
+X(SLOAD)
+X(SDATA)
+X(Q)
+
+X(COMBOUT)
+X(SUM_OUT)
+X(CIN)
+X(SHAREIN)
+X(COUT)
+X(SHAREOUT)
+
+X(MISTRAL_ALUT6)
+X(MISTRAL_ALUT5)
+X(MISTRAL_ALUT4)
+X(MISTRAL_ALUT3)
+X(MISTRAL_ALUT2)
+X(MISTRAL_NOT)
+X(MISTRAL_ALUT_ARITH)
+
+X(D0)
+X(D1)
+X(CI)
+X(CO)
+X(SO)