Skip to content

buffer_fifobbq_docs_help

Pierre edited this page Aug 20, 2025 · 3 revisions
FIFO Boolean class="toc_span_items"><a href="#misc">Misc &#8595;</a></span> <span class="toc_span_items"><a href="#parameters">Params &#8595;</a></span> <span class="toc_span_items"><a href="#ports">Ports &#8595;</a></span> </div> <!--General Description--> <p class="component"> This component acts as a FIFO (First-In First-Out) buffer for Boolean data. When the input event <a href="#[In]push">[In]push</a> is asserted, the input data <a href="#[In]data">[In]data</a> is pushed on to the top of the stack and the output event <a href="#[Out]push">[Out]push</a> is triggered. When the input event <a href="#[In]pop">[In]pop</a> is asserted, the data on the bottom of the stack is popped off the stack and presented to the output <a href="#[Out]data">[Out]data</a> and the output event <a href="#[Out]pop">[Out]pop</a> is triggered. Thus the first data item to be pushed on to the stack is the first data item to be popped off the stack to the output. The maximum number of data items that can be held on the stack, is determined by the maximum buffer length parameter. </p> <p class="component"> If the number of data items on the stack is equal to the maximum buffer length, then the input event <a href="#[In]push">[In]push</a> will trigger the corresponding output event <a href="#[Out]err">[Out]err</a>. This pattern is repeated if the input event <a href="#[In]pop">[In]pop</a> is triggered and there are no data items on the stack. </p> <p class="component"> Note that the output data <a href="#[Out]data">[Out]data</a> is persistent. </p> <!--Parameters - form - short desc: long desc--> <div class="section_heading"> <span id="parameters" class="toc_span">Parameters</span> <div class="toc_span_items"><a href="#toc_container">Top &#8593;</a></div> <div class="toc_span_items"><a href="#misc">Misc &#8595;</a></div> <div class="toc_span_items"><a href="#ports">Ports &#8595;</a></div> </div> <table class="table_params"> <tbody> <tr> <th style="width:60px;">name</th> <th>type</th> <th>default</th> <th>min.</th> <th>max.</th> <th>description</th> </tr> <tr> <td>Max. length</td> <td>Integer</td> <td>5</td> <td>0</td> <td>1000000</td> <td>maximum buffer length.</td> </tr> </tbody> </table> <!--Ports - form - short desc: long desc--> <div class="section_heading"> <span id="ports" class="toc_span">Ports</span> <span class="toc_span_items"><a href="#toc_container">Top &#8593;</a></span> <span class="toc_span_items"><a href="#misc">Misc &#8595;</a></span> <span class="toc_span_items"><a href="#parameters">Params &#8593; </a></span> </div> <table class="table"> <tbody> <tr> <th>In Ev.</th> <th><br> </th> </tr> <tr> <td class="portsInt"><a name="[In]push">push</a></td> <td>Input event</td> </tr> <tr> <td class="portsInt"><a name="[In]pop">pop</a></td> <td>Input event</td> </tr> <tr> <td class="portsInt"><a name="[In]flush">flush</a></td> <td>Input event, empties the buffer and triggers the output event <a href="#[Out]flush">[Out]flush</a></td> </tr> <tr> <th>Data In</th> <th><br> </th> </tr> <tr> <td class="portsInt"><a name="[In]data">data</a></td> <td>Data input, data item to be pushed on to the stack.</td> </tr> <tr> <th>Data Out</th> <th><br> </th> </tr> <tr> <td class="portsInt"><a name="[Out]data">data</a></td> <td>Data output, data item to be popped off the stack.</td> </tr> <tr> <th>Out Ev.</th> <th><br> </th> </tr> <tr> <td class="portsInt"><a name="[Out]push">push</a></td> <td>Output event, triggered when the input event <a href="#[In]push">[In]push</a> is asserted and data is successfully pushed on the stack.</td> </tr> <tr> <td class="portsInt"><a name="[Out]err">err</a></td> <td>Output event, triggered when there is an error when the input event <a href="#[In]push">[In]push</a> is asserted.</td> </tr> <tr> <td class="portsInt"><a name="[Out]pop">pop</a></td> <td>Output event, triggered when the input event <a href="#[In]pop">[In]pop</a> is asserted and data is successfully popped off the stack.</td> </tr> <tr> <td class="portsInt"><a name="[Out]err">err</a></td> <td>Output event, triggered when there is an error when the input

Output event.

