-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CanAttachTile.crossingParams is inappropriately used. #3685
Comments
This seems likes a bug to me. I believe allowing the cbus and sbus to be on different clock domains is the real unnecessary feature that adds unnecessary complexity. I'd prefer a solution that fixes the cbus domain to the sbus domain. |
@jerryz123 Thanks for you reply, Jerry. I agree that the CBUS should be in the same clock domain with SBUS, there are ways to do it, maybe using a ClockGroupCombiner in a mandatory way.
|
That does look like a bug to me as well. Let's compartmentalize the changes. To disallow cbus/sbus crossings, I think its best to replace all |
This will be a very convinient change, I think it's also appropriate to add some |
The RocketTile has servial connections with the context:
But there is only one
crossingParams.crossingType
to control the CDC between boundries. This is inappropriate and may lead to bugs in some scenarios, for example: TheCLINT
is atCBUS
the code below made assumption that thecrossingType
is thecrossingType
betweenCBUS
and the Tile:However, when connecting the tile and the MasterPort, the code made assumption that the
crossingType
should indicate the crossing between Tile And SBUS:This works fine if all buses are at the same clock domain which is the default configuration in simulation, but in real world scenarios, this may lead to bugs. Especially when using
RationalCrossing.SlowToFast
orRationalCrossing.FastToSlow
configurations.Can anyone in the team confirm my understandings, if I am right, I will make a PR and fix this, Thanks.
@sequencer @jerryrzhao @tianrui-wei
The text was updated successfully, but these errors were encountered: