Skip to main content

A package for estimating the energy and area of Analog-Digital Converters

Project description

HWComponents-ADC

HWComponents-ADC models the area and energy of Analog-Digital Converters (ADCs) for use in analog & mixed-signal accelerator designs.

These models are for use with the HWComponents package, found at https://accelergy-project.github.io/hwcomponents/.

Models are based on statistical analysis of published ADC performance data in Boris Murmann's ADC Performance Survey [1]. The energy model is based on the observation that the maximum efficiency of an ADC is bounded by the sampling rate and the resolution [1], and the area model is based on regression analysis. Estimations are optimistic; they answer the question "what is the best possible ADC design for the given parameters?".

Installation

Install from PyPI:

pip install hwcomponents-adc

# Check that the installation is successful
hwc --list | grep ADC

Usage

Inerface

This model introduces the ADC model. ADC models can be instantiated with the following parameters:

  • n_bits: the resolution of the ADC
  • tech_node: the technology node in meters
  • n_adcs: the number of ADCs working together, in the case of alternating ADCs
  • throughput: the aggregate throughput of the ADCs, in samples per second

ADCs support the following actions:

  • read or convert: Convert a single value from analog to digital. Note: if there are multiple ADCs, this is a single conversion from a single ADC.

Exploring Tradeoffs

There are several tradeoffs available around ADC design:

  • Lower-resolution ADCs are smaller and more energy-efficient.
  • Using more ADCs in parallel allows for a lower frequency, but increases the area.
  • Using fewer ADCs in parallel allows for a higher frequency. Up to a point, this will not increase the area or energy/area of the ADCs. However, at some this will result in an exponential increase in energy/area.
  • Lower-resolution ADCs can run at higher frequencies before the exponential increase in energy/area occurs.

When the HWComponents-ADC runs, it will output a list of alternative design options. Each will report a number of ADCs and frequency needed to achieve the desired throughput, as well as the area and energy of the ADCs. You can then use this information to make tradeoffs between ADC resolution, frequency, and number of ADCs.

HWComponents-ADC is the work of Tanner Andrulis & Ruicong Chen.

Updating the ADC Model

The generated ADC model is based on the data in Boris Murmann's survey [1], included in the submodule. This survey is updated periodically. The model can be update to reflect the most recent data by running the following:

pip3 install scikit-learn
pip3 install pandas
pip3 install numpy
git submodule update --init --recursive --remote
python3 update_model.py

This is only necessary if more recent data is published. If the data here is out of date, please open an issue or pull request.

References

[1] B. Murmann, "ADC Performance Survey 1997-2023," [Online]. Available: https://github.com/bmurmann/ADC-survey

License

This work is licensed under the MIT license. See license.txt for details.

Citing HWComponents-ADC

If you use this model in your work, please cite the following:

@misc{andrulis2024modelinganalogdigitalconverterenergyarea,
      title={Modeling Analog-Digital-Converter Energy and Area for Compute-In-Memory Accelerator Design},
      author={Tanner Andrulis and Ruicong Chen and Hae-Seung Lee and Joel S. Emer and Vivienne Sze},
      year={2024},
      eprint={2404.06553},
      archivePrefix={arXiv},
      primaryClass={cs.AR},
      url={https://arxiv.org/abs/2404.06553},
}

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hwcomponents_adc-1.0.19.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hwcomponents_adc-1.0.19-py3-none-any.whl (31.4 kB view details)

Uploaded Python 3

File details

Details for the file hwcomponents_adc-1.0.19.tar.gz.

File metadata

  • Download URL: hwcomponents_adc-1.0.19.tar.gz
  • Upload date:
  • Size: 33.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for hwcomponents_adc-1.0.19.tar.gz
Algorithm Hash digest
SHA256 dce0342470a4b975c6a7d6afd7a7d28b39971634c47255ed27283fbdb55d44a5
MD5 bf5ef17637cf9dca9e3b8af8c9196b20
BLAKE2b-256 d02b3ef6a9d1120fd5c00b3583f6910b638f7e8e04f796bfa6a9fc93b5bbce60

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwcomponents_adc-1.0.19.tar.gz:

Publisher: publish.yaml on Accelergy-Project/hwcomponents-adc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hwcomponents_adc-1.0.19-py3-none-any.whl.

File metadata

File hashes

Hashes for hwcomponents_adc-1.0.19-py3-none-any.whl
Algorithm Hash digest
SHA256 9cefb589fee15e7683f048a45affa43b7b4d13f8ed06b22ef6debb28f98f08aa
MD5 da9546cff0716c967582c12019259b62
BLAKE2b-256 190aee5f6e848159c8551ac0fed19ddaf4f5b7d95823cb907c42c803cc99f514

See more details on using hashes here.

Provenance

The following attestation bundles were made for hwcomponents_adc-1.0.19-py3-none-any.whl:

Publisher: publish.yaml on Accelergy-Project/hwcomponents-adc

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page