Skip to content
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

Fix some bugs in tl_broadcast module #1

Merged
merged 2 commits into from
May 13, 2024
Merged

Conversation

gmlayer0
Copy link
Contributor

Hello there,

Recently, while working on my personal project using your TileLink IP to build a system with coherent caches, I encountered some issues with the tl_broadcast module in my use case. I've made fixes to address these problems:

  • The MaxSize parameter in the tl_broadcast module appears to be ineffective, as the module seemed to only support a MaxSize of 2^6 Bytes. I found this issue is related to some wiring issues. In this PR, I've addressed this issue with the first commit.

  • In certain multi-core access scenarios, the tl_broadcast module occasionally experiences hang-ups. After waveform inspection, I discovered that this was due to inconsistent handling of two types of ProbeAck: ProbeAck and ProbeAckData.

    ProbeAck immediately asserts the probe_ack_complete signal to indicate that the probe has been completed, whereas ProbeAckData waits for the device side to write back data to the bus before asserting the probe_ack_data_complete signal.

    This means that both probe_ack_complete and probe_ack_data_complete signals could be raised simultaneously. In such cases, it should be recognized as the completion of two probes rather than one. I've also addressed this issue in the second commit.

Thank you for your attention to these matters.

Best regards.

if (probe_ack_complete || probe_ack_data_complete) begin
probe_ack_pending_d = probe_ack_pending_q - 1;
end
probe_ack_pending_d = probe_ack_pending_q - probe_ack_complete - probe_ack_data_complete;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice catch!

ip/tl/rtl/tl_broadcast.sv Outdated Show resolved Hide resolved
…he tl_broadcast module.

Signed-off-by: gmlayer0 <gmlayer0@outlook.com>
…oid potential deadlock issues

Signed-off-by: gmlayer0 <gmlayer0@outlook.com>
@nbdd0121
Copy link
Collaborator

Thank you!

@nbdd0121 nbdd0121 merged commit 2696eb9 into lowRISC:master May 13, 2024
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants