Graphical DSP programming - FIBULA

FIBULA
is a graphical user interface and integrated programming environnement for
digital signal processing. It comes with a large library of blocks
for telecom, control and audio (including complex, matrix and boolean types).
FIBULA generates super optimized assembly code directly (not C code)
for maximum efficiency!
FIBULA
handles multi-core processing!
Create
your own blocks (hierachical programming), either
from existing blocks or using the FIBULA high level macro
language to define a new graphical block.
Place probes on the program schematic and display the signals evolution inside the DSP in real
time!
Take control of the DSP program blocks parameters in real
time!
Check algorithms
execution time!
(Click
on the links in the text above for illustration)
 |
 |
Open the function blocks catalogue... |
...drag and drop to draw your schematic |
FIBULA
real time virtual scope. All the standard scope features plus many display
options:

The
real time scope allows to visualize any signals evolution in your running DSP
program!

|

|
XY mode scope |
Frequency mode scope |

|

|
Markers placement on trace |
Plotter feature |
FIBULA
handles multi-core processing right from the schematic. A child's play:

|
Multi-core
schematic example |
FIBULA allows to control DSP program blocks parameters from the PC in real
time, ideal for field experimentation:
 |
 |
DSP program
parameter adjustment in real time and scope visualisation, all from FIBULA |
FIBULA
generates optimzed assembly code, which allows a much more efficient use of the
ressources:
Example on computing Factorial 7:
FIBULA
T=130 cycles |
C
int fact(int x)
{if (x=1) {return 1}
else {return x*fact(x-1)} }
T=7336cycles
|
|
 |
FIBULA vs C
program efficiency |
FIBULA
allows to control cycles counts and available ressources:
 |
 |
Example of
TIC-TOC function to measure execution time of a FIR filter |
Check
ressources usage |
FIBULA
functional blocks hierarchy:

FIBULA's LIBRARY
Note: Each function has a small demo program associated with for test purpose |
Fractional 24 / 48 Bit Arithmetic Blocks
25 Basic Real and Complex Arithmetic Functions
15 Audio and Music Functions
40 Control Functions
20 Filters Functions (FIR, IIR, Adaptive, Hilbert, …)
20 Math Functions (Trigonometric, exp, dB, Table Interpolate …)
15 Signal Generators (Deterministic or Pseudo Random)
10 Virtual Instruments (Scope, Spectrum, Histogram, Plotter, Mouse and Keyboard, Terminal)
55 Telecom Functions (Coders / Decoders, Modulators / Demodulators, Channel Models …)
I/O Target Depending Functions (Wait for Codec, On Codec Interrupt …) |
Integer 24 / 48 Bit Functions
10 Integer Basic Arithmetic functions |
Boolean 1 Bit Functions
25 Timing and Synchronization Functions
30 Logic Functions |
Matrix / Array Operations
20 Matrix and Array Functions including
Fractional and Boolean -- GF(2) matrix multiplication
Frequency Domain: DFT,IDFT, FFT,IFFT,DCT,IDCT, RT Windowed dB Spectrum Analyser |
Tools
Project
User Settings, User Programs, User Library, User Demos, User Catalogue
Debugging
Block Level Debugging: Breakpoint, Stepping (in and out) with results and execution timeCode Level S/W SimulatorJTAG Machine Code Debugger with Program and Data Breakpoints
Profiling
Available Time and Available Memory ReportsH/W Execution Time Measurement with Minimum, Maximum and Average ValuesAutomatic test of Entire Library with detailed report
Graphics
Print Schemas, Scopes, Plotter results as BMP or as EMF (vectorial format)Automatic Generation of Reference and / or User Block |
Each
FIBULA's functional block is documented and comes with a drag and drop demo:

|