mirror of https://github.com/YosysHQ/yosys.git
Make iopad option default for all xilinx flows
This commit is contained in:
parent
aa1adb0f1e
commit
2fcf683af4
|
@ -64,7 +64,7 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
log(" (this feature is experimental and incomplete)\n");
|
log(" (this feature is experimental and incomplete)\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log(" -ise\n");
|
log(" -ise\n");
|
||||||
log(" generate an output netlist suitable for ISE (enables -iopad)\n");
|
log(" generate an output netlist suitable for ISE\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log(" -nobram\n");
|
log(" -nobram\n");
|
||||||
log(" do not use block RAM cells in output netlist\n");
|
log(" do not use block RAM cells in output netlist\n");
|
||||||
|
@ -84,11 +84,8 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
log(" -nodsp\n");
|
log(" -nodsp\n");
|
||||||
log(" do not use DSP48E1s to implement multipliers and associated logic\n");
|
log(" do not use DSP48E1s to implement multipliers and associated logic\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log(" -iopad\n");
|
|
||||||
log(" enable I/O buffer insertion (selected automatically by -ise)\n");
|
|
||||||
log("\n");
|
|
||||||
log(" -noiopad\n");
|
log(" -noiopad\n");
|
||||||
log(" disable I/O buffer insertion (only useful with -ise)\n");
|
log(" disable I/O buffer insertion\n");
|
||||||
log("\n");
|
log("\n");
|
||||||
log(" -noclkbuf\n");
|
log(" -noclkbuf\n");
|
||||||
log(" disable automatic clock buffer insertion\n");
|
log(" disable automatic clock buffer insertion\n");
|
||||||
|
@ -122,7 +119,7 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
}
|
}
|
||||||
|
|
||||||
std::string top_opt, edif_file, blif_file, family;
|
std::string top_opt, edif_file, blif_file, family;
|
||||||
bool flatten, retime, vpr, ise, iopad, noiopad, noclkbuf, nobram, nolutram, nosrl, nocarry, nowidelut, nodsp, uram, abc9;
|
bool flatten, retime, vpr, ise, noiopad, noclkbuf, nobram, nolutram, nosrl, nocarry, nowidelut, nodsp, uram, abc9;
|
||||||
bool flatten_before_abc;
|
bool flatten_before_abc;
|
||||||
int widemux;
|
int widemux;
|
||||||
|
|
||||||
|
@ -136,7 +133,6 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
retime = false;
|
retime = false;
|
||||||
vpr = false;
|
vpr = false;
|
||||||
ise = false;
|
ise = false;
|
||||||
iopad = false;
|
|
||||||
noiopad = false;
|
noiopad = false;
|
||||||
noclkbuf = false;
|
noclkbuf = false;
|
||||||
nocarry = false;
|
nocarry = false;
|
||||||
|
@ -212,10 +208,6 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
ise = true;
|
ise = true;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (args[argidx] == "-iopad") {
|
|
||||||
iopad = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
if (args[argidx] == "-noiopad") {
|
if (args[argidx] == "-noiopad") {
|
||||||
noiopad = true;
|
noiopad = true;
|
||||||
continue;
|
continue;
|
||||||
|
@ -282,7 +274,6 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
|
|
||||||
void script() YS_OVERRIDE
|
void script() YS_OVERRIDE
|
||||||
{
|
{
|
||||||
bool do_iopad = iopad || (ise && !noiopad);
|
|
||||||
std::string ff_map_file;
|
std::string ff_map_file;
|
||||||
if (help_mode)
|
if (help_mode)
|
||||||
ff_map_file = "+/xilinx/{family}_ff_map.v";
|
ff_map_file = "+/xilinx/{family}_ff_map.v";
|
||||||
|
@ -514,8 +505,8 @@ struct SynthXilinxPass : public ScriptPass
|
||||||
|
|
||||||
if (check_label("map_cells")) {
|
if (check_label("map_cells")) {
|
||||||
// Needs to be done before logic optimization, so that inverters (OE vs T) are handled.
|
// Needs to be done before logic optimization, so that inverters (OE vs T) are handled.
|
||||||
if (help_mode || do_iopad)
|
if (help_mode || !noiopad)
|
||||||
run("iopadmap -bits -outpad OBUF I:O -inpad IBUF O:I -toutpad $__XILINX_TOUTPAD OE:I:O -tinoutpad $__XILINX_TINOUTPAD OE:O:I:IO A:top", "(only if '-iopad' or '-ise' and not '-noiopad')");
|
run("iopadmap -bits -outpad OBUF I:O -inpad IBUF O:I -toutpad $__XILINX_TOUTPAD OE:I:O -tinoutpad $__XILINX_TINOUTPAD OE:O:I:IO A:top", "(only if not '-noiopad')");
|
||||||
std::string techmap_args = "-map +/techmap.v -map +/xilinx/cells_map.v";
|
std::string techmap_args = "-map +/techmap.v -map +/xilinx/cells_map.v";
|
||||||
if (widemux > 0)
|
if (widemux > 0)
|
||||||
techmap_args += stringf(" -D MIN_MUX_INPUTS=%d", widemux);
|
techmap_args += stringf(" -D MIN_MUX_INPUTS=%d", widemux);
|
||||||
|
|
Loading…
Reference in New Issue