mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-27 02:45:52 +00:00
Added abc -dff and -clk support
This commit is contained in:
parent
b3b00f1bf4
commit
4892a3ce6d
3 changed files with 173 additions and 34 deletions
|
@ -44,7 +44,7 @@ static bool read_next_line(char *buffer, int &line_count, FILE *f)
|
|||
}
|
||||
}
|
||||
|
||||
RTLIL::Design *abc_parse_blif(FILE *f)
|
||||
RTLIL::Design *abc_parse_blif(FILE *f, std::string dff_name)
|
||||
{
|
||||
RTLIL::Design *design = new RTLIL::Design;
|
||||
RTLIL::Module *module = new RTLIL::Module;
|
||||
|
@ -101,6 +101,32 @@ RTLIL::Design *abc_parse_blif(FILE *f)
|
|||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(cmd, ".latch"))
|
||||
{
|
||||
char *d = strtok(NULL, " \t\r\n");
|
||||
char *q = strtok(NULL, " \t\r\n");
|
||||
|
||||
if (module->wires.count(RTLIL::escape_id(d)) == 0) {
|
||||
RTLIL::Wire *wire = new RTLIL::Wire;
|
||||
wire->name = RTLIL::escape_id(d);
|
||||
module->add(wire);
|
||||
}
|
||||
|
||||
if (module->wires.count(RTLIL::escape_id(q)) == 0) {
|
||||
RTLIL::Wire *wire = new RTLIL::Wire;
|
||||
wire->name = RTLIL::escape_id(q);
|
||||
module->add(wire);
|
||||
}
|
||||
|
||||
RTLIL::Cell *cell = new RTLIL::Cell;
|
||||
cell->name = NEW_ID;
|
||||
cell->type = dff_name;
|
||||
cell->connections["\\D"] = module->wires.at(RTLIL::escape_id(d));
|
||||
cell->connections["\\Q"] = module->wires.at(RTLIL::escape_id(q));
|
||||
module->add(cell);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!strcmp(cmd, ".gate"))
|
||||
{
|
||||
RTLIL::Cell *cell = new RTLIL::Cell;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue