place FIFO
This commit is contained in:
parent
392f100948
commit
120ca6950a
@ -129,6 +129,70 @@ enum ClusterPlacement
|
||||
PLACE_CDC_CDRSTI,
|
||||
PLACE_CDC_DSRSTI,
|
||||
PLACE_CDC_DDRSTI,
|
||||
PLACE_FIFO_I1,
|
||||
PLACE_FIFO_I2,
|
||||
PLACE_FIFO_I3,
|
||||
PLACE_FIFO_I4,
|
||||
PLACE_FIFO_I5,
|
||||
PLACE_FIFO_I6,
|
||||
PLACE_FIFO_I7,
|
||||
PLACE_FIFO_I8,
|
||||
PLACE_FIFO_I9,
|
||||
PLACE_FIFO_I10,
|
||||
PLACE_FIFO_I11,
|
||||
PLACE_FIFO_I12,
|
||||
PLACE_FIFO_I13,
|
||||
PLACE_FIFO_I14,
|
||||
PLACE_FIFO_I15,
|
||||
PLACE_FIFO_I16,
|
||||
PLACE_FIFO_I17,
|
||||
PLACE_FIFO_I18,
|
||||
PLACE_FIFO_I19,
|
||||
PLACE_FIFO_I20,
|
||||
PLACE_FIFO_I21,
|
||||
PLACE_FIFO_I22,
|
||||
PLACE_FIFO_I23,
|
||||
PLACE_FIFO_I24,
|
||||
PLACE_FIFO_I25,
|
||||
PLACE_FIFO_I26,
|
||||
PLACE_FIFO_I27,
|
||||
PLACE_FIFO_I28,
|
||||
PLACE_FIFO_I29,
|
||||
PLACE_FIFO_I30,
|
||||
PLACE_FIFO_I31,
|
||||
PLACE_FIFO_I32,
|
||||
PLACE_FIFO_I33,
|
||||
PLACE_FIFO_I34,
|
||||
PLACE_FIFO_I35,
|
||||
PLACE_FIFO_I36,
|
||||
PLACE_FIFO_RAI1,
|
||||
PLACE_FIFO_RAI2,
|
||||
PLACE_FIFO_RAI3,
|
||||
PLACE_FIFO_RAI4,
|
||||
PLACE_FIFO_RAI5,
|
||||
PLACE_FIFO_RAI6,
|
||||
PLACE_FIFO_RAI7,
|
||||
PLACE_FIFO_WAI1,
|
||||
PLACE_FIFO_WAI2,
|
||||
PLACE_FIFO_WAI3,
|
||||
PLACE_FIFO_WAI4,
|
||||
PLACE_FIFO_WAI5,
|
||||
PLACE_FIFO_WAI6,
|
||||
PLACE_FIFO_WAI7,
|
||||
PLACE_FIFO_WE,
|
||||
PLACE_FIFO_WEA,
|
||||
PLACE_FIFO_WRSTI1,
|
||||
PLACE_FIFO_RRSTI1,
|
||||
PLACE_FIFO_WRSTI2,
|
||||
PLACE_FIFO_RRSTI2,
|
||||
PLACE_FIFO_WRSTI3,
|
||||
PLACE_FIFO_RRSTI3,
|
||||
PLACE_FIFO_WRSTI4,
|
||||
PLACE_FIFO_RRSTI4,
|
||||
PLACE_FIFO_WEQ1,
|
||||
PLACE_FIFO_REQ1,
|
||||
PLACE_FIFO_WEQ2,
|
||||
PLACE_FIFO_REQ2,
|
||||
};
|
||||
|
||||
enum PipExtra
|
||||
|
@ -514,7 +514,7 @@ Loc getCYFE(Loc root, int pos)
|
||||
|
||||
Loc getXRFFE(Loc root, int pos)
|
||||
{
|
||||
static const std::vector<Loc> map =
|
||||
static const std::vector<Loc> map =
|
||||
{
|
||||
Loc(-1, 0, 1),// I/O1
|
||||
Loc(-1, 0, 2),// I/O2
|
||||
@ -694,6 +694,267 @@ Loc getCDCFE(Loc root, int pos)
|
||||
return result;
|
||||
}
|
||||
|
||||
Loc getFIFOFE(Loc root, int pos)
|
||||
{
|
||||
static const std::vector<Loc> fifo1 =
|
||||
{
|
||||
Loc(-1, 0, 1), // I/O1
|
||||
Loc(-1, 0, 2), // I/O2
|
||||
Loc(-1, 0, 5), // I/O3
|
||||
Loc(-1, 0, 6), // I/O4
|
||||
Loc(-1, 0, 7), // I/O5
|
||||
Loc(-1, 0, 9), // I/O6
|
||||
Loc(-1, 0, 10),// I/O7
|
||||
Loc(-1, 0, 13),// I/O8
|
||||
Loc(-1, 0, 14),// I/O9
|
||||
Loc(-1, 0, 15),// I/O10
|
||||
Loc(-1, 0, 16),// I/O11
|
||||
Loc(-1, 0, 17),// I/O12
|
||||
Loc(-1, 0, 18),// I/O13
|
||||
Loc(-1, 0, 21),// I/O14
|
||||
Loc(-1, 0, 24),// I/O15
|
||||
Loc(-1, 0, 25),// I/O16
|
||||
Loc(-1, 0, 26),// I/O17
|
||||
Loc(-1, 0, 29),// I/O18
|
||||
|
||||
Loc( 0, 0, 0),// I/O19
|
||||
Loc( 0, 0, 0),// I/O20
|
||||
Loc( 0, 0, 0),// I/O21
|
||||
Loc( 0, 0, 0),// I/O22
|
||||
Loc( 0, 0, 0),// I/O23
|
||||
Loc( 0, 0, 0),// I/O24
|
||||
Loc( 0, 0, 0),// I/O25
|
||||
Loc( 0, 0, 0),// I/O26
|
||||
Loc( 0, 0, 0),// I/O27
|
||||
Loc( 0, 0, 0),// I/O28
|
||||
Loc( 0, 0, 0),// I/O29
|
||||
Loc( 0, 0, 0),// I/O30
|
||||
Loc( 0, 0, 0),// I/O31
|
||||
Loc( 0, 0, 0),// I/O32
|
||||
Loc( 0, 0, 0),// I/O33
|
||||
Loc( 0, 0, 0),// I/O34
|
||||
Loc( 0, 0, 0),// I/O35
|
||||
Loc( 0, 0, 0),// I/O36
|
||||
|
||||
Loc( 0, 0, 3), // RAI1/RAO1
|
||||
Loc( 0, 0, 10),// RAI2/RAO2
|
||||
Loc( 0, 0, 11),// RAI3/RAO3
|
||||
Loc( 0, 0, 19),// RAI4/RAO4
|
||||
Loc( 0, 0, 26),// RAI5/RAO5
|
||||
Loc( 0, 0, 27),// RAI6/RAO6
|
||||
Loc( 0, 0, 0),// RAI7/RAO7
|
||||
|
||||
Loc( 0, 0, 1), // WAI1/WAO1
|
||||
Loc( 0, 0, 2), // WAI2/WAO2
|
||||
Loc( 0, 0, 9), // WAI3/WAO3
|
||||
Loc( 0, 0, 17),// WAI4/WAO4
|
||||
Loc( 0, 0, 18),// WAI5/WAO5
|
||||
Loc( 0, 0, 25),// WAI6/WAO6
|
||||
Loc( 0, 0, 0),// WAI7/WAO7
|
||||
|
||||
Loc(-1, 0, 0),// WE
|
||||
Loc(-1, 0, 8),// WEA
|
||||
|
||||
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
||||
Loc(-1, 0, 30),// RRSTI1/RRSTO
|
||||
Loc( 0, 0, 8), // WRSTI2
|
||||
Loc( 0, 0, 24),// RRSTI2
|
||||
Loc( 0, 0, 0), // WRSTI3/WRSTO
|
||||
Loc( 0, 0, 0), // RRSTI3/RRSTO
|
||||
Loc( 0, 0, 0), // WRSTI4
|
||||
Loc( 0, 0, 0), // RRSTI4
|
||||
|
||||
Loc(-1, 0, 3),// WEQ
|
||||
Loc(-1, 0, 4),// REQ
|
||||
// Loc(-1, 0, 11), WEQ
|
||||
// Loc(-1, 0, 12), REQ
|
||||
// Loc(-1, 0, 19), WEQ
|
||||
// Loc(-1, 0, 20), REQ
|
||||
// Loc(-1, 0, 27), WEQ
|
||||
// Loc(-1, 0, 28), REQ
|
||||
Loc( 0, 0, 0),// WEQ2
|
||||
Loc( 0, 0, 0),// REQ2
|
||||
};
|
||||
|
||||
static const std::vector<Loc> fifo2 =
|
||||
{
|
||||
Loc(+1, 0, 1), // I/O1
|
||||
Loc(+1, 0, 2), // I/O2
|
||||
Loc(+1, 0, 5), // I/O3
|
||||
Loc(+1, 0, 6), // I/O4
|
||||
Loc(+1, 0, 7), // I/O5
|
||||
Loc(+1, 0, 9), // I/O6
|
||||
Loc(+1, 0, 10),// I/O7
|
||||
Loc(+1, 0, 13),// I/O8
|
||||
Loc(+1, 0, 14),// I/O9
|
||||
Loc(+1, 0, 15),// I/O10
|
||||
Loc(+1, 0, 16),// I/O11
|
||||
Loc(+1, 0, 17),// I/O12
|
||||
Loc(+1, 0, 18),// I/O13
|
||||
Loc(+1, 0, 21),// I/O14
|
||||
Loc(+1, 0, 24),// I/O15
|
||||
Loc(+1, 0, 25),// I/O16
|
||||
Loc(+1, 0, 26),// I/O17
|
||||
Loc(+1, 0, 29),// I/O18
|
||||
|
||||
Loc( 0, 0, 0),// I/O19
|
||||
Loc( 0, 0, 0),// I/O20
|
||||
Loc( 0, 0, 0),// I/O21
|
||||
Loc( 0, 0, 0),// I/O22
|
||||
Loc( 0, 0, 0),// I/O23
|
||||
Loc( 0, 0, 0),// I/O24
|
||||
Loc( 0, 0, 0),// I/O25
|
||||
Loc( 0, 0, 0),// I/O26
|
||||
Loc( 0, 0, 0),// I/O27
|
||||
Loc( 0, 0, 0),// I/O28
|
||||
Loc( 0, 0, 0),// I/O29
|
||||
Loc( 0, 0, 0),// I/O30
|
||||
Loc( 0, 0, 0),// I/O31
|
||||
Loc( 0, 0, 0),// I/O32
|
||||
Loc( 0, 0, 0),// I/O33
|
||||
Loc( 0, 0, 0),// I/O34
|
||||
Loc( 0, 0, 0),// I/O35
|
||||
Loc( 0, 0, 0),// I/O36
|
||||
|
||||
Loc( 0, 0, 6), // RAI1/RAO1
|
||||
Loc( 0, 0, 13),// RAI2/RAO2
|
||||
Loc( 0, 0, 14),// RAI3/RAO3
|
||||
Loc( 0, 0, 22),// RAI4/RAO4
|
||||
Loc( 0, 0, 29),// RAI5/RAO5
|
||||
Loc( 0, 0, 30),// RAI6/RAO6
|
||||
Loc( 0, 0, 0),// RAI7/RAO7
|
||||
|
||||
Loc( 0, 0, 4), // WAI1/WAO1
|
||||
Loc( 0, 0, 5), // WAI2/WAO2
|
||||
Loc( 0, 0, 12),// WAI3/WAO3
|
||||
Loc( 0, 0, 20),// WAI4/WAO4
|
||||
Loc( 0, 0, 21),// WAI5/WAO5
|
||||
Loc( 0, 0, 28),// WAI6/WAO6
|
||||
Loc( 0, 0, 0),// WAI7/WAO7
|
||||
|
||||
Loc(+1, 0, 0),// WE
|
||||
Loc(+1, 0, 8),// WEA
|
||||
|
||||
Loc(+1, 0, 22),// WRSTI1/WRSTO
|
||||
Loc(+1, 0, 30),// RRSTI1/RRSTO
|
||||
Loc( 0, 0, 7), // WRSTI2
|
||||
Loc( 0, 0, 23),// RRSTI2
|
||||
Loc( 0, 0, 0), // WRSTI3/WRSTO
|
||||
Loc( 0, 0, 0), // RRSTI3/RRSTO
|
||||
Loc( 0, 0, 0), // WRSTI4
|
||||
Loc( 0, 0, 0), // RRSTI4
|
||||
|
||||
Loc(+1, 0, 3),// WEQ
|
||||
Loc(+1, 0, 4),// REQ
|
||||
// Loc(+1, 0, 11), WEQ
|
||||
// Loc(+1, 0, 12), REQ
|
||||
// Loc(+1, 0, 19), WEQ
|
||||
// Loc(+1, 0, 20), REQ
|
||||
// Loc(+1, 0, 27), WEQ
|
||||
// Loc(+1, 0, 28), REQ
|
||||
Loc( 0, 0, 0),// WEQ2
|
||||
Loc( 0, 0, 0),// REQ2
|
||||
};
|
||||
|
||||
static const std::vector<Loc> xfifo =
|
||||
{
|
||||
Loc(-1, 0, 1), // I/O1
|
||||
Loc(-1, 0, 2), // I/O2
|
||||
Loc(-1, 0, 5), // I/O3
|
||||
Loc(-1, 0, 6), // I/O4
|
||||
Loc(-1, 0, 7), // I/O5
|
||||
Loc(-1, 0, 9),// I/O6
|
||||
Loc(-1, 0, 10),// I/O7
|
||||
Loc(-1, 0, 13),// I/O8
|
||||
Loc(-1, 0, 14),// I/O9
|
||||
Loc(-1, 0, 15),// I/O10
|
||||
Loc(-1, 0, 16),// I/O11
|
||||
Loc(-1, 0, 17),// I/O12
|
||||
Loc(-1, 0, 18),// I/O13
|
||||
Loc(-1, 0, 21),// I/O14
|
||||
Loc(-1, 0, 24),// I/O15
|
||||
Loc(-1, 0, 25),// I/O16
|
||||
Loc(-1, 0, 26),// I/O17
|
||||
Loc(-1, 0, 29),// I/O18
|
||||
Loc(+1, 0, 1), // I/O19
|
||||
Loc(+1, 0, 2), // I/O20
|
||||
Loc(+1, 0, 5), // I/O21
|
||||
Loc(+1, 0, 6), // I/O22
|
||||
Loc(+1, 0, 7), // I/O23
|
||||
Loc(+1, 0, 9), // I/O24
|
||||
Loc(+1, 0, 10),// I/O25
|
||||
Loc(+1, 0, 13),// I/O26
|
||||
Loc(+1, 0, 14),// I/O27
|
||||
Loc(+1, 0, 15),// I/O28
|
||||
Loc(+1, 0, 16),// I/O29
|
||||
Loc(+1, 0, 17),// I/O30
|
||||
Loc(+1, 0, 18),// I/O31
|
||||
Loc(+1, 0, 21),// I/O32
|
||||
Loc(+1, 0, 24),// I/O33
|
||||
Loc(+1, 0, 25),// I/O34
|
||||
Loc(+1, 0, 26),// I/O35
|
||||
Loc(+1, 0, 29),// I/O36
|
||||
|
||||
Loc( 0, 0, 3), // RAI1/RAO1
|
||||
Loc( 0, 0, 10),// RAI2/RAO2
|
||||
Loc( 0, 0, 11),// RAI3/RAO3
|
||||
Loc( 0, 0, 19),// RAI4/RAO4
|
||||
Loc( 0, 0, 26),// RAI5/RAO5
|
||||
Loc( 0, 0, 27),// RAI6/RAO6
|
||||
Loc( 0, 0, 6), // RAI7/RAO7
|
||||
|
||||
Loc( 0, 0, 1), // WAI1/WAO1
|
||||
Loc( 0, 0, 2), // WAI2/WAO2
|
||||
Loc( 0, 0, 9), // WAI3/WAO3
|
||||
Loc( 0, 0, 17),// WAI4/WAO4
|
||||
Loc( 0, 0, 18),// WAI5/WAO5
|
||||
Loc( 0, 0, 25),// WAI6/WAO6
|
||||
Loc( 0, 0, 4), // WAI7/WAO7
|
||||
|
||||
Loc(-1, 0, 0),// WE
|
||||
Loc(-1, 0, 8),// WEA
|
||||
|
||||
Loc(-1, 0, 22),// WRSTI1/WRSTO
|
||||
Loc(-1, 0, 30),// RRSTI1/RRSTO
|
||||
Loc( 0, 0, 8), // WRSTI2
|
||||
Loc( 0, 0, 24),// RRSTI2
|
||||
Loc(+1, 0, 22),// WRSTI3/WRSTO
|
||||
Loc(+1, 0, 30),// RRSTI3/RRSTO
|
||||
Loc( 0, 0, 7), // WRSTI4
|
||||
Loc( 0, 0, 23),// RRSTI4
|
||||
|
||||
Loc(-1, 0, 3),// WEQ1
|
||||
Loc(-1, 0, 4),// REQ1
|
||||
// Loc(-1, 0, 11), WEQ1
|
||||
// Loc(-1, 0, 12), REQ1
|
||||
// Loc(-1, 0, 19), WEQ1
|
||||
// Loc(-1, 0, 20), REQ1
|
||||
// Loc(-1, 0, 27), WEQ1
|
||||
// Loc(-1, 0, 28), REQ1
|
||||
Loc(+1, 0, 3),// WEQ2
|
||||
Loc(+1, 0, 4),// REQ2
|
||||
// Loc(+1, 0, 11), WEQ2
|
||||
// Loc(+1, 0, 12), REQ2
|
||||
// Loc(+1, 0, 19), WEQ2
|
||||
// Loc(+1, 0, 20), REQ2
|
||||
// Loc(+1, 0, 27), WEQ2
|
||||
// Loc(+1, 0, 28), REQ2
|
||||
};
|
||||
Loc result;
|
||||
if (root.z == BEL_FIFO_Z) {
|
||||
result = fifo1.at(pos);
|
||||
} else if (root.z == BEL_FIFO_Z+1) {
|
||||
result = fifo2.at(pos);
|
||||
} else if (root.z == BEL_XFIFO_Z) {
|
||||
result = xfifo.at(pos);
|
||||
} else {
|
||||
log_error("Trying to place CDC on wrong location.\n");
|
||||
}
|
||||
result.x += root.x;
|
||||
result.y = root.y;
|
||||
return result;
|
||||
}
|
||||
|
||||
bool NgUltraImpl::getChildPlacement(const BaseClusterInfo *cluster, Loc root_loc,
|
||||
std::vector<std::pair<CellInfo *, BelId>> &placement) const
|
||||
{
|
||||
@ -710,6 +971,8 @@ bool NgUltraImpl::getChildPlacement(const BaseClusterInfo *cluster, Loc root_loc
|
||||
return getXRFFE(root_loc, child->constr_z - PLACE_XRF_I1 );
|
||||
case PLACE_CDC_AI1 ... PLACE_CDC_DDRSTI:
|
||||
return getCDCFE(root_loc, child->constr_z - PLACE_CDC_AI1 );
|
||||
case PLACE_FIFO_I1 ... PLACE_FIFO_REQ2:
|
||||
return getFIFOFE(root_loc, child->constr_z - PLACE_FIFO_I1 );
|
||||
case PLACE_DSP_CHAIN : { Loc l = getNextLocInDSPChain(this, prev); prev = l; return l; }
|
||||
default:
|
||||
Loc result;
|
||||
|
@ -1116,9 +1116,82 @@ void NgUltraPacker::pack_fifos(void)
|
||||
default:
|
||||
log_error("Unknown mode %d for cell '%s'.\n", mode, ci.name.c_str(ctx));
|
||||
}
|
||||
//ci.cluster = ci.name;
|
||||
ci.cluster = ci.name;
|
||||
|
||||
if (mode > 0) {
|
||||
int rsti = (ci.type == id_FIFO) ? 2 : 4;
|
||||
for (int i=1;i<=rsti;i++) {
|
||||
IdString port = ctx->idf("WRSTI%d",i);
|
||||
ci.ports[port].name = port;
|
||||
ci.ports[port].type = PORT_IN;
|
||||
port = ctx->idf("RRSTI%d",i);
|
||||
ci.ports[port].name = port;
|
||||
ci.ports[port].type = PORT_IN;
|
||||
}
|
||||
|
||||
NetInfo *wrsti_net = ci.getPort(ctx->id("WRSTI"));
|
||||
if (wrsti_net) {
|
||||
ci.disconnectPort(ctx->id("WRSTI"));
|
||||
for (int i=1;i<=rsti;i++)
|
||||
ci.connectPort(ctx->idf("WRSTI%d",i), wrsti_net);
|
||||
}
|
||||
NetInfo *rrsti_net = ci.getPort(ctx->id("RRSTI"));
|
||||
if (rrsti_net) {
|
||||
ci.disconnectPort(ctx->id("RRSTI"));
|
||||
for (int i=1;i<=rsti;i++)
|
||||
ci.connectPort(ctx->idf("RRSTI%d",i), rrsti_net);
|
||||
}
|
||||
|
||||
for (int i = 1; i <= 18; i++) {
|
||||
connect_gnd_if_unconnected(&ci, ctx->idf("I%d",i));
|
||||
pack_xrf_input_and_output(&ci, ci.name, ctx->idf("I%d",i), ctx->idf("O%d",i), ClusterPlacement(PLACE_FIFO_I1 + i-1), lut_only, lut_and_ff, dff_only);
|
||||
}
|
||||
|
||||
if (mode==0) {
|
||||
for (int i = 19; i <= 36; i++) {
|
||||
disconnect_unused(&ci,ctx->idf("I%d",i));
|
||||
disconnect_unused(&ci,ctx->idf("O%d",i));
|
||||
}
|
||||
} else {
|
||||
for (int i = 19; i <= 36; i++) {
|
||||
connect_gnd_if_unconnected(&ci, ctx->idf("I%d",i));
|
||||
pack_xrf_input_and_output(&ci, ci.name, ctx->idf("I%d",i), ctx->idf("O%d",i), ClusterPlacement(PLACE_FIFO_I1 + i-1), lut_only, lut_and_ff, dff_only);
|
||||
}
|
||||
}
|
||||
for (int i = 1; i <= 6; i++) {
|
||||
connect_gnd_if_unconnected(&ci, ctx->idf("RAI%d",i));
|
||||
pack_xrf_input_and_output(&ci, ci.name, ctx->idf("RAI%d",i), ctx->idf("RAO%d",i), ClusterPlacement(PLACE_FIFO_RAI1 + i-1), lut_only, lut_and_ff, dff_only);
|
||||
|
||||
connect_gnd_if_unconnected(&ci, ctx->idf("WAI%d",i));
|
||||
pack_xrf_input_and_output(&ci, ci.name, ctx->idf("WAI%d",i), ctx->idf("WAO%d",i), ClusterPlacement(PLACE_FIFO_WAI1 + i-1), lut_only, lut_and_ff, dff_only);
|
||||
}
|
||||
|
||||
if (mode==0) {
|
||||
disconnect_unused(&ci, id_RAI7);
|
||||
disconnect_unused(&ci, id_WAI7);
|
||||
} else {
|
||||
connect_gnd_if_unconnected(&ci, id_RAI7);
|
||||
pack_xrf_input_and_output(&ci, ci.name, id_RAI7, id_RAO7, PLACE_FIFO_RAI7, lut_only, lut_and_ff, dff_only);
|
||||
|
||||
connect_gnd_if_unconnected(&ci, id_WAI7);
|
||||
pack_xrf_input_and_output(&ci, ci.name, id_WAI7, id_WAO7, PLACE_FIFO_WAI7, lut_only, lut_and_ff, dff_only);
|
||||
}
|
||||
|
||||
connect_gnd_if_unconnected(&ci, id_WE);
|
||||
pack_xrf_input_and_output(&ci, ci.name, id_WE, IdString(), PLACE_FIFO_WE, lut_only, lut_and_ff, dff_only);
|
||||
|
||||
disconnect_if_gnd(&ci, id_WEA);
|
||||
pack_xrf_input_and_output(&ci, ci.name, id_WEA, IdString(), PLACE_FIFO_WEA, lut_only, lut_and_ff, dff_only);
|
||||
|
||||
if (mode==0) {
|
||||
// FIFO
|
||||
ci.renamePort(id_WEQ1, ctx->id("WEQ"));
|
||||
pack_xrf_input_and_output(&ci, ci.name, IdString(), ctx->id("WEQ"), PLACE_FIFO_WEQ1, lut_only, lut_and_ff, dff_only);
|
||||
disconnect_unused(&ci, id_WEQ2);
|
||||
|
||||
ci.renamePort(id_REQ1, ctx->id("REQ"));
|
||||
pack_xrf_input_and_output(&ci, ci.name, IdString(), ctx->id("REQ"), PLACE_FIFO_REQ1, lut_only, lut_and_ff, dff_only);
|
||||
disconnect_unused(&ci, id_REQ2);
|
||||
} else {
|
||||
// XFIFO
|
||||
ci.ports[id_WCK1].name = id_WCK1;
|
||||
ci.ports[id_WCK1].type = PORT_IN;
|
||||
|
Loading…
Reference in New Issue
Block a user