[Chipyard/Gemmini] Simulation Fails with "ReservationStation.scala" Assertion for Softmax/Layernorm Workloads

6 views
Skip to first unread message

贾名震

unread,
Sep 23, 2025, 1:26:23 PM (9 days ago) Sep 23
to Chipyard

Hello Chipyard Developers and Community,

I am encountering a simulation assertion failure when running specific Gemmini baremetal tests on Chipyard v1.10.0. The Gemmini submodule is at commit f13847e8.

Issue Description:

The standard tiled_matmul_ws-baremetal test completes successfully. However, when I run tests that include more complex operations like softmax or layernorm, the simulation consistently fails with an assertion error in ReservationStation.scala.

Environment:

  • 0fe1ce3e284ed685a81b743da287037f.jpg6cd333bc7457a2693bd63d917c5fa201.jpgOS: Ubuntu 22.04

  • Chipyard Version: 1.10.0

  • Gemmini Commit Hash: f13847e8

Commands to Reproduce:

1. Successful Command:

Bash
make CONFIG=GemminiRocketConfig run-binary BINARY=../../generators/gemmini/software/gemmini-rocc-tests/build/bareMetalC/tiled_matmul_ws-baremetal

2. Failing Command (e.g., with softmax):

Bash
make CONFIG=GemminiRocketConfig run-binary BINARY=../../generators/gemmini/software/gemmini-rocc-tests/build/bareMetalC/tiled_matmul_ws_softmax-baremetal

Assertion Failure Log:

The failing simulation produces the following error, indicating an invalid entry is being accessed in the reservation station:

Code
Error: "/home/mingzhenjia/Desktop/chipyard/sims/vcs/generated-src/chipyard.harness.TestHarness.GemminiRocketConfig/gen-collateral/ReservationStation.sv", 9827: TestDriver.testHarness.chiptop0.system.tile_prci_domain.tile_reset_domain_tile.gemmini.reservation_station: at time 2877727000 ps Assertion failed at ReservationStation.scala:479 assert(entries_st(issue_id).valid) Fatal: "/home/mingzhenjia/Desktop/chipyard/sims/vcs/generated-src/chipyard.harness.TestHarness.GemminiRocketConfig/gen-collateral/ReservationStation.sv", 9829: TestDriver.testHarness.chiptop0.system.tile_prci_domain.tile_reset_domain_tile.gemmini.reservation_station: at time 2877727000 ps $finish called from file "/home/mingzhenjia/Desktop/chipyard/sims/vcs/generated-src/chipyard.harness.TestHarness.GemminiRocketConfig/gen-collateral/ReservationStation.sv", line 9829.

For reference, the log from the successful run (tiled_matmul_ws-baremetal.log) completes as expected:

Code
... Starting gemmini matmul Cycles taken: 2392 Starting slow CPU matmul Cycles taken: 3227174 Fatal: ".../TestDriver.v", 147: TestDriver: at time 10000000500 ps $finish called from file ".../TestDriver.v", line 147.

My Analysis:

The assertion assert(entries_st(issue_id).valid) suggests that the reservation station is receiving an instruction to issue an entry that is not valid. Since this only occurs for workloads with softmax/layernorm, it seems related to how these specific micro-operations are scheduled or tracked within Gemmini's pipeline.

Could someone please provide insight into what might be causing this assertion failure? I would also appreciate any recommendations for further debugging steps, such as specific signals to trace or configuration changes to try.

Thank you for your time and assistance.


贾名震

unread,
Sep 23, 2025, 1:26:23 PM (9 days ago) Sep 23
to Chipyard

Hello Chipyard Developers and Community,

I am encountering a simulation assertion failure when running specific Gemmini baremetal tests on Chipyard v1.10.0. The Gemmini submodule is at commit f13847e8.

Issue Description:

The standard tiled_matmul_ws-baremetal test completes successfully. However, when I run tests that include more complex operations like softmax or layernorm, the simulation consistently fails with an assertion error in ReservationStation.scala.

Environment:

  • OS: Ubuntu 22.04

Thank you for your time and assistance.0fe1ce3e284ed685a81b743da287037f.jpg6cd333bc7457a2693bd63d917c5fa201.jpg

Reply all
Reply to author
Forward
0 new messages