Skip to content

Using Chipyard's default configuration ReRoCCManyGemminiConfig, the ReRoCC build failed. #2235

@silencerains

Description

@silencerains

Background Work

Chipyard Version and Hash

Release: 1.13.0

OS Setup

LSB Version: core-11.1.0ubuntu2-noarch
Distributor ID: Ubuntu
Description: Ubuntu 20.04.6 LTS
Release: 20.04
Codename: focal

SHELL=/bin/bash
LANG=en_US.UTF-8
PATH=path
CONDA_PREFIX=/home/user/workspace/.conda-env
RISCV=/home/user/workspace]/.conda-env/riscv-tools

Python: 3.10.14
GCC: 13.2.0
CMAKE: 3.26.3
JAVA: OpenJDK 20.0.2
Verilator: 5.022

Other Setup

Ex: Prior steps taken / Documentation Followed / etc...

Current Behavior

When building ReRoCC using the command: make run-binary-debug CONFIG=ReRoCCManyGemminiConfig BINARY=../../generators/rerocc/tests/rerocc.riscv -j 64
an error occurred. Additionally, I configured a custom SingleReRoCC configuration, but the same error persisted.
Technical details:
Command attempted: make run-binary-debug with ReRoCCManyGemminiConfig
Error message: Memory region 'ctrl' at List(AddressSet(0x20000, 0xfff)) only supports TransferSizes[1, 8] Get, but must support TransferSizes[1, 64]
Additional attempt: Custom SingleReRoCC configuration also failed with the same error
Issue: Transfer size mismatch in the control register region (supports 1-8 bytes but requires 1-64 bytes)
The specific error message is:
Exception in thread "main" java.lang.reflect.InvocationTargetException
at ... ()
at chipyard.stage.phases.PreElaboration.$anonfun$transform$1(PreElaboration.scala:35)
at chipyard.stage.phases.PreElaboration$$Lambda$498/485686996.apply(Unknown Source)
at chisel3.Module$.evaluate(Module.scala:88)
at chisel3.Module$.do_apply(Module.scala:35)
at chisel3.stage.phases.Elaborate.$anonfun$transform$2(Elaborate.scala:52)
at chisel3.stage.phases.Elaborate$$Lambda$512/405252209.apply(Unknown Source)
at chisel3.internal.Builder$.$anonfun$buildImpl$1(Builder.scala:1042)
at chisel3.internal.Builder$$$Lambda$515/1130551263.apply(Unknown Source)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at chisel3.internal.Builder$.buildImpl(Builder.scala:1032)
at chisel3.internal.Builder$.$anonfun$build$1(Builder.scala:1023)
at chisel3.internal.Builder$$$Lambda$513/1223050066.apply(Unknown Source)
at logger.Logger$.$anonfun$makeScope$4(Logger.scala:148)
at logger.Logger$$$Lambda$119/134310351.apply(Unknown Source)
at scala.util.DynamicVariable.withValue(DynamicVariable.scala:59)
at logger.Logger$.makeScope(Logger.scala:146)
at logger.Logger$.makeScope(Logger.scala:133)
at ... ()
at ... (Stack trace trimmed to user code only. Rerun with --full-stacktrace to see the full stack trace)
Caused by: java.lang.IllegalArgumentException: requirement failed: Memory region 'ctrl' at List(AddressSet(0x20000, 0xfff)) only supports TransferSizes[1, 8] Get, but must support TransferSizes[1, 64]

Expected Behavior

I have very limited knowledge about ReRoCC and I'm completely at a loss regarding this issue. Interestingly, when I used RocketGemminiConfig, no such error occurred.

Other Information

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions