Skip to main content

PyPI License: MIT Python Ruff

NanoPlaceR: Reinforcement-learning placement and routing for FCN

Munich Nanotech Toolkit logo

NanoPlaceR is an open-source physical-design tool for field-coupled nanocomputing (FCN). It uses masked Proximal Policy Optimization to place logic elements and routes each partial placement with A* search. It can generate layouts for logic networks of roughly 200 gates while using about 50% less area than the state-of-the-art heuristic approach described in the publications below.

Overview of the NanoPlaceR methodology

Installation

NanoPlaceR supports Python 3.11 through 3.14 and requires mnt.pyfiction 0.8 or newer. The CI suite covers both ends of that range.

python -m venv .venv
source .venv/bin/activate
python -m pip install mnt.nanoplacer

On Windows, activate the environment with .venv\Scripts\activate.

Usage

Use NanoPlaceR from Python:

from mnt.nanoplacer import create_layout

create_layout(
    benchmark="trindade16",
    function="mux21",
    clocking_scheme="2DDWave",
    technology="QCA",
    minimal_layout_dimension=False,
    layout_width=3,
    layout_height=4,
    time_steps=10_000,
    reset_model=True,
    verbose=1,
    optimize=True,
)

Or use the command-line interface:

mnt.nanoplacer --help
mnt.nanoplacer --benchmark trindade16 --function mux21 \
  --clocking-scheme 2DDWave --technology Gate-level \
  --minimal-layout-dimension --time-steps 10000 --verbose 1

Runs store generated layouts in layouts/, trained agents in models/, and TensorBoard data in tensorboard/. By default, the CLI resumes a matching saved model when one exists; pass --reset-model to train from scratch.

Repository structure

src/mnt/nanoplacer/
├── benchmarks/                  Verilog benchmark circuits
├── main.py                      Python and command-line entry point
└── placement_envs/
    ├── nano_placement_env.py    Gymnasium placement environment
    └── utils/
        ├── layout_dimensions.py Predefined minimal dimensions
        └── placement_utils.py   Network and action helpers
tests/                           Unit and integration tests

References

If you use NanoPlaceR in your work, please cite the following publications:

@INPROCEEDINGS{hofmann2023nanoplacer,
  author        = {S. Hofmann and M. Walter and L. Servadei and R. Wille},
  title         = {{Late Breaking Results From Hybrid Design Automation for Field-coupled Nanotechnologies}},
  booktitle     = {{2023 60th ACM/IEEE Design Automation Conference (DAC)}},
  year          = {2023},
}
@INPROCEEDINGS{hofmann2024nanoplacer,
  author        = {S. Hofmann and M. Walter and L. Servadei and R. Wille},
  title         = {{Thinking Outside the Clock: Physical Design for Field-coupled Nanocomputing with Deep Reinforcement Learning}},
  booktitle     = {{2024 25th International Symposium on Quality Electronic Design (ISQED)}},
  year          = {2024},
}

Metadata

Release files for mnt.nanoplacer 0.2.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mnt.nanoplacer 0.2.6
File Size Uploaded
mnt_nanoplacer-0.2.6.tar.gz 4.2 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for mnt.nanoplacer 0.2.6
File Interpreter ABI Platform
mnt_nanoplacer-0.2.6-py3-none-any.whl Python 3 none any Details

Total release size: 8.5 MB

Release files / mnt_nanoplacer-0.2.6.tar.gz

Download URL mnt_nanoplacer-0.2.6.tar.gz
Size 4.2 MB
Tags Source
SHA-256 checksum
How to use checksums
06a143dbb1fcf36ac88ce368c007530c55876f55d25743b83ecce67a0552b4d6
BLAKE2b-256 checksum
How to use checksums
f95f23ae350067d4ee383195e9bd54edbcaf10fc9957d251bd690c18ab73a5d3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release files / mnt_nanoplacer-0.2.6-py3-none-any.whl

Download URL mnt_nanoplacer-0.2.6-py3-none-any.whl
Size 4.2 MB
Tags Python 3
SHA-256 checksum
How to use checksums
4a306d4e20fffc8a9a3fe54b063b7df6ad13a21476a1fe739eb00f08a6e42399
BLAKE2b-256 checksum
How to use checksums
fed5703a7c4f1a3154c6771bad867ab1280f5891c8ac09c1590fcd0b6dc4ec9a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 4, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.1

2 release files

0.3.0

2 release files

This release

0.2.6 This release

2 release files

0.2.5

1 release file

0.2.4

1 release file

0.2.3

1 release file

0.2.2

1 release file

0.2.1

1 release file

0.2.0

1 release file

0.1.5

1 release file

0.1.4

1 release file

0.1.3

1 release file

0.1.2

1 release file

0.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page