llvm / llvm/circt

[circt] LowerMemory might not update module hierarchy properly

Open
#8,994 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
2.2k
Forks
524
Avg merge
3d 2h
Merged PRs (30d)
46

Description

When running the latest firtool with both `--export-module-hierarchy` and `--repl-seq-mem` flags, the sram names transformation might only happen in one place.

This manifests as in the smems.conf, there is only `name rob_debug_inst_mem_ext ...`, but in the model hierarchy json, the module only exists as `rob_debug_inst_mem`.

This can be verified as running the following commands in the chipyard repo at main branch after initializing the repo with https://chipyard.readthedocs.io/en/main/Chipyard-Basics/Initial-Repo-Setup.html.

```
make verilog USE_CHISEL7=1 CONFIG=MediumBoomV3Config

```

Note the curious thing is that this works for the first 17 sram transformation, just not for the last one. Let me know what I can help to diagnose this issue.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the mismatch with the chipyard command using --export-module-hierarchy and --repl-seq-mem, then inspect LowerMemory's SRAM-name transformation. Compare the name in smems.conf with the corresponding model hierarchy JSON entry, including the final transformation that differs from the first 17. Done means both outputs use the same transformed module name.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
compilers
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.