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
":Frequently-Asked-Questions(FAQ)
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. |