【特許請求の範囲】
1 外部からの入力データを記憶するための入力
レジスタと、外部からのIC番号を記憶するため
のICレジスタと、1つ又は複数の積項メモリと、
1つ又は複数の和項メモリと、同一の積項線に対
して論理積をとる論理積回路と、同一の和項線に
対して論理和をとる論理和回路と、和項線の出力
結果が真のとき対応するビツトをセツトする出力
レジスタと、入力レジスタ、積項メモリ、和項メ
モリ及び出力レジスタの制御を行なうとともに、
処理すべきブロツクの数をICの種類毎に記憶し
ている制御部と、積項メモリと和項メモリに対し
て積項、和項のパターンを書込むための書込み回
路とで構成され、積項メモリはICレジスタの出
力によりICの種類を選択し、そして、制御部か
ら指示されたそのICのブロツク番号の場所にお
いて、その積項メモリへの入力レジスタの出力
が、そのブロツクでの積項の部分をなしている積
項線に対しては真の信号を出力し、および、その
ブロツクでの積項の部分をなしていない積項線に
対しては偽の信号を出力し、論理積回路は、各積
項メモリの出力に対して同一の積項線のものに対
しての論理積を出力し、和項メモリはICレジス
タの出力によりICの種類を選択し、そして、制
御部から指定されたそのICのブロツク番号の場
所において、その和項メモリへの論理積回路の出
力が、そのブロツクでの和項の部分をなしている
和項線に対しては真の信号を出力し、および、そ
のブロツクでの和項の部分をなしていない和項線
に対しては偽の信号を出力し、論理和回路は、各
和項メモリの出力に対して同一の和項線のものに
対しての論理和を出力し、出力レジスタは、論理
和回路の出力結果が真である和項線に対して対応
するビツトをセツト出力し、制御部は、外部から
スタート信号を得たときに、外部からの入力デー
タを入力レジスタにセツトし、さらに、出力レジ
スタの各ビツトを全てリセツトした後、ブロツク
の番号を順番に出力し、制御部に記憶されている
ブロツクの数を終了したとき、ストツプ信号を外
部に発生することを特徴とするダイナミツク
PLA。
発明の詳細な説明
本発明は、プログラムロジツクアレイ(PLA)
にパターンを書込む前、あるいはカスタムLSI製
造の前に、書込み対象あるいは製造対象となつて
いる論理回路をシミユレーシヨンするためのダイ
ナミツクPLAに関するものである。
論理装置で用いられる素子は年々大規模化の傾
向をたどり、PLA化あるいはカスタムLSI化が進
んできている。このような装置においては、
PLAあるいはカスタムLSIの中に論理回路上の誤
りが発見されたときは従来の論理装置と比較する
と、一段と被害が大きい。それは、PLAあるい
はカスタムLSIの中の回路については修正を施こ
すことが出来ないために新たに製造しなおしとな
るためである。そのため、PLAに書込む以前あ
るいはカスタムLSIを製造する以前に、その中に
実現しようとしている論理回路に対して十分な検
査をしておかなくてはならない。従来は、この検
査はソフトウエアシミユレーシヨンによつて行な
われていたが、論理規模が大きくなるに従つて、
ソフトウエアシミユレーシヨンでは短い時間で十
分な検査を行なうことができなくなつてきた。そ
のため、近年ソフトウエアシミユレーシヨンに代
わるものが求められている。
本発明の目的は、このような要求に答えて組合
せ論理回路のシミユレーシヨンをハードウエアに
より実現するものである。
一般に組合せ論理回路は積和項により表わすこ
とができる。
例えば、次の様に表わすことができる。
O1=i3 4+1 2 3+i2 3i4+i1i2i3
O2=i2 3i4+1i3+1 2 4
O3=+i1i4+i2 3
O4=1 2 3+1i3
この組合せ論理回路は従来のPLAでは、第1
図の様に表わさせる。
ダイナミツクPLAの構成と動作を述べる前に、
その原理を簡単に述べておく。ここでは、簡単の
ために1つの組合せ論理回路のシミユレーシヨン
を行なうダイナミツクPLAについて説明する。
ダイナミツクPLAにおいてはブロツクを単位に
して処理を行なう。今、第1図では、2つのブロ
ツクに分けた。処理は、ブロツク1、ブロツク2
の順で行なわれる。各ブロツクでは積項線に対す
る結果を求めた後、和項線に対する結果を求め
る。その求め方は次の通りである。
今、入力データが(i1i2i3i4)=(0010)であつた
とする。このとき、ブロツク1での積項線に対す
る処理は次のように行なわれる。ブロツク1に
は、i3 4と1 2 3とi2 3i4とi1i2i3とに対する4
つの積
項線がある。この4つの積項線への値を求めるた
めに入力データはそのまま、あるいはいくつかに
分割される。ここでは2つに分割されたとする。
即ち、(i1i2)=(00)と(i3i4)=(10)とに分割され
た
とする。分割された入力データが積項線の積項に
対する部分積項になつているかどうかを調べられ
る。即ち、分割された入力データが、その積項を
真とするための条件を満たしているかどうかが調
べられる。今、第一の積項(i3 4)に対して
(i1i2)=(00)は部分積項であり、(i3i4)=(10)も
又
部分積項である。第二の積項(1 2 3)に対して
(i1i2)=(00)は部分積項であるが、(i3i4)=(10)
は
部分積項でない。第三の積項(i2 3i4)に対して
(i1i2)=(00)と(i3i4)=(10)は共に部分積項でな
い。第四の積項(i1i2i3)に対して(i1i2)=(00)
は部分積項ではないが、(i3i4)=(10)は部分積項で
ある。次に、各積項線に対して各々の部分積項の
論理積が求められる。即ち、その積項線に対し
て、分割された入力データに対する全ての部分積
項が真のときは真を、そうでないときは偽を与え
る。今の場合、第一の積項線に対しては真とな
り、第二、第三、第四の積項線に対しては偽とな
る。
次にブロツク1での和項線に対する処理は次の
ように行なわれる。積項線は4つあるが、この4
つの積項線はそのまま、あるいはいくつかに分割
される。ここでは2つに分割されたとする。今、
積項線の出力は(P1P2P3P4)=(1000)となつて
いるが、これが(P1P2)=(10)と(P3P4)=(00)と
に分割されたとする。分割された積項線が和項線
の和項に対する部分和項になつているかどうかが
調べられる。即ち、分割された積項線の出力が、
その和項を真とするための条件を満たしているか
どうかが調べられる。今、第一の和項(i3 4+1 2
i3+i2 3i4)に対して、(P1P2)=(10)は部分和項で
あ
り、(P3P4)=(00)は部分和項でない。第二の和
項(i2 3i4)に対して、(P1P2)=(10)と(P3P4)=
(00)は共に部分和項ではない。第三の和項(な
し)に対しては、(P1P2)=(10)と(P3P4)=(00)
は勿論部分和項ではない。第四の和項(1 2 3)
に対しては、(P1P2)=(10)と(P3P4)=(00)は共
に部分和項ではない。次に各和項線に対して、
各々の部分和項の論理和が求められる。即ち、そ
の和項線に対して、分割された積項線の出力に対
する部分和項が1つでも真のときは真を、そうで
ないときは偽を与える。今の場合、第一の和項線
に対しては真となり、第二、第三、第四の和項線
に対しては偽となる。
和項線の出力は、出力レジスタに送られる。出
力レジスタは、シミユレーシヨンを始める前にあ
らかじめリセツトされているものとする。出力が
真の和項線に対しては、出力レジスタの対応する
ビツトがセツトされる。
ブロツク2に対してもブロツク1と同じ処理が
行なわれ、その全てが終つたとき、出力レジスタ
の内容は出力データとして外部に出力される。各
ブロツクでの部分積項の計算は、メモリを使つて
行なわれる。各ブロツクでは、4つの積項線に対
して処理を行なうためにメモリとしては、例え
ば、4ビツト同時出力のものを用いる。上の例で
は4つの出力は、ブロツク1のときは第1〜第4
の積項線に対する部分積項の値を、ブロツク2の
ときは第5〜第8の積項線に対する部分積項の値
を得るために用いられる。(あるいは2ビツト同
時出力、1ビツト出力のものを2つあるいは4つ
の並列に用いる。)第2図および第3図は例とし
て今まで述べた組合せ論理回路の部分積項の計算
のための積項メモリの内容を示す図である。第2
図および第3図においてブロツク番号1のときは
出力はP1、P2、P3、P4であり、ブロツク番号2
のときは出力はP5、P6、P7、P8である。第2図
は、分割された入力データ(i1i2)に対するもの
で、入力としてはブロツク番号と分割された入力
データを与える。先の例では、ブロツク番号1、
i1=0、i2=0を与える。この結果、第一から第
四までの積項線に対する部分積項1100を出力す
る。第3図は分割された入力データ(i3i4)に対
するもので入力としては、同様にブロツク番号と
分割された入力データを与える。先の例では、ブ
ロツク番号2、i3=1、i4=0を与える。この結
果、第一から第四までの積項線に対する部分積項
は1001を出力する。
この2つの出力は論理積がとられ、積項線に対
する値が与えられる。即ち、今までに述べてきた
ように1000を与える。各ブロツクでの部分和項の
計算はやはりメモリを使つて行なわれる。和項線
は4つあるため、メモリとしては例えば4ビツト
同時出力のものを使う。(あるいは2ビツト同時
出力、1ビツト出力のものを2つあるいは4つ並
列に用いる。)
第4図および第5図は例として今まで述べた組
合せ論理回路の部分和項の計算のための和項メモ
リの内容を示す図である。第4図は分割された積
項線の出力(P1P2)に対するもので入力として
は、ブロツク番号と分割された積項線を与える。
先の例ではブロツク番号1、P1=1、P2=0を
与える。この結果、第一から第四までの和項線に
対する部分和項1000を出力する。第5図は分割さ
れた積項線の出力(P3P4)に対するもので入力
としてはブロツク番号と分割された積項線を与え
る。先の例ではブロツク番号1、P3=0、P4=
0を与える。この結果、第一から第四までの積項
線に対する部分和項0000を出力する。
この2つの出力は論理和がとられ、和項線に対
する値が与えられる。即ち、今までに述べてきた
ように1000を与える。これまでは1つの組合せ論
理回路をシミユレーシヨンする場合について述べ
てきたが、積項メモリと和項メモリに組合せ論理
回路の番号を与えることによつて複数の組合せ論
理回路のシミユレーシヨンが行なえる。
本発明のダイナミツクPLAは、外部からの入
力データを記憶するための入力レジスタと、外部
からの番号を記憶するためのICレジスタと、1
つ又は複数の積項メモリと、1つ又は複数の和項
メモリと、同一の積項線に対して論理積をとる論
理積回路と、同一の和項線に対して論理和をとる
論理和回路と、和項線の出力結果が真のとき対応
するビツトをセツトする出力レジスタと、入力レ
ジスタ、積項メモリ、和項メモリ及び出力レジス
タの制御を行なう制御部と、積項メモリと和項メ
モリに対して積項、和項のパターンを書込むため
の書込み回路とで構成される。積項メモリはIC
レジスタの出力によりICの種類を選択し、そし
て、制御部から指示されたそのICのブロツク番
号の場所において、その積項メモリへの入力レジ
スタの出力が、そのブロツクでの積項の部分をな
している積項線に対しては真の信号を出力し、
又、そのブロツクでの積項の部分をなしていない
積項線に対しては偽の信号を出力する。論理積回
路は、各積項メモリの出力に対して同一の積項線
のものに対しての論理積を出力する。和項メモリ
はICレジスタの出力によりICの種類を選択し、
そして、制御部から指定されたそのICのブロツ
ク番号の場所において、その和項メモリへの論理
積回路の出力が、そのブロツクでの和項の部分を
なしている和項線に対しては真の信号を出力し、
又、そのブロツクでの和項の部分をなしていない
和項線に対しては偽の信号を出力する。論理和回
路は、各積項メモリの出力に対して同一の和項線
のものに対しての論理和を出力する。出力レジス
タは、論理和回路の出力結果が真である和項線に
対して対応するビツトをセツトする。又、制御部
は、外部からスタート信号を得たときに、外部か
らの入力データを入力レジスタにセツトし、さら
に、出力レジスタの各ビツトを全てリセツトした
後、ブロツクの番号を順番に出力し、制御部に記
憶されているブロツクの数を終了したとき、スト
ツプ信号を外部に発生する。
次に図を用いて本発明の詳細な説明を行なう。
第6図は本発明のブロツク図である。図におい
て、1は書込み回路、2は入力レジスタ、3は
ICレジスタ、4は2つの積項メモリよりなる積
項メモリ群、5は論理積回路、6は2つの和項メ
モリよりなる和項メモリ群、7は論理和回路、8
は出力レジスタ、9は制御部である。書込み回路
1は、積項メモリ群4及び和項メモリ群6に、第
2図から第5図に示したパターンを書込む。即
ち、積項メモリ群4においては、i1i2を入力して
いる積項メモリに対しては第2図のパターンを、
i3i4を入力としている和項メモリに対しては第3
図のパターンを書込む。和項メモリ群6において
は、P1,5P2,6を入力としている和項メモリに対し
ては第4図のパターンを、P3,7P4,8を入力してい
る和項メモリに対しては第5図のパターンを書込
む。
組合せ論理回路のシミユレーシヨンが始まる
と、外部から制御部9にはSTART信号が、入力
レジスタ2には入力データが、ICレジスタ3に
はICの番号が与えられる。これを受けて制御部
9は出力レジスタ8をリセツトするとともに入力
レジスタ2に対してその入力データを記憶するよ
うに、又、ICレジスタ3にはICの番号を記憶す
るように指令する。入力レジスタ2では、これを
受けて入力データを記憶し、その内容を積項メモ
リ群4に出力する。次に制御部9は、積項メモリ
群4、和項メモリ群6に対してブロツク番号1を
出力する。積項メモリ群4では、IC番号と入力
データとブロツク番号によつて積項メモリ群4内
の各積項メモリのアドレスを選択し、その内容を
出力する。その出力は、論理積回路5に送られ、
同一の積項線毎に部分積項が求められる。そし
て、ここでの結果は、和項メモリ群6の入力とな
る。和項メモリ群6では、IC番号と論理積回路
5の出力とブロツク番号により和項メモリ群6内
の各和項メモリのアドレスを選択し、その内容を
出力する。その出力は、論理和回路7に送られ、
同一の和項線毎に部分和項の和が求められる。そ
して、ここでの結果は、出力レジスタ8への入力
となる。出力レジスタ8では、論理和回路7の出
力が真であつた和項線に対して、それに対応する
ビツトをセツトする。
この処理が終了すると、制御部9は、ブロツク
番号2を出力する。そして、ブロツク番号1と同
じ処理を行なう。ブロツク番号2に対する処理が
終了したとき、制御部9は外部に対してSTOP信
号を出し、シミユレーシヨンが終了したことを伝
える。
第6図では、組合せ論理回路と種類と各々が入
力4ビツト、出力4ビツト、積項線8本の組合せ
論理回路に対するダイナミツクPLAについて説
明したが、同じような構成をとることにより、任
意の個数の組合せ論理回路と、任意の長さをもつ
入力データ、出力データ、積項線に対しても実現
することができる。そのときのシミユレーシヨン
の時間はいくつのブロツクに分割したかによつて
定まる。
出力レジスタには、与えられた入力に対する出
力が得られるが、この出力が検査仕様書のデータ
と一致しないとき、カスタムLSIの論理の中に誤
りが存在するといえる。この場合は、カスタム
LSIの論理回路を正し、そこから得られるビツト
パターンを再度積項メモリ、和項メモリに書きこ
み、シミユレーシヨンを再度行なう。これによつ
て誤りが発見されなくなつたとき、初めてカスタ
ムLSIを製造する。これによつて、正しいカスタ
ムLSIを作るための工数、費用、時間を大巾に削
減することができる。