Skip to content

Commit f226364

Browse files
committed
xilinx: fix IdString memory leak
1 parent a915143 commit f226364

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

techlibs/xilinx/xilinx_dsp_cascade.pmg

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ finally
9090
if (i % MAX_DSP_CASCADE > 0) {
9191
if (P >= 0) {
9292
Wire *cascade = module->addWire(NEW_ID, 48);
93-
dsp_pcin->setPort(ID(C), Const(0, 48));
94-
dsp_pcin->setPort(ID(PCIN), cascade);
95-
dsp->setPort(ID(PCOUT), cascade);
93+
dsp_pcin->setPort(\C, Const(0, 48));
94+
dsp_pcin->setPort(\PCIN, cascade);
95+
dsp->setPort(\PCOUT, cascade);
9696
add_siguser(cascade, dsp_pcin);
9797
add_siguser(cascade, dsp);
9898

@@ -118,15 +118,15 @@ finally
118118
}
119119
if (AREG >= 0) {
120120
Wire *cascade = module->addWire(NEW_ID, 30);
121-
dsp_pcin->setPort(ID(A), Const(0, 30));
122-
dsp_pcin->setPort(ID(ACIN), cascade);
123-
dsp->setPort(ID(ACOUT), cascade);
121+
dsp_pcin->setPort(\A, Const(0, 30));
122+
dsp_pcin->setPort(\ACIN, cascade);
123+
dsp->setPort(\ACOUT, cascade);
124124
add_siguser(cascade, dsp_pcin);
125125
add_siguser(cascade, dsp);
126126

127127
if (dsp->type.in(\DSP48E1))
128-
dsp->setParam(ID(ACASCREG), AREG);
129-
dsp_pcin->setParam(ID(A_INPUT), Const("CASCADE"));
128+
dsp->setParam(\ACASCREG, AREG);
129+
dsp_pcin->setParam(\A_INPUT, Const("CASCADE"));
130130

131131
log_debug("ACOUT -> ACIN cascade for %s -> %s\n", log_id(dsp), log_id(dsp_pcin));
132132
}
@@ -138,18 +138,18 @@ finally
138138
// BCOUT from an adjacent DSP48A1 slice. The tools then
139139
// translate BCOUT cascading to the dedicated BCIN input
140140
// and set the B_INPUT attribute for implementation."
141-
dsp_pcin->setPort(ID(B), cascade);
141+
dsp_pcin->setPort(\B, cascade);
142142
}
143143
else {
144-
dsp_pcin->setPort(ID(B), Const(0, 18));
145-
dsp_pcin->setPort(ID(BCIN), cascade);
144+
dsp_pcin->setPort(\B, Const(0, 18));
145+
dsp_pcin->setPort(\BCIN, cascade);
146146
}
147-
dsp->setPort(ID(BCOUT), cascade);
147+
dsp->setPort(\BCOUT, cascade);
148148
add_siguser(cascade, dsp_pcin);
149149
add_siguser(cascade, dsp);
150150

151151
if (dsp->type.in(\DSP48E1)) {
152-
dsp->setParam(ID(BCASCREG), BREG);
152+
dsp->setParam(\BCASCREG, BREG);
153153
// According to UG389 p13 [https://www.xilinx.com/support/documentation/user_guides/ug389.pdf]
154154
// "The attribute is only used by place and route tools and
155155
// is not necessary for the users to set for synthesis. The
@@ -158,7 +158,7 @@ finally
158158
// BCOUT of another DSP48A1 slice, then the tools automatically
159159
// set the attribute to 'CASCADE', otherwise it is set to
160160
// 'DIRECT'".
161-
dsp_pcin->setParam(ID(B_INPUT), Const("CASCADE"));
161+
dsp_pcin->setParam(\B_INPUT, Const("CASCADE"));
162162
}
163163

164164
log_debug("BCOUT -> BCIN cascade for %s -> %s\n", log_id(dsp), log_id(dsp_pcin));

0 commit comments

Comments
 (0)