Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Sign in
F
FPGA Configuration Space
  • Project
    • Project
    • Details
    • Activity
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • Wiki
    • Wiki
  • image/svg+xml
    Discourse
    • Discourse
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • Projects
  • FPGA Configuration Space
  • Wiki
  • Home

Home

Last edited by A. Hahn Apr 19, 2022
Page history

FPGA Configuration Space Specification (also known as SDB)

This project is an effort to introduce a configuration space specification for internal FPGA buses (interconnects, crossbars). Our initial target is Wishbone, but the specification is generic. The output of this project is called SDB (Self Describing Bus) even if the project (thus the repository) is called fpga-config-space.

SDB allows to enumerate the cores that are live in the current fpga binary, either from the host computer or from the internal soft-core CPU in the FPGA itself. It is also used as a simple filesystem in our EEPROM devices,
so data can be easily accessed by both the host and the soft core that lives in the FPGA itself.

The current specification is already in use in some of our designs. And we have some sdb implementation guidelines

Specification

Version 1.1 of SDB the specification is available in PDF format, together with the header file.
It has been built from the repository of this project, so you can get the git tree instead and run Latex on it.

Interrupt support

We chose, for the time being, to not describe interrupts. After some drafts for one such description, Wesley Terpstra
explained why legacy interrupts should be avoided in a SoC design and MSI-like interrupts don't need an external description.
His complete reasoning is here: Interrupts

Code

The implementation as VHDL is part of the respective projects.

Code for the Linux kernel (both as a bus driver and a file system driver) is being written. Available code
is part of this repository, but it's still work in progress. Sdbfs is being used in our EEPROMs using
the user-space tools and library currently in the "sdbfs" subdir of the repository

Project Information

  • Frequently Asked Questions

Status

Date Event
09-05-2011 Start of project
09-05-2011 Added draft of specification (available in Repository section)
10-05-2011 Added code for wishbone simulator (source code available in Repository or Files section)
21-06-2012 After long discussions, the specification is published
11-04-2013 Version 1.1 of the sdb specification, including sdbfs material and more
12-10-2014 SDB presented at the OpenRISC Conference 2014
29-04-2016 Added MSI feature to wishbone module
12-03-2018 Added Kernel 4+ support (wishbone module)
17-03-2022 Added Kernel 4+ support (legacy-vme64x-core module)

Clone repository
  • Documents
  • Frequently asked questions (faq)
  • Home
  • News
  • Sdb implementation guidelines
  • Interrupts
  • Users
  • Documents
    • Fosdem 2012 lightning talk on sdwb
    • Project attachments
    • Sdb 1.1 specification
    • Sdb specification, june 2012
More Pages

New Wiki Page

Tip: You can specify the full path for the new file. We will automatically create any missing directories.