diff options
author | Benedikt Tutzer <e1225461@student.tuwien.ac.at> | 2019-04-03 11:24:50 +0200 |
---|---|---|
committer | Benedikt Tutzer <e1225461@student.tuwien.ac.at> | 2019-04-03 11:24:50 +0200 |
commit | 539a7f3fbce2f27f0de9a298993b13623c5c8f95 (patch) | |
tree | 9d1b922e62a85059aabb2405c57f6a4affb67422 /examples/python-api/pass.py | |
parent | d287596be3ea5bc623b27e958c427b991f3400bd (diff) | |
download | yosys-539a7f3fbce2f27f0de9a298993b13623c5c8f95.tar.gz yosys-539a7f3fbce2f27f0de9a298993b13623c5c8f95.tar.bz2 yosys-539a7f3fbce2f27f0de9a298993b13623c5c8f95.zip |
Added cell_stats example
Diffstat (limited to 'examples/python-api/pass.py')
-rwxr-xr-x | examples/python-api/pass.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/examples/python-api/pass.py b/examples/python-api/pass.py new file mode 100755 index 000000000..d67cf4a23 --- /dev/null +++ b/examples/python-api/pass.py @@ -0,0 +1,32 @@ +#!/usr/bin/python3 + +from pyosys import libyosys as ys + +import matplotlib.pyplot as plt +import numpy as np + +class CellStatsPass(ys.Pass): + + def __init__(self): + super().__init__("cell_stats", "Shows cell stats as plot") + + def py_help(self): + ys.log("This pass uses the matplotlib library to display cell stats\n") + + def py_execute(self, args, design): + ys.log_header(design, "Plotting cell stats\n") + cell_stats = {} + for module in design.selected_whole_modules_warn(): + for cell in module.selected_cells(): + if cell.type.str() in cell_stats: + cell_stats[cell.type.str()] += 1 + else: + cell_stats[cell.type.str()] = 1 + plt.bar(range(len(cell_stats)), height = list(cell_stats.values()),align='center') + plt.xticks(range(len(cell_stats)), list(cell_stats.keys())) + plt.show() + + def py_clear_flags(self): + ys.log("Clear Flags - CellStatsPass\n") + +p = CellStatsPass() |