Skip to content

ucb-bar/chisel-awl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

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

Watchers

Forks

Releases

No releases published

Packages

No packages published