(57)【要約】【課題】３値論理系のゲート構造の設計を容易かつ迅速に行うこと。【解決手段】３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、各種情報の入力を受付ける入力部２と、この入力部２によって受付けられた情報を用いて、標準形種別と断面種別とに基づいて関数選択ルールを参照することにより、１出力演算表に対応する論理回路を特定するための標準形展開表を生成する論理回路生成処理部７とを備える。【選択図】        図１８
2006113695.tif 000002
【特許請求の範囲】
【請求項１】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、
設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、
前記入力受付手段にて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理手段と、
を備えることを特徴とする３値論理系論理回路設計装置。
【請求項２】
前記入力受付手段は、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理手段は、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理手段と、
前記選択済基本関数表生成処理手段にて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理手段と、
前記部分表生成処理手段にて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理手段と、
前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理手段と、
前記ソート済ゲート表現表生成処理手段にて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理手段にて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理手段と、
を備えることを特徴とする請求項１に記載の３値論理系論理回路設計装置。
【請求項３】
前記選択済基本関数表生成処理手段は、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成すること、
を特徴とする請求項２に記載の３値論理系論理回路設計装置。
【請求項４】
前記部分表生成処理手段は、
前記選択済基本関数表生成処理手段にて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成すること、
を特徴とする請求項２又は３に記載の３値論理系論理回路設計装置。
【請求項５】
前記ソート済ゲート表現表生成処理手段は、
前記部分表生成処理手段にて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成すること、
を特徴とする請求項２から４のいずれか一項に記載の３値論理系論理回路設計装置。
【請求項６】
前記ソート済出力値表生成処理手段は、
前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成すること、
を特徴とする請求項２から５のいずれか一項に記載の３値論理系論理回路設計装置。
【請求項７】
前記入力受付手段は、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理手段は、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理手段と、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理手段と、
を備えることを特徴とする請求項１に記載の３値論理系論理回路設計装置。
【請求項８】
前記入力受付手段は、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理手段は、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理手段と、
前記ソート済１出力演算表生成処理手段にて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理手段と、
前記インデックス付ソート済１出力演算表生成処理手段にて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理手段と、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理手段にて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理手段と、
を備えることを特徴とする請求項１に記載の３値論理系論理回路設計装置。
【請求項９】
前記入力受付手段にて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理手段、
を備えることを特徴とする請求項１から８のいずれか一項に記載の３値論理系論理回路設計装置。
【請求項１０】
前記論理回路生成処理手段にて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理手段、
を備えることを特徴とする請求項１から９のいずれか一項に記載の３値論理系論理回路設計装置。
【請求項１１】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、
前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理手段とを備え、
前記数式生成処理手段は、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合すること、
を特徴とする３値論理系論理回路設計装置。
【請求項１２】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、
前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理手段とを備え、
前記ラダー図生成処理手段は、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合すること、
を特徴とする３値論理系論理回路設計装置。
【請求項１３】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、
前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理手段と、
を備えたことを特徴とする３値論理系論理回路設計装置。
【請求項１４】
前記縮約統合処理手段は、
前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理手段、
を備えたことを特徴とする請求項１３に記載の３値論理系論理回路設計装置。
【請求項１５】
前記縮約統合処理手段は、
前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理手段、
を備えたことを特徴とする請求項１３又は１４に記載の３値論理系論理回路設計装置。
【請求項１６】
前記縮約統合処理手段は、
前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理手段、
を備えたことを特徴とする請求項１３から１５のいずれか一項に記載の３値論理系論理回路設計装置。
【請求項１７】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、
設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理ステップと、
を含むことを特徴とする３値論理系論理回路設計方法。
【請求項１８】
前記入力受付ステップにおいて、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理ステップと、
前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理ステップと、
前記部分表生成処理ステップにおいて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理ステップと、
前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理ステップと、
前記ソート済ゲート表現表生成処理ステップにおいて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理ステップにおいて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項１７に記載の３値論理系論理回路設計方法。
【請求項１９】
前記選択済基本関数表生成処理ステップにおいて、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成すること、
を特徴とする請求項１８に記載の３値論理系論理回路設計方法。
【請求項２０】
前記部分表生成処理ステップにおいて、
前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成すること、
を特徴とする請求項１８又は１９に記載の３値論理系論理回路設計方法。
【請求項２１】
前記ソート済ゲート表現表生成処理ステップにおいて、
前記部分表生成処理ステップにおいて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成すること、
を特徴とする請求項１８から２０のいずれか一項に記載の３値論理系論理回路設計方法。
【請求項２２】
前記ソート済出力値表生成処理ステップにおいて、
前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成すること、
を特徴とする請求項１８から２１のいずれか一項に記載の３値論理系論理回路設計方法。
【請求項２３】
前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項１７に記載の３値論理系論理回路設計方法。
【請求項２４】
前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、
前記ソート済１出力演算表生成処理ステップにおいて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理ステップと、
前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理ステップと、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項１７に記載の３値論理系論理回路設計方法。
【請求項２５】
前記入力受付ステップにおいて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理ステップ、
を含むことを特徴とする請求項１７から２４のいずれか一項に記載の３値論理系論理回路設計方法。
【請求項２６】
前記論理回路生成処理ステップにおいて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理ステップ、
を含むことを特徴とする請求項１７から２５のいずれか一項に記載の３値論理系論理回路設計方法。
【請求項２７】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理ステップとを含み、
前記数式生成処理ステップにおいて、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合すること、
を特徴とする３値論理系論理回路設計方法。
【請求項２８】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理ステップとを含み、
前記ラダー図生成処理ステップにおいて、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合すること、
を特徴とする３値論理系論理回路設計方法。
【請求項２９】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理ステップと、
を含むことを特徴とする３値論理系論理回路設計方法。
【請求項３０】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理ステップ、
を含むことを特徴とする請求項２９に記載の３値論理系論理回路設計方法。
【請求項３１】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理ステップ、
を含むことを特徴とする請求項２９又は３０に記載の３値論理系論理回路設計方法。
【請求項３２】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理ステップ、
を含むことを特徴とする請求項２９から３１のいずれか一項に記載の３値論理系論理回路設計方法。
【請求項３３】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、
設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理ステップと、
を含むことを特徴とする３値論理系論理回路設計プログラム。
【請求項３４】
前記入力受付ステップにおいて、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理ステップと、
前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理ステップと、
前記部分表生成処理ステップにおいて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理ステップと、
前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理ステップと、
前記ソート済ゲート表現表生成処理ステップにおいて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理ステップにおいて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項３３に記載の３値論理系論理回路設計プログラム。
【請求項３５】
前記選択済基本関数表生成処理ステップにおいて、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成すること、
を特徴とする請求項３４に記載の３値論理系論理回路設計プログラム。
【請求項３６】
前記部分表生成処理ステップにおいて、
前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成すること、
を特徴とする請求項３４又は３５に記載の３値論理系論理回路設計プログラム。
【請求項３７】
前記ソート済ゲート表現表生成処理ステップにおいて、
前記部分表生成処理ステップにおいて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成すること、
を特徴とする請求項３４から３６のいずれか一項に記載の３値論理系論理回路設計プログラム。
【請求項３８】
前記ソート済出力値表生成処理ステップにおいて、
前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成すること、
を特徴とする請求項３４から３７のいずれか一項に記載の３値論理系論理回路設計プログラム。
【請求項３９】
前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項３３に記載の３値論理系論理回路設計プログラム。
【請求項４０】
前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、
前記論理回路生成処理ステップは、
前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、
前記ソート済１出力演算表生成処理ステップにおいて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理ステップと、
前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理ステップと、
前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップと、
を含むことを特徴とする請求項３３に記載の３値論理系論理回路設計プログラム。
【請求項４１】
前記入力受付ステップにおいて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理ステップ、
を含むことを特徴とする請求項３３から４０のいずれか一項に記載の３値論理系論理回路設計プログラム。
【請求項４２】
前記論理回路生成処理ステップにおいて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理ステップ、
を含むことを特徴とする請求項３３から４１のいずれか一項に記載の３値論理系論理回路設計プログラム。
【請求項４３】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理ステップとを含み、
前記数式生成処理ステップにおいて、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合すること、
を特徴とする３値論理系論理回路設計プログラム。
【請求項４４】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理ステップとを含み、
前記ラダー図生成処理ステップにおいて、
前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合すること、
を特徴とする３値論理系論理回路設計プログラム。
【請求項４５】
３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、
設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、
前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理ステップと、
を含むことを特徴とする３値論理系論理回路設計プログラム。
【請求項４６】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理ステップ、
を含むことを特徴とする請求項４５に記載の３値論理系論理回路設計プログラム。
【請求項４７】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理ステップ、
を含むことを特徴とする請求項４５又は４６に記載の３値論理系論理回路設計プログラム。
【請求項４８】
前記縮約統合処理ステップは、
前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理ステップ、
を含むことを特徴とする請求項４５から４７のいずれか一項に記載の３値論理系論理回路設計プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、３値論理系の組合せ論理回路を論理設計するための、３値論理系論理回路の設計装置、設計方法、及び、設計プログラムに関する。
【背景技術】
【０００２】
半導体集積回路は、主として、０又は１にて表現される２値論理信号を対象にしており、このような半導体集積回路に実装される組合せ論理回路も、２値論理系を処理するために設計されている。
【０００３】
ここで、半導体集積回路のチップ面積は、組合せ論理回路上に実装されるゲート数やゲート間の配線数の影響を受けるため、チップ面積の使用効率を向上させて半導体集積回路の小型化や多機能化を図るためには、ゲート数を少なくすることが好ましい。そこで、近年では、半導体集積回路の論理を３論理値以上に多値化する多値化技術が提案されている。このような多値化技術を用いた場合には、各ゲートによる情報処理能力を向上させることができ、ゲート数やゲート間の配線数を低減して、半導体集積回路の小型化や多機能化を図ることができる。
【０００４】
このような状況において、従来から、多値論理系の論理回路を設計した後、その設計結果を自動的に確認するための各種のシミュレーション方法が提案されている（例えば、特許文献１及び２参照）。
【０００５】
【特許文献１】特開平８−１６６４６号公報
【特許文献２】特開２０００−１０５７８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、３値論理系について、論理回路設計後のシミュレーションを自動的に行う方法は提案されていたものの、組合せ論理回路の設計自体を自動的に行うための有用な方法が確立されていなかった。これは、２値論理系に比べて、３値論理系においてはより多くの変数や関数を処理する必要があり、処理内容が複雑になるためである。従って、従来は、設計者が３値論理系の組合せ論理回路や各論理回路に用いられるゲート構造を非自動的に設計していたので、設計の手間が膨大なものになっていた。
【０００７】
本発明は、上記に鑑みてなされたものであって、３値論理系の組合せ論理回路やそのゲート構造の設計を容易かつ迅速に行うための装置、方法、あるいは、プログラムを提供すること等を目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するために、請求項１に記載の３値論理系論理回路設計装置は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、前記入力受付手段にて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理手段とを備えることを特徴として構成されている。
【０００９】
また、請求項２に記載の３値論理系論理回路設計装置は、請求項１に記載の３値論理系論理回路設計装置において、前記入力受付手段は、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理手段は、前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理手段と、前記選択済基本関数表生成処理手段にて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理手段と、前記部分表生成処理手段にて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理手段と、前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理手段と、前記ソート済ゲート表現表生成処理手段にて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理手段にて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理手段とを備えることを特徴として構成されている。
【００１０】
また、請求項３に記載の３値論理系論理回路設計装置は、請求項２に記載の３値論理系論理回路設計装置において、前記選択済基本関数表生成処理手段は、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成することを特徴として構成されている。
【００１１】
また、請求項４に記載の３値論理系論理回路設計装置は、請求項２又は３に記載の３値論理系論理回路設計装置において、前記部分表生成処理手段は、前記選択済基本関数表生成処理手段にて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成することを特徴として構成されている。
【００１２】
また、請求項５に記載の３値論理系論理回路設計装置は、請求項２から４のいずれか一項に記載の３値論理系論理回路設計装置において、前記ソート済ゲート表現表生成処理手段は、前記部分表生成処理手段にて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成することを特徴として構成されている。
【００１３】
また、請求項６に記載の３値論理系論理回路設計装置は、請求項２から５のいずれか一項に記載の３値論理系論理回路設計装置において、前記ソート済出力値表生成処理手段は、前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成することを特徴として構成されている。
【００１４】
また、請求項７に記載の３値論理系論理回路設計装置は、請求項１に記載の３値論理系論理回路設計装置において、前記入力受付手段は、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理手段は、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理手段と、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理手段とを備えることを特徴として構成されている。
【００１５】
また、請求項８に記載の３値論理系論理回路設計装置は、請求項１に記載の３値論理系論理回路設計装置において、前記入力受付手段は、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理手段は、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理手段と、前記ソート済１出力演算表生成処理手段にて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理手段と、前記インデックス付ソート済１出力演算表生成処理手段にて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理手段と、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理手段にて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理手段とを備えることを特徴として構成されている。
【００１６】
また、請求項９に記載の３値論理系論理回路設計装置は、請求項１から８のいずれか一項に記載の３値論理系論理回路設計装置において、前記入力受付手段にて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理手段を備えることを特徴として構成されている。
【００１７】
また、請求項１０に記載の３値論理系論理回路設計装置は、請求項１から８のいずれか一項に記載の３値論理系論理回路設計装置において、前記論理回路生成処理手段にて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理手段を備えることを特徴として構成されている。
【００１８】
また、請求項１１に記載の３値論理系論理回路設計装置は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理手段とを備え、前記数式生成処理手段は、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合することを特徴として構成されている。
【００１９】
また、請求項１２に記載の３値論理系論理回路設計装置は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理手段とを備え、前記ラダー図生成処理手段は、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合することを特徴として構成されている。
【００２０】
また、請求項１３に記載の３値論理系論理回路設計装置は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計装置であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付手段と、前記入力受付手段にて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理手段とを備えたことを特徴として構成されている。
【００２１】
また、請求項１４に記載の３値論理系論理回路設計装置は、請求項１３に記載の３値論理系論理回路設計装置において、前記縮約統合処理手段は、前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理手段を備えたことを特徴として構成されている。
【００２２】
また、請求項１５に記載の３値論理系論理回路設計装置は、請求項１３又は１４に記載の３値論理系論理回路設計装置において、前記縮約統合処理手段は、前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理手段を備えたことを特徴として構成されている。
【００２３】
また、請求項１６に記載の３値論理系論理回路設計装置は、請求項１３から１５のいずれか一項に記載の３値論理系論理回路設計装置において、前記縮約統合処理手段は、前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理手段を備えたことを特徴として構成されている。
【００２４】
また、請求項１７に記載の３値論理系論理回路設計方法は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理ステップとを含むことを特徴として構成されている。
【００２５】
また、請求項１８に記載の３値論理系論理回路設計方法は、請求項１７に記載の３値論理系論理回路設計方法において、前記入力受付ステップにおいて、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理ステップと、前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理ステップと、前記部分表生成処理ステップにおいて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理ステップと、前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理ステップと、前記ソート済ゲート表現表生成処理ステップにおいて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理ステップにおいて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００２６】
また、請求項１９に記載の３値論理系論理回路設計方法は、請求項１８に記載の３値論理系論理回路設計方法において、前記選択済基本関数表生成処理ステップにおいて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成することを特徴として構成されている。
【００２７】
また、請求項２０に記載の３値論理系論理回路設計方法は、請求項１８又は１９に記載の３値論理系論理回路設計方法において、前記部分表生成処理ステップにおいて、前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成することを特徴として構成されている。
【００２８】
また、請求項２１に記載の３値論理系論理回路設計方法は、請求項１８から２０のいずれか一項に記載の３値論理系論理回路設計方法において、前記ソート済ゲート表現表生成処理ステップにおいて、前記部分表生成処理ステップにおいて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成することを特徴として構成されている。
【００２９】
また、請求項２２に記載の３値論理系論理回路設計方法は、請求項１８から２１のいずれか一項に記載の３値論理系論理回路設計方法において、前記ソート済出力値表生成処理ステップにおいて、前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成することを特徴として構成されている。
【００３０】
また、請求項２３に記載の３値論理系論理回路設計方法は、請求項１７に記載の３値論理系論理回路設計方法において、前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００３１】
また、請求項２４に記載の３値論理系論理回路設計方法は、請求項１７に記載の３値論理系論理回路設計方法において、前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、前記ソート済１出力演算表生成処理ステップにおいて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理ステップと、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理ステップと、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００３２】
また、請求項２５に記載の３値論理系論理回路設計方法は、請求項１７から２４のいずれか一項に記載の３値論理系論理回路設計方法において、前記入力受付ステップにおいて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理ステップを含むことを特徴として構成されている。
【００３３】
また、請求項２６に記載の３値論理系論理回路設計方法は、請求項１７から２５のいずれか一項に記載の３値論理系論理回路設計方法において、前記論理回路生成処理ステップにおいて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理ステップを含むことを特徴として構成されている。
【００３４】
また、請求項２７に記載の３値論理系論理回路設計方法は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理ステップとを含み、前記数式生成処理ステップにおいて、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合することを特徴として構成されている。
【００３５】
また、請求項２８に記載の３値論理系論理回路設計方法は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理ステップとを含み、前記ラダー図生成処理ステップにおいて、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合することを特徴として構成されている。
【００３６】
また、請求項２９に記載の３値論理系論理回路設計方法は、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法であって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理ステップとを含むことを特徴として構成されている。
【００３７】
また、請求項３０に記載の３値論理系論理回路設計方法は、請求項２９に記載の３値論理系論理回路設計方法において、前記縮約統合処理ステップは、前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理ステップを含むことを特徴として構成されている。
【００３８】
また、請求項３１に記載の３値論理系論理回路設計方法は、請求項２９又は３０に記載の３値論理系論理回路設計方法において、前記縮約統合処理ステップは、前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理ステップを含むことを特徴として構成されている。
【００３９】
また、請求項３２に記載の３値論理系論理回路設計方法は、請求項２９から３１のいずれか一項に記載の３値論理系論理回路設計方法において、前記縮約統合処理ステップは、前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理ステップを含むことを特徴として構成されている。
【００４０】
また、請求項３３に記載の３値論理系論理回路設計プログラムは、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、設計目標とする論理回路に対する複数の入力変数の入力値及び複数の出力変数の出力値を含む複数のレコードを含んで構成される問題定義表、又は、当該問題定義表を各出力値毎に分解して構成される１出力演算表と、前記入力変数の個数と、３値論理系の標準形種別と、３値論理系の断面種別と、これら標準形種別と断面種別との相互の組合せによって特定されるものであって前記論理回路を構成する基本関数を選択するための関数選択ルールと、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数と前記出力値とを組合せることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する、論理回路生成処理ステップとを含むことを特徴として構成されている。
【００４１】
また、請求項３４に記載の３値論理系論理回路設計プログラムは、請求項３３に記載の３値論理系論理回路設計プログラムにおいて、前記入力受付ステップにおいて、前記入力値に対する出力値と、当該出力値を得るための論理回路を構成する基本関数と、当該基本関数に対応するゲート表現の相互の組合せを特定するための基本関数表と、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記標準形種別と前記断面種別とに基づいて前記関数選択ルール及び前記基本関数表を参照することにより、これら標準形種別と断面種別との相互の組合せに対応する前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成する選択済基本関数表生成処理ステップと、前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表に基づいて、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ１以上の部分表を生成する部分表生成処理ステップと、前記部分表生成処理ステップにおいて生成された前記部分表に基づいて、前記入力に対する出力値及び前記ゲート表現を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートすることでソート済ゲート表現表を生成するソート済ゲート表現表生成処理ステップと、前記１出力演算表における入力変数に基づいて、前記出力値を所定順序にソートすることでソート済出力値表を生成するソート済出力値表生成処理ステップと、前記ソート済ゲート表現表生成処理ステップにおいて生成された前記ソート済ゲート表現表と、前記ソート済出力値表生成処理ステップにおいて生成された前記ソート済出力値表とに基づいて、前記標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００４２】
また、請求項３５に記載の３値論理系論理回路設計プログラムは、請求項３４に記載の３値論理系論理回路設計プログラムにおいて、前記選択済基本関数表生成処理ステップにおいて、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数に基づいて前記基本関数表を参照することによって、この特定された基本関数に対応する、前記入力に対する出力値及び前記ゲート表現の相互の組合せを含んだ選択済基本関数表を生成することを特徴として構成されている。
【００４３】
また、請求項３６に記載の３値論理系論理回路設計プログラムは、請求項３４又は３５に記載の３値論理系論理回路設計プログラムにおいて、前記部分表生成処理ステップにおいて、前記選択済基本関数表生成処理ステップにおいて生成された前記選択済基本関数表を、前記入力変数の個数だけ複写することで、この個数に対応した枚数の部分表を生成することを特徴として構成されている。
【００４４】
また、請求項３７に記載の３値論理系論理回路設計プログラムは、請求項３４から３６のいずれか一項に記載の３値論理系論理回路設計プログラムにおいて、前記ソート済ゲート表現表生成処理ステップにおいて、前記部分表生成処理ステップにおいて生成された前記部分表を直積にて１枚に集約して仮のゲート表現表を生成し、前記仮のゲート表現表を前記標準形種別と前記断面種別とに基づいて定まる所定順序にソートし、前記仮のゲート表現表から前記入力に対する出力値を取り除くことにより、ソート済ゲート表現表を生成することを特徴として構成されている。
【００４５】
また、請求項３８に記載の３値論理系論理回路設計プログラムは、請求項３４から３７のいずれか一項に記載の３値論理系論理回路設計プログラムにおいて、前記ソート済出力値表生成処理ステップにおいて、前記１出力演算表における入力変数を所定順序にソートし、このソートされた１出力演算表から前記出力値のみを抽出することによってソート済出力値表を生成することを特徴として構成されている。
【００４６】
また、請求項３９に記載の３値論理系論理回路設計プログラムは、請求項３３に記載の３値論理系論理回路設計プログラムにおいて、前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記１出力演算表における前記入力値を置き換えることにより、前記１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００４７】
また、請求項４０に記載の３値論理系論理回路設計プログラムは、請求項３３に記載の３値論理系論理回路設計プログラムにおいて、前記入力受付ステップにおいて、１出力演算表のソート方法を特定するためのソートルール及びソートキー構成、のそれぞれを特定するための情報の入力を受付け、前記論理回路生成処理ステップは、前記ソートルール及び前記ソートキー構成を参照して、前記１出力演算表をソートすることによってソート済１出力演算表を生成するソート済１出力演算表生成処理ステップと、前記ソート済１出力演算表生成処理ステップにおいて生成された前記ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加してインデックス付ソート済１出力演算表を生成するインデックス付ソート済１出力演算表生成処理ステップと、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表に含まれるゲート表現の縮約又は統合を行う縮約統合処理ステップと、前記標準形種別と前記断面種別とに基づいて前記関数選択ルールを参照することにより、これら標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、前記インデックス付ソート済１出力演算表生成処理ステップにおいて生成された前記インデックス付ソート済１出力演算表における前記入力値を置き換えることにより、前記インデックス付ソート済１出力演算表に対応する論理回路を特定するための標準形展開表を生成する標準形展開表生成処理ステップとを含むことを特徴として構成されている。
【００４８】
また、請求項４１に記載の３値論理系論理回路設計プログラムは、請求項３３から４０のいずれか一項に記載の３値論理系論理回路設計プログラムにおいて、前記入力受付ステップにおいて受付けられた前記問題定義表に含まれる複数の前記入力値と、当該問題定義表に含まれる複数の前記出力値のそれぞれに対して組合せることにより、前記問題定義表を、当該問題定義表に含まれる前記出力値の数に応じた数の１出力演算表に分解する目標分解処理ステップを含むことを特徴として構成されている。
【００４９】
また、請求項４２に記載の３値論理系論理回路設計プログラムは、請求項３３から４１のいずれか一項に記載の３値論理系論理回路設計プログラムにおいて、前記論理回路生成処理ステップにおいて生成された標準形展開表又は当該標準形展開表から生成されたデータ構造に含まれる複数の出力値を、相互に共通な入力値に対する出力値として相互に関連付ける束ね処理ステップを含むことを特徴として構成されている。
【００５０】
また、請求項４３に記載の３値論理系論理回路設計プログラムは、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列を生成する数式生成処理ステップとを含み、前記数式生成処理ステップにおいて、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現の論理式を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードの論理式を相互に結合することを特徴として構成されている。
【００５１】
また、請求項４４に記載の３値論理系論理回路設計プログラムは、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図を生成するラダー図生成処理ステップとを含み、前記ラダー図生成処理ステップにおいて、前記標準形展開表に含まれる各レコードの各ゲート表現を相互に結合するフィールド間結合演算子と、前記標準形展開表に含まれる各レコードを相互に結合するレコード間結合演算子とを、前記標準形種別と前記断面種別との組合せに基づいて決定し、このフィールド間結合演算子を用いて前記各ゲート表現のラダー図を相互に結合すると共に、このレコード間結合演算子を用いて前記各レコードのラダー図を相互に結合することを特徴として構成されている。
【００５２】
また、請求項４５に記載の３値論理系論理回路設計プログラムは、３値論理系の論理回路の設計支援を行うための３値論理系論理回路設計方法をコンピュータに実行させるための３値論理系論理回路設計プログラムであって、設計目標とする論理回路を構成する基本関数と当該論理回路に対する出力値とを組合せて構成されたレコードを含む一つ以上の１出力演算表に対応する標準形展開表であって、前記基本関数のゲート表現と前記出力値とを相互に関連付けて構成されたレコードを含む標準形展開表と、３値論理系の標準形種別と、３値論理系の断面種別と、のそれぞれを特定するための情報の入力を受付ける入力受付ステップと、前記入力受付ステップにおいて受付けられた情報を用いて、前記標準形展開表に基づいて、前記ゲート表現の縮約又は統合を行う縮約統合処理ステップとを含むことを特徴として構成されている。
【００５３】
また、請求項４６に記載の３値論理系論理回路設計プログラムは、請求項４５に記載の３値論理系論理回路設計プログラムにおいて、前記縮約統合処理ステップは、前記標準形展開表の各レコードの出力値の項消去係数を、前記標準形種別と前記断面種別との組合せに基づいて決定し、これら標準形展開表の各レコードの出力値が項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とを所定値でクリアする初期化処理ステップを含むことを特徴として構成されている。
【００５４】
また、請求項４７に記載の３値論理系論理回路設計プログラムは、請求項４５又は４６に記載の３値論理系論理回路設計プログラムにおいて、前記縮約統合処理ステップは、前記標準形展開表の各レコードが所定の隣接則に該当するか否かを判断し、所定の隣接則に該当する場合には、当該レコードのゲート表現を所定値でクリアする隣接則適用処理ステップを含むことを特徴として構成されている。
【００５５】
また、請求項４８に記載の３値論理系論理回路設計プログラムは、請求項４５又は４７に記載の３値論理系論理回路設計プログラムにおいて、前記縮約統合処理ステップは、前記標準形展開表の各レコードのゲート表現及び出力値が相互に同一であるか否かを判断し、相互に同一である場合には、これら両レコードを所定方法で統合するインデックス完成処理ステップを含むことを特徴として構成されている。
【発明の効果】
【００５６】
本発明によれば、前記論理回路を構成する基本関数と出力値とを相互に関連付けて構成された、１出力演算表に対応する論理回路を特定するための標準形展開表が自動的に生成されるので、この標準形展開表に基づいて論理回路を構築することができ、３値論理系の論理回路の論理設計を容易に行うことができるという効果を奏する。
【００５７】
また、本発明によれば、標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、１出力演算表における入力値を置き換えることにより、１出力演算表に対応する論理回路を特定するための標準形展開表が生成されるので、直積を行うことなく標準形展開表が生成され、論理回路を一層容易に構築することができるという効果を奏する。
【００５８】
また、本発明によれば、ゲート表現の縮約又は統合を行った後、標準形展開表が生成され、冗長性の低い標準形展開表を得ることができるという効果を奏する。
【００５９】
また、本発明によれば、組合せ論理回路に対応する問題定義表を分解して１出力演算表とし、各１出力演算表に対応する標準形展開表を生成することにより、組合せ論理回路の設計を簡易に行うことができる。
【００６０】
また、本発明によれば、１出力演算表に対応する標準形展開表を生成した後、これらを相互に束ねることにより、組合せ論理回路に対応するデータ構造のデータを容易に得ることができる。
【００６１】
また、本発明によれば、ゲート表現と出力値とを相互に関連付けて構成されたレコードを含む標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列が生成されるので、この数式文字列に基づいて論理回路を容易に構築することができるという効果を奏する。
【００６２】
また、本発明によれば、ゲート表現と出力値とを相互に関連付けて構成されたレコードを含む標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図が生成されるので、このラダー図に基づいて論理回路を容易に構築することができるという効果を奏する。
【００６３】
また、本発明によれば、ゲート表現の縮約又は統合を自動的に行うことができるので、ゲート表現の冗長性を低減でき、論理回路の部品点数や配線数を低減することができるという効果を奏する。
【発明を実施するための最良の形態】
【００６４】
以下に添付図面を参照して、この発明に係る実施の形態を詳細に説明する。まず、〔I〕本発明に適用する３値論理系の論理設計の基礎理論を説明した後、〔II〕本発明の実施の形態１〜３についてそれぞれ説明し、〔III〕最後に、本発明の各実施の形態に対する変形例について説明する。
【００６５】
〔I〕３値論理系の論理設計の基礎理論
本発明は、３値論理系の組合せ論理回路を設計するための装置、方法、及び、プログラムに関する。まず、このような３値論理系の組合せ論理回路を自動的に設計するために適用する、３値論理系の論理設計の基礎理論について説明する。ここで設計対象とする組合せ論理回路は、概略的に、ｎ個の入力値Ｘ1、Ｘ2、・・・、Ｘnに対して、ｍ個の出力値Ｙ1、Ｙ2、・・・、Ｙmを出力するｎ入力ｍ出力の組合せ論理回路である（ｎ及びｍは１以上の整数。以下同じ）。各入力値及び各出力値は、３値論理値であり、「１」、「ＮＩＬ」、又は、「０」のいずれか一つである。なお、以下では、多入力多出力の論理回路を「組合せ論理回路」、多入力一出力の論理回路を「論理回路」、論理回路を構成する要素を「ゲート構造」と称する。
【００６６】
ここで、３値論理系における３種類のＡＮＤ演算を、以下、ＡＮＤＮ（アンドニル）、ＡＮＤ０（アンドゼロ）、ＡＮＤ１（アンドワン）と呼び、３値論理系における３種類のＯＲ演算を、以下、ＯＲＮ（オアニル）、ＯＲ０（オアゼロ）、ＯＲ１（オアワン）と称する。また、３値論理変数をＸとすると、ＡＮＤＸ（アンドエックス）として、上記３つのＡＮＤ演算のいずれかであることを表し、ＯＲＸ（オアエックス）として、上記３つのＯＲ演算のいずれかであることを表す。これら各演算の論理式表現を図１に例示する。
【００６７】
いま、２つの３値論理変数ＸとＹとのＡＮＤ演算及びＯＲ演算を考えると、全部で６種類の２項演算がある。この６種類の２項演算の論理式表現を図２、ゲート表現を図３にそれぞれ示す。また、この６種類の２項演算の演算表を図４〜９のように定義する。例えば、図４に例示した演算表は、ＡＮＤＮの演算表であり、このＡＮＤＮ演算においては、３値論理変数Ｘが０で、かつ、３値論理変数Ｙが０の場合に、演算結果が０になり、３値論理変数Ｘが１で、かつ、３値論理変数Ｙが１の場合に、演算結果が１になる。
【００６８】
このような６種類の２項演算を、２値論理系との相似性に基づいて分類すると、図１０に例示するように、ＡＮＤＮとＯＲＮはＮＯＴＮ断面、ＡＮＤ０とＯＲ０はＮＯＴ０断面、ＡＮＤ１とＯＲ１はＮＯＴ１断面に、それぞれ分類することができる。そして、各断面上の演算だけで、全ての組合せ論理回路を構成することができる。
【００６９】
次に、各論理回路に対応する、一入力一出力の基本関数について説明する。まず、入力「１」に対して出力「Ｘ」、入力「ＮＩＬ」に対して出力「Ｙ」、入力「０」に対して出力「Ｚ」をそれぞれ返す基本関数の関数名称を「ｅXYZ」のように定義する。図１１にはこの基本関数ｅXYZのゲート表現、図１２にはこの基本関数ｅXYZの演算表を示す。ここで、入力を３値論理変数Ｘk（ｋは１〜ｎの整数。以下同じ）とした場合、基本関数をｅXYZ（Ｘk）と表記するものとする。このような基本関数は、３値論理系においては、３値論理の全ての組合せに対応し、２７（＝３3）種類存在することになる。この２７種類の基本関数から構成された基本関数表を、図１３、１４に分割して示す。例えば、図１３の２行目においては、入力「１」に対して出力「１」、入力「ＮＩＬ」に対して出力「１」、入力「０」に対して出力「１」をそれぞれ返す基本関数の関数名称が「ｅ111」であることが示されており、この関数に対応するゲート表現（論理式表現又は図的表現）が示されている。
【００７０】
次に、３値論理系における標準形について説明する。いま、１変数の３値論理関数Ｆ（Ｘ1）をＮＯＴＮ断面上の最小項で展開する事を考える。この時、基本関数ｅ100（Ｘ1）、ｅ010（Ｘ1）、ｅ001（Ｘ1）を用いると、３値論理関数Ｆ（Ｘ1）は図１５の式で表される。次に、２変数の３値論理関数Ｆ（Ｘ1、Ｘ2）を、同様に、ＮＯＴＮ断面上の最小項で展開すると、これはＸ1による展開とＸ2による展開との直積になる。ここで、３値論理関数Ｆ（Ｘ1、Ｘ2）のＸ1による展開は図１６の式で表され、３値論理関数Ｆ（Ｘ1、Ｘ2）のＸ2による展開は図１７の式で表される。この図１７の式から、Ｆ（１、Ｘ2）、Ｆ（ＮＩＬ、Ｘ2）、Ｆ（０、Ｘ2）を求め、これを図１６の式の右辺に代入すれば、Ｘ1による展開とＸ2による展開との直積が得られる。またこれは、３値論理関数Ｆ（Ｘ1、Ｘ2）のＮＯＴＮ断面最小項標準形である。この考え方は、ｎ変数の３値論理関数Ｆ（Ｘ1、・・・、Ｘk、・・・、Ｘn）（１≦ｋ≦ｎ）の場合に拡張できる。
【００７１】
〔II〕本発明の実施の形態
次に、本発明に係る実施の形態１〜３についてそれぞれ説明する。ただし、これら各実施の形態によって本発明が限定されるものではない。
【００７２】
〔実施の形態１〕
まず、本発明の実施の形態１について図面を参照して詳細に説明する。この実施の形態１は、概略的に、（１）問題定義表を１以上の１出力演算表に分解し、（２）各１出力演算表についての論理回路をそれぞれ個別的に設計し、（３）各論理回路を必要に応じて数式文字列又はラダー図として表現し、さらに（４）各論理回路が有する冗長性を低減するため、各論理回路の縮約や統合を行い、（５）最後に、各論理回路を相互に束ねることで、最終的な組合せ論理回路を得るものである。以下では、３値論理系論理回路設計装置の構成を説明し、次いで、３値論理系論理回路設計装置にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。
【００７３】
（３値論理系論理回路設計装置の構成）
最初に、３値論理系論理回路設計装置の構成について説明する。図１８は、本実施の形態に係る３値論理系論理回路設計装置の構成を例示するブロック図である。この図１８に示すように、３値論理系論理回路設計装置１は、入力部２、出力部３、記憶部４、及び、制御部５をバスにて相互に接続して構成されており、例えば、パーソナルコンピュータやワークステーションとして構成することができるもので、特許請求の範囲における３値論理系論理回路設計装置に対応する。
【００７４】
このうち、入力部２は、組合せ論理回路の生成に必要な入力データをユーザから受付けるための入力手段である。この入力部２の具体的構成は任意であるが、例えば、キーボードとポインティングデバイスの組合せ、任意の外部装置からデータを有線又は無線にて受信するための入力インターフェース、あるいは、データの光学的読み取りを行う光学スキャーナ及び読み取られたデータの文字認識を行うＯＣＲ（Optical Character Reader）等として構成することができる。この入力部２は、特許請求の範囲における入力受付手段に対応する。
【００７５】
また、出力部３は、ユーザに対して情報を出力するための出力手段である。この出力部３の具体的構成は任意であるが、例えば、モニタ、プリンタ、あるいは、任意の外部装置に対してデータを有線又は無線にて出力するための出力インターフェース等として構成することができる。
【００７６】
また、記憶部４は、入力部２を介して入力された入力データや各種プログラム等の任意の情報を記憶する記憶手段であり、例えば、ＲＯＭ(Read Only Memory)、ハードディスク、あるいは、フラッシュメモリの如き不揮発的記憶素子や、ＲＡＭ(Random Access Memory）の如き揮発的記憶素子を用いて構成することができる。この記憶部４には、ユーザが入力部２を介して入力した、図１３、１４の如き基本関数表、後述する関数選択ルール及びレコード消去真理値が記憶されている。
【００７７】
また、制御部５は、３値論理系論理回路設計装置１の各部を制御するための制御手段であり、例えば、図示しないＩＣ（Integrated Circuit）及び記憶部４に記憶させたプログラムとして、あるいは、図示しないハードワイヤードロジックにて構成することができる。この制御部５は、機能概念的に、目標分解処理を実行する目標分解処理部６、論理回路生成処理を実行する論理回路生成処理部７、数式生成処理を実行する数式生成処理部８、ラダー図生成処理を実行するラダー図生成処理部９、縮約統合処理を実行する縮約統合処理部１０、及び、束ね処理を実行する束ね処理部１１を備えて構成されている。これら目標分解処理部６、論理回路生成処理部７、数式生成処理部８、ラダー図生成処理部９、縮約統合処理部１０、束ね処理部１１は、それぞれ、特許請求の範囲における目標分解処理手段、論理回路生成処理手段、数式生成処理手段、ラダー図生成処理手段、縮約統合処理手段、束ね処理手段に対応する。
【００７８】
このうち、目標分解処理部６は、入力受付処理を実行する入力受付処理部６ａと、分解処理を実行する分解処理部６ｂとを備えて構成されている。また、論理回路生成処理部７は、選択済基本関数表生成処理を実行する選択済基本関数表生成処理部７ａ、部分表生成処理を実行する部分表生成処理部７ｂ、ソート済ゲート表現表生成処理を実行するソート済ゲート表現表生成処理部７ｃ、ソート済出力値表生成処理を実行するソート済出力値表生成処理部７ｄ、及び、標準形展開表生成処理を実行する標準形展開表生成処理部７ｅを備えて構成されている。また、縮約統合処理部１０は、初期化処理を実行する初期化処理部１０ａ、隣接則適用処理を実行する隣接則適用処理部１０ｂ、及び、インデックス完成処理を実行するインデックス完成処理部１０ｃを備えて構成されている。これら入力受付処理部６ａ、分解処理部６ｂ、選択済基本関数表生成処理部７ａ、部分表生成処理部７ｂ、ソート済ゲート表現表生成処理部７ｃ、ソート済出力値表生成処理部７ｄ、標準形展開表生成処理部７ｅ、初期化処理部１０ａ、隣接則適用処理部１０ｂ、インデックス完成処理部１０ｃは、それぞれ、特許請求の範囲における入力受付処理手段、分解処理手段、選択済基本関数表生成処理手段、部分表生成処理手段、ソート済ゲート表現表生成処理手段、ソート済出力値表生成処理手段、標準形展開表生成処理手段、初期化処理手段、隣接則適用処理手段、インデックス完成処理手段に対応する。
【００７９】
（処理手順）
次に、このように構成された３値論理系論理回路設計装置１にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。この処理は、概略的に、図１９のフローチャートに例示するように、（１）目標分解処理（ステップＳ１０１）、（２）論理回路生成処理（ステップＳ１０２〜Ｓ１０３）、（３）数式生成処理（ステップＳ１０４）、（４）ラダー図生成処理（ステップＳ１０５）、（５）縮約統合処理（ステップＳ１０６）、及び、（６）束ね処理（ステップＳ１０７）に大別される。
【００８０】
（処理手順）
これら各処理の概要は以下の通りである。すなわち、図１９の目標分解処理においては（ステップＳ１０１）、設計目標である問題定義表を、複数の１出力演算表に分解する。この問題定義表は、図２０の左側に例示するように、ｎ個の入力値Ｘ1、Ｘ2、・・・、Ｘnと、この入力値を設計対象の組合せ論理回路（図２０においては、ブラックボックスとして表現する。このブラックボックスは、その内部に図示しない論理ゲートのみを有しており、内部メモリーを持たないために過去の入力に依存することがないものとする。）に入力した場合に出力される、ｍ個の出力値Ｙ1、Ｙ2、・・・、Ｙmとの組合せを定義するものである。また、１出力演算表のそれぞれは、図２０の右側に例示するように、問題定義表を各出力値Ｙ1、Ｙ2、・・・、Ｙm毎に切り分けたものであり、ｎ個の入力値Ｘ1、Ｘ2、・・・、Ｘnと、上記ｍ個の出力値Ｙ1、Ｙ2、・・・、Ｙmのいずれか一つとを組合せて構成される。
【００８１】
次に、図１９の論理回路生成処理においては（ステップＳ１０２〜Ｓ１０３）、先の目標分解処理で分解した１出力演算表の各々に対して、論理回路のデータを生成し、標準形展開表と称されるテーブルを生成する。この標準形展開表は、論理回路を様々な表現形態で表現したものであり、例えば、論理回路が論理式表現や図的表現で表現される。ここで、標準形展開表に論理式表現を用いた場合には、この論理式表現を、次の数式生成処理（ステップＳ１０４）において一連の数式文字列として結合することで、各１出力演算表に対応する論理回路の論理式を生成できる。あるいは、標準形展開表に図的表現を用いた場合には、この標準形展開表の図的式表現を、次のラダー図生成処理（ステップＳ１０５）において一連のラダー図として結合することで、各１出力演算表に対応する論理回路のラダー図を生成できる。
【００８２】
その後、図１９の縮約統合処理では（ステップＳ１０６）、論理回路生成処理で生成した冗長な論理回路に対して、縮約（各論理回路の簡易化）及び統合（複数の論理回路を１つの論理回路に集約）することで、各論理回路の冗長性を低減し、各論理回路を簡素化する。
【００８３】
そして、図１９の束ね処理では（ステップＳ１０７）、これまでの処理で得られた１出力演算表に対応した論理回路を相互に束ねることで、図２０の左側に例示した問題定義表に対応した組合せ論理回路を得る。以下では、これら各処理の内容についてさらに詳細に説明する。
【００８４】
（処理手順−目標分解処理）
まず、図１９のステップＳ１０１の目標分解処理について説明する。図２１は、目標分解処理を例示するフローチャートである。この目標分解処理は、主として、目標分解処理部６の制御下において実行される。まず、図１８の目標分解処理部６の入力受付処理部６ａは、ユーザからの入力データの入力有無を監視しており（図２１のステップＳ４０１）、ユーザが入力部２を介して所定操作で入力データを入力した場合には（ステップＳ４０１、Ｙｅｓ）、この入力データを受付け、この入力データを記憶部４に記憶させる（ステップＳ４０２）。ここで、入力データは、（１）問題定義表、（２）入力変数の個数、（３）出力変数の個数、（４）標準形種別、及び、（５）断面種別の５種類である。
【００８５】
このうち、問題定義表とは、上述したように図２０の左側に例示する表である。具体的には、問題定義表は、複数のレコードを含んで構成されている。各レコードは、図２２に例示するように、ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値と、ｍ個の出力変数Ｙ1、Ｙ2、・・・、Ｙmの出力値とからなる、ｎ＋ｍ個のフィールドを含んで構成されている。ここで、各フィールドの入力値は、３値論理値であり、具体的には、１、ＮＩＬ、又は、０のいずれか一つである。このように構成される複数のレコードは、各レコード毎にユニークな（ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値の組合せが各レコード相互で異なる）キー領域を持っており、従って、問題定義表に含まれるレコードの数は、ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値の組合せに対応する３n個になる。このような問題定義表は、例えば、各レコード毎のイメージデータとして、あるいは、複数のレコードとこれらレコード間を相互に区切る区切りデータとを含んで構成された一連のデータとして入力される。
【００８６】
また、入力変数の個数とは、上記問題定義表における入力変数Ｘ1、Ｘ2、・・・、Ｘnの個数ｎであり、例えば、ユーザは、この入力変数の個数ｎを、テキストデータとして入力する。
【００８７】
また、出力変数の個数とは、上記問題定義表における出力変数Ｙ1、Ｙ2、・・・、Ｙmの個数ｍであり、例えば、ユーザは、この出力変数の個数ｍを、テキストデータとして入力する。
【００８８】
また、標準形種別とは、当該論理設計において指定したい標準形種別を特定するための値である。ここで、指定可能な標準形種別は、最小項標準形と、最大項標準形との２種類である。ここでは、入力データとして、指定したい標準形種別を特定するための１個の整数値を入力する。例えば、例えば、ユーザは、最小項標準形を指定する場合には「０」、最大項標準形を指定する場合には「１」と入力する。
【００８９】
また、断面種別とは、当該論理設計において指定したい断面種別を特定するための値である。ここで、指定可能な断面種別は、ＮＯＴＮ断面、ＮＯＴ０断面、ＮＯＴ１断面の３種類である。ここでは、入力データとして、指定したい断面種別を特定するための１個の整数値を入力する。例えば、ユーザは、ＮＯＴＮ断面を指定する場合には「０」、ＮＯＴ０断面を指定する場合には「１」、ＮＯＴ１断面を指定する場合には「２」と入力する。
【００９０】
このような５種類の入力データの入力受付及び記憶を終えた後、図１８の目標分解処理部６の分解処理部６ｂは、記憶部４に記憶された問題定義表を、出力値Ｙの数ｍに応じた数の１出力演算表に分解する（図２１のステップＳ４０３）。ここで、１出力演算表は、上記図２０の図示右方に例示したような表である。各１出力演算表は、具体的には、複数のレコードを含んで構成されており、各レコードは、図２３に例示するように、ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値と、１つの出力値（出力変数Ｙ1、Ｙ2、・・・、Ｙmの出力値のいずれか）とからなる、ｎ＋１個のフィールドを含んで構成されている。ここで、各フィールドの入力値は、３値論理値であり、１、ＮＩＬ、又は、０のいずれか一つである。このように構成される複数のレコードは、各レコード毎にユニークな（ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値の組合せが各レコード相互で異なる）キー領域を持っており、従って、１枚の１出力演算表に含まれるレコードの数は、ｎ個の入力変数Ｘ1、Ｘ2、・・・、Ｘnの入力値の組合せに対応する３n個になる。
【００９１】
ここでは、出力変数Ｙ1、Ｙ2、・・・、Ｙmの個数をｍとしているので、１出力演算表がｍ枚生成されることになる。例えば、記憶部４に記憶された問題定義表の各レコードに対して、先のステップＳ４０１で入力された入力変数の個数ｎと出力変数の個数ｍとを参照することで、各レコードのキー領域及び出力値を識別し、各レコードのキー領域と各出力値とをそれぞれ組合せて新たなレコードを生成することで、１出力演算表を生成することができる。その後、図１８の分解処理部６ｂは、このように分解した１出力演算表を示すデータを、記憶部４に記憶させる（図２１のステップＳ４０４）。これにて目標分解処理が終了する。
【００９２】
（処理手順−論理回路生成処理）
次に、図１９のステップＳ１０２〜Ｓ１０３の論理回路生成処理について説明する。図２４は、論理回路生成処理を概念的に例示するフローチャート、図２５は、論理回路生成処理を例示するフローチャートである。この論理回路生成処理は、主として、論理回路生成処理部７の制御下において実行されるもので、（１）選択済基本関数表生成処理、（２）部分表生成処理、（３）ソート済ゲート表現表生成処理、（４）ソート済出力値表生成処理、及び、（５）標準形展開表生成処理に大別される。
【００９３】
（処理手順−論理回路生成処理−選択済基本関数表生成処理）
最初に、選択済基本関数表生成処理について説明する。この選択済基本関数表生成処理は、主として、論理回路生成処理部７の選択済基本関数表生成処理部７ａの制御下において実行される。図２５に例示するように、選択済基本関数表生成処理部７ａは、変数ｉを初期化した後（ステップＳ５０１）、図１８の記憶部４に予め記憶された関数選択ルールに基づいて、記憶部４に予め記憶された基本関数表から、必要になる３種の関数を取出す（図２５のステップＳ５０２）。
【００９４】
ここで、関数選択ルールとは、基本関数表から、論理回路の設計に必要になる３種の関数を取出すための選択基準である。この関数選択ルールは、図２６に示すように、標準形種別と断面種別との組合せに応じた関数名称として定義されている。このような標準形種別と断面種別との組合せとしては、６通りの組合せ、すなわち、最小項標準形のＮＯＴＮ断面、最小項標準形のＮＯＴ０断面、最小項標準形のＮＯＴ１断面、最大項標準形のＮＯＴＮ断面、最大項標準形のＮＯＴ０断面、又は、最大項標準形のＮＯＴ１断面が考えられ、各組合せには、それぞれ３つの関数が対応する。例えば、ＮＯＴＮ断面と最小項標準形との組合せには、関数ｅ100、ｅ010、ｅ001が対応する。このように定められた関数選択ルールは、上述したように、図１８の記憶部４に予め記憶されている。
【００９５】
そして、選択済基本関数表生成処理部７ａは、先の目標分解処理で入力され記憶部４に記憶された標準形種別と断面種別とに基づいて、記憶部４に記憶された関数選択ルールを参照し、これら標準形種別と断面種別との組合せに対応する３つの関数を特定する（図２５のステップＳ５０２）。そして、選択済基本関数表生成処理部７ａは、これら３つの関数に合致する３つのレコードを、記憶部４に記憶された図１３、１４の如き基本関数表から抽出し、この３つのレコードを用いて新たな関数表（以下、選択済基本関数表と称する）を生成する（ステップＳ５０３）。
【００９６】
例えば、先の目標分解処理で入力され記憶部４に記憶された標準形種別と断面種別との組合せが最小項標準形のＮＯＴＮ断面であった場合、必要になる３種の関数は、図２６の関数選択ルールによれば関数ｅ100、ｅ010、ｅ001であるため、これら関数ｅ100、ｅ010、ｅ001に対応する３つのレコードを抽出して、図２７に例示するような選択済基本関数表を生成する。なお、図２７に例示する選択済基本関数表では、関数名称、論理式表現、及び、図的表現の３つのゲート表現の全てが含まれているが、実際には、これら３つのゲート表現のうちのいずれか一つのゲート表現のみを用いて選択済基本関数表を生成しても良い。このような抽出処理の具体的記述方法は任意であるが、例えば、データベース操作用言語であるＳＱＬ（Structured Query Language）を用いて記述することができる。これにて選択済基本関数表生成処理が終了する。
【００９７】
（処理手順−論理回路生成処理−部分表生成処理）
次に、部分表生成処理について説明する。この部分表生成処理は、主として、図１８の論理回路生成処理部７の部分表生成処理部７ｂの制御下において実行されるもので、まず部分表生成処理部７ｂは、選択済基本関数表生成処理において生成された選択済基本関数表を、先の目標分解処理において入力された入力変数の個数ｎだけコピーすることで、ｎ枚の部分表を生成する（図２５のステップＳ５０４〜Ｓ５０６）。なお、これらｎ個のコピーのそれぞれに対しては、「変数Ｘ1の部分表」、「変数Ｘ2の部分表」、・・・「変数Ｘnの部分表」のようなファイル名を付する。
【００９８】
例えば、先の選択済基本関数表生成処理において、図２７に示したような関数ｅ100、ｅ010、ｅ001に対応する３つのレコードが抽出された場合、部分表は、図２８に例示するように、これら３つのレコードから構成された同一内容の部分表が、変数Ｘ1の部分表〜変数Ｘnの部分表としてｎ枚生成される。なお、図２８の部分表には、関数名称、論理式表現、及び、図的表現の３つのゲート表現の全てが含まれているが、図２６の選択済基本関数表において、関数名称、論理式表現、及び、図的表現の３つのゲート表現のうちのいずれか一つのゲート表現のみを含めた場合には、部分表においても当該一つゲート表現のみを含めることになる。これにて部分表生成処理が終了する。
【００９９】
（処理手順−論理回路生成処理−ソート済ゲート表現表生成処理）
次に、ソート済ゲート表現表生成処理について説明する。このソート済ゲート表現表生成処理は、主として、図１８の論理回路生成処理部７のソート済ゲート表現表生成処理部７ｃの制御下において実行されるもので、（１）直積処理、（２）ソート処理、及び、（３）射影処理に大別される。
【０１００】
（処理手順−論理回路生成処理−ソート済ゲート表現表生成処理−直積処理）
このソート済ゲート表現表生成処理部７ｃは、まず、図２５に示すように、直積処理において、先の部分表生成処理で生成されたｎ枚の部分表の直積を取る（ステップＳ５０７）。すなわち、ｎ枚の部分表に含まれる各ゲート表現を集約して、一つの仮のゲート表現表にする。これにて直積処理が終了する。
【０１０１】
次に、ソート処理として、ソート済ゲート表現表生成処理部７ｃは、ソートルール及びゲート表現表のソートキー構成を参照し、直積処理によって生成された仮ゲート表現表を、「入力に対する出力値」でソートする（ステップＳ５０８）。このソート時におけるソートキーの構成を図２９に示す。このようなソートキーに基づくソートの順序は、標準形種別と断面種別との組合せによって異なり、最小項標準形のＮＯＴＮ断面、最大項標準形のＮＯＴ０断面、又は、最大項標準形のＮＯＴ１断面のいずれかである場合には、降順にソートし、最大項標準形のＮＯＴＮ断面、最小項標準形のＮＯＴ０断面、又は、最小項標準形のＮＯＴ１断面のいずれかである場合には、昇順でソートする。これにてソート処理が終了する。
【０１０２】
次に、射影処理を行う。この射影処理として、図１８のソート済ゲート表現表生成処理部７ｃは、先に統合及びソートされたゲート表現表から、「入力に対する出力値」のカラムを取り除くことで、ゲート表現のみを抽出し、ソート済ゲート表現表を生成する（図２５のステップＳ５０９）。図３０は、ソート済ゲート表現表を概念的に示す図である。この図３０に示すように、ソート済ゲート表現表は、変数Ｘ1〜Ｘnの各ゲート表現を含んで構成されている。ここで、上述したように、関数名称、論理式表現、及び、図的表現の３つのゲート表現のうち、部分表に一つゲート表現のみを含めた場合には、ソート済ゲート表現表においても部分表に対応した一つゲート表現のみが含められる。例えば、論理式表現のみを含むソート済ゲート表現表は図３１、図的表現のみを含むソート済ゲート表現表は図３２のようになる。これにて、射影処理及びソート済ゲート表現表生成処理が終了する。なお、このようなソート済ゲート表現表生成処理における直積処理、ソート処理、及び、射影処理の具体的記述方法は任意であるが、例えば、ＳＱＬを用いた場合には一括した処理として記述することができる。
【０１０３】
（処理手順−論理回路生成処理−ソート済出力値表生成処理）
次に、ソート済出力値表生成処理について説明する。このソート済出力値表生成処理は、主として、図１８の論理回路生成処理部７のソート済出力値表生成処理部７ｄの制御下において実行されるもので、（１）ソート処理、及び、（２）射影処理に大別される。
【０１０４】
まず、図２５に示すように、ソート処理として、ソート済出力値表生成処理部７ｄは、１出力演算表における入力変数Ｘ1〜Ｘnを、入力変数ＸnからＸ1に至る順にソートし、かつ、各入力変数を１、ＮＩＬ、０に至る順にソートする（ステップＳ５１０）。これにてソート処理が終了する。
【０１０５】
次に、射影処理を行う。ここでは、図１８のソート済出力値表生成処理部７ｄは、先にソートされた１出力演算表の３n個のレコードから、入力値のカラムを取り除くことで、出力値のみを抽出し、ソート済出力値表を生成する（図２５のステップＳ５１１）。図３３は、ソート済出力値表を概念的に示す図である。この図３３に示すように、ソート済出力値表は、３n個のレコードから構成され、各レコードには出力値のみが含まれている。これにて、射影処理及びソート済出力値表生成処理が終了する。なお、このようなソート済出力値表生成処理におけるソート処理及び射影処理の具体的記述方法は任意であるが、例えば、ＳＱＬを用いた場合には一括した処理として記述することができる。
【０１０６】
（処理手順−論理回路生成処理−標準形展開表生成処理）
次に、標準形展開表生成処理について説明する。この標準形展開表生成処理は、主として、図１８の論理回路生成処理部７の標準形展開表生成処理部７ｅの制御下において実行される。ここで標準形展開表生成処理部７ｅは、図２５に示すように、ソート済ゲート表現表生成処理で生成された図３０〜３２の如きソート済ゲート表現表と、ソート済出力値表生成処理で生成された図３３の如きソート済出力値表とを相互に結合することによって、１枚の標準形展開表を生成する（ステップＳ５１２）。このような標準形展開表を図３４に概念的に示す。
【０１０７】
具体的には、ソート済ゲート表現表の３n個のレコードのそれぞれのゲート表現と、ソート済出力値表の３n個のレコードのそれぞれの出力値とを、そのレコード番号が一致するレコード単位で結合する。例えば、ソート済ゲート表現表のレコード番号１のレコードのゲート表現と、ソート済出力値表のレコード番号１のレコードの出力値とを相互に結合して、これを新たな１つのレコードとする。この結果、３n個のレコードを含む１枚の標準形展開表が生成される。この標準形展開表の各レコードは、ソート済ゲート表現表のレコードから抽出したｎ個のゲート表現と、ソート済出力値表のレコードから抽出した１つの出力値を含むため、合計でｎ＋１個のフィールドを持つ。なお、このような標準形展開表生成処理の具体的記述方法は任意であるが、例えば、ＳＱＬを用いた場合には一括した処理として記述することができる。
【０１０８】
（処理手順−数式生成処理）
次に、図１９のステップＳ１０４の数式生成処理について説明する。この数式生成処理は、主として、図１８の数式生成処理部８の制御下において実行されるもので、標準形展開表生成処理において生成した標準形展開表に基づいて、設計目標を満たすゲート構造を数式化するための処理である。この数式生成処理のフローチャートを図３５に示す。まず、数式生成処理部８は、当該数式生成処理における出力対象になる数式文字列を初期化する（ステップＳ１９０１）。
【０１０９】
そして、数式生成処理部８は、フィールド間結合演算子を決定する（ステップＳ１９０２）。ここで、フィールド間結合演算子とは、３値論理系の６種の標準形の項の内部演算のために用いられる２項演算子であり、より具体的には、標準形展開表の各レコードのフィールドを相互に結合する演算子であって、標準形種別と断面種別との組合せによって一意に特定される演算子である。この演算子は、フィールド間結合演算表として予め決めておくことができる。
【０１１０】
図３６にはフィールド間結合演算表を示す。このフィールド間結合演算表は、フィールド間結合演算で用いる演算子を示すもので、標準形種別と断面種別との６つの組合せに対する６つのレコードを含んで構成されている。各レコードは、標準形種別と断面種別との組合せ毎に異なる演算子（ここでは、ゲート表現）を含んで構成されている。例えば、最小項ＮＯＴＮ断面の標準形展開表のフィールドは、演算子アンドニルを用いて結合可能である。このフィールド間結合演算表は、例えば、記憶部４に予め記憶させておくことができる。そして、数式生成処理部８は、このフィールド間結合演算表と、論理回路生成処理の入力受付処理で入力され記憶部４に記憶された標準形種別と断面種別とを参照することで、使用するフィールド間結合演算子を決定する。
【０１１１】
次に、数式生成処理部８は、レコード間結合演算子を決定する（ステップＳ１９０３）。ここで、レコード間結合演算子とは、３値論理系の６種の標準形の項と項とを結び付けるための演算子であり、より具体的には、標準形展開表の各レコードを相互に結合する演算子であって、標準形種別と断面種別との組合せによって一意に特定される演算子である。この演算子は、レコード間結合演算表として予め決めておくことができる。
【０１１２】
図３７にはレコード間結合演算表を示す。このレコード間結合演算表は、レコード間結合演算で用いる演算子を示すもので、標準形種別と断面種別との６つの組合せに対する６つのレコードを含んで構成されている。各レコードは、標準形種別と断面種別との組合せ毎に異なる演算子（ここでは、ゲート表現）を含んで構成されている。例えば、最小項ＮＯＴＮ断面の標準形展開表のレコードは、演算子オアニルを用いて結合可能である。このレコード間結合演算表は、例えば、記憶部４に予め記憶させておくことができる。そして、数式生成処理部８は、このレコード間結合演算表と、論理回路生成処理の入力受付処理で入力され記憶部４に記憶された標準形種別と断面種別とを参照することで、使用するレコード間結合演算子を決定する。
【０１１３】
その後、数式生成処理部８は、図３５に示すように、標準形展開表の最初のレコードから最後のレコード（ｉ＝１〜３nのレコード）に対して、それぞれステップＳ１９０４〜Ｓ１９１１を実行する。また、この際、各レコードの最初のフィールドから最後のひとつ前のフィールド（ｊ＝１〜ｎのフィールド）に対して、それぞれステップＳ１９０４〜Ｓ１９０６を実行する。具体的には、まず、最初のレコード（ｉ＝１のレコード）の最初のフィールド（ｊ＝１のフィールド）について、そこに含まれる変数Ｘjの関数名称を加工する（ステップＳ１９０４。ここで、ｊは１〜ｎまで一つずつ増分する変数）。具体的には、変数Ｘjの関数名称に（Ｘj）の文字列を付加する。また、数式生成処理部８は、変数Ｘjの関数名称に対して、ステップＳ１９０２で決定したフィールド間結合演算子を付加する（ステップＳ１９０５）。そして、このように変更した関数名称を数式文字列に付加する（ステップＳ１９０６）。
【０１１４】
例えば、最初のレコードの変数Ｘ1の関数名称がｅ100であり、フィールド間結合演算子がアンドニルである場合、ステップＳ１９０４では文字列（Ｘ1）を付加することで、関数名称をｅ100（Ｘ1）とし、ステップＳ１９０５ではフィールド間結合演算子アンドニルを付加することで、関数名称をｅ100（Ｘ1）アンドニルとする。そして、ステップＳ１９０６においてはこの関数名称を数式文字列に付加する。その後、ｊを一つ増分して２番目のフィールドに移り、標準形展開表の変数Ｘ2の関数名称がｅ010である場合、ステップＳ１９０４では文字列（Ｘ2）を付加することで、関数名称をｅ010（Ｘ2）とし、ステップＳ１９０５ではフィールド間結合演算子アンドニルを付加することで、関数名称をｅ010（Ｘ2）アンドニルとして、この関数名称を数式文字列に付加する。この時点において、数式文字列に付加された関数名称は、ｅ100（Ｘ1）アンドニルｅ010（Ｘ2）アンドニルになる。このようなステップを全てのゲート表現のフィールドに対して順次実行することで、最初のレコードの全てのゲート表現のフィールドの関数名称を一つの関数名称として数式文字列に格納することができる。
【０１１５】
その後、数式生成処理部８は、最初のレコードの出力値フィールドの値（１、Ｎ、０のいずれか）を文字列に変換して（ステップＳ１９０７）、この文字列を数式文字列に付加する（ステップＳ１９０８）。そして、このレコードが最終レコードであるか否かを判断し（ステップＳ１９０９）、最終レコードでない場合には（ステップＳ１９０９、Ｎｏ）、ステップＳ１９０３で決定したレコード間結合演算子を数式文字列に付加し（ステップＳ１９１０）、さらに所定の改行コードを数式文字列に付加する（ステップＳ１９１１）。以降、このようなステップＳ１９０４〜Ｓ１９１１を各レコードに対して実行し、最終レコードの付加が終了した時点で数式生成処理を終了する。なお、ユーザは、入力部２を介して所定操作を行うことで、この数式文字列を出力部３にて出力することができる。このような処理によれば、標準形展開表の内容を一つの数式文字列として自動的に表現することができ、この数式文字列を用いてゲート構造を決定することができる。
【０１１６】
（処理手順−ラダー図生成処理）
次に、図１９のステップＳ１０５のラダー図生成処理について説明する。このラダー図生成処理は、主として、図１８のラダー図生成処理部９の制御下において実行されるもので、標準形展開表生成処理において生成した標準形展開表に基づいて、設計目標を満たすゲート構造をラダー図化するための処理である。このラダー図生成処理のフローチャートを図３８、３９に分割して示す。まず、ラダー図生成処理部９は、フィールド間結合モジュール画像を決定する（ステップＳ２２０１）。
【０１１７】
ここで、フィールド間結合モジュール画像とは、３値論理系の６種の標準形の項の内部演算のために用いられるモジュールの画像であり、より具体的には、標準形展開表の各レコードのフィールドを相互に結合するモジュールの画像であって、標準形種別と断面種別との組合せによって一意に特定される画像である。このモジュールは、上述した図３６のフィールド間結合演算表における図的表現として予め決定して記憶部４に記憶させておくことができる。そして、ラダー図生成処理は、このフィールド間結合演算表と、論理回路生成処理の入力受付処理で入力され記憶部４に記憶された標準形種別と断面種別とを参照することで、使用するフィールド間結合モジュール画像を決定する。
【０１１８】
その後、ラダー図生成処理部９は、標準形展開表の最初のレコードから最後のレコード（ｉ＝１〜３nのレコード）に対して、それぞれステップＳ２２０２〜Ｓ２２０５を実行する。また、この際、各レコードの最初のフィールドから最後のひとつ前のフィールド（最初のフィールドから、出力値を除いた範囲での最後のフィールドであり、ｊ＝１〜ｎのフィールド）に対して、それぞれステップＳ２２０３〜Ｓ２２０４を実行する。具体的には、まず、標準形展開表の最初のレコード（ｉ＝１のレコード）のラダー図画像の記憶スペースを確保し、この記憶スペースを上記ステップＳ２２０１で決定したフィールド間結合モジュール画像で初期化する（ステップＳ２２０２）。そして、ラダー図生成処理部９は、最初のレコードの最初のフィールド（ｊ＝１のフィールド）について、そこに含まれる変数Ｘjのゲート表現の図的表現を加工する（ステップＳ２２０３。ここで、ｊは１〜ｎまで一つずつ増分する変数）。その後、ラダー図生成処理部９は、図的表現の出力側と、フィールド間結合モジュール画像の入力側とを接続描画する（ステップＳ２２０４）。この接続描画の具体的方法については公知の描画アルゴリズムを採用できるので、その詳細の説明は省略する。このようなステップＳ２２０３〜２２０４の処理を最初のレコードの全てのゲート表現のフィールドについて行うことで、これら全てのゲート表現のフィールト゛を一つのラダー図として結合することができる。
【０１１９】
そして、ラダー図生成処理部９は、標準形展開表の出力値フィールドの値に対応する文字列を、最初のレコードのラダー図画像のフィールド間結合モジュール画像の入力側に付加する（ステップＳ２２０５）。以降、同様にして、このような結合を標準形展開表中の全てのレコードについて行うことで、標準形展開表の全てのレコードのラダー図を一つに結合して表現することができる。
【０１２０】
次いで、ラダー図生成処理部９は、図３９に例示するように、レコード間結合モジュール画像を決定する（ステップＳ２２０６）。ここで、レコード間結合モジュール画像とは、３値論理系の６種の標準形の項と項とを結合するために用いられるモジュールの画像であり、より具体的には、標準形展開表のレコードを相互に結合するモジュールの画像であって、標準形種別と断面種別との組合せによって一意に特定される画像である。この画像は、上述した図３７のレコード間結合演算表における図的表現として予め決定して記憶部４に記憶させておくことができる。そして、ラダー図生成処理は、このレコード間結合演算表と、論理回路生成処理の入力受付処理で入力され記憶部４に記憶された標準形種別と断面種別とを参照することで、使用するレコード間結合モジュール画像を決定する。
【０１２１】
その後、ラダー図生成処理部９は、標準形展開表の全体のラダー図画像の記憶スペースを確保し、この記憶スペースを上記ステップＳ２２０６で決定したレコード間結合モジュール画像で初期化する（ステップＳ２２０７）。そして、ラダー図生成処理部９は、レコード毎のラダー図画像と、レコード間結合モジュールとを相互に結合する（ステップＳ２２０８）。具体的には、レコード毎のラダー図画像の出力側と、レコード間結合モジュールの入力側とを、図３９のステップＳ２２０８に示すように接続する。この接続描画の具体的方法については公知の描画アルゴリズムを採用できるので、その詳細の説明は省略する。このようなステップＳ２２０８の結合を各レコードに対して行うことで、全レコードを一つのラダー図として結合することができる。これにて、ラダー図生成処理を終了する。なお、ユーザは、入力部２を介して所定操作を行うことで、このラダー図を出力部３にて出力することができる。このような処理によれば、標準形展開表の内容を一つのラダー図として自動的に表現することができ、このラダー図を用いてゲート構造を決定することができる。
【０１２２】
（処理手順−縮約統合処理）
次に、図１９のステップＳ１０６の縮約統合処理について説明する。図４０は、縮約統合処理のフローチャートである。この図４０に例示するように、この縮約統合処理は、（１）初期化処理（ステップＳ２４０１）、（２）隣接則適用処理（ステップＳ２４０２）、及び、（３）インデックス完成処理（ステップＳ２４０３）に大別される。
【０１２３】
（処理手順−縮約統合処理−初期化処理）
最初に、図４０の初期化処理（ステップＳ２４０１）について説明する。この初期化処理のフローチャートを図４１に示す。この初期化処理は、主として、図１８の縮約統合処理部１０の初期化処理部１０ａの制御下において実行される。この初期化処理部１０ａは、標準形展開表生成処理で生成された標準形展開表の各レコードの出力値が、項消去係数に該当するか否かを判断し（図４１のステップＳ２５０１）、項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全てのゲート表現とにＮｕｌｌを入れることで、これら出力値とゲート表現とをクリアする（ステップＳ２５０２。以下、このようにＮｕｌｌにてクリアすることをＮｕｌｌクリアと称する）。
【０１２４】
ここで、項消去係数とは、レコードの全てのゲート表現を消去できる場合の出力値である。図４２には、この項消去係数を示すレコード消去真理値表を示す。この図４２に示すように、標準形種別と断面種別との組合せ毎に、異なる項消去係数が定められている。例えば、最小項ＮＯＴＮ断面の場合の項消去係数は、真理値名称０（＝論理式名称０＝図的表現（０の固定入力））である。すなわち、最小項ＮＯＴＮ断面の場合で、出力値の真理値名称が０（あるいは、出力値の論理式名称が０、又は、出力値の図的表現が（０の固定入力））の場合に、当該出力値と当該出力値に対応するレコードの全てのゲート表現とをＮｕｌｌクリアすることができる。
【０１２５】
具体的には、初期化処理部１０ａは、図１８の記憶部４に予め記憶されたレコード消去真理値表と、論理回路生成処理の入力受付処理で入力され記憶部４に記憶された標準形種別及び断面種別を参照し、これら標準形種別と断面種別との組合せに該当する項消去係数を特定する。そして、この項消去係数を出力値として有するレコードを標準形展開表から探し出し、該当するレコードがある場合にはその出力値と全てのゲート表現とをＮｕｌｌクリアすることで書き換える。これにて初期化処理は終了する。このような初期化処理によれば、標準形展開表のレコードの少なくとも一部をＮｕｌｌクリアして簡易化できる。
【０１２６】
（処理手順−縮約統合処理−隣接則適用処理）
次に、図４０の隣接則適用処理（ステップＳ２４０２）について説明する。この隣接則適用処理は、主として、図１８の縮約統合処理部１０の隣接則適用処理部１０ｂの制御下において実行されるもので、隣接則と称される規則を適用することによって一部のレコードを縮約する。この隣接則を図４３を用いて説明する。この図４３において、Ｗ、Ａは３値論理変数、Ｘ、Ｙ、Ｚは３値論理定数またはそれに類似の符号である。この図４３に示す数式（１）と数式（２）が隣接則である。ここで、数式（３）と数式（４）、もしくは、数式（５）と数式（６）は、数式（１）と数式（２）におけるＸとＹとＺの関係を定めるものである。すなわち、ＸとＹが定まれば、数式（３）と数式（４）、もしくは、数式（５）と数式（６）により、数式（１）と数式（２）のＺが定まる。このＺを定めるためには、数式（３）と数式（４）、もしくは、数式（５）と数式（６）のどちらか一方の組を使えば良いが、数式（３）と数式（４）、もしくは、数式（５）と数式（６）のどちらの組を使ってもＺは同じ値に定まる。
【０１２７】
このような規則を図３４の標準形展開表の特定のレコード間に対して適用することで、この標準形展開表を縮約して簡略化することができる。すなわち、図４４に示すように、標準形展開表におけるｐ番目、ｑ番目、ｒ番目の３つのレコードを想定する。ここで、ｐ、ｑ、ｒは、１≦ｐ、ｑ、ｒ≦レコード数３n、かつ、ｐ＝２×（ｊ−１）＋ｋ、ｑ＝ｐ＋３i-1、ｒ＝ｑ＋３i-1（ここで、ｉは１〜ｎに１ずつ、ｊは１〜３nに３i-1ずつ、ｋはｊ〜ｊ＋３i-1−１に１ずつ増分する変数）の関係を満たす整数であるとすると、これら３つのレコードの各ゲート表現のうち、相互に対応するフィールド位置のゲート表現を、上述したレコード間結合演算子で結合すると、図４３の（１）または（２）の隣接則の左辺を得ることができる。従って、この３つのレコードの各ゲート表現を隣接則によって縮約することができる。
【０１２８】
例えば、標準形種別と断面種別との組合せが最小項ＮＯＴＮ断面である場合、標準形展開表の図４４に示すフィールト゛のゲート表現は、ｐ番目のレコードについてはｅ100、ｑ番目のレコードについてはｅ010、ｒ番目のレコードについてはｅ001になる。また、この最小項ＮＯＴＮ断面である場合のレコード間結合演算子は上述したようにオアニルになるため、これらｅ100、ｅ010、ｅ001をオアニルで結合すると、ｅ100オアニルｅ010オアニルｅ001になり、その関数名称は図４５のようになる。これは、図４３の式（１）においてＸ＝１、Ｙ＝０、Ｗ＝Ｘi、Ｚ＝Ｎをした場合と同様である。従って、図４５の関数名称は、Ｘ＝１とすることができる。
【０１２９】
このような隣接則の適用は、具体的には下記のように行われる。すなわち、隣接則適用処理部１０ｂは、図４６の隣接則適用処理のフローチャートに示すように、比較する３つのレコート゛のレコード番号を決定する（ステップＳ３００１）。最初のレコード番号は、ｐ＝２×（ｊ−１）＋ｋ、２番目のレコード番号は、ｑ＝ｐ＋３i-1、３番目のレコード番号は、ｒ＝ｑ＋３i-1のように決定する（ここで、ｉは１〜ｎに１ずつ、ｊは１〜３nに３i-1ずつ、ｋはｊ〜ｊ＋３i-1−１に１ずつ増分する変数）。例えば、第１回目の計算では、ｐ＝１、ｑ＝２、ｒ＝３になるため、レコード番号１、２、３の３つのレコードが比較対象になる。
【０１３０】
次いで、隣接則適用処理部１０ｂは、ステップＳ３００１で計算したｒが総レコード数（＝３n）より大きいか否かを判断する（ステップＳ３００２）。ｒが総レコード数より大きい場合には、標準形展開表のレコードの全範囲の比較を終えたことになるため、以降のステップＳ３００３〜３００５を行うことなく、ｉを１つ増分した上で、ステップＳ３００１に戻る。一方、ｒが総レコード数より大きくない場合、隣接則適用処理部１０ｂは、出力値がＮｕｌｌクリアか否かを判断する（ステップＳ３００３）。
【０１３１】
ステップＳ３００３においてＮｕｌｌクリアであると判断した場合、隣接則適用処理部１０ｂは、先の初期化処理にて縮約されたレコードであり、これ以上の縮約の必要がないと判断できるので、以降のステップＳ３００４〜３００５を行うことなく、変数ｐ、ｑ、ｒを増分させて次のレコードを探索する。一方、ステップＳ３００３においてＮｕｌｌクリアでないと判断した場合、隣接則適用処理部１０ｂは、レコード番号ｐ、ｑ、ｒの３つのレコート゛について、Ｘiのゲート表現以外の全てのフィールド値が同じであるか否かを判断し（ステップＳ３００４）、同じである場合にのみ、これらレコード番号ｐ、ｑ、ｒの３つのレコート゛について、Ｘi番目のゲート表現のフィールド値をＮｕｌｌクリアする（ステップＳ３００５）。これにより、共通のフィールド値を有するレコードを縮約することができる。以降、ｉ、ｊ、ｋを増分することで、各レコードに対して同様の処理を実行し、隣接則適用処理が終了する。
【０１３２】
（処理手順−縮約統合処理−インデックス完成処理）
次に、インデックス完成処理について説明する。このインデックス完成処理は、主として、図１８の縮約統合処理部１０のインデックス完成処理部１０ｃの制御下において実行される。このインデックス完成処理のフローチャートを図４７に示す。まず、インデックス完成処理部１０ｃは、標準形展開表の各レコードに最若番レコードＮＯを付加して新たな表を生成し（以下、この表を標準形縮約表と称する）、この最若番レコードＮＯをゼロで初期化する（ステップＳ３１０１）。このように最若番レコードＮＯを付加した状態のレコードを図４８に示す。
【０１３３】
次に、インデックス完成処理部１０ｃは、ｉ番目のレコードの出力値がＮｕｌｌクリアか否かを判断する（ステップＳ３１０２。ここで、ｉは１〜３nにひとつずつ増分する変数）。ここで、Ｎｕｌｌクリアであると判断した場合、先の初期化処理にて縮約されたレコードであり、これ以上の縮約の必要がないと判断できるので、以降のステップＳ３１０３〜３１０６を行うことなく、変数を増分させて次のレコードを探索する。一方、Ｎｕｌｌクリアでないと判断した場合、インデックス完成処理部１０ｃは、当該ｉ番目のレコードの最若番レコードＮＯの値が初期値ゼロのままであるか否かを判断し（ステップＳ３１０３）、ゼロでない場合には後述するステップＳ３１０６において最若番レコードＮＯを付与済み（他のレコードと統合済み）であると判断できるので、以降のステップＳ３１０４〜３１０６を行うことなく、変数を増分させて次のレコードを探索する。一方、初期値ゼロのままであると判断した場合、当該ｉ番目のレコードの最若番レコードＮＯの値にｉを代入する（ステップＳ３１０４）。
【０１３４】
その後、インデックス完成処理部１０ｃは、ｉ番目のレコードとｊ番目のレコードの内容とが相互に同一であるか否かを判断し（ステップＳ３１０５。ここで、ｊはｉ＋１〜３nでひとつずつ増分する変数）、同一である場合には、これら両レコードを統合可能であると判断できるので、ｊ番目のレコードの最若番レコードＮＯの値にｉを代入する（ステップＳ３１０６）。これにより、共通の最若番レコードＮＯを有するレコードを生成することができる。以降、ｉ、ｊを増分することで、各レコードに対して同様の処理を実行し、インデックス完成処理及び縮約統合処理を終了する。なお、ユーザは、入力部２を介して所定操作を行うことで、この標準形縮約表を出力部３にて出力することができる。このような縮約統合を行うことにより、ゲート表現の冗長性を低減でき、論理回路の部品点数や配線数を低減することができる。
【０１３５】
（処理手順−束ね処理）
次に、図１９のステップＳ１０７の束ね処理について説明する。この束ね処理は、主として、図１８の束ね処理部１１の制御下において実行される。この束ね処理は、先のインデックス完成処理で生成した複数の標準形縮約表を相互に束ねる処理であり、概略的には、図４９の図示左方に例示するように、出力値Ｙjの標準形縮約表と、出力値Ｙkの標準形縮約表とについて（１≦ｊ＜ｋ≦ｍ）、図４９の図示右方に例示するように、相互に共通する入力変数Ｘ1、Ｘ2、・・・、Ｘnを結線することで、集約されたデータ構造を生成することを行い、これを全ての出力変数Ｙ1、Ｙ2、・・・、Ｙmの標準形縮約表について同様に行うものである。この結果、図２０の左側に例示した問題定義表に対応した組合せ論理回路のデータ構造を得ることができる。
【０１３６】
この具体的な処理は任意であるが、２枚の標準形縮約表の図的表現を相互に比較し、相互に共通する部分を図的に重ねる処理を繰り返すことにより、部品点数を十分なレベルにまで低減化することが考えられる。例えば、標準形縮約表における図４８の各レコードから、変数Ｘ1のゲート-表現、、、変数Ｘkのゲート-表現、、、変数Ｘnゲート-表現を共通とする出力値を抽出して、この出力値を共通の変数Ｘ1のゲート-表現、、、変数Ｘkのゲート-表現、、、変数Ｘnゲート-表現に対する出力値として並列的に記載することで新たなレコードを生成して、組合せ論理回路のデータ構造を生成することができる。これにて束ね処理が終了する。なお、ユーザは、入力部２を介して所定操作を行うことで、生成された組合せ論理回路を出力部３にて出力することができる。
【０１３７】
これまで説明した本実施の形態１によれば、論理回路を構成する基本関数と出力値とを相互に関連付けて構成された、１出力演算表に対応する論理回路を特定するための標準形展開表が自動的に生成されるので、この標準形展開表に基づいて論理回路を構築することができ、３値論理系の論理回路の論理設計を容易に行うことができる。
【０１３８】
また、本実施の形態１によれば、組合せ論理回路に対応する問題定義表を分解して１出力演算表とし、各１出力演算表に対応する標準形展開表を生成することにより、組合せ論理回路の設計を簡易に行うことができる。
【０１３９】
また、本実施の形態１によれば、１出力演算表に対応する標準形展開表を生成した後、これらを相互に束ねることにより、組合せ論理回路に対応するデータ構造を容易に得ることができる。
【０１４０】
また、本実施の形態１によれば、ゲート表現と出力値とを相互に関連付けて構成されたレコードを含む標準形展開表に基づいて、当該ゲート表現を一連の論理式表現で示した数式文字列が生成されるので、この数式文字列に基づいて論理回路を容易に構築することができる。
【０１４１】
また、本実施の形態１によれば、ゲート表現と出力値とを相互に関連付けて構成されたレコードを含む標準形展開表に基づいて、当該ゲート表現を一連の図式表現で示したラダー図が生成されるので、このラダー図に基づいて論理回路を容易に構築することができる。
【０１４２】
また、本実施の形態１によれば、ゲート表現の縮約又は統合を自動的に行うことができるので、ゲート表現の冗長性を低減でき、論理回路の部品点数や配線数を低減することができる。
【０１４３】
〔実施の形態２〕
次に、本発明の実施の形態２について図面を参照して詳細に説明する。この実施の形態２は、概略的には上記実施の形態１と同様であるが、論理回路生成処理において、部分表の直積を省略したことを主たる特徴とする。以下では、３値論理系論理回路設計装置の構成を説明し、次いで、３値論理系論理回路設計装置にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。なお、実施の形態１と同様の構成及び処理については同一の符号を付してその説明を省略する。
【０１４４】
（３値論理系論理回路設計装置の構成）
最初に、３値論理系論理回路設計装置の構成について説明する。図５０は、本実施の形態に係る３値論理系論理回路設計装置の構成を例示するブロック図である。この図５０に示すように、３値論理系論理回路設計装置２０は、実施の形態１において図１８に例示した論理回路生成処理部７に代えて、論理回路生成処理部２１を備えて構成されている。この論理回路生成処理部２１は、特許請求の範囲における論理回路生成処理手段に対応するもので、ソート済１出力演算表生成処理部２１ａと、標準形展開表生成処理部２１ｂとを備えて構成されている。これらソート済１出力演算表生成処理部２１ａと、標準形展開表生成処理部２１ｂは、それぞれ、特許請求の範囲におけるソート済１出力演算表生成処理手段、標準形展開表生成処理手段に対応する。なお、本実施の形態において、記憶部４には、ソートルール、ソートキー構成、及び、関数選択ルールが予め記憶されている。
【０１４５】
（処理手順）
次に、このように構成された３値論理系論理回路設計装置２０にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。この処理は、概略的に、図５１のフローチャートに例示するように、図１９のフローチャートに例示したステップＳ１０２の論理回路生成処理に代えて、論理回路生成処理（ステップ１０８）を行うものである。
【０１４６】
（処理手順−論理回路生成処理）
この論理回路生成処理について説明する。図５２は、論理回路生成処理を概念的に示すフローチャート、図５３は、論理回路生成処理のフローチャートである。この論理回路生成処理は、主として、図５０の論理回路生成処理部２１の制御下において実行される。これら図５２、５３に例示するように、論理回路生成処理は、（１）ソート済１出力演算表生成処理、及び、（２）標準形展開表生成処理に大別される。
【０１４７】
（処理手順−論理回路生成処理−ソート済１出力演算表生成処理）
最初に、ソート済１出力演算表生成処理について説明する。このソート済１出力演算表生成処理は、主として、図５０の論理回路生成処理部２１のソート済１出力演算表生成処理部２１ａの制御下において実行される。図５３において、ソート済１出力演算表生成処理部２１ａは、記憶部４に予め記憶されたソートルール及びソートキー構成を参照して、目標分解処理において問題定義表を分解することで生成された１出力演算表をソートし、ソート済１出力演算表を生成する（ステップＳ５３０１）。ここで、ソートルールは、図５４に例示するように、標準形種別及び断面種別に関わらず、１出力演算表を１、ＮＩＬ、０の順でソートするように定められている。また、ソートキー構成は、図５５に例示するように定義される。これにてソート済１出力演算表生成処理が終了する。
【０１４８】
（処理手順−論理回路生成処理−標準形展開表生成処理）
次に、標準形展開表生成処理について説明する。この標準形展開表生成処理は、主として、図５０の論理回路生成処理部２１の標準形展開表生成処理部２１ｂの制御下において実行される。図５３において、標準形展開表生成処理部２１ｂは、記憶部４に予め記憶された関数選択ルールを参照して、ソート済１出力演算表の全ての入力値を、関数名称に置換し（関数名称以外のゲート表現、例えば、論理式表現に置換しても良い）、標準形展開表を生成する（ステップＳ５３０２）。この関数選択ルールを図５６に示す。例えば、ＮＯＴＮ断面最小項標準形の場合、ソート済１出力演算表における入力値（入力側の真理値）が１である場合には、この入力値１をｅ100に置換し、入力値がＮＩＬである場合にはこれをｅ010に置換し、入力値が０である場合にはこれをｅ001に置換する。これにて標準形展開表生成処理が終了し、論理回路生成処理が終了する。
【０１４９】
その後、実施の形態１と同様に、全ての１出力演算表について同様の論理回路生成処理を行った後、数式生成処理、ラダー図生成処理、縮約統合処理、及び、束ね処理を行うことで、組合せ論理回路を得ることができる。なお、本実施の形態においては、ソート済１出力演算表生成処理を省略しても良く、この場合には、標準形展開表生成処理において、図５６の関数選択ルールを参照して、１出力演算表の入力値を関数名称に直接置換しても良い。ただし、このようにソート済１出力演算表生成処理を省略した場合、生成された標準形展開表における各レコード間の対応関係が変ってくるため、実施の形態１の如き縮約処理をそのまま適用できない可能性が生じるために好ましくない。
【０１５０】
これまで説明した本実施の形態２によれば、実施の形態１と同様の効果に加えて、標準形種別と断面種別との相互の組合せに対応する基本関数を特定し、この特定された基本関数によって、１出力演算表における入力値を置き換えることにより、１出力演算表に対応する論理回路を特定するための標準形展開表が生成されるので、直積を行うことなく標準形展開表が生成され、論理回路を一層容易に構築することができる。
【０１５１】
〔実施の形態３〕
次に、本発明の実施の形態３について図面を参照して詳細に説明する。この実施の形態３は、概略的には上記実施の形態２と同様であるが、論理回路生成処理と縮約統合処理とを統合したことを主たる特徴とする。以下では、３値論理系論理回路設計装置の構成を説明し、次いで、３値論理系論理回路設計装置にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。なお、実施の形態２と同様の構成及び処理については同一の符号を付してその説明を省略する。
【０１５２】
（３値論理系論理回路設計装置の構成）
最初に、３値論理系論理回路設計装置の構成について説明する。図５７は、本実施の形態に係る３値論理系論理回路設計装置の構成を例示するブロック図である。この図５７に示すように、３値論理系論理回路設計装置３０は、実施の形態２において図５０に例示した論理回路生成処理部２１に代えて、論理回路生成処理部３１を備えて構成されており、また、この論理回路生成処理部３１の内部に縮約統合処理部３１ｃが包含されている。
【０１５３】
この論理回路生成処理部３１は、特許請求の範囲における論理回路生成処理手段に対応するもので、ソート済１出力演算表生成処理部３１ａと、インデックス付ソート済１出力演算表生成処理部３１ｂと、縮約統合処理部３１ｃと、標準形展開表生成処理部３１ｄとを備えて構成されている。これらソート済１出力演算表生成処理部３１ａと、インデックス付ソート済１出力演算表生成処理部３１ｂと、縮約統合処理部３１ｃと、標準形展開表生成処理部３１ｄは、それぞれ、特許請求の範囲におけるソート済１出力演算表生成処理手段、インデックス付ソート済１出力演算表生成処理手段、縮約統合処理手段、標準形展開表生成処理手段に対応する。ここで、縮約統合処理部３１ｃは、初期化処理部３１ｃ１、隣接則適用処理部３１ｃ２、及び、インデックス完成処理部３１ｃ３を備えて構成されている。これら隣接則適用処理部３１ｃ２、インデックス完成処理部３１ｃ３は、それぞれ、特許請求の範囲における隣接則適用処理手段、インデックス完成処理手段を構成する。なお、本実施の形態において、記憶部４には、ソートルール、ソートキー構成、レコード消去真理値表、及び、関数選択ルールが予め記憶されている。
【０１５４】
（処理手順）
次に、このように構成された３値論理系論理回路設計装置３０にて実行される３値論理系論理回路設計方法及びプログラムにおける各処理手順について順次説明する。この処理は、概略的に、図５８のフローチャートに例示するように、図５１のフローチャートに例示したステップＳ１０８の論理回路生成処理に代えて、論理回路生成処理（ステップ１０９）を行うものであり、また、図５１のフローチャートに例示したステップＳ１０６の縮約統合処理が省略（ステップ１０９の論理回路生成処理に包含）されている。
【０１５５】
（処理手順−論理回路生成処理）
この論理回路生成処理について説明する。図５９は、論理回路生成処理を概念的に示すフローチャート、図６０は、論理回路生成処理のフローチャートである。この論理回路生成処理は、主として、図５７の論理回路生成処理部３１の制御下において実行される。これら図５９、６０に例示するように、論理回路生成処理は、（１）ソート済１出力演算表生成処理（ステップＳ６００１）、（２）インデックス付ソート済１出力演算表生成処理（ステップＳ６００２）、（３）縮約統合処理（ステップＳ６００３）、及び、（４）標準形展開表生成処理（ステップＳ６００４）に大別される。
【０１５６】
（処理手順−論理回路生成処理−ソート済１出力演算表生成処理）
最初に、ソート済１出力演算表生成処理について説明する。このソート済１出力演算表生成処理は、主として、図５７の論理回路生成処理部３１のソート済１出力演算表生成処理部３１ａの制御下において実行される。このソート済１出力演算表生成処理部３１ａは、実施の形態２の図５３の例示したステップＳ５３０１のソート済１出力演算表生成処理と同様に、記憶部４に予め記憶されたソートルール及びソートキー構成を参照して、目標分解処理において問題定義表を分解することで生成された１出力演算表をソートし、ソート済１出力演算表を生成する（図６０のステップＳ６００１）。これにてソート済１出力演算表生成処理が終了する。
【０１５７】
（処理手順−論理回路生成処理−インデックス付ソート済１出力演算表生成処理）
次に、インデックス付ソート済１出力演算表生成処理について説明する。このインデックス付ソート済１出力演算表生成処理は、主として、図５７の論理回路生成処理部３１のインデックス付ソート済１出力演算表生成処理部３１ｂの制御下において実行される。このインデックス付ソート済１出力演算表生成処理部３１ｂは、ソート済１出力演算表の各レコードに、最若番レコードＮＯを付加して新たな表を生成し、インデックス付ソート済１出力演算表を生成する（図６０のステップＳ６００２）。これにてインデックス付ソート済１出力演算表生成処理が終了する。
【０１５８】
（処理手順−論理回路生成処理−縮約統合処理）
次に、縮約統合処理について説明する。この縮約統合処理は、主として、図５７の論理回路生成処理部３１の縮約統合処理部３１ｃの制御下において実行されるもので、図６１のフローチャートに例示するように、（１）初期化処理（ステップＳ６１０１）、（２）隣接則適用処理（ステップＳ６１０２）、及び、（３）インデックス完成処理（ステップＳ６１０３）に大別される。これら初期化処理、隣接則適用処理、及び、インデックス完成処理のフローチャートをそれぞれ図６２、６３、６４に示す。
【０１５９】
これら図６２〜６４の初期化処理、隣接則適用処理、及び、インデックス完成処理は、実施の形態１の図４１、４６、４７に例示した初期化処理、隣接則適用処理、及び、インデックス完成処理に対して、「ゲート表現」の語を「入力値」、「標準形縮約表」の語を「インデックス付ソート済１出力演算表」と読み変えたものとほぼ同様であるため、以下ではその概要のみを説明するに留め、その詳細な説明を省略する。
【０１６０】
（処理手順−論理回路生成処理−縮約統合処理−初期化処理）
図６２の初期化処理は、主として、図５７の縮約統合処理部３１ｃの初期化処理部３１ｃ１の制御下において実行されるもので、概略的には、インデックス付ソート済１出力演算表の各レコードの出力値が、項消去係数に該当するか否かを判断し（ステップＳ６２０１）、項消去係数に該当する場合には、当該出力値と当該出力値に対応するレコードの全ての入力値とにＮｕｌｌを入れることで、これら出力値と入力値とをクリアする（ステップＳ６２０２）。これにて初期化処理は終了する。このような初期化処理によれば、インデックス付ソート済１出力演算表のレコードの少なくとも一部をＮｕｌｌクリアして簡易化できる。
【０１６１】
（処理手順−論理回路生成処理−縮約統合処理−隣接則適用処理）
また、図６３の隣接則適用処理は、主として、縮約統合処理部３１ｃの隣接則適用処理部３１ｃ２の制御下において実行されるもので、概略的には、比較する３つのレコードのレコード番号を決定し（ステップＳ６３０１）、このステップＳ６３０１で計算したｒが総レコード数（＝３n）より大きいか否かを判断する（ステップＳ６３０２）。そして、ｒが総レコード数より大きい場合には、インデックス付ソート済１出力演算表のレコードの全範囲の比較を終えたことになるため、以降のステップＳ６３０２〜６３０５を行うことなく、ｉを１つ増分した上で、ステップＳ６３０１に戻る。一方、ｒが総レコード数より大きくない場合、隣接則適用処理部３１ｃ２は、出力値がＮｕｌｌクリアか否かを判断する（ステップＳ６３０３）。
【０１６２】
ステップＳ６３０３においてＮｕｌｌクリアであると判断した場合、隣接則適用処理部３１ｃ２は、以降のステップＳ６３０４〜６３０５を行うことなく、変数ｐ、ｑ、ｒを増分させて次のレコードを探索する。一方、ステップＳ６３０３においてＮｕｌｌクリアでないと判断した場合、隣接則適用処理部３１ｃ２は、レコード番号ｐ、ｑ、ｒの３つのレコート゛について、Ｘiの入力値と最若番レコードＮＯ以外の全てのフィールド値が同じであるか否かを判断し（ステップＳ６３０４）、同じである場合にのみ、これらレコード番号ｐ、ｑ、ｒの３つのレコート゛について、Ｘi番目の入力値のフィールド値をＮｕｌｌクリアする（ステップＳ６３０５）。これにより、共通のフィールド値を有するレコードを縮約することができる。以降、ｉ、ｊ、ｋを増分することで、各レコードに対して同様の処理を実行し、隣接則適用処理が終了する。
【０１６３】
（処理手順−論理回路生成処理−縮約統合処理−インデックス完成処理）
また、図６４のインデックス完成処理は、主として、縮約統合処理部３１ｃのインデックス完成処理部３１ｃ３の制御下において実行されるもので、概略的には、インデックス付ソート済１出力演算表の各レコードの最若番レコードＮＯをゼロで初期化する（ステップＳ６４０１）。
【０１６４】
次に、インデックス完成処理部３１ｃ３は、ｉ番目のレコードの出力値がＮｕｌｌクリアか否かを判断し（ステップＳ６４０２）、Ｎｕｌｌクリアであると判断した場合、以降のステップＳ６４０３〜６４０６を行うことなく、変数を増分させて次のレコードを探索する。一方、Ｎｕｌｌクリアでないと判断した場合、インデックス完成処理部３１ｃ３は、当該ｉ番目のレコードの最若番レコードＮＯの値が初期値ゼロのままであるか否かを判断し（ステップＳ６４０３）、ゼロでない場合には、以降のステップＳ６４０４〜６４０６を行うことなく、変数を増分させて次のレコードを探索する。一方、初期値ゼロのままであると判断した場合、当該ｉ番目のレコードの最若番レコードＮＯの値にｉを代入する（ステップＳ６４０４）。
【０１６５】
その後、インデックス完成処理部３１ｃ３は、ｉ番目のレコードとｊ番目のレコードの内容とが相互に同一であるか否かを判断し（ステップＳ６４０５）、同一である場合には、ｊ番目のレコードの最若番レコードＮＯの値にｉを代入する（ステップＳ６４０６）。これにより、共通の最若番レコードＮＯを有するレコードを生成することができる。以降、ｉ、ｊを増分することで、各レコードに対して同様の処理を実行し、インデックス完成処理及び縮約統合処理を終了する（以下、このようにインデックス完成処理にて生成された表を、縮約済１出力演算表と称する）。なお、ユーザは、入力部２を介して所定操作を行うことで、この縮約済１出力演算表を出力部３にて出力することができる。このような縮約統合を行うことにより、ゲート表現の冗長性を低減でき、論理回路の部品点数や配線数を低減することができる。
【０１６６】
（処理手順−論理回路生成処理−標準形展開表生成処理）
次に、標準形展開表生成処理について説明する。この標準形展開表生成処理は、主として、図５７の論理回路生成処理部３１の標準形展開表生成処理部３１ｄの制御下において実行される。この標準形展開表生成処理は、実施の形態２の図５３のステップＳ５３０２に例示した標準形展開表生成処理に対して、「ソート済１出力演算表」の語を「縮約済１出力演算表」と読み変えたものと同様であるため、以下ではその概要のみを説明するに留め、その詳細な説明を省略する。
【０１６７】
すなわち、図６０において、標準形展開表生成処理部３１ｄは、記憶部４に予め記憶された関数選択ルールを参照して、縮約済１出力演算表の全ての入力値を、関数名称に置換し、標準形展開表を生成する。これにて標準形展開表生成処理が終了し、論理回路生成処理が終了する（ステップＳ６００４）。その後は、全ての１出力演算表について同様の論理回路生成処理を行った後、実施の形態１と同様の数式生成処理、ラダー図生成処理、及び、束ね処理を行うことで、組合せ論理回路を得ることができる。
【０１６８】
これまで説明した本実施の形態３によれば、実施の形態２と同様の効果に加えて、ゲート表現の縮約又は統合を行った後、標準形展開表が生成され、冗長性の低い標準形展開表を得ることができる。
【０１６９】
〔III〕各実施の形態に対する変形例
以上、本発明の各実施の形態について説明したが、本発明の具体的な構成及び方法は、特許請求の範囲に記載した各発明の技術的思想の範囲内において、任意に改変及び改良することができる。以下、このような変形例について説明する。
【０１７０】
（各処理の順序変形と省略）
上述の実施の形態１、２においては、目標分解処理、論理回路生成処理、数式生成処理、ラダー図生成処理、縮約統合処理、及び、束ね処理を一連の連続した処理として説明したが、これらは相互に独立した個別的な処理として実施することもでき、また、その一部を省略することもできる。例えば、目標分解処理を省略しても良く、この場合には、ユーザが任意の方法で目標分解を行って１出力演算表を生成し、１出力演算表を入力部２を用いて所定操作で入力することで、論理回路生成処理等を行うことができる。また、数式生成処理やラダー図生成処理については、その両方又は一方を省略することもでき、あるいは、縮約統合処理の後にこれら数式生成処理やラダー図生成処理を実行することもできる。また、ゲート表現の冗長性が問題にならない場合には、縮約統合処理を省略することもでき、あるいは、縮約統合処理のうち、初期化処理、隣接則適用処理、又は、インデックス完成処理のうちの任意の一部の処理のみを省略しても良い。
【０１７１】
（入力データについて）
入力部２を介して入力される各種入力データは、上述した形式以外にも種々のデータ構造を取ることができる。また、これら入力データは、直接的に入力される以外にも、所定の処理を経て入力データとして加工され得る原データとして入力されても良い。すなわち、少なくとも入力データを特定するための情報が入力部２を介して入力される。
【０１７２】
（解決しようとする課題や発明の効果について）
また、発明が解決しようとする課題や発明の効果は、前記した内容に限定されるものではなく、本発明によって、前記に記載されていない課題を解決したり、前記に記載されていない効果を奏することもでき、また、記載されている課題の一部のみを解決したり、記載されている効果の一部のみを奏することがある。例えば、本願に係る装置、方法、プログラムによって、所要の組合せ論理回路設計の全てを完全な内容で形成できない場合であっても、その一部を自動化できる限りにおいて、本願課題の一部が解決されている。
【０１７３】
（制御について）
また、実施の形態で自動的に行われるものとして説明した制御の全部又は任意の一部を手動で行っても良く、逆に、手動で行われるものとして説明した制御の全部又は任意の一部を公知技術又は上述した思想に基づいて自動化しても良い。また、実施の形態において示した各処理ブロックは、実際には、ＣＰＵ及びこのＣＰＵにて読み出され実行されるコンピュータプログラムとして構成することができ、あるいは、ハードワイヤードロジックにて構成することができる。また、上述した各電気的構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。この他、前記文書中や図面中で示した処理手順、又は、制御手順については、特記する場合を除いて任意に変更することができる。また、本方法を実行するためのコンピュータプログラムは、ハードディスク、ＣＤ−ＲＯＭ、あるいは、ＤＶＤの如き任意のコンピュータ読み取り可能な記録媒体に記録して保持させておくこともできる。
【産業上の利用可能性】
【０１７４】
以上のように、本発明に係る３値論理系論理回路設計装置、３値論理系論理回路設計方法、及び、３値論理系論理回路設計プログラムは、３値論理系の半導体集積回路用の組合せ論理回路やそのゲート構造を自動的に論理設計するために有用である。
【図面の簡単な説明】
【０１７５】
【図１】３値論理系における演算の論理式表現を示す図である。
【図２】２項演算の論理式表現を示す図である。
【図３】２項演算のゲート表現を示す図である。
【図４】２項演算の演算表のうち、ＡＮＤＮ演算の演算表を示す図である。
【図５】２項演算の演算表のうち、ＡＮＤ０演算の演算表を示す図である。
【図６】２項演算の演算表のうち、ＡＮＤ１演算の演算表を示す図である。
【図７】２項演算の演算表のうち、ＯＲＮ演算の演算表を示す図である。
【図８】２項演算の演算表のうち、ＯＲ０演算の演算表を示す図である。
【図９】２項演算の演算表のうち、ＯＲ１演算の演算表を示す図である。
【図１０】２値論理系との相似性に基づく、２項演算の分類結果を示す図である。
【図１１】基本関数ｅXYZのゲート表現を示す図である。
【図１２】基本関数ｅXYZの演算表を示す図である。
【図１３】図１４と共に基本関数表を示す図である。
【図１４】図１３と共に基本関数表を示す図である。
【図１５】３値論理関数Ｆ（Ｘ1）を示す図である。
【図１６】３値論理関数Ｆ（Ｘ1、Ｘ2）のＸ1による展開を示す図である。
【図１７】３値論理関数Ｆ（Ｘ1、Ｘ2）のＸ2による展開を示す図である。
【図１８】本発明の実施の形態１に係る３値論理系論理回路設計装置の構成を例示するブロック図である。
【図１９】本発明の実施の形態１に係る論理設計手順のフローチャートである。
【図２０】問題定義表と１出力演算表とを示す図である。
【図２１】目標分解処理を例示するフローチャートである。
【図２２】問題定義表のレコードを示す図である。
【図２３】１出力演算表のレコードを示す図である。
【図２４】論理回路生成処理を概念的に例示するフローチャートである。
【図２５】論理回路生成処理を例示するフローチャートである。
【図２６】関数選択ルールを示す図である。
【図２７】選択済基本関数表を示す図である。
【図２８】部分表を示す図である。
【図２９】ソートキーの構成を示す図である。
【図３０】ソート済ゲート表現表を概念的に示す図である。
【図３１】論理式表現のみを含むソート済ゲート表現表を示す図である。
【図３２】図的表現のみを含むソート済ゲート表現表を示す図である。
【図３３】ソート済出力値表を概念的に示す図である。
【図３４】標準形展開表を概念的に示す図である。
【図３５】数式生成処理のフローチャートを例示する図である。
【図３６】フィールド間結合演算表を例示する図である。
【図３７】レコード間結合演算表を例示する図である。
【図３８】図３９と共にラダー図生成処理のフローチャート例示する図である。
【図３９】図３８と共にラダー図生成処理のフローチャート例示する図である。
【図４０】縮約統合処理のフローチャートを例示する図である。
【図４１】初期化処理のフローチャートを例示する図である。
【図４２】レコード消去真理値表を例示する図である。
【図４３】隣接則を例示する図である。
【図４４】標準形展開表におけるｐ番目、ｑ番目、ｒ番目の３つのレコードを例示する図である。
【図４５】関数名称を例示する図である。
【図４６】隣接則適用処理のフローチャートを例示する図である。
【図４７】インデックス完成処理のフローチャートを例示する図である。
【図４８】最若番レコードＮＯを付加した状態のレコードを示す図である。
【図４９】１出力演算表に対応した標準形縮約表と組合せ論理回路に対応した標準形縮約表を例示する図である。
【図５０】本発明の実施の形態２に係る３値論理系論理回路設計装置の構成を例示するブロック図である。
【図５１】本発明の実施の形態２に係る論理設計手順のフローチャートである。
【図５２】論理回路生成処理を概念的に示すフローチャートである。
【図５３】論理回路生成処理のフローチャートである。
【図５４】ソートルールを例示する図である。
【図５５】ソートキー構成を例示する図である。
【図５６】関数選択ルールを例示する図である。
【図５７】本発明の実施の形態３に係る３値論理系論理回路設計装置の構成を例示するブロック図である。
【図５８】本発明の実施の形態３に係る論理設計手順のフローチャートである。
【図５９】論理回路生成処理を概念的に示すフローチャートである。
【図６０】論理回路生成処理のフローチャートを例示する図である。
【図６１】縮約統合処理のフローチャートを例示する図である。
【図６２】初期化処理のフローチャートを例示する図である。
【図６３】隣接則適用処理のフローチャートを例示する図である。
【図６４】インデックス完成処理のフローチャートを例示する図である。
【符号の説明】
【０１７６】
１、２０、３０  ３値論理系論理回路設計装置
２  入力部
３  出力部
４  記憶部
５  制御部
６  目標分解処理部
６ａ  入力受付処理部
６ｂ  分解処理部
７、２１、３１  論理回路生成処理部
７ａ  選択済基本関数表生成処理部
７ｂ  部分表生成処理部
７ｃ  ソート済ゲート表現表生成処理部
７ｄ  ソート済出力値表生成処理部
７ｅ、２１ｂ  標準形展開表生成処理部
８  数式生成処理部
９  ラダー図生成処理部
１０  縮約統合処理部
１０ａ、３１ｃ１  初期化処理部
１０ｂ、３１ｃ２  隣接則適用処理部
１０ｃ、３１ｃ３  インデックス完成処理部
１１  束ね処理部
３１ａ  ソート済１出力演算表生成処理部
３１ｂ  インデックス付ソート済１出力演算表生成処理部
【図１】
2006113695.tif 000003
【図２】
2006113695.tif 000004
【図３】
2006113695.tif 000005
【図４】
2006113695.tif 000006
【図５】
2006113695.tif 000007
【図６】
2006113695.tif 000008
【図７】
2006113695.tif 000009
【図８】
2006113695.tif 000010
【図９】
2006113695.tif 000011
【図１０】
2006113695.tif 000012
【図１１】
2006113695.tif 000013
【図１２】
2006113695.tif 000014
【図１３】
2006113695.tif 000015
【図１４】
2006113695.tif 000016
【図１５】
2006113695.tif 000017
【図１６】
2006113695.tif 000018
【図１７】
2006113695.tif 000019
【図１８】
2006113695.tif 000020
【図１９】
2006113695.tif 000021
【図２０】
2006113695.tif 000022
【図２１】
2006113695.tif 000023
【図２２】
2006113695.tif 000024
【図２３】
2006113695.tif 000025
【図２４】
2006113695.tif 000026
【図２５】
2006113695.tif 000027
【図２６】
2006113695.tif 000028
【図２７】
2006113695.tif 000029
【図２８】
2006113695.tif 000030
【図２９】
2006113695.tif 000031
【図３０】
2006113695.tif 000032
【図３１】
2006113695.tif 000033
【図３２】
2006113695.tif 000034
【図３３】
2006113695.tif 000035
【図３４】
2006113695.tif 000036
【図３５】
2006113695.tif 000037
【図３６】
2006113695.tif 000038
【図３７】
2006113695.tif 000039
【図３８】
2006113695.tif 000040
【図３９】
2006113695.tif 000041
【図４０】
2006113695.tif 000042
【図４１】
2006113695.tif 000043
【図４２】
2006113695.tif 000044
【図４３】
2006113695.tif 000045
【図４４】
2006113695.tif 000046
【図４５】
2006113695.tif 000047
【図４６】
2006113695.tif 000048
【図４７】
2006113695.tif 000049
【図４８】
2006113695.tif 000050
【図４９】
2006113695.tif 000051
【図５０】
2006113695.tif 000052
【図５１】
2006113695.tif 000053
【図５２】
2006113695.tif 000054
【図５３】
2006113695.tif 000055
【図５４】
2006113695.tif 000056
【図５５】
2006113695.tif 000057
【図５６】
2006113695.tif 000058
【図５７】
2006113695.tif 000059
【図５８】
2006113695.tif 000060
【図５９】
2006113695.tif 000061
【図６０】
2006113695.tif 000062
【図６１】
2006113695.tif 000063
【図６２】
2006113695.tif 000064
【図６３】
2006113695.tif 000065
【図６４】
2006113695.tif 000066