Logic lab allows you to simulate and display logic conditions using:


  • Logic Operators
  • Segment Decoders 
  • Binary Encoding & Decoding
  • ALU & Magnitude comparer


What can I build with LogicLab?

LogicLab can be used to perform logical operations in an application based on events that occur.  These events fed into the LogicLab component set can help determine a course of action to take or display this information in the form of an LED or other component.  Logic data can be visualised in the form of a segmental display and logical operations can be performed using little or no code.



LogicLab Demo

Our component libraries come in 3 versions a VCL - Firemonkey version (for Delphi / C++ Builder / RAD Studio XE4 to 10.1 Berlin), an MFC compatible Visual C++ version, and a .NET 2.0 and 4.0 (4.5 and 4.6 compatible) supporting Visual Studio 2005 to 2015.
The RAD Studio version is a set of native VCL and Firemonkey components of which all include now the powerful Mitov Runtime.
The Visual C++ version is a set of native Visual C++ classes (components).
The NET 2.0 and 4.0 (4.5 and 4.6 compatible) version is a set of managed .NET components.  The .NET version has the same performance as the native versions, and supports all the Microsoft .NET languages including Visual Basic, C#, J#, F# and C++/CLI.
Due to the unique architecture of the OpenWire platform, the components are implemented the same way in Managed .NET and native Windows (32 and 64 bit) environments. The code to control a component from VB.NET, C++/CLI, C#, and J#, Visual C++ MFC, Delphi, and C++ Builder is almost identical. This allows the developers to migrate and share code between the different environments thus significantly improving the productivity.
OpenWire Libraries: for fast, complex data stream processing with almost zero lines of code!
RAD Studio XE8 Delphi XE8 C++ Builder XE8 RAD Studio 10 Seattle Delphi 10 Seattle C++ Builder 10 Seattle

Generic Filters

TLGenericFilter TLGenericFilter

User defined timing filter

Logic tools


Or logic operator


Logic lab and operator


Logic lab Xor operator

LLInverter LLInverter

Logic lab value inverter

LLTFlipFlop LLTFlipFlop

Logic lab flip flop component


Logic lab source component

LLSink LLSink

Logic lab sink component

LLRandomGenerator LLRandomGenerator

Logic lab random value generator

LLMerger LLMerger

Logic lab value merger

LLSplitter LLSplitter

Logic lab value splitter

LLJKFlipFlop LLJKFlipFlop

The JK flip-flop augments the behavior of the SR flip-flop (J=Set, K=Reset) by interpreting the S = R = 1 condition as a "flip" or toggle command. Specifically, the combination J = 1, K = 0 is a command to set the flip-flop; the combination J = 0, K = 1 is a command to reset the flip-flop; and the combination J = K = 1 is a command to toggle the flip-flop, i.e., change its output to the logical complement of its current value. Setting J = K = 0 does NOT result in a D flip-flop, but rather, will hold the current state. To synthesize a D flip-flop, simply set K equal to the complement of J. Similarly, to synthesize a T flip-flop, set K equal to J. The JK flip-flop is therefore a universal flip-flop, because it can be configured to work as an SR flip-flop, a D flip-flop, or a T flip-flop.


Random access memory component


Read only memory component

LLSegmentDecoder LLSegmentDecoder

Segment Decoder component

LLDecoder LLDecoder

Decoder component

LLEncoder LLEncoder

Encoder component

LLFromGrayCode LLFromGrayCode

Convert from Gray Code

LLToGrayCode LLToGrayCode

Convert to Gray code

LLBinaryCounter LLBinaryCounter

A binary counter can be constructed from JK Flip Flops by taking the output of one cell to the clock input of the next. The J and K inputs of each flip-flop are set to 1 to produce a toggle at each cycle of the clock input. For each two toggles of the first cell, a toggle is produced in the second cell, and so on down to the fourth cell. This produces a binary number equal to the number of cycles of the input clock signal. This device is sometimes called a "ripple through" counter.

LLBitShifter LLBitShifter

