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:


T=130 cycles


int fact(int x)
{if (x=1) {return 1}
else {return x*fact(x-1)} }


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:





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
User Settings, User Programs, User Library, User Demos, User Catalogue
Block Level Debugging: Breakpoint, Stepping (in and out) with results and execution time Code Level S/W Simulator JTAG Machine Code Debugger with Program and Data Breakpoints
Available Time and Available Memory Reports H/W Execution Time Measurement with Minimum, Maximum and Average Values Automatic test of Entire Library with detailed report
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:




© ELSI INGENIERIE 2003-2013, LF last rev. 19/08/13      Mentions légales     web: