自己同期回路。 イベントのグラフ上での論理関数の直接計算。 パート3.分解

前の部分からの重要な結論を思い出します。 複数の信号を含まないサイクリックシーケンシャル動作(サイクルを2回以上切り替える)の場合、各信号の最小論理関数は次の形式で表現できます(当然、CSCの競合がない場合)。



1)





x=ab...c+xf+g+h+...+i









ここで、a * b * ... * cは、1つ以上の変数で構成される暗黙の値です。 g + h + ... + i-これは、1つの変数で構成される暗黙の空のセットです。 x * fは2つの変数の移植であり、最小の形での存在は必要ありません。 xを除くすべての変数は、対応するイベントの符号の配置に応じて、直接形式と逆形式の両方で式に含めることができます。 すべての変数は、引数として厳密に一度だけ式に含まれます。



先に進む前に、分解などの現象を詳しく見ていきます。 まず第一に、自己同期を維持する分解が重要です。 論理NAND-AND関数を分解するとき、新しい要素を区別できます。



a)1つ以上のインプラント、

b)1つのインプラントの複数の信号(変数)、

c)1つの入力インバーター。



まず、NOR AND関数の特殊なケースを考えます。 問題のモデルに対するこのような論理関数(x = a + b + c + d)の動作:



画像



彼女はいくつかの信号を個別の要素として区別できます。



実際、分解中の新しい要素の選択は、新しい信号の追加です(f)。 正しい動作、準モジュラリティ、および自己同期を維持するには、新しく追加された信号fの切り替えに結果イベントが必要です。 分解は回路の1つの要素(この場合はx)のみに影響し、回路の残りの要素には影響しないため、信号fを切り替えても信号xが切り替えられるだけです。 そうしないと、別の信号の論理関数が信号fに依​​存するようになります。 この結論から、変数aを除くいくつかの変数を新しい要素fとして強調表示してみましょう。 たとえば、変数bとcを取り上げます。 それらは論理要素f = b + cを形成します。



画像



ご覧のように、f +イベントの場合、動作の正確さに違反せずに結果イベントを決定することは不可能です。 変数aを含まない信号のグループは、自己同期を維持しながら個別の要素として割り当てることはできません。



この例のaなどの信号は、スイッチオンと呼ばれます。 一般的な場合、関数OR(AND)の切り替え信号は信号であり、1(0)に切り替えると、関数の値が0から1(1から0)に変わります。 新しい要素を選択するときに論理関数OR(AND)の分解中に自己同期を維持するには、切り替え信号を使用する必要があります。 新しい要素を選択する場合、接続されたチェーンを形成する信号のみを使用する必要もあります(以下の例ではa + b)。 x = f + c + d、f = a + b



画像



a + b + d信号を使用する場合、自己同期は保持されません。



画像



したがって、論理関数OR(I)の分解中に複数の信号がない順次動作の場合、プロセスの展開中に含まれるものから開始するいくつかの最初の信号を新しい要素として強調表示することにより、回路の自己同期が保証されます。



次に、非OR関数(x =!A +!B)を考えます。 自己同期を維持しながら個別の要素(f)として、スイッチング信号(x = f +!B、f =!A)に対応する入力インバーターのみを選択できます。 他の入力インバーターを個別の要素として分離すると、自己同期の違反につながります。



画像



AND-OR関数に移りましょう。 同様に、OR関数のイネーブル信号として、AND-OR関数のイネーブルインプリカントを定義します。 これは暗黙的であり、値を0から1に変更すると、関数の値が0から1に変更されます。同様に、OR関数で判明したように、論理AND-OR関数を分解するときに複数の信号なしでシーケンシャル動作を行い、最初のいくつかを新しい要素として選択します展開の過程で、インクルードは包含から始まり、回線の自己同期の保存を保証します。 そうしないと、自己同期が壊れます。 以下の例では、分解の前にx = a * b + cです。 分解後、x = f + c、f = a * b。



画像



ここでAND-OR関数の場合、選択は、同じ暗黙の一部であるいくつかの変数の新しい要素と見なされます。 最小限の機能のみが考慮されます。 以下は、関数x = a * b * c + dの例で可能なすべてのオプションです(オプション4-x = a * b * c + d + e、オプション6-x = a * b * c * d + e) 。 ハイライトされた要素はf = a * bです。



画像



オプション1では、割り当てられた信号の1つ(a +)を切り替えることがx +イベントの原因です。 オプション2では、割り当てられた信号の1つ(a-)を切り替えることがx-イベントの原因です。 オプション3および4では、割り当てられた信号の1つ(それぞれa +およびa-)の切り替えはイベントx +とx-の間にあり、イベントx-の原因ではありません。 オプション5は、オプション4の特殊なケースであり、信号が割り当てられている暗黙の対象が含まれている場合です。 残りのオプション6-割り当てられた信号のすべての切り替えは、イベントx-とx +の間にあり、イベントx +の原因ではありません。



ご覧のとおり、オプション1および6では、f-イベントを正しく配置できません。 このような変換は、自己同期の保持を伴う分解ではありません。 オプション2、3、および4では、自己同期が維持されます。 しかし、関数xの値はf * c + d(4つのオプションではf * c + d + e)とは異なることがわかります。 2つのオプションの場合-x = f *(d + c)、3つのオプションの場合x = c * x + d *!F + x *!F、4つのオプションの場合x =(f + d)*(e + c) このような変換は分解ではありません。



オプション5のみが、自己同期(x = f * c + d)を保持した分解です。 この場合、包含関係の別の要素として、包含から始まる最初のいくつかの信号が選択されます(Andの関係を含む信号は、ANDの機能を含む信号と同じです)。 ただし、上記のように、2つのステップで同様の結果が得られます。 最初に、インプラントの包含が強調表示されます。 2番目のステップでは、スイッチング信号から始めて、新しい要素で最初のいくつかの信号が選択されます。



NON-AND-OR関数に進みましょう。 入力インバーターを個別の要素として選びましょう。 信号aは、割り当てられた入力インバーターが接続されている要素xの入力に対応します(f =!A)。



画像



オプション1および2-信号aの切り替えは、イベントx +(1-x =!A + b * c、2-x = b *!A + c)の原因です。 オプション3および4-信号aの切り替えがイベントx-の原因です(3-x =!A + b * c、4-x =!A * b + c)。 オプション5および6-信号aの切り替えはイベントx +とx-の間にあり、イベントx-の原因ではありません(5-x = b *!A + c、6-x =!A * b + d + c)。 オプション7は、オプション6の特殊なケースであり、信号aがインプリカント(x =!A * b + c)を含むスイッチング信号です。 残りのオプション8-すべての信号切り替えaはイベントx-とx +の間にあり、イベントx +(x = c *!A * b + d)の原因ではありません。



ご覧のように、オプション2、3、および8は、自己同期の保持を伴う分解ではありません。信号切り替えfを正しく配置することは不可能だからです。 オプション4の場合、変換後x = f *(c + b)。 オプション5の場合、変換後x = c *!F +!F * x + b * x。 オプション6の場合、変換後x =(f + c)*(d + b)。 これらの変換(オプション4、5、および6)は分解ではありません。 オプション7の場合、変換後x = f * b + c。 オプション7は、自己同期を維持したままの分解です。 この場合、インプリカントを含むスイッチング信号に対応するインバータは、別個の要素として割り当てられます。 上記の変換を使用して、2つのステップで同様の結果が得られます。 最初に、インプリカントの包含が強調表示され、次にスイッチオン信号の入力インバーターがそれに割り当てられます。 オプション1の場合、変換後x = f + b * c。 オプション1は、自己同期の保持を伴う分解でもあります。 これはオプション7の特殊なケースであり、暗黙の包含は1つのシグナルで構成されます。



得られた結果を体系化します。 検討中のモデルの場合、論理的NOT-AND-OR関数を分解して自己同期を維持する場合、次の変換のみが可能です-個別の要素としての割り当て:



1-1つ以上、包括的、重複する含意から始まります(特別な場合-包括的から始まる、いくつかの重複する信号の非OR選択の機能のため)。



2-包括的インプラントから始まり、包括的シグナルから始まり、オーバーラップするシグナル。



3-インプリカントを含むスイッチング信号に対応する入力インバーター(関数の特殊なケースは、NORまたはスイッチング信号に対応する入力インバーターの選択です)。



これらの変換では、変換前ではない場合、暗黙の包含が許可されません。 したがって、結論:論理関数に、複数の信号で構成された包括的でない暗黙の要素が含まれている場合、そのような関数は、最大2入力要素までの自己同期を維持する分解を使用して断片化できません。 複数の変数に包含的含意のみが含まれるNON-AND-OR論理関数は、自己同期を保持する分解を使用して、2入力要素(2I-NOT、2OR-NOT)に分割できます。



ステップ1-論理要素に含まれる暗黙的要素が1つだけの場合(またはすべての暗黙的要素が1つの変数で構成される場合)、ステップ3に進みます。それ以外の場合はステップ2に進みます。

ステップ2-包含から始めて、1つを除くすべてのインプラントを個別の要素として選択します。 次に、新しく受け取ったアイテムを使用します。 手順1に進みます。

手順3-要素が2つの変数で構成されている場合は手順5に進み、それ以外の場合は手順4に進みます。

ステップ4-包含から始めて、1つを除くすべての変数を個別の要素として選択します。 次に、新しく受け取ったアイテムを使用します。 ステップ3に進みます。

ステップ5-受信したすべての2入力要素に適用されます。

ステップ5.1-入力インバーターが両方の入力にある場合、要素をデュアルに変換します。

ステップ5.2-入力インバーターが1つで、オンになっていない信号に対応している場合、要素をデュアル1つに変換します。

ステップ5.3-入力インバーター(ある場合)は、別個の要素として強調表示されます。 粉砕が完了しました。



テキストの冒頭の式1に戻ります。 暗黙のx * fが論理式にない場合、関数は次のようになります:x = a * b * c + g + h + i。 彼女の行動:



画像



ご覧のとおり、複数の変数(a * b * c)の唯一の含意は包括的です。 そして、分解の助けを借りたこの機能は、自己同期を維持しながら最小のコンポーネントに断片化できます。



論理式に暗黙のx * fが存在する場合、関数は次のようになります。x = a * b * c + x * f + g + h + i 彼女の行動:



画像



非包括的x * fインプリカントは、複数の変数で構成されます。 このような機能は、自己同期を維持しながら断片化することはできません。 しかし、自己同期を維持する変換を適用します。信号yに信号xを追加します。 信号yを追加すると、信号xと信号xのみの機能が変更され、その切り替えはイベントx-の結果でした(変数xは変数yに置き換えられます)。



画像



今x =(f + i + h + g)* y、y = c * b * a + x。 暗黙的なf + i + h + gおよびc * b * aは、それぞれ、関数xおよびyを含み、自己同期を維持しながら最小コンポーネントにフラグメント化できます。



単純化された動作モデル(並列処理、選択、および複数の信号なし)により、バイナリプロセスに本来備わっているプロパティを識別できます。 最小限の自己同期回路の合成は、設計を必要としない自然現象です。



All Articles