The bit shifts are sometimes considered bitwise operations, because they operate on the binary representation of an integer instead of its numerical value; however, the bit shifts do not operate on pairs of corresponding bits, and therefore cannot properly be called bit-wise. In these operations the digits are moved, or shifted, to the left or right. Registers in a computer processor have a fixed width, so some bits will be "shifted out" of the register at one end, while the same number of bits are "shifted in" from the other end; the differences between bit shift operators lie in how they determine the values of the shifted-in bits.

LLBarrelShifter LLBarrelShifter

A barrel shifter is a digital circuit that can shift a data word by a specified number of bits in one clock cycle. It can be implemented as a sequence of multiplexers (mux.), and in such an implementation the output of one mux is connected to the input of the next mux in a way that depends on the shift distance.

LLMultiplexer LLMultiplexer

In electronics, a multiplexer (or mux) is a device that selects one of several analog or digital input signals and forwards the selected input into a single line.  A multiplexer of 2n inputs has n select lines, which are used to select which input line to send to the output. Multiplexers are mainly used to increase the amount of data that can be sent over the network within a certain amount of time and bandwidth. A multiplexer is also called a data selector.

LLDemultiplexer LLDemultiplexer

A demultiplexer (or demux) is a device taking a single input signal and selecting one of many data-output-lines, which is connected to the single input. A multiplexer is often used with a complementary demultiplexer on the receiving end.

LLMagnitudeComparer LLMagnitudeComparer

A digital comparator or magnitude comparator is a hardware electronic device that takes two numbers as input in binary form and determines whether one number is greater than, less than or equal to the other number.

LLAdder LLAdder

In electronics, an adder or summer is a digital circuit that performs addition of numbers. In many computers and other kinds of processors, adders are used not only in the arithmetic logic unit(s), but also in other parts of the processor, where they are used to calculate addresses, table indices, and similar operations.


In digital electronics, an arithmetic logic unit (ALU) is a digital circuit that performs integer arithmetic and logical operations


ULLabel ULLabel Rotatable label
ULImage ULImage GDI+ Image
OpenWireStudio OpenWireStudio

Loads, executes, and exchanges data with OpenWire Studio projects

Timing components

TLWatchDogTimer TLWatchDogTimer

Implements a Watch Dog Timer.

TLMainThredEvent TLMainThredEvent

Allows other threads to generate main thread notifications.

TLClockGen TLClockGen

Provides clock for other components.

TLThreadEvent TLThreadEvent

Use this component to execute code in a separated thread

TLStopWatch TLStopWatch

Use this component to implement a Stop Watch

TLFrequencyMeter TLFrequencyMeter

Use this component to implement a Frequency meter

TLCounter TLCounter

Use this component to implement a Counter



LED control with On/Off states

ILMultiLed ILMultiLed

LED control with multiple states

ILLevelLed ILLevelLed

LED control with gradually changing intensity and/or color based on the input value

ILSegmentIndicator ILSegmentIndicator

7, 9, 14 or 16 segment indicator

Video Layers

ILLedLayer ILLedLayer

Layer drawing LED control with On/Off states

ILMultiLedLayer ILMultiLedLayer

Layer drawing LED control with multiple states

ILLevelLedLayer ILLevelLedLayer

Layer drawing LED control with gradually changing intensity and/or color based on the input value

ILSegmentIndicatorLayer ILSegmentIndicatorLayer

Layer drawing 7, 9, 14 or 16 segment indicator

ULLabelLayer ULLabelLayer Layer drawing rotatable label
ULImageLayer ULImageLayer Layer drawing image

Matrix Layers

ILExternalLedMatrixLayer ILExternalLedMatrixLayer

Matrix layer drawing LED control with On/Off states

ILExternalMultiLedMatrixLayer ILExternalMultiLedMatrixLayer

Matrix layer drawing LED control with multiple states

ILExternalLevelLedMatrixLayer ILExternalLevelLedMatrixLayer

Matrix layer drawing LED control with gradually changing intensity and/or color based on the input value

ILExternalSegmentIndicatorMatrixLayer ILExternalSegmentIndicatorMatrixLayer

Matrix layer drawing 7, 9, 14 or 16 segment indicator

ULExternalLabelMatrixLayer ULExternalLabelMatrixLayer Matrix layer drawing external text label
ULImageMatrixLayer ULImageMatrixLayer Matrix layer drawing image

