logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

logic - LinuxCNC HAL component providing configurable logic functions

Author

       Jeff Epler

Description

       General `logic function' component.  Can perform `and', `or', `nand', `nor' and `xor' of up to 16 inputs.

       Determine the proper value for `personality' by adding the inputs and outputs then convert to hex:

       •   The number of input pins, usually from 2 to 16

       •   256 (0x100)  if the `and' output is desired

       •   512 (0x200)  if the `or' output is desired

       •   1024 (0x400)  if the `xor' (exclusive or) output is desired

       •   2048 (0x800)  if the `nand' output is desired

       •   4096 (0x1000)  if the `nor' output is desired

       Outputs can be combined, for example 2 + 256 + 1024 = 1282 converted to hex would be 0x502 and would have
       two inputs and have both `xor' and `and' outputs.

Examples

       This is an OR circuit connected to three different signals, two inputs named sig-in-0 and  sig-in-1,  and
       one output named sig-out.  First the circuit is defined, then its function is connected to the servo real
       time thread, last, its pins are connected to the wanted signals.

              loadrt logic count=1 personality=0x202
              addf logic.0 servo-thread
              net sig-in-0 => logic.0.in-00
              net sig-in-1 => logic.0.in-01
              net sig-out  <= logic.0.or

       This is a named AND circuit with two inputs and one output.

              loadrt logic names=both personality=0x102
              addf both servo-thread
              net sig-in-0 => both.in-00
              net sig-in-1 => both.in-01
              net sig-out  <= both.and

Functions

logic.N
              Read the inputs and toggle the output bit.

License

       GPL

LinuxCNC Documentation                             2025-06-19                                           LOGIC(9)

Name

       logic - LinuxCNC HAL component providing configurable logic functions

Pins

logic.N.in-MM bit in (MM=00..personality & 0xff)
       logic.N.and bit out [if personality & 0x100]
       logic.N.or bit out [if personality & 0x200]
       logic.N.xor bit out [if personality & 0x400]
       logic.N.nand bit out [if personality & 0x800]
       logic.N.nor bit out [if personality & 0x1000]

See Also

and2(9), lut5(9), not(9), or2(9), xor2(9)

Synopsis

loadrtlogic[count=N|names=name1[,name2...]]personality=0xXXXX[,0xXXXX...]count The number of logical gates.

       names The named logical gates to create.

       personality Comma separated list of hexadecimal number.
              Each  number  defines  the  behaviour  of  the individual logic gate.  The list must have the same
              number of personalities as the N count.

See Also