|
|
# E-bone
|
|
|
SoC interconnection and cores
|
|
|
|
|
|
-----
|
|
|
|
|
|
## Project description
|
|
|
|
|
|
*E-bone* first aims at interfacing an FPGA based PCIe Endpoint core to a
|
|
|
collection of other cores.
|
|
|
The *E-bone* release contains a number of general purpose cores within
|
|
|
that scope.
|
|
|
|
|
|
*E-bone* specifications cater for both a Control Interconnect and a Fast
|
|
|
Transmitter.
|
|
|
The Control Interconnect defines a 32 bit wide interconnection between a
|
|
|
number of masters and slaves.
|
|
|
The Fast Transmitter is a one way path (up to 256 bit wide) aiming at
|
|
|
dumping large data sets to the root complex.
|
|
|
|
|
|
*E-bone* is nevertheless not restricted to PCIe interfacing and may be
|
|
|
used for developing sub-systems in others environments.
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
E-bone is distributed as a compressed tar file in the files section.
|
|
|
From a shell run the following commands in the directory where you want
|
|
|
to upload E-bone.
|
|
|
|
|
|
$ gunzip eboneYYMMDD.tar.gz
|
|
|
$ tar xf eboneYYMMDD.tar
|
|
|
$ rm eboneYYMMDD.tar
|
|
|
|
|
|
Set the environment variable:
|
|
|
|
|
|
$ export EBONE\_ROOT=path\_to\_ebone
|
|
|
|
|
|
A few utilities are located in the /bin directory.
|
|
|
|
|
|
$ export PATH=$PATH:EBONE\_ROOT/bin
|
|
|
|
|
|
Every core distribution is organized with the following directories
|
|
|
|
|
|
- /doc : Documentation (single file in pdf or txt format)
|
|
|
- /src : Sources
|
|
|
- /syn : Synthesis (optional, constraint file, ...)
|
|
|
|
|
|
## On line documentation
|
|
|
|
|
|
The *ebone* script may be used to display the documentation.
|
|
|
|
|
|
$ ebone -doc
|
|
|
|
|
|
Displaying documentation for core ...
|
|
|
0\) Ebone script man page
|
|
|
1\) Ebone getting started
|
|
|
2\) Ebone specifications
|
|
|
3\) BIF user's guide
|
|
|
4\) PicoBlaze user's guide from XILINX
|
|
|
5\) Others
|
|
|
Enter your choice )
|
|
|
...
|
|
|
|
|
|
If you know the core name (for ex. *ebs\_core\_32*) just do
|
|
|
|
|
|
$ ebone -doc ebs\_core\_32
|
|
|
|
|
|
to display its documentation.
|
|
|
|
|
|
Even an incomplete core name may be enough for the documentation tool to
|
|
|
find out the correct document. In case several cores may fit, the exact
|
|
|
core names are listed, as next example shows.
|
|
|
|
|
|
$ ebone -doc ebs\_
|
|
|
Displaying documentation for core like 'ebs\_' ...
|
|
|
ebs\_pkg
|
|
|
ebs\_bram
|
|
|
ebs\_fifo
|
|
|
ebs\_i2c
|
|
|
ebs\_mif
|
|
|
ebs\_mif\_sp6
|
|
|
ebs\_picoblaze
|
|
|
ebs\_regs
|
|
|
ebs\_fspi
|
|
|
ebs\_spi
|
|
|
ebs\_sysm
|
|
|
sebone32
|
|
|
sebone64
|
|
|
ebs\_bif
|
|
|
|
|
|
## Up-loading a core or updating a design
|
|
|
|
|
|
Use the ebone script. Try:
|
|
|
|
|
|
$ ebone -h
|
|
|
|
|
|
$ ebone -up -h
|
|
|
|
|
|
The script operates only in the directory in which it is invoked from.
|
|
|
To update a hierarchical design *ebone -up* must be run in every design
|
|
|
source sub-directory.
|
|
|
|
|
|
## What else?
|
|
|
|
|
|
- [Frequently asked questions](FAQ)
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
- Home institute: www.esrf.eu
|
|
|
- Hardware developers: Christian Hervé, Thierry Le Caër
|
|
|
- Software support: Fabien Le Mentec
|
|
|
- Our Users
|
|
|
- External IPs re-used
|
|
|
- I2C: Richard Herveille via opencores.org
|
|
|
- SPI: Simon Srot via opencores.org
|
|
|
- PicoBlaze: Ken Chapman from XILINX
|
|
|
- SecretBlaze: ADAC Research Group - LIRMM - University of
|
|
|
Montpellier (adac@lirmm.fr)
|
|
|
|
|
|
## Status
|
|
|
|
|
|
<table>
|
|
|
<tbody>
|
|
|
<tr class="odd">
|
|
|
<td>Date</td>
|
|
|
<td>Event</td>
|
|
|
</tr>
|
|
|
<tr class="even">
|
|
|
<td>09/09/2013</td>
|
|
|
<td>Preliminary release</td>
|
|
|
</tr>
|
|
|
</tbody>
|
|
|
</table>
|
|
|
|
|
|
More in the [Release Notes](Rnotes)
|
|
|
|
|
|
Updated 09/09/2013
|
|
|
|
|
|
|
|
|
|
|
|
### Files
|
|
|
* [ebone_fig1small.jpg](/uploads/6a0bd1d977a5189a9a1020ff0a03da7e/ebone_fig1small.jpg)
|
|
|
* [ebone_fig7small.jpg](/uploads/4fb85c0b98b9e54d4b5e39308947364d/ebone_fig7small.jpg) |
|
|
\ No newline at end of file |