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

Aligned with HERO and solved 64-bits atomics warnings. #12

Open
wants to merge 4 commits into
base: atomics_merge
Choose a base branch
from

Conversation

yvantor
Copy link

@yvantor yvantor commented Feb 14, 2022

Changes:

  • Modified amo_shim.sv to support 64-bit DataWidth without warnings.
  • Added Topology condition within assertion in tcdm_interconnect.sv to support LIC.

Changes tested on HERO openmp-examples/tests-pulp/omp_atomic.

@yvantor yvantor changed the title Alsaqr cluster Aligned with HERO and solved 64-bits atomics warnings. Feb 14, 2022
Copy link
Contributor

@suehtamacv suehtamacv left a comment

Choose a reason for hiding this comment

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

Thanks for your contribution, @yvantor! I have a few comments before we can merge this.

end
end

Copy link
Contributor

Choose a reason for hiding this comment

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

Please avoid whitespace changes.

Copy link
Author

Choose a reason for hiding this comment

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

Sorry, this was undesired.

Comment on lines 315 to 320
initial begin
assert(AddrMemWidth+NumOutLog2 <= AddrWidth) else
$fatal(1,"Address not wide enough to accomodate the requested TCDM configuration.");
assert(NumOut >= NumIn) else
assert( (NumOut >= NumIn) | (Topology == tcdm_interconnect_pkg::LIC) ) else
$fatal(1,"NumOut < NumIn is not supported.");
end
Copy link
Contributor

@suehtamacv suehtamacv Feb 15, 2022

Choose a reason for hiding this comment

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

Since those are static checks, could you move them out of the initial block? Then the synthesis tools cold also check the validity of those parameters.

if (AddrMemWidth+NumOutLog2 > AddrWidth)
    $fatal(1,"Address not wide enough to accomodate the requested TCDM configuration.");

if ((NumOut < NumIn) && (Topology != tcdm_interconnect_pkg::LIC))
    $fatal(1,"NumOut < NumIn is not supported.");

Copy link
Author

Choose a reason for hiding this comment

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

@@ -191,7 +196,7 @@ module amo_shim #(
amo_result = swap_value_q;
// values are not euqal -> don't update
end else begin
amo_result = upper_word_q ? out_rdata_i[63:32] : out_rdata_i[31:0];
amo_result = amo_res;
Copy link
Contributor

Choose a reason for hiding this comment

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

Do both implementations behave the same? In the one you changed, amo_result would get assigned to out_rdata_i[63:32] if both upper_word_q and DataWidth == 64. In your diff, it seems like you only take the DataWidth == 64 condition into account. Could you please check this?

Copy link
Author

Choose a reason for hiding this comment

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

Thank you, it should be fixed now!

benoitdenkinger added a commit to HEP-SoC/cluster_interconnect that referenced this pull request Aug 19, 2024
* Added basic manifest generation

* top is optional in the manifest now

* Added dependency on IP_LIB

* Added functions to retrieve sources

* Script updated and commented.

* Added iverilog top module option and generic cli option argument.

* cocotb iverilog cmake function.

* Added cocotb library path.

* cmds.f file generation.

* closes pulp-platform#12 

---------

Co-authored-by: Marco Andorno <[email protected]>
Co-authored-by: Benoit Denkinger <[email protected]>
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