Skip to content

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

Open
yvantor wants to merge 4 commits intopulp-platform:atomics_mergefrom
AlSaqr-platform:alsaqr_cluster
Open

Aligned with HERO and solved 64-bits atomics warnings.#12
yvantor wants to merge 4 commits intopulp-platform:atomics_mergefrom
AlSaqr-platform:alsaqr_cluster

Conversation

@yvantor
Copy link
Copy Markdown

@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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
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
Copy Markdown
Author

Choose a reason for hiding this comment

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

// 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
Copy Markdown
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
Copy Markdown
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 <marco.andorno@cern.ch>
Co-authored-by: Benoit Denkinger <benoit.denkinger@cern.ch>
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