bespoke-silicon-group / basejump_stl

BaseJump STL: A Standard Template Library for SystemVerilog
http://bjump.org/
Other
528 stars 99 forks source link

Added an optimized popcount TDM generator to bsg_misc #653

Open klundblad opened 1 year ago

klundblad commented 1 year ago

This is a python script that generates a popcount .v file. It attempts to do a more optimized adder tree using the Three Dimensional Method (TDM). The following PPA analysis compares the original bsg_popcount.v to the generated popcount_tdm.v for widths 8, 32, 64, 128, and 1024.

Screenshot 2023-04-13 024636

The full PPA spreadsheet can be found here: https://docs.google.com/spreadsheets/d/1FjDbuVNZ45XHxjTXhP-kz8AH1CuP96d7sxJkHXT-KGA/edit?usp=sharing

dpetrisko commented 1 year ago

Hi can you commit the .v as well?

taylor-bsg commented 1 year ago

Let's try to get to the bottom of why we are not winning on frequency, especially for popcount <= 32.

taylor-bsg commented 1 year ago

You can compare the two netlists and also the STA reports.