Main Content

Combinatorial Logic

  • Combinatorial Logic block

ライブラリ:
Simulink / Logic and Bit Operations

説明

Combinatorial Logic ブロックは、プログラマブル ロジック アレイ (PLA)、論理回路、決定表、その他の Boolean 式をモデル化するための標準の真理値表を実装します。このブロックを Memory ブロックと併せて使用することにより、有限ステート マシンやフリップフロップを実装することができます。

すべて展開する

この例では、2 つの入力要素がいずれも 1 のときに 1 を返し、そうでない場合は 0 を返す 2 入力の AND 関数を作成します。この関数を実装するには、[真理値表] パラメーターの値を [0; 0; 0; 1] として指定します。このモデルで、Combinatorial Logic ブロックに入力と出力を与える部分は、次のようになります。

次の表は各出力を生成する入力の組み合わせを示しています。Input というラベルの付いた入力信号は、下の表の入力 1 列に対応します。同様に入力信号 Input 2 は同じ名前の入力 2 列に対応します。これらの値の組み合わせによって、表の出力列のどの行がブロック出力として渡されるかが決まります。たとえば入力ベクトルが [1 0] の場合、入力は第 3 行を参照します。

(2^1*1 + 1) この出力値は 0です。

このサンプル回路には 3 つの入力があります。加算される 2 つのビット (ab) とキャリーイン ビット (c) です。出力は、キャリーアウト ビット (c') と合計ビット (s) の 2 つがあります。

以下に真理値表と、この回路の入力値の組み合わせごとに対応する出力を示します。

この加算器を Combinatorial Logic ブロックで実装するには、[真理値表] パラメーターとして、c' 列と s 列で作られる 8 行 2 列の行列を入力します。ブロックの状態の入力を追加し、ブロックの出力をこの状態入力にフィードバックすることによって、順序回路 (すなわち状態をもつ回路) も Combinatorial Logic ブロックで実装できます。

端子

入力

すべて展開する

入力信号。ベクトルとして指定します。Combinatorial Logic ブロックが受け入れる信号のタイプは、[Boolean 論理信号] オプション (boolean データ (対 double) として論理信号を処理を参照) を選択したかどうかによって異なります。このオプションが有効になっている場合、ブロックは Boolean または double データ型の実数信号を受け入れます。

データ型: double | Boolean

出力

すべて展開する

出力信号。真理値表に double データ型の非ブール値が含まれている場合は double です。それ以外の場合は Boolean です。出力のデータ型は入力のデータ型と同じですが、入力が Boolean であり、真理値表が非ブール値を含んでいる場合、ブロックは double を出力します。

データ型: double | Boolean

パラメーター

すべて展開する

[真理値表] パラメーターとして、すべての可能なブロック出力を定義する行列を指定します。行列の各行には、さまざまな入力要素の組み合わせに対する出力が含まれます。入力の組み合わせのすべてに対して出力を指定する必要があります。列数はブロックの出力数です。

[真理値表] パラメーターは、任意のデータ型 (固定小数点データ型を含む) のブール値 (0 または 1) をとります。表に非ブール値が含まれる場合、表のデータ型は double でなければなりません。

入力数と行数の関係は次のとおりです。

number of rows = 2(number of inputs)

Simulink® は、入力ベクトル要素から行のインデックスを計算することによって、行列の 1 行を返します。Simulink はゼロの値をもつ入力ベクトル要素が 0 であり、非ゼロの値をもつ要素が 1 である 2 進数を作成し、結果を 1 に加算することによってインデックスを計算します。m 個の要素をもつ入力ベクトル u の場合は、次のようになります。

row index = 1 + u(m)*20 + u(m-1)*21 + ... + u(1)*2m-1

プログラムでの使用

ブロック パラメーター: TruthTable
: 文字ベクトル
: 行列
既定の設定: '[0 0;0 1;0 1;1 0;0 1;1 0;1 0;1 1]'

ブロックの特性

データ型

Boolean | double

直達

はい

多次元信号

いいえ

可変サイズの信号

いいえ

ゼロクロッシング検出

いいえ

拡張機能

C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。

バージョン履歴

R2006a より前に導入