$(eval $(call add_share_file,share/ice40,techlibs/ice40/latches_map.v))
$(eval $(call add_share_file,share/ice40,techlibs/ice40/brams.txt))
$(eval $(call add_share_file,share/ice40,techlibs/ice40/brams_map.v))
+$(eval $(call add_share_file,share/ice40,techlibs/ice40/cells.box))
+$(eval $(call add_share_file,share/ice40,techlibs/ice40/cells_box.v))
+$(eval $(call add_share_file,share/ice40,techlibs/ice40/lut.lut))
$(eval $(call add_gen_share_file,share/ice40,techlibs/ice40/brams_init1.vh))
$(eval $(call add_gen_share_file,share/ice40,techlibs/ice40/brams_init2.vh))
--- /dev/null
+(* abc_box_id = 1 *)
+module SB_CARRY (output CO, input CI, I0, I1);
+ assign CO = (I0 && I1) || ((I0 || I1) && CI);
+endmodule
+
run("techmap -map +/gate2lut.v -D LUT_WIDTH=4", "(only if -noabc)");
}
if (!noabc) {
- run(abc + " -dress -lut 4", "(skip if -noabc)");
+ if (abc == "abc9") {
+ run("read_verilog +/ice40/cells_box.v");
+ run("techmap -map +/techmap.v A:abc_box_id");
+ run(abc + " -dress -lut +/ice40/lut.lut -box +/ice40/cells.box", "(skip if -noabc)");
+ run("blackbox A:abc_box_id");
+ }
+ else
+ run(abc + " -lut 4", "(skip if -noabc)");
}
run("clean");
if (relut || help_mode) {