Control Element

ILExternalLedElement ILExternalLedElement

Component element drawing external LED control with On/Off states

ILLevelDetectLedElement ILLevelDetectLedElement

Component element drawing internal level triggered LED control

ILTimeDetectLedElement ILTimeDetectLedElement

Component element drawing internal time triggered LED control

ILExternalMultiLedElement ILExternalMultiLedElement

Component element drawing external data LED control with multiple states

ILLevelLedElement ILLevelLedElement

Component element drawing internal data LED control with gradually changing intensity and/or color based on the input value

ILExternalLevelLedElement ILExternalLevelLedElement

Component element drawing external data LED control with gradually changing intensity and/or color based on the input value

ULAnalogLabelElement ULAnalogLabelElement Component element drawing analog label
ULTimeLabelElement ULTimeLabelElement Component element drawing time label
ULExternalLabelElement ULExternalLabelElement Component element drawing external text label
ULImageElement ULImageElement Component element drawing image
ILExternalSegmentIndicatorElement ILExternalSegmentIndicatorElement

Component element drawing external data 7, 9, 14 or 16

LogicLab: What's New

New in Version (released on 2018-12-21)

  • Added RAD Studio 10.3 Rio support
  • Improved Dynamic Type Info implementation
  • Improved property editors

New in Version (released on 2018-11-12)

  • Added Linux support
  • Added iOS support
  • Added RAD Studio 10.2 Tokyo support
  • Improved MAC, and Android compatibility
  • Improved overlay window design for the LED components
  • Added OnTextChanged to TULLabel
  • Improved bindings API
  • Pins converted to use the new Mitov.Runtime serialization
  • Added OWRequiredPinAttribute support
  • Added TOWIntToCardinalFormatConverter and TOWCardinalToIntegerFormatConverter
  • Added TOWRealToRealComplexFormatConverter
  • Added TOWRealListStatePin and TOWIntegerListStatePin
  • Added Execute Process
  • Added Command Line parsing and Process Execute
  • Added option to disable the design time extentions
  • Added Socket Binding
  • Redesigned JSON Serialization
  • Added TPeriodicThread
  • Added initial Dynamic Type Info implementation
  • Added GetIndexedSubProperty in the RTTI
  • Added GetType for TObject in the RTTI
  • Added support for both object and class in TMethodInfo.Invoke in the RTTI
  • Enchanced Query functionality
  • Added IPairCollection
  • IArrayWriter renamed to ISequentialWriter
  • IArrayReader renamed to ISequentialReader
  • Improved Serialization Readers
  • Added Reserialize
  • Improved design time property editors support
  • Added option to replace property collection items while keeping all compatible settings
  • Added filtering for property collections
  • Added support for categorized list property selection
  • Added TreeView filtering support
  • Updated to use the latest Delphi language features

New in Version (released on 2016-05-03)

  • Added RAD Studio 10.1 Berlin support
  • Added Visual Live Binding property editors
  • Added Reset to Default property editors
  • Added Enum property editors
  • Added Class events property editors
  • Added Multi-Event property editors
  • Added Make/Split Structure components

New in Version (released on 2015-10-28)

  • Added 10 Seattle support
  • Added support for VS2015
  • Added TOWBoolToIntFormatConverter
  • Improved threading support
  • Improved OpenWire Editor
  • Clock pins changed to MiltiSink
  • Improved Design Time Editors
  • Improved JSON support
  • Improved collections
  • Added more Live Binding types
  • Added support for hosting OpenWire Studio projects
  • Added serialization support in the buffers

New in Version (released on 2015-04-17)

  • Added TTLGenericFilter
  • Added more visual live binding types
  • Significantly improved property Delphi editors

New in Version (released on 2014-11-18)

  • Improved Memory components.
  • Improved components design
  • Includes the free Mitov.Runtime
  • Added XE7 support

New in Version (released on 2014-04-21)

  • This is the first release
( Click to view Larger images. )
These demos are executable after downloading.
Also see:   Demo source code downloads

LogicLab Examples

Logic Lab Demo Logic Lab Demo
Logic Lab IDE Logic Lab IDE

