mit-emze / cimloop

MIT License
45 stars 12 forks source link

Components Hierarchy arrangement in architecture.yaml #8

Open Muddassar180009 opened 2 weeks ago

Muddassar180009 commented 2 weeks ago

Hello Tanner,

I’m working with the arch.yaml file (models/arch/1_macro/basic_analog/arch.yaml) to design a new macro for an 8-bit weight and 8-bit input MAC operation. To customize it, I added components like column_bandwidth_limiter, shift_add, and bitcell_cap from other macros. However, I’ve noticed that changing the location of these added components within the hierarchy affects the reported Energy Efficiency and Total Energy, suggesting that component placement impacts energy results. The tutorial notes that CiMLOOP uses a container-hierarchy structure for CiM macros, but I’m unsure of the specific hierarchical guidelines needed for accurate energy calculations.

Could you provide guidance on the recommended hierarchy and placement of components to ensure precise energy estimation? Any insights into best practices for component organization in macros would also be helpful.

Thank you for your help!

tanner-andrulis commented 5 days ago

Proper ordering of the container hierarchy is critical. Every component is considered to be a parent of following components and a child of previous components.

For more information on the container hierarchy representation, please see the tutorials and/or the paper. If you have something specific you'd like to model, please let me know so I can help you get the proper hierarchy for it.