Skip to content

Conversation

jackkoenig
Copy link
Contributor

Previously, it was not calling .ref. It was thus not properly:

  1. Checking that the clock is bound hardware
  2. Checking that the clock is visible in the current scope
  3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

h/t @nandor for noticing this, pretty crazy such a fundamental bug has been lingering without being noticed.

Contributor Checklist

  • Did you add Scaladoc to every public function/method?
  • Did you add at least one test demonstrating the PR?
  • Did you delete any extraneous printlns/debugging code?
  • Did you specify the type of improvement?
  • Did you add appropriate documentation in docs/src?
  • Did you request a desired merge strategy?
  • Did you add text to be included in the Release Notes for this change?

Type of Improvement

  • Bugfix

Desired Merge Strategy

  • Squash

Release Notes

  • Clocks are now properly supported by DataView (including FlatIO)
  • Users will also received better error messages when providing invalid clocks to Reg()

Reviewer Checklist (only modified by reviewer)

  • Did you add the appropriate labels? (Select the most appropriate one based on the "Type of Improvement")
  • Did you mark the proper milestone (Bug fix: 3.6.x, 5.x, or 6.x depending on impact, API modification or big change: 7.0)?
  • Did you review?
  • Did you check whether all relevant Contributor checkboxes have been checked?
  • Did you do one of the following when ready to merge:
    • Squash: You/ the contributor Enable auto-merge (squash), clean up the commit message, and label with Please Merge.
    • Merge: Ensure that contributor has cleaned up their commit history, then merge with Create a merge commit.

Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.
@jackkoenig jackkoenig added the Bugfix Fixes a bug, will be included in release notes label Jan 29, 2024
@jackkoenig jackkoenig added this to the 3.6.x milestone Jan 29, 2024
@jackkoenig jackkoenig requested a review from seldridge January 29, 2024 21:04
Copy link
Member

@seldridge seldridge left a comment

Choose a reason for hiding this comment

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

LGTM

@jackkoenig jackkoenig merged commit 1c348c5 into main Jan 29, 2024
@jackkoenig jackkoenig deleted the fix-clock-rvalue branch January 29, 2024 21:36
@mergify mergify bot added the Backported This PR has been backported label Jan 29, 2024
mergify bot pushed a commit that referenced this pull request Jan 29, 2024
Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)

# Conflicts:
#	src/test/scala/chiselTests/ClockSpec.scala
mergify bot pushed a commit that referenced this pull request Jan 29, 2024
Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)

# Conflicts:
#	src/test/scala/chiselTests/ClockSpec.scala
mergify bot pushed a commit that referenced this pull request Jan 29, 2024
Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)
chiselbot pushed a commit that referenced this pull request Jan 30, 2024
Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)

Co-authored-by: Jack Koenig <koenig@sifive.com>
chiselbot pushed a commit that referenced this pull request Jan 30, 2024
)

* Fix Reg() to properly handle clocks as rvalues (#3775)

Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)

# Conflicts:
#	src/test/scala/chiselTests/ClockSpec.scala

* Resolve backport conflicts

* fix test

---------

Co-authored-by: Jack Koenig <koenig@sifive.com>
chiselbot pushed a commit that referenced this pull request Jan 30, 2024
)

* Fix Reg() to properly handle clocks as rvalues (#3775)

Previously, it was not calling .ref. It was thus not properly:
1. Checking that the clock is bound hardware
2. Checking that the clock is visible in the current scope
3. Reifying the clock if its a view

Note that RegInit() was already correctly calling .ref.

(cherry picked from commit 1c348c5)

# Conflicts:
#	src/test/scala/chiselTests/ClockSpec.scala

* Resolve backport conflicts

* fix test

---------

Co-authored-by: Jack Koenig <koenig@sifive.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Backported This PR has been backported Bugfix Fixes a bug, will be included in release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants