WbPlumbing by Martoni

Wishbone plumbing written in Chisel3

WbPlumbing

Wishbone plumbing written in Chisel3. The aim of this project is mainly to generate Wishbone intercon as described in specification.

Installation and usages

WbPlumbing is a scala package that can be published localy. Then to install it we can simply clone the project and publish it localy

$ git clone https://github.com/Martoni/WbPlumbing.git
$ cd WbPlumbing
$ make publishlocal

To use it under your project, add this line in your build.sbt file :

libraryDependencies ++= Seq("org.armadeus" %% "wbplumbing" % "0.1")

And import package in your chisel code :

import wbplumbing

Modules description

WbInterconPT

This is just a "passthrought" module, give one WbMaster bundle and one WbSlave bundle in parameters and get the intercon module for your plumbing.

To use it simply give a WbMaster bundle and WbSlave bundle as parameter like following example :

// Imports
import wbplumbing.WbInterconPT
import wbplumbing.{WbMaster, WbSlave}

//...

// module instantiation
val spi2Wb = Module(new Spi2Wb(dwidth, awidth))
val wbMdio = Module(new MdioWb(mainFreq, targetFreq))
val wbIntercon = Module(new WbInterconPT(spi2Wb.io.wbm, wbMdio.io.wbs))
// wishbone Interconnexion
spi2Wb.io.wbm <> wbIntercon.io.wbm
wbIntercon.io.wbs <> wbMdio.io.wbs

// ...

WbInterconOneMaster

Make the address decoding for several slaves with the same data size. And with only one master.

To use it the master bundle must be given 'as it' in parameter, but slave should be given as a Seq() parameters like following example :

  // module instantiation
  val mspi2Wb = Module(new Spi2Wb(dwidth, 7))
  val wbMdio1 = Module(new MdioWb(mainFreq, targetFreq))
  val wbMdio2 = Module(new MdioWb(mainFreq, targetFreq))

  val wbIntercon = Module(new WbInterconOneMaster(mspi2Wb.io.wbm,
                            Seq(wbMdio1.io.wbs, wbMdio2.io.wbs)))
  // wishbone Interconnexion
  mspi2Wb.io.wbm <> wbIntercon.io.wbm
  wbIntercon.io.wbs(0) <> wbMdio1.io.wbs
  wbIntercon.io.wbs(1) <> wbMdio2.io.wbs

Projects using WbPlumbing

  • MDIO: Generate ethernet phy MDIO¬†protocol frame
  • Spi2Wb: Drive a Wishbone master bus with SPI protocol.
  • wbGPIO: General Purpose Input Output

Project Meta

  • Registered on LibreCores 11 months ago
  • Project started 11 months ago
  • Last commit 8 months ago

Commits

{"labels":[2019,2020],"series":[[18,3]]}

Commits per year

Contributors

{"labels":[2019,2020],"series":[[2,1]]}

Unique contributors per year

Releases

Data not available

Languages

{"labels":["Others","Scala","Markdown","make"],"series":[0,2,1,1]}

Share of languages used

Data Sheet
Project Web Site
https://github.com/Martoni/WbPlumbing.git
Issue Tracker
Last activity 8 months ago
Primary language: Scala
2 watchers
2 stars
21 commits by 2 contributors
Fabien Marteau Fabien Marteau
0,5,3,4,2,3,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

activity over the last year

LibreCores data updated 1 month ago