diff options
author | Clifford Wolf <clifford@clifford.at> | 2019-08-07 12:13:50 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-07 12:13:50 +0200 |
commit | f1ac998bb46619fa75d086797617d162cfc7b90d (patch) | |
tree | 8507c9473ab223c65e1295011392c95865a62110 /passes/cmds/stat.cc | |
parent | 607c7fa7e15f2d64685d2aab2c9c9f860037da17 (diff) | |
parent | 338f6765ebeb6bd07197dbef8e22fa077bf2d043 (diff) | |
download | yosys-f1ac998bb46619fa75d086797617d162cfc7b90d.tar.gz yosys-f1ac998bb46619fa75d086797617d162cfc7b90d.tar.bz2 yosys-f1ac998bb46619fa75d086797617d162cfc7b90d.zip |
Merge pull request #1257 from YosysHQ/clifford/cellcosts
Redesign of cell cost API
Diffstat (limited to 'passes/cmds/stat.cc')
-rw-r--r-- | passes/cmds/stat.cc | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/passes/cmds/stat.cc b/passes/cmds/stat.cc index 89920ed55..c8e4f3981 100644 --- a/passes/cmds/stat.cc +++ b/passes/cmds/stat.cc @@ -17,11 +17,10 @@ * */ -#include "kernel/register.h" +#include "kernel/yosys.h" #include "kernel/celltypes.h" #include "passes/techmap/libparse.h" - -#include "kernel/log.h" +#include "kernel/cost.h" USING_YOSYS_NAMESPACE PRIVATE_NAMESPACE_BEGIN @@ -228,25 +227,16 @@ struct statdata_t { int tran_cnt = 0; bool tran_cnt_exact = true; + auto &gate_costs = CellCosts::cmos_gate_cost(); for (auto it : num_cells_by_type) { auto ctype = it.first; auto cnum = it.second; - if (ctype == "$_NOT_") - tran_cnt += 2*cnum; - else if (ctype.in("$_NAND_", "$_NOR_")) - tran_cnt += 4*cnum; - else if (ctype.in("$_AOI3_", "$_OAI3_")) - tran_cnt += 6*cnum; - else if (ctype.in("$_AOI4_", "$_OAI4_")) - tran_cnt += 8*cnum; - else if (ctype.in("$_NMUX_")) - tran_cnt += 10*cnum; - else if (ctype.in("$_MUX_", "$_XOR_", "$_XNOR_")) - tran_cnt += 12*cnum; + if (gate_costs.count(ctype)) + tran_cnt += cnum * gate_costs.at(ctype); else if (ctype.in("$_DFF_P_", "$_DFF_N_")) - tran_cnt += 16*cnum; + tran_cnt += cnum * 16; else tran_cnt_exact = false; } |