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

refactor SimpleHellaCacheIF to chisel3. #3054

Merged

Conversation

SingularityKChen
Copy link
Contributor

Related issue:

Type of change: other enhancement

Impact: no functional change

Development Phase: implementation

Release Notes

Refactor SimpleHellaCacheIF.scala to chisel3 style.

@SingularityKChen SingularityKChen force-pushed the porting-SimpleHellaCacheIF branch from eaa6860 to 1d9c2f7 Compare September 14, 2022 20:45
src/main/scala/rocket/SimpleHellaCacheIF.scala Outdated Show resolved Hide resolved
src/main/scala/rocket/SimpleHellaCacheIF.scala Outdated Show resolved Hide resolved
@@ -131,6 +132,7 @@ class SimpleHellaCacheIF(implicit p: Parameters) extends Module
replayq.io.nack.bits := s2_req_tag
replayq.io.resp := io.cache.resp
io.requestor.resp := io.cache.resp
io <> DontCare
Copy link
Member

Choose a reason for hiding this comment

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

I still have no idea why porting to chisel3 has different connection semantic.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

There are some IOs that are not connected which is found in CI test 7 (log is shown below). In Chisel 2, the compile options is chisel3.core.ExplicitCompileOptions.NotStrict and whether it means the IO initialization is not checked before?

Exception in thread "main" firrtl.passes.PassExceptions: 
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.canAcceptStoreThenRMW <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.tlbMiss <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.ae.ld <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.blocked <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_nack <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_gpa <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.cache.keep_clock_enabled <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.clock_enabled <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.release <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.storeBufferEmptyAfterStore <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.gf.ld <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.ma.ld <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.ae.st <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.gf.st <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_nack_cause_raw <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.ma.st <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.cache.s1_data.mask <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.pf.ld <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.grant <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.canAcceptStoreThenLoad <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_uncached <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_xcpt.pf.st <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.storeBufferEmptyAfterLoad <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.ordered <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.acquire <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_gpa_is_pte <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.perf.canAcceptLoadThenLoad <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.replay_next <= VOID
firrtl.passes.CheckInitialization$RefNotInitializedException:  : [module SimpleHellaCacheIF]  Reference io is not fully initialized.
   : io.requestor.s2_paddr <= VOID
firrtl.passes.PassException: 29 errors detected!

@SingularityKChen SingularityKChen force-pushed the porting-SimpleHellaCacheIF branch 2 times, most recently from baec256 to 2c288ad Compare September 19, 2022 04:21
+ also remove "init = " and "next = " (with param name) as new chisel-plugin in 3.6 won't compile.
+ DontCare the IO as there are some unconnected IOs in some occasions.
@SingularityKChen SingularityKChen force-pushed the porting-SimpleHellaCacheIF branch from 2c288ad to dc0fd64 Compare September 20, 2022 03:00
@sequencer sequencer merged commit 6e770de into chipsalliance:master Sep 20, 2022
@SingularityKChen SingularityKChen deleted the porting-SimpleHellaCacheIF branch October 3, 2022 03:22
SingularityKChen added a commit to SingularityKChen/rocket-chip that referenced this pull request Oct 3, 2022
+ also remove "init = " and "next = " (with param name) as new chisel-plugin in 3.6 won't compile.
+ DontCare the IO as there are some unconnected IOs in some occasions.
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