-
Notifications
You must be signed in to change notification settings - Fork 8
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
Crossbar #2
base: master
Are you sure you want to change the base?
Crossbar #2
Conversation
|
See https://www.sifive.com/documentation, please update to latest TileLink Spec.(CMO in Hint) |
deca900
to
5f62529
Compare
3ffe37b
to
db272d1
Compare
5caa975
to
86e5d66
Compare
val mask = RegInit(((BigInt(1) << width) - 1).U(width - 1, 0)) | ||
val filter = Cat(scanRightOr(valid & ~mask), valid) | ||
val unready = (filter >> 1).asUInt | (mask << width).asUInt | ||
val readys = (~((unready >> width).asUInt & unready(width - 1, 0))).asUInt |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need to .asUInt
here, this actually is a IDEA bug.
tilelink/src/bundle/TLLink.scala
Outdated
|
||
import scala.collection.immutable.SeqMap | ||
|
||
object TLLink { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe this should be a utils
object
|
||
import chisel3.util.log2Ceil | ||
import upickle.default.{macroRW, readwriter, ReadWriter => RW} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We do need ScalaDoc
for this file!
Initial implementation of TileLink bus arbiter and crossbar.