Bring RoCC pins to system #3212
Replies: 7 comments
-
| Just like regular Verilog you will need to add an IO to each Module level to plumb the wires out. | 
Beta Was this translation helpful? Give feedback.
-
| Thanks @terpstra and @seldridge! I managed to plumb the wires out up to RocketTileWrapper level, I could see my signals in fir (if that is the right way to check?) but not further. When I apply your "chisel magic" val extra_io = IO(Vec(tiles.map(.myExtraIO))) to here (https://github.com/freechipsproject/rocket-chip/blob/7e75d63ba6b4c1b50aaaf920e1c693ef6acf51d7/src/main/scala/coreplex/RocketCoreplex.scala#L86), I got an error saying "not found: value IO". Also, from system level, I have no way to access the signal, I've already tried sys.tiles(0) but this steps into the wrong bundle (which is baseTile that doesn't have any RoCC pin).. | 
Beta Was this translation helpful? Give feedback.
-
| @kenzhang82  you have to do it here https://github.com/freechipsproject/rocket-chip/blob/7e75d63ba6b4c1b50aaaf920e1c693ef6acf51d7/src/main/scala/coreplex/RocketCoreplex.scala#L140 | 
Beta Was this translation helpful? Give feedback.
-
| For anyone who is also interested in this topic, I managed to route RoCC IOs to the system, by the following steps. 
 val xio = IO(new RoCCXIO)
   val rocc_xio = IO(new RoCCXIO)
  if (outer.roccs.length > 0)
    rocc_xio := outer.roccs(0).module.xio
   val rocc_xio = IO(new RoCCXIO)
  if (_outer.rocketTiles.length > 0)
    rocc_xio := _outer.rocketTiles(0).module.rocc_xio
 | 
Beta Was this translation helpful? Give feedback.
-
| Thanks @yjwen! That helps, but have you tried routing the pins one level up further? (aka. platform in sifive repo?) | 
Beta Was this translation helpful? Give feedback.
-
| @seldridge, do you have any idea? I can route it all the way up to system, but not to the top. Would be good if you can give me some pointers. :) | 
Beta Was this translation helpful? Give feedback.
-
| Is it somehow possible to add the new extra io bundle to your own  roccModuleImp class , the one that extends  The problem I have with adding it to  I tried that and get the next error (fxio is my extra ios) : 
 it tried to do something like this:  | 
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
Hi there,
I am just wondering if there is any way to bring out the RoCC pins out to system in this version of rocket chip (https://github.com/freechipsproject/rocket-chip/tree/7e75d63ba6b4c1b50aaaf920e1c693ef6acf51d7)? It seems like the RoCC is wrapped by some kind of clock crossing wrapper (see: https://github.com/freechipsproject/rocket-chip/blob/7e75d63ba6b4c1b50aaaf920e1c693ef6acf51d7/src/main/scala/coreplex/RocketCoreplex.scala#L89), I am not too sure how to access (retrieve) from system level. I didn't see any existing example of bringing a pin from tile to system.
Any help would be much appreciated! Thanks!
Beta Was this translation helpful? Give feedback.
All reactions