Provided by: linuxcnc-uspace_2.9.0~pre1+git20230208.f1270d6ed7-1_amd64 bug

NAME

       logic - LinuxCNC HAL component providing configurable logic functions

SYNOPSIS

       loadrt logic [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.

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.

FUNCTIONS

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

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]

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

SEE ALSO

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

AUTHOR

       Jeff Epler

LICENSE

       GPL