File tree Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Expand file tree Collapse file tree 1 file changed +11
-0
lines changed Original file line number Diff line number Diff line change @@ -72,6 +72,9 @@ struct SynthIce40Pass : public Pass {
72
72
log (" -nobram\n " );
73
73
log (" do not use SB_RAM40_4K* cells in output netlist\n " );
74
74
log (" \n " );
75
+ log (" -abc2\n " );
76
+ log (" run two passes of 'abc' for slightly improved logic density\n " );
77
+ log (" \n " );
75
78
log (" \n " );
76
79
log (" The following commands are executed by this synthesis command:\n " );
77
80
log (" \n " );
@@ -109,6 +112,7 @@ struct SynthIce40Pass : public Pass {
109
112
log (" ice40_opt -full\n " );
110
113
log (" \n " );
111
114
log (" map_luts:\n " );
115
+ log (" abc (only if -abc2)\n " );
112
116
log (" abc -lut 4\n " );
113
117
log (" clean\n " );
114
118
log (" \n " );
@@ -137,6 +141,7 @@ struct SynthIce40Pass : public Pass {
137
141
bool nobram = false ;
138
142
bool flatten = true ;
139
143
bool retime = false ;
144
+ bool abc2 = false ;
140
145
141
146
size_t argidx;
142
147
for (argidx = 1 ; argidx < args.size (); argidx++)
@@ -181,6 +186,10 @@ struct SynthIce40Pass : public Pass {
181
186
nobram = true ;
182
187
continue ;
183
188
}
189
+ if (args[argidx] == " -abc2" ) {
190
+ abc2 = true ;
191
+ continue ;
192
+ }
184
193
break ;
185
194
}
186
195
extra_args (args, argidx, design);
@@ -244,6 +253,8 @@ struct SynthIce40Pass : public Pass {
244
253
245
254
if (check_label (active, run_from, run_to, " map_luts" ))
246
255
{
256
+ if (abc2)
257
+ Pass::call (design, " abc" );
247
258
Pass::call (design, " abc -lut 4" );
248
259
Pass::call (design, " clean" );
249
260
}
You can’t perform that action at this time.
0 commit comments