LOGIC

NAME
SYNOPSIS
DESCRIPTION
FUNCTIONS
PINS
EXAMPLES
SEE ALSO
AUTHOR
LICENSE

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