gitextract_nfddae32/ ├── .clang-format ├── .clang-tidy ├── .github/ │ └── workflows/ │ └── CI.yml ├── .gitignore ├── CMakeLists.txt ├── CMakePresets.json ├── LICENSE.txt ├── README.md ├── benches/ │ ├── CMakeLists.txt │ ├── main.cpp │ └── simulation.cpp ├── cmake/ │ ├── build_source_group.cmake │ ├── diagnostics_print.cmake │ ├── enable_clang_format.cmake │ ├── enable_clang_tidy.cmake │ └── enable_cppcheck.cmake ├── lib/ │ ├── cli11/ │ │ └── CMakeLists.txt │ └── spdlog/ │ └── CMakeLists.txt ├── src/ │ ├── DRAMPower/ │ │ ├── CMakeLists.txt │ │ └── DRAMPower/ │ │ ├── Exceptions.h │ │ ├── Types.h │ │ ├── command/ │ │ │ ├── CmdType.h │ │ │ ├── Command.cpp │ │ │ ├── Command.h │ │ │ ├── Pattern.cpp │ │ │ └── Pattern.h │ │ ├── data/ │ │ │ ├── energy.cpp │ │ │ ├── energy.h │ │ │ └── stats.h │ │ ├── dram/ │ │ │ ├── Bank.h │ │ │ ├── Interface.cpp │ │ │ ├── Interface.h │ │ │ ├── Rank.cpp │ │ │ ├── Rank.h │ │ │ └── dram_base.h │ │ ├── memspec/ │ │ │ ├── MemSpec.h │ │ │ ├── MemSpecDDR4.cpp │ │ │ ├── MemSpecDDR4.h │ │ │ ├── MemSpecDDR5.cpp │ │ │ ├── MemSpecDDR5.h │ │ │ ├── MemSpecLPDDR4.cpp │ │ │ ├── MemSpecLPDDR4.h │ │ │ ├── MemSpecLPDDR5.cpp │ │ │ └── MemSpecLPDDR5.h │ │ ├── simconfig/ │ │ │ └── simconfig.h │ │ ├── standards/ │ │ │ ├── ddr4/ │ │ │ │ ├── DDR4.cpp │ │ │ │ ├── DDR4.h │ │ │ │ ├── DDR4Core.cpp │ │ │ │ ├── DDR4Core.h │ │ │ │ ├── DDR4Interface.cpp │ │ │ │ ├── DDR4Interface.h │ │ │ │ ├── core_calculation_DDR4.cpp │ │ │ │ ├── core_calculation_DDR4.h │ │ │ │ ├── interface_calculation_DDR4.cpp │ │ │ │ ├── interface_calculation_DDR4.h │ │ │ │ └── types.h │ │ │ ├── ddr5/ │ │ │ │ ├── DDR5.cpp │ │ │ │ ├── DDR5.h │ │ │ │ ├── DDR5Core.cpp │ │ │ │ ├── DDR5Core.h │ │ │ │ ├── DDR5Interface.cpp │ │ │ │ ├── DDR5Interface.h │ │ │ │ ├── core_calculation_DDR5.cpp │ │ │ │ ├── core_calculation_DDR5.h │ │ │ │ ├── interface_calculation_DDR5.cpp │ │ │ │ ├── interface_calculation_DDR5.h │ │ │ │ └── types.h │ │ │ ├── lpddr4/ │ │ │ │ ├── LPDDR4.cpp │ │ │ │ ├── LPDDR4.h │ │ │ │ ├── LPDDR4Core.cpp │ │ │ │ ├── LPDDR4Core.h │ │ │ │ ├── LPDDR4Interface.cpp │ │ │ │ ├── LPDDR4Interface.h │ │ │ │ ├── core_calculation_LPDDR4.cpp │ │ │ │ ├── core_calculation_LPDDR4.h │ │ │ │ ├── interface_calculation_LPDDR4.cpp │ │ │ │ ├── interface_calculation_LPDDR4.h │ │ │ │ └── types.h │ │ │ ├── lpddr5/ │ │ │ │ ├── LPDDR5.cpp │ │ │ │ ├── LPDDR5.h │ │ │ │ ├── LPDDR5Core.cpp │ │ │ │ ├── LPDDR5Core.h │ │ │ │ ├── LPDDR5Interface.cpp │ │ │ │ ├── LPDDR5Interface.h │ │ │ │ ├── core_calculation_LPDDR5.cpp │ │ │ │ ├── core_calculation_LPDDR5.h │ │ │ │ ├── interface_calculation_LPDDR5.cpp │ │ │ │ ├── interface_calculation_LPDDR5.h │ │ │ │ └── types.h │ │ │ └── test_accessor.h │ │ └── util/ │ │ ├── Deserialize.h │ │ ├── ImplicitCommandHandler.h │ │ ├── PatternHandler.h │ │ ├── RegisterHelper.h │ │ ├── Router.h │ │ ├── Serialize.h │ │ ├── binary_ops.h │ │ ├── burst_storage.h │ │ ├── bus.cpp │ │ ├── bus.h │ │ ├── bus_types.h │ │ ├── cli_architecture_config.h │ │ ├── clock.h │ │ ├── command_counter.h │ │ ├── cycle_stats.h │ │ ├── databus.h │ │ ├── databus_presets.h │ │ ├── databus_types.h │ │ ├── dbi.h │ │ ├── dbialgos.h │ │ ├── dbihelpers.h │ │ ├── dbitypes.h │ │ ├── dynamic_bitset.h │ │ ├── extension_base.h │ │ ├── extension_manager.h │ │ ├── extension_manager_static.h │ │ ├── extensions.cpp │ │ ├── extensions.h │ │ ├── pending_stats.h │ │ ├── pin.h │ │ ├── pin_types.h │ │ └── sub_bitset.h │ └── cli/ │ ├── CMakeLists.txt │ ├── lib/ │ │ ├── CMakeLists.txt │ │ └── DRAMPower/ │ │ └── cli/ │ │ ├── config.h │ │ ├── csv.hpp │ │ ├── run.cpp │ │ ├── run.hpp │ │ ├── util.cpp │ │ └── util.hpp │ └── main/ │ ├── CMakeLists.txt │ ├── main.cpp │ ├── validators.cpp │ └── validators.h └── tests/ ├── CMakeLists.txt ├── tests_drampower/ │ ├── CMakeLists.txt │ ├── base/ │ │ ├── test_ddr_base.cpp │ │ ├── test_ddr_data.cpp │ │ ├── test_ddr_serialize.cpp │ │ └── test_pattern_pre_cycles.cpp │ ├── core/ │ │ ├── DDR4/ │ │ │ ├── ddr4_multidevice_tests.cpp │ │ │ ├── ddr4_multirank_tests.cpp │ │ │ ├── ddr4_test_pattern_0.cpp │ │ │ ├── ddr4_test_pattern_1.cpp │ │ │ ├── ddr4_test_pattern_10.cpp │ │ │ ├── ddr4_test_pattern_11.cpp │ │ │ ├── ddr4_test_pattern_12.cpp │ │ │ ├── ddr4_test_pattern_13.cpp │ │ │ ├── ddr4_test_pattern_14.cpp │ │ │ ├── ddr4_test_pattern_15.cpp │ │ │ ├── ddr4_test_pattern_2.cpp │ │ │ ├── ddr4_test_pattern_3.cpp │ │ │ ├── ddr4_test_pattern_4.cpp │ │ │ ├── ddr4_test_pattern_5.cpp │ │ │ ├── ddr4_test_pattern_6.cpp │ │ │ ├── ddr4_test_pattern_7.cpp │ │ │ ├── ddr4_test_pattern_8.cpp │ │ │ └── ddr4_test_pattern_9.cpp │ │ ├── DDR5/ │ │ │ ├── ddr5_multidevice_tests.cpp │ │ │ ├── ddr5_multirank_tests.cpp │ │ │ ├── ddr5_test_pattern_0.cpp │ │ │ ├── ddr5_test_pattern_1.cpp │ │ │ ├── ddr5_test_pattern_10.cpp │ │ │ ├── ddr5_test_pattern_11.cpp │ │ │ ├── ddr5_test_pattern_12.cpp │ │ │ ├── ddr5_test_pattern_13.cpp │ │ │ ├── ddr5_test_pattern_14.cpp │ │ │ ├── ddr5_test_pattern_15.cpp │ │ │ ├── ddr5_test_pattern_16.cpp │ │ │ ├── ddr5_test_pattern_17.cpp │ │ │ ├── ddr5_test_pattern_18.cpp │ │ │ ├── ddr5_test_pattern_2.cpp │ │ │ ├── ddr5_test_pattern_3.cpp │ │ │ ├── ddr5_test_pattern_4.cpp │ │ │ ├── ddr5_test_pattern_5.cpp │ │ │ ├── ddr5_test_pattern_6.cpp │ │ │ ├── ddr5_test_pattern_7.cpp │ │ │ ├── ddr5_test_pattern_8.cpp │ │ │ └── ddr5_test_pattern_9.cpp │ │ ├── LPDDR4/ │ │ │ ├── lpddr4_multidevice_tests.cpp │ │ │ ├── lpddr4_multirank_tests.cpp │ │ │ ├── lpddr4_test_pattern_0.cpp │ │ │ ├── lpddr4_test_pattern_1.cpp │ │ │ ├── lpddr4_test_pattern_10.cpp │ │ │ ├── lpddr4_test_pattern_11.cpp │ │ │ ├── lpddr4_test_pattern_12.cpp │ │ │ ├── lpddr4_test_pattern_13.cpp │ │ │ ├── lpddr4_test_pattern_14.cpp │ │ │ ├── lpddr4_test_pattern_15.cpp │ │ │ ├── lpddr4_test_pattern_16.cpp │ │ │ ├── lpddr4_test_pattern_17.cpp │ │ │ ├── lpddr4_test_pattern_18.cpp │ │ │ ├── lpddr4_test_pattern_2.cpp │ │ │ ├── lpddr4_test_pattern_3.cpp │ │ │ ├── lpddr4_test_pattern_4.cpp │ │ │ ├── lpddr4_test_pattern_5.cpp │ │ │ ├── lpddr4_test_pattern_6.cpp │ │ │ ├── lpddr4_test_pattern_7.cpp │ │ │ ├── lpddr4_test_pattern_8.cpp │ │ │ └── lpddr4_test_pattern_9.cpp │ │ └── LPDDR5/ │ │ ├── lpddr5_multidevice_tests.cpp │ │ ├── lpddr5_multirank_tests.cpp │ │ ├── lpddr5_test_pattern_0.cpp │ │ ├── lpddr5_test_pattern_1.cpp │ │ ├── lpddr5_test_pattern_10.cpp │ │ ├── lpddr5_test_pattern_11.cpp │ │ ├── lpddr5_test_pattern_12.cpp │ │ ├── lpddr5_test_pattern_13.cpp │ │ ├── lpddr5_test_pattern_14.cpp │ │ ├── lpddr5_test_pattern_15.cpp │ │ ├── lpddr5_test_pattern_16.cpp │ │ ├── lpddr5_test_pattern_17.cpp │ │ ├── lpddr5_test_pattern_18.cpp │ │ ├── lpddr5_test_pattern_19.cpp │ │ ├── lpddr5_test_pattern_2.cpp │ │ ├── lpddr5_test_pattern_20.cpp │ │ ├── lpddr5_test_pattern_21.cpp │ │ ├── lpddr5_test_pattern_3.cpp │ │ ├── lpddr5_test_pattern_4.cpp │ │ ├── lpddr5_test_pattern_5.cpp │ │ ├── lpddr5_test_pattern_6.cpp │ │ ├── lpddr5_test_pattern_7.cpp │ │ ├── lpddr5_test_pattern_8.cpp │ │ └── lpddr5_test_pattern_9.cpp │ ├── interface/ │ │ ├── test_dbi_ddr4.cpp │ │ ├── test_dbi_lpddr4.cpp │ │ ├── test_dbi_lpddr5.cpp │ │ ├── test_interface_ddr4.cpp │ │ ├── test_interface_ddr5.cpp │ │ ├── test_interface_lpddr4.cpp │ │ ├── test_interface_lpddr5.cpp │ │ ├── test_togglingrate_ddr4.cpp │ │ ├── test_togglingrate_ddr5.cpp │ │ ├── test_togglingrate_lpddr4.cpp │ │ └── test_togglingrate_lpddr5.cpp │ └── resources/ │ ├── cliconfig.json │ ├── ddr4.csv │ ├── ddr4.json │ ├── ddr5.csv │ ├── ddr5.json │ ├── lpddr4.csv │ ├── lpddr4.json │ ├── lpddr5.csv │ └── lpddr5.json └── tests_misc/ ├── CMakeLists.txt ├── test_bus.cpp ├── test_bus_extended.cpp ├── test_clock.cpp ├── test_dynamic_bitset.cpp ├── test_dynamic_extension_manager.cpp ├── test_interval.cpp ├── test_misc.cpp ├── test_pattern.cpp ├── test_pin.cpp └── test_static_extension_manager.cpp