gowin: Add bels for oscillator
This commit is contained in:
parent
3ed53153ca
commit
12b38bab6d
@ -1009,6 +1009,44 @@ Arch::Arch(ArchArgs args) : args(args)
|
|||||||
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
addBelInput(belname, id_GSRI, id(buf));
|
addBelInput(belname, id_GSRI, id(buf));
|
||||||
break;
|
break;
|
||||||
|
case ID_OSC:
|
||||||
|
snprintf(buf, 32, "R%dC%d_OSC", row + 1, col + 1);
|
||||||
|
belname = id(buf);
|
||||||
|
addBel(belname, id_OSC, Loc(col, row, 0), false);
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelOutput(belname, id_OSCOUT, id(buf));
|
||||||
|
break;
|
||||||
|
case ID_OSCH:
|
||||||
|
snprintf(buf, 32, "R%dC%d_OSCH", row + 1, col + 1);
|
||||||
|
belname = id(buf);
|
||||||
|
addBel(belname, id_OSCH, Loc(col, row, 0), false);
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelOutput(belname, id_OSCOUT, id(buf));
|
||||||
|
break;
|
||||||
|
case ID_OSCF:
|
||||||
|
snprintf(buf, 32, "R%dC%d_OSCF", row + 1, col + 1);
|
||||||
|
belname = id(buf);
|
||||||
|
addBel(belname, id_OSCF, Loc(col, row, 0), false);
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelOutput(belname, id_OSCOUT, id(buf));
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCEN)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelInput(belname, id_OSCEN, id(buf));
|
||||||
|
break;
|
||||||
|
case ID_OSCZ:
|
||||||
|
snprintf(buf, 32, "R%dC%d_OSCZ", row + 1, col + 1);
|
||||||
|
belname = id(buf);
|
||||||
|
addBel(belname, id_OSCZ, Loc(col, row, 0), false);
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCOUT)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelOutput(belname, id_OSCOUT, id(buf));
|
||||||
|
portname = IdString(pairLookup(bel->ports.get(), bel->num_ports, ID_OSCEN)->src_id);
|
||||||
|
snprintf(buf, 32, "R%dC%d_%s", row + 1, col + 1, portname.c_str(this));
|
||||||
|
addBelInput(belname, id_OSCEN, id(buf));
|
||||||
|
break;
|
||||||
// fall through the ++
|
// fall through the ++
|
||||||
case ID_LUT7:
|
case ID_LUT7:
|
||||||
z++;
|
z++;
|
||||||
|
@ -758,6 +758,12 @@ X(GSR)
|
|||||||
X(GSR0)
|
X(GSR0)
|
||||||
X(GSRI)
|
X(GSRI)
|
||||||
|
|
||||||
|
// Oscillators
|
||||||
|
X(OSC)
|
||||||
|
X(OSCZ)
|
||||||
|
X(OSCH)
|
||||||
|
X(OSCF)
|
||||||
|
|
||||||
// primitive attributes
|
// primitive attributes
|
||||||
X(INIT)
|
X(INIT)
|
||||||
X(FF_USED)
|
X(FF_USED)
|
||||||
@ -791,6 +797,8 @@ X(COUT)
|
|||||||
X(OF)
|
X(OF)
|
||||||
X(V)
|
X(V)
|
||||||
X(G)
|
X(G)
|
||||||
|
X(OSCOUT)
|
||||||
|
X(OSCEN)
|
||||||
|
|
||||||
// timing
|
// timing
|
||||||
X(X0)
|
X(X0)
|
||||||
|
Loading…
Reference in New Issue
Block a user