Skip to content

Latest commit

 

History

164 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

High BandWidth InterFace (HBWIF)

HBWIF is an interface generator for high-speed serial links that leverages scala's powerful functional programming capabilities.

A link is composed of:

  • Analog frontend
  • Encoder/Decoder
  • Packetizer (Backend)
  • Controller

The user is responsible for suppling the wrapper around the analog frontend, which must implement the abstract methods in Transceiver.scala.

The user may supply a custom encoder/decoder or use the provided 8b/10b codec. See Encoding.scala for the abstract base class or Encoding8b10b.scala for the 8b/10b implementation.

The user may supply a custom packetizer (digital backend) or use one of the provided backends. Currently supported backends are TileLink (using diplomacy) or FixedWidth (a decoupled interface- ready, valid, data). See Packetization.scala for the abstract base class, tilelink/TLPacketizer.scala for the TileLink implementation, or FixedWidthPacketization.scala for the FixedWidth implementation.

The controller is the mechanism for reading and writing control and status registers. One controller is provided: a memory-mapped register-based interface using TileLink (using diplomacy). The user may also provide a custom controller if desired. See Controller.scala for the abstract base class or tilelink/TLController.scala for the TileLink implementation.

The aforementioned components are connected in Lane.scala. The desired variant of each component is specified by implementing a specific generator method. The provided implementations each provide traits which implement this method for you- it is recommended to use these traits unless you plan on writing a custom implementation of the component. For an example, look at tilelink/TLLane.scala.

About

No description, website, or topics provided.

Resources

Stars

13 stars

Watchers

29 watching

Forks

Releases

Packages

Contributors

Languages