Using Simulink     Search    Help Desk 
Combinatorial Logic

Implement a truth table.

Library

Math

Description

The Combinatorial Logic block implements a standard truth table for modeling programmable logic arrays (PLAs), logic circuits, decision tables, and other Boolean expressions. You can use this block in conjunction with Memory blocks to implement finite-state machines or flip-flops.

You specify a matrix that defines all possible block outputs as the Truth table parameter. Each row of the matrix contains the output for a different combination of input elements. You must specify outputs for every combination of inputs. The number of columns is the number of block outputs.

The relationship between the number of inputs and the number of rows is

Simulink returns a row of the matrix by computing the row's index from the input vector elements. Simulink computes the index by building a binary number where input vector elements having zero values are 0 and elements having nonzero values are 1, then adds 1 to the result. For an input vector, u, of m elements

Example of Two-Input AND Function

This example builds a two-input AND function, which returns 1 when both input elements are 1, and 0 otherwise. To implement this function, specify the Truth table parameter value as [0; 0; 0; 1]. The portion of the model that provides the inputs to and the output from the Combinatorial Logic block might look like this.


The table below indicates the combination of inputs that generate each output. The input signal labeled "Input 1" corresponds to the column in the table labeled Input 1. Similarly, the input signal "Input 2" corresponds to the column with the same name. The combination of these values determines which row of the Output column of the table gets passed as block output.

For example, if the input vector is [1 0], the input references the third row (21*1 + 1). So, the output value is 0.

Row
Input 1
Input 2
Output
1
0
0
0
2
0
1
0
3
1
0
0
4
1
1
1

Example of Circuit

This sample circuit has three inputs: the two bits (a and b) to be summed and a carry-in bit (c). It has two outputs, the carry-out bit (c') and the sum bit (s). Here is the truth table and the outputs associated with each combination of input values for this circuit:

Inputs
Outputs
a
b
c
c'
s
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1

To implement this adder with the Combinatorial Logic block, you enter the 8-by-2 matrix formed by columns c' and s as the Truth table parameter.

Sequential circuits (that is, circuits with states) can also be implemented with the Combinatorial Logic block by including an additional input for the state of the block and feeding the output of the block back into this state input.

Data Type Support

A Combinatorial Logic block accepts real signals of type boolean or double and outputs the same type as the input. The elements of the truth table can be of type boolean or double. If the elements are of type double, they may have any values, not just "boolean" (0 or 1) values.If the data type of the truth table elements differs from the data type of the output signal, Simulink converts the truth table to the output type before computing the output.

Parameters and Dialog Box

Truth table
The matrix of outputs. Each column corresponds to an element of the output vector and each row corresponds to a row of the truth table.

Characteristics

Direct Feedthrough
Yes
Sample Time
Inherited from driving block
Scalar Expansion
No
Vectorized
Yes; the output width is the number of columns of the Truth table parameter
Zero Crossing
No



[ Previous | Help Desk | Next ]