mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-24 01:25:33 +00:00
Add shregmap -init_msb_first and use in synth_xilinx
This commit is contained in:
parent
79b4a275ce
commit
26ecbc1aee
2 changed files with 16 additions and 4 deletions
|
@ -34,7 +34,7 @@ struct ShregmapOptions
|
|||
{
|
||||
int minlen, maxlen;
|
||||
int keep_before, keep_after;
|
||||
bool zinit, init, params, ffe;
|
||||
bool zinit, init, params, ffe, init_msb_first;
|
||||
dict<IdString, pair<IdString, IdString>> ffcells;
|
||||
ShregmapTech *tech;
|
||||
|
||||
|
@ -48,6 +48,7 @@ struct ShregmapOptions
|
|||
init = false;
|
||||
params = false;
|
||||
ffe = false;
|
||||
init_msb_first = false;
|
||||
tech = nullptr;
|
||||
}
|
||||
};
|
||||
|
@ -307,6 +308,8 @@ struct ShregmapWorker
|
|||
initval.push_back(State::S0);
|
||||
remove_init.insert(bit);
|
||||
}
|
||||
if (opts.init_msb_first)
|
||||
std::reverse(initval.begin(), initval.end());
|
||||
first_cell->setParam("\\INIT", initval);
|
||||
}
|
||||
|
||||
|
@ -442,9 +445,13 @@ struct ShregmapPass : public Pass {
|
|||
log("\n");
|
||||
log(" -init\n");
|
||||
log(" map initialized registers to the shift reg, add an INIT parameter to\n");
|
||||
log(" generated cells with the initialization value. (first bit to shift out\n");
|
||||
log(" generated cells with the initialization value. (First bit to shift out\n");
|
||||
log(" in LSB position)\n");
|
||||
log("\n");
|
||||
log(" -init_msb_first\n");
|
||||
log(" same as -init, but INIT parameter to have first bit to shift out\n");
|
||||
log(" in MSB position.\n");
|
||||
log("\n");
|
||||
log(" -tech greenpak4\n");
|
||||
log(" map to greenpak4 shift registers.\n");
|
||||
log("\n");
|
||||
|
@ -515,6 +522,11 @@ struct ShregmapPass : public Pass {
|
|||
opts.init = true;
|
||||
continue;
|
||||
}
|
||||
if (args[argidx] == "-init_msb_first") {
|
||||
opts.init = true;
|
||||
opts.init_msb_first = true;
|
||||
continue;
|
||||
}
|
||||
if (args[argidx] == "-params") {
|
||||
opts.params = true;
|
||||
continue;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue