Combinatorial Logic
真理値表の実現
ライブラリ:
Simulink /
Logic and Bit Operations
説明
Combinatorial Logic ブロックは、プログラマブル ロジック アレイ (PLA)、論理回路、決定表、その他の Boolean 式をモデル化するための標準の真理値表を実装します。このブロックを Memory ブロックと併せて使用することにより、有限ステート マシンやフリップフロップを実装することができます。
例
2 入力 AND ロジック
この例では、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 つのビット (a と b) とキャリーイン ビット (c) です。出力は、キャリーアウト ビット (c') と合計ビット (s) の 2 つがあります。
以下に真理値表と、この回路の入力値の組み合わせごとに対応する出力を示します。
この加算器を Combinatorial Logic ブロックで実装するには、[真理値表] パラメーターとして、c' 列と s 列で作られる 8 行 2 列の行列を入力します。ブロックの状態の入力を追加し、ブロックの出力をこの状態入力にフィードバックすることによって、順序回路 (すなわち状態をもつ回路) も Combinatorial Logic ブロックで実装できます。
端子
入力
Port_1 — 入力信号
ベクトル
入力信号。ベクトルとして指定します。Combinatorial Logic ブロックが受け入れる信号のタイプは、[Boolean 論理信号] オプション (boolean データ (対 double) として論理信号を処理を参照) を選択したかどうかによって異なります。このオプションが有効になっている場合、ブロックは Boolean
または double
データ型の実数信号を受け入れます。
データ型: double
| Boolean
出力
Port_2 — 出力信号
スカラー | ベクトル
出力信号。真理値表に 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)*2
0 + u(m-1)*2
1 + ... + u(1)*2
m-1
プログラムでの使用
ブロック パラメーター: TruthTable |
型: 文字ベクトル |
値: 行列 |
既定の設定: '[0 0;0 1;0 1;1 0;0 1;1 0;1 0;1 1]' |
ブロックの特性
データ型 |
|
直達 |
|
多次元信号 |
|
可変サイズの信号 |
|
ゼロクロッシング検出 |
|
拡張機能
C/C++ コード生成
Simulink® Coder™ を使用して C および C++ コードを生成します。
バージョン履歴
R2006a より前に導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)