diff options
author | Eddie Hung <eddie@fpgeh.com> | 2020-04-15 09:38:29 -0700 |
---|---|---|
committer | Eddie Hung <eddie@fpgeh.com> | 2020-05-14 10:33:56 -0700 |
commit | fb447951be5ac481106f06a911234614b576b40f (patch) | |
tree | 289cf9e1a49957459a39aa70fdb98f0e7af61a24 /passes | |
parent | 0d84ff3fc47fbc17184e706ea3ef1ee801f19790 (diff) | |
download | yosys-fb447951be5ac481106f06a911234614b576b40f.tar.gz yosys-fb447951be5ac481106f06a911234614b576b40f.tar.bz2 yosys-fb447951be5ac481106f06a911234614b576b40f.zip |
abc9: cleanup
Diffstat (limited to 'passes')
-rw-r--r-- | passes/techmap/abc9.cc | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/passes/techmap/abc9.cc b/passes/techmap/abc9.cc index bddf9d2d9..b57ea3cf7 100644 --- a/passes/techmap/abc9.cc +++ b/passes/techmap/abc9.cc @@ -280,7 +280,8 @@ struct Abc9Pass : public ScriptPass if (check_label("dff", "(only if -dff)")) { if (dff_mode || help_mode) { - run("abc9_ops -prep_dff_hier"); // derive all used (* abc9_flop *) modules + run("abc9_ops -prep_dff_hier"); // derive all used (* abc9_flop *) modules, + // create stubs in $abc9_unmap design run("design -stash $abc9"); run("design -copy-from $abc9 @$abc9_flops"); // copy derived modules in run("proc"); @@ -288,8 +289,11 @@ struct Abc9Pass : public ScriptPass run("techmap"); run("opt"); run("abc9_ops -prep_dff_map"); // rewrite specify - // TODO: Select fan-in cone $_DFF_[NP]_.Q - run("setattr -set submod \"$abc9_flop\" t:* t:$_DFF_N_ %d t:$_DFF_P_ %d"); + // select all $_DFF_[NP]_ + // then select all its fanins + // then select all fanouts of all that + // lastly remove $_DFF_[NP]_ cells + run("setattr -set submod \"$abc9_flop\" t:$_DFF_?_ %ci* %co* t:$_DFF_?_ %d"); run("submod"); run("design -copy-to $abc9 *_$abc9_flop"); // copy submod out run("delete *_$abc9_flop"); @@ -306,12 +310,12 @@ struct Abc9Pass : public ScriptPass } run("design -stash $abc9_map"); run("design -load $abc9"); - run("abc9_ops -prep_dff_unmap"); // create $abc9_unmap design - run("techmap -map %$abc9_map"); // techmap user design into submod + $_DFF_[NP]_ - run("setattr -mod -set whitebox 1 -set abc9_flop 1 -set abc9_box 1 *_$abc9_flop"); run("design -delete $abc9"); - run("design -delete $abc9_map"); run("select -unset $abc9_flops"); + run("abc9_ops -prep_dff_unmap"); // implement $abc9_unmap design + run("techmap -map %$abc9_map"); // techmap user design into submod + $_DFF_[NP]_ + run("design -delete $abc9_map"); + run("setattr -mod -set whitebox 1 -set abc9_flop 1 -set abc9_box 1 *_$abc9_flop"); } } |