inc Asserted if and only if an increment event is received and the count is less than the maximum threshold.
Misc Top ↑ <span
      class="toc_span_items"><a href="#ports">Ports &#8593;</a></span> <span class="toc_span_items"><a

        href="#parameters">Params &#8593; </a></span> </div>
  <table>
    <tbody>
      <tr class="fsm_row">
        <td style="width:90px;"> <b>State Machine</b> </td>
        <td colspan="5">
          <!--<span class="fsm_blob">state0<sub>0</sub></span> [doa,dob]&rarr;
      <span class="fsm_blob">state1</span> [doc]&rarr;&larr;[dod,doe]          <span class="fsm_blob">state2</span>
      &otimes;&nbsp;          <span class="fsm_blob">state1</span> [dof]&rarr;[dog,dog]
      <span class="fsm_blob">state3</span> [doh]&rarr;          <span class="fsm_blob">state5</span> -->
          None </td>
        <td> <br>
        </td>
        <td> <br>
        </td>
      </tr>
      <tr>
        <td class="heading-cell"> <b>Toolbox</b> </td>
        <td> Core </td>
        <td class="heading-cell"> <b>Version</b> </td>
        <td> v1.0. </td>
      </tr>
      <tr>
        <td class="heading-cell"> <b>Licence Type</b> </td>
        <td> MPL2.0 </td>
        <td class="heading-cell"> <b>Component Supplier</b> </td>
        <td> <a href="http://www.inx-systems.net" target="_blank">inx ltd.</a>
        </td>
      </tr>
      <tr>
        <td class="heading-cell"> <b>Minumum DCC</b> </td>
        <td>A0000</td>
        <td class="heading-cell"> <b>Profiles</b> </td>
        <td> All. </td>
      </tr>
    </tbody>

Core Components

Events & Triggers

State Management

  • STATE - Represents a State in Lucid
  • state_condition - Event driven state condition --> transition and actions
  • state_debug - To debug state machines this function block is required.
  • state_manager - Each state machine is defined by a State Manager

Array & Data Structures

Buffers & Queues

Primitive Data Constants

Data Converters

Boolean Logic



Mathematics

Alebraic Evaluation

Mathematical Operators

Inequalities

Trigonometry

Other Functions

Data Selection

  • indexed_mux_int - Indexed Mux Int
  • indexed_mux_str - Indexed Mux String
  • map_int - Map Int
  • mux_1b - mux_1b
  • mux_1i - mux_1i
  • mux_1r - mux_1r
  • mux_1s - mux_1s
  • mux_2b - MultiplexTwo Input Bool
  • mux_2i - MultiplexTwo Input Int
  • mux_2r - MultiplexTwo Input Real
  • mux_2s - MultiplexTwo Input String
  • mux_3b - MultiplexThree Input Bool
  • mux_3i - MultiplexThree Input Int
  • mux_3r - MultiplexThree Input Real
  • mux_3s - MultiplexThree Input String
  • mux_4b - MultiplexFour Input Bool
  • mux_4i - MultiplexFour Input Int
  • mux_4r - MultiplexFour Input Real
  • mux_4s - MultiplexFour Input String
  • mux_8b - 8-Input Indexed Boolean Multiplexer Function Block
  • mux_8i - 8-Input Indexed Integer Multiplexer Function Block
  • mux_8r - 8-Input Real Number Multiplexer Function Block
  • mux_8s - Number Multiplexer Function Block
  • num_mux - Numeric Multiplexer Function Block

Data Processing & Parsers

Database & Storage

Demultiplexers

String Functions

File Operations



Basic IO Components

GPIO & Hardware I/O



Graphics and UI Components

GUI & User Interface

User Input

  • keypress - Reads key presses & control keys

Unity & Web Integration

  • inx-unity - Provides media and animation widget interface
  • unity2 - Unity 3D
  • webkit - JavaScript/WebKit Interface (Obsolete)

Language & Localization



Media Components

Audio & Media

Digital TV & Media Control



Communications Components

TCPIP Network & Communication

Wireless & LPWAN Networks

Fieldbus Comms



Digital Signal Processing

  • ADC Polled Analogue to Digital converter.
  • ADC_continuous Advanced ADC supporting clocked ISR modes and advanced signal averaging.
  • FFT8 Fast Fourier Transform of 8 bit binary input data
  • FIR8 Finite Impulse Response filter for 8 bit binary data.
  • IIR8 Infinite Impulse Response filter for 8 bit binary data.
  • [calibrate](ADC calibrate) - Calibrates the ADCs


Control Systems Components

PID Controllers



Machine Learning & Machine Vision

  • mv_camera - Provides access to camera input data image streams
  • mv_idsplay - Renders camera image streams.
  • mv_resize - Resizes an image using given interpolation method
  • mv_crop - Crops and image width and height at a give offset
  • mv_apriltag_reader Plain Old Prgramming AprilTag Reader
  • ml_tflite_inference Machine learning model inference.
  • ml_osvm Online iterative machine learning (training& inference).


Platform Components

System Utilities

  • reboot - Reboot the device
  • rtc - RealTimeClock - provdes date/time from RTC device or OS.
  • rtinfo - RuntimeInfo (e.g. MAC/IP address, memory,... )
  • scheduler - Weekly Scheduler
  • system_exec - Executes linux shell commands
  • rng - Random Number Generator (may use hardware RNG)

Time Components

Application Management

Over the Air Update (OTA)

  • ota - OTA Function Block for updating firmware
  • ota_data_parser - Assembles OTA data files from Devman.


Non-functional Components

Some function blocks that can be used Lucid app are for visual/organisation purposes only and do not translate into any executable ert-components.

Sub System Input/Output Ports

-Note this file is autogenerated from ert-config help files and may not currently be complete or properly categorised!

Clone this wiki locally