|
|
# FPGA Configuration Space Specification (also known as SDB)
|
|
|
# Overview
|
|
|
|
|
|
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.
|
|
|
The aim of this project is to provide a generic API for ADC devices
|
|
|
(drivers). The advantage of sharing the same API among different
|
|
|
applications is that we can concentrate to provide a single stable and
|
|
|
robust entry point for a variety of boards and driver types, and on the
|
|
|
application side it allows to write generic tools that may work with any
|
|
|
ADC.
|
|
|
|
|
|
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.
|
|
|
![](/uploads/4e06c8e81f8e9f47d743a6e13815f876/library.png)
|
|
|
|
|
|
The current specification is already in use in some of our designs. And
|
|
|
we have some [sdb implementation
|
|
|
guidelines](sdb-implementation-guidelines)
|
|
|
The library has the knowledge about how to handle different devices and
|
|
|
it hides this complexity to the application by providing a single access
|
|
|
point. Thanks to the internal routing system, all the operation from the
|
|
|
application are properly propagated to the correct set of functions for
|
|
|
a specific device.
|
|
|
|
|
|
## Specification
|
|
|
# Supported Hardware
|
|
|
|
|
|
Version 1.1 of SDB the specification is available in [PDF
|
|
|
format](https://www.ohwr.org/project/fpga-config-space/wikis/Documents/SDB-1.1-specification), 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.
|
|
|
Here the list of supported ADC devices:
|
|
|
|
|
|
## 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](Interrupts)
|
|
|
|
|
|
## Code
|
|
|
|
|
|
The implementation as VHDL is part of the respective [projects](users).
|
|
|
|
|
|
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<s>":Frequently-Asked-Questions</s>(FAQ)
|
|
|
|
|
|
## Status
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td><strong>Date</strong></td>
|
|
|
<td><b> Event </b></td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>09-05-2011</td>
|
|
|
<td>Start of project</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>09-05-2011</td>
|
|
|
<td>Added draft of specification (available in Repository section)</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>10-05-2011</td>
|
|
|
<td>Added code for wishbone simulator (source code available in Repository or Files section)</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>21-06-2012</td>
|
|
|
<td>After long discussions, the specification is published</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>11-04-2013</td>
|
|
|
<td>Version 1.1 of the sdb specification, including sdbfs material and more</td>
|
|
|
</tr>
|
|
|
<tr class="odd">
|
|
|
<td>12-10-2014</td>
|
|
|
<td>SDB presented at the [OpenRISC Conference 2014](http://tum-lis.github.io/orconf2014/#sdb).</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
-----
|
|
|
- [FMC ADC 100M 14Bit 4
|
|
|
Channel](https://www.ohwr.org/project/fmc-adc-100m14b4cha-sw)
|
|
|
|
|
|
|
|
|
|
... | ... | |