Skip to content
Patrick Lehmann edited this page Mar 13, 2015 · 7 revisions

The PicoBlaze Library L_PicoBlaze contains hardware modules as well as assembler routines.

Main features of the hardware components:

  • [Package VHDL auxiliary package]
    • PicoBlaze related constants, records and types
    • Functions to define a generic PortID to register mapping
    • Functions for semi-automated bus wiring
    • Functions to write debug information for simulators and !ChipScope to disk
  • Core system
    • A generic [pb_AddressDecoder address decoder] with a registered write path
    • A [pb_InterruptController interrupt controller] with 32 ports and per device error message handling]
    • TODO: Timer
  • accelerators:
    • multiplier
    • divider
    • ...
  • I/O devices for
    • GPIO
    • LCD
    • Bit-Banging IO
    • ...
  • I/O adapters for
    • Xilinx Dynamic Reconfiguration Port (DRP)
    • ...

Main features of the software stack:

  • Core system
    • predefined [RegisterNames register names] and calling conventions
    • ROM switching, if multiple ROM [Pages pages] are used (up to 32k instructions)
  • Libraries:
    • [libStack Stack] functions: push, pop, top, ...
    • [libSleep100MHz Delay] functions: sleep from nanoseconds to seconds
    • [libThread Co-routines] (lightweight threads)
  • I/O routines to communicate with the hardware modules:
    • I²C
    • SPI
    • LCD
    • UART
  • DEV routines implement special protocols like:
    • Terminal
    • PCA9548 (I²C switch)
    • SI570 (external, programmable clock source)
    • 7-Series GTX transceiver