LogicLab: Frequently Asked Questions

Q: Do I have to purchase LogicLab?

LogicLab is free for non commercial purposes. This means that you can use it for personal pleasure, hobby, or evaluation purposes. If you are student you can also use it for free for your educational needs including school projects. If you are a tutor at present you also can use it for free for your classes. However in the near future a low cost tutor license will be available, and you will have to purchase it. Your students however will not need license to use the product at class.

LogicLab Installers

Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for 10.2 Tokyo and 10.3 Rio
Updated on 2018-12-21, downloaded 195 times.
Visual C++ Installer: LogicLab for Visual C++ MFC
Updated on 2018-11-12, downloaded 50 times.
.NET Installer: LogicLab for Microsoft .NET 4.0 (4.5 and 4.6 compatible)
Updated on 2018-11-08, downloaded 326 times.

Legacy Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for XE8 to 10.1 Berlin
Updated on 2016-06-06, downloaded 696 times.
Legacy Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for XE7 to 10 Seattle
Updated on 2015-10-28, downloaded 475 times.
Legacy Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for XE6 to XE8
Updated on 2015-06-11, downloaded 498 times.
Legacy Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for XE4 to XE7
Updated on 2014-11-18, downloaded 522 times.
Legacy Firemonkey and VCL Installer: LogicLab VCL and FireMonkey 32 & 64 bit support for XE3 to XE6
Updated on 2014-04-22, downloaded 553 times.


These demos are executable after downloading.   Also see: Demo source code downloads


The libraries are licensed per developer, and there are no royalties required. Once you have purchased a developer license, you are free to distribute your final product without the need to pay any royalties or other fees as long as you comply with the following license agreement:
Users of the LabPacks Component Pack(Software) must accept these terms of license.
If you refuse to accept the terms of license, you may not use this software, and you have the right to return it within 30 days of the purchase date, and to receive your money back.
For your convenience a copy of this license agreement will be stored on your system during the installation.
This license grants you the following rights:
You have a non exclusive license to the Software. The Title and all intangible rights to the Software are the property of Mitov Software .  
You may install and use one copy of the Software per computer assuming only one and the same person will use the Software on all of the computers. You may distribute any application that includes Software without any additional royalties beyond your initial license registration fee.
You can also create a reasonable set of copies of the product on different types of media, such as CD Rom or Type Backup, as far as those copies are used only for your own back up protection.
Description of the limitations. 
You may not reverse engineer, decompile, or disassemble the Software.
The Software is licensed as a single product. You may not rent or lease the Software. You must treat the Software like any other copyrighted material except that you may either (a) a reasonable amount of copies of the Software solely for backup or archival purposes, or (b) install the Software multiple computers provided you keep the original solely for backup or archival purposes and only a single developer will use all of the copies.
You may not separate Delphi and C++ Builder components from this Software.
Each developer must have a valid license for the Software.
You may not create a competing component product using this Software.
Additional restriction to Delphi-VCL and C++ Builder components: 
You may not distribute the Delphi-VCL components in a DCU (Delphi Compiled Unit) format. You can distribute the component only as a part of your executable or dynamic link library program in a compiled form.
You may not distribute the C++ Builder components in OBJ format. You can distribute the component only as a part of your executable or dynamic link library program in a compiled form.
Mitov Software grants a limited warranty with these restrictions:


December 21, 2018more...

The latest RAD Studio 10.3 Rio compatible versions of Libraries and OpenWire Studio are now available on the site

November 12, 2018more...

The latest RAD Studio 10.2, and Visual Studio 2017 compatible versions of Libraries and OpenWire Studio are now available on the site

January 22, 2018more...

Delphi 10.2.2 Tokyo versions available

May 4, 2016more...

10.1 Berlin Support in Latest Release

October 28, 2015more...

10 Seattle Support in Latest Release

July 3, 2015more...

OpenWire Studio Beta5

February 13, 2015more...

OpenWire Studio Beta4

December 20, 2014more... Release for .NET

April 15, 2014more...

NEW! XE6 Components Release with new Android Support

June 12, 2013more...

NEW RELEASE: Version 6.0 of our Component Librarys -- includes OpenWire Editor

More News