Learning BSV‎ > ‎

FoundationIP Library

Bluespec provides a large and continuously growing collection of AzureIP Foundation libraries.  This library is an extensive family of components, types and functions  that are included with the Bluespec toolsets for use in your models and designs. To use any of these libraries in a package you must explicitly import the library package using an import clause.


import FIFOF::*;

Compiled FoundationIP Libraries

Bluespec's AzureIP intellectual property (IP) accelerates hardware design  and modeling.  All packages in the AzureIP Foundation library are provided as compiled code. 

Storage and Data Structures

  • Register File
  • ConfigReg
  • DReg
  • RevertingVirtualReg
  • BRAM


  • FIFO
  • FIFOLevel


  • Vector
  • List


  • Real
  • Oint

Finite State Machines

  • Finite State Machine


  • GetPut
  • Connectable
  • ClientServer
  • CGetPut


  • LFSR
  • CompletionBuffer
  • UniqueWrappers
  • Assert
  • Probe
  • Reserved
  • ModuleCollect
  • ZBus
  • OVLAssertions

Multiple Clock Domains and Clock Generators

  • Multiple Clock Domains and Clock Generators

Source FoundationIP Libraries

The source FoundationIP library components are provided as both compiled code and as BSV source code to facilitate customization. The source code file can be found in the $BLUESPECDIR/BSVSource directory. To customize a package, copy the file into a local directory and then include the local directory in the path when compiling. Use the -p flag when compiling, as described in the BSV Users Guide, to include the local directory in your path.

Storage and Data Structures

  • BRAM
  • BRAMCore
  • SpecialFIFOs
  • AlignedFIFOs
  • Gearbox


  • Complex
  • FixedPoint
  • NumberTypes


  • CommitIfc


  • Randomizable
  • Arbiter
  • GrayCounter
  • Gray
  • FShow
  • DefaultValue
  • TieOff
  • CRC
Special Collections
  • ModuleContext
  • ModuleCollect
  • CBus
  • HList
  • UnitAppendList

Bus Fabric Libraries

The Bluespec Bus Fabric library components can be used to build complex, fully synthesizable designs. Each component is provided in one or more BSV packages, defining the interfaces and data structures used to communicate to other components.

The TLM library package allows users to create bus-based protocol-independent designs. This package is provided as part of the Bluespec Foundation library, and is available to all users.

Bluespec also provides packages to implement AXI and AHB protocols. These packages are AzureIP Premium offerings and are not provided as part of the Foundation library. If you are interested in obtaining these packages, please contact your sales representative or [email protected]. Customers licensed under release 2009.10.B or earlier still have access to the AXI and AHB libraries as part of the standard offering. Please contact [email protected] if you cannot access the latest libraries. 

  • TLM
  • AXI
  • AHB