(57)【要約】レベルソートおよびコンパイル法を用いて、サイクルベースでシミュレーションを実行し、実用的に使用可能な規模で、システム全体での高速性を実現するために、１つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサを備え、複数のプロセッサによって構成される各プロセッサグループが、ツリー形状の階層型に接続される。
2004061722.tif 000002
【特許請求の範囲】
【請求項１】
レベルソートおよびコンパイル法を使用して、サイクルベースの論理シミュレーションを実行するシミュレーション装置において、
１つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサを備えることを特徴とする論理シミュレーション装置。
【請求項２】
前記論理ブロックが、ハードワイヤード可能な形式の１つ以上のゲートから構成されることを特徴とする請求項１記載の論理シミュレーション装置。
【請求項３】
前記多数のプロセッサがそれぞれ複数のプロセッサによって構成されるプロセッサグループに分割され、
複数の該プロセッサグループが階層型のツリー形状に相互に接続されて、１つのクラスタを構成すると共に、
複数の該クラスタによって前記論理シミュレーション装置が構成されることを特徴とする請求項１記載の論理シミュレーション装置。
【請求項４】
前記プロセッサグループ内の複数のプロセッサが相互に完全結合されることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項５】
前記階層型ツリー形状の下位側の階層において、同一階層内の各プロセッサグループが相互に完全結合されることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項６】
前記複数の各クラスタにおける最上位階層のプロセッサグループが、他のクラスタ内の最上位階層のプロセッサグループと相互に完全結合されることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項７】
前記各プロセッサグループが、該グループを構成する各プロセッサに対応して、メモリデータおよび外部入出力パターンの入出力制御を行う入出力プロセッサを備えることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項８】
前記階層型ツリー形状の下位側に属する各プロセッサグループに対応して、シミュレーションのトレースデータと外部入力信号パターンとを格納するトレースデータ記憶手段と、
キャッシュメモリに相当する小容量データ記憶手段とを備えることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項９】
前記階層型ツリー形状の上位側に属する各プロセッサグループに対応して、主記憶に相当する大容量データ記憶手段を備えることを特徴とする請求項３記載の論理シミュレーション装置。
【請求項１０】
前記論理シミュレーション装置において、前記多数のプロセッサによる分散型超並列アーキテクチャが採用されることを特徴とする請求項１記載の論理シミュレーション装置。
【発明の詳細な説明】
【技術分野】  本発明は大規模論理回路のシミュレーション方式に係わり、更に詳しくは、数千万ゲート以上の大規模ディジタル回路の高速シミュレーションを目的として、論理ブロックレベルでシミュレーションを実行する分散型超並列プロセッサ方式のサイクルベース論理シミュレーション装置に関する。
【背景技術】  近年ＣＭＯＳＬＳＩ技術の急速な進歩に伴って、ディジタルシステム機器の高性能化と高機能化が急速に進展している。システム回路のほとんどがＬＳＩとして集約され、また製品開発期間の短縮が進んでいる状況で、いかに早期に高品質な設計を実現して商品の早期市場投入を図るかが、新製品開発における最重要課題となっている。その対策として、大規模なシステム回路の論理検証を効率的に行うための大容量、かつ高速なシミュレーション装置が強く求められている。
論理シミュレーションの高性能化のために専用ハードウエアの研究開発がなされてきた。これらの専用ハードウエア実現方式は基本的にプロセッサ方式と、ＦＰＧＡ（フィールド・プログラマブル・ゲート・アレイ）方式とに分類される。
プロセッサ方式では、回路モデルがプロセッサの命令に置き換えられてシミュレーションアルゴリズムが実行される。実際のハードウエア回路を模擬するＦＰＧＡ方式に比べて処理速度は遅いが、回路モデルのセットアップの時間が短く、またプロセッサの数の増加によって、性能向上と大容量化を図ることができるという特徴がある。
ＦＰＧＡ方式では、回路モデルのマッピングにより直接的に回路動作の模擬が行われるため、高速処理が実現されるが、回路規模の増大に対応して動作周波数が低下するなどの理由から、大容量化には難点がある。
プロセッサ方式のシミュレーション専用ハードウエアは基本的にレベルソート法と、イベント法とに大別される。
レベルソート法では、論理検証が行われるべき回路の外部入力端子、あるいは記憶素子からの段数に基づいてレベル番号が割り付けられ、レベル番号に対応して次々とシミュレーションが実行される。シミュレーションの実行によって、このレベル番号に対応するゲートの出力の変化の有無に関係なく、全てのゲートに対して計算が行われる。
イベント法では、イベントドリブン、すなわち入力信号の変化をイベントとして、そのイベントに対応してゲートの出力の評価が行われ、出力が変化した場合にその変化がイベントとして回路内で伝えられて、順番にゲートに対する計算が行われる。
レベルソート法とイベント法とを組み合わせたアルゴリズムに基づいて、論理ブロックレベルでシミュレーションを実行する専用ハードウエアも発表されているが、本発明ではレベルソート法を採用した論理シミュレーション装置を対象とする。このようなレベルソート法に基づく専用ハードウエアは、遅延時間を扱うことができないため、いずれも同期回路を対象としたサイクルベース型のシミュレータである。
以上に述べたような論理シミュレーション装置や、超並列プロセッサ結合方式については、次のような文献があある。
【特許文献１】  特開２０００−３６７３７号公報「電気的に再構成可能なゲートアレイロジックを用いる方法及び、これによって構成される装置」
【特許文献２】  特開平７−２００５０８号公報「ノード間結合方式」
【特許文献３】  特開昭６４−２６９６９号公報「プログラマブルアクセラレータ及びその方法」
特許文献１では、電気的に再構成可能なゲートアレーが再構成可能な相互接続を介して接続され、接続の再構成によって相互接続チップ上に実現されたディジタル回路網が変更され、シミュレーション、プロトタイピング、実行計画を含む各種の目的に適合するシステムが開示されている。
特許文献２では、超並列計算機向けの結合トポロジーとして、ｎ次元メッシュ状にリンクで接続された第１の種類のノードに対して、ある次元に関して第２の種類のノードが接続された結合方式が開示されている。
特許文献３では、プログラマブルアクセラレータ、すなわちプログラマブルな論理シミュレーション装置として、スイッチを介してクラスタを形成するようにフレキシブルに相互接続された、複数の実質的に同じプロセッサエレメントが採用され、そのプロセッサがプログラマブルであるアクセラレータが開示されている。
以上に述べたシミュレーションハードウエア、あるいは文献においては、本発明が対象とするレベルソート法を用いていても、シミュレーションがゲートレベルで行われており、論理ブロックレベルでシミュレーションを実行する論理シミュレーション装置は実現されていないという問題点があった。
レベルソート法は理論的には最も古くから用いられている方法であるが、前述のようにレベルに対応して全てのゲートに対する計算が必要となるため、物量的に非常に大きくなり、数千万ゲート以上からなる大規模ディジタル回路の論理シミュレーションに適用することを目的として、実用的に使用可能な規模の装置を作ることは困難であると考えられていた。
次に従来の論理シミュレータにおいては、一般に、計算すなわち評価を行うプロセッサと、プロセッサ間の通信を行うプロセッサとが分離されていた。すなわち並列処理用のプロセッサ群と、通信用のネットワークとが分離されており、プロセッサ間の通信距離に差があるために、システム全体の速度が低下するという問題点があった。
図１４，図１５はこの問題点の説明図である。図１４は論理シミュレーション装置の従来例の構成を示し、プロセッサ群とネットワークとが分離されている。
シミュレーションには論理演算、すなわち評価とその評価に伴う更新の作業がある。高速な処理を実現するために、評価は分割／並列的に実行される。結果の更新については、評価結果を使用する評価単位としてのプロセッサが分散されているために、他のプロセッサに結果を通知するための伝搬処理用のネットワークが必要である。
すなわち、それぞれのプロセッサの評価の結果は、その結果を必要とするプロセッサに伝搬された後に、次の演算が開始される。そこでシステムの性能は評価速度と伝搬速度との２つによって決まり、伝搬速度が遅い場合には全体としてシステムの速度が低下することになる。
図１５は各プロセッサの間の評価結果の伝搬の説明図である。プロセッサ０（ＰＥ０）の評価結果の伝搬が、近くのＰＥ１および遠くのＰＥｎに対して必要となる場合を考える。従来の方式では、遠方のプロセッサＰＥｎに評価結果を伝搬する時間によってシステム全体の伝搬速度が決定されてしまうことになる。従来はこの伝搬に要する時間の問題点を解消するために、処理のパイプライン化およびオーバラップなどによって、伝搬時間の影響を小さくする工夫がなされてきている。しかしながら大規模なデータ処理を行うためにプロセッサの数を大幅に増加する場合には、ハードウエアの物理的制約から伝搬速度の改善が難しくなってきている。
【発明の開示】
本発明の目的は、上述の問題点に鑑み、レベルソート法を用いて論理ブロックレベルでシミュレーションを実行し、また評価用のプロセッサと通信用のプロセッサとを分離することなく、評価と通信の両方を実行できる同一形式のプロセッサエレメントを用いる論理シミュレーション装置を提供することである。
図１は本発明の原理構成ブロック図である。同図は、レベルソートおよびコンパイル法を使用して、サイクルベースの論理シミュレーションを実行するシミュレーション装置の原理構成ブロック図である。
同図において、論理シミュレーション装置１は多数のプロセッサ２を備える。各プロセッサ２は、１つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理３と、他のプロセッサとの間の通信処理４とのいずれも実行可能なものである。
発明の実施の形態においては、前述の論理ブロックはハードワイヤード可能な形式の１つ以上のゲートから構成されることができる。
また実施の形態においては、前述の多数のプロセッサ２がそれぞれ複数のプロセッサによって構成されるプロセッサグループに分割され、複数のプロセッサグループが階層形のツリー形状に相互に接続されてクラスタを構成すると共に、複数のクラスタによって論理シミュレーション装置が構成されることもできる。
この場合、プロセッサグループ内の複数のプロセッサが相互に完全結合されることも、また階層型ツリー形状の下位側の階層において同一階層内の各プロセッサグループが相互に完全結合されることも、更に複数の各クラスタにおける最上位階層のプロセッサグループが他のクラスタ内の最上位階層のプロセッサグループと論理的に相互に完全結合されることもできる。
実施の形態においては、各プロセッサグループが、そのグループを構成する各プロセッサに対応して、メモリデータおよび外部入出力パターンの入出力制御を行う入出力プロセッサを備えることもでき、また階層型ツリー形状の下位側に属する各プロセッサグループに対応して、シミュレーションのトレースデータと外部入力信号パターンとを格納するトレースデータ記憶手段と、キャッシュメモリに相当する小容量のデータ記憶手段とを備えることもでき、更にツリー形状の上位側に属する各プロセッサグループに対応して、主記憶に相当する大容量データ記憶手段を備えることもできる。
更に実施の形態においては、論理シミュレーション装置において、前述の多数のプロセッサによる分散型超並列アーキテクチャが採用されることもできる。
以上のように本発明によれば、論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサによって論理シミュレーション装置が構成される。
【図面の簡単な説明】  図１は、本発明の論理シミュレーション装置の原理構成ブロック図である。
図２は、８つのクラスタによって構成されるシステムのネットワーク構成の説明図である。
図３は、クラスタ内の下位側の階層におけるプロセッサエレメントグループの接続関係の説明図である。
図４は、クラスタの詳細構成を示すブロック図である。
図５は、プロセッサエレメントグループの構成を示すブロック図である。
図６は、本実施形態における論理プリミティブを示す図である。
図７は、本実施形態におけるメモリプリミティブを示す図である。
図８は、プロセッサエレメントに対する動作サイクルの説明図である。
図９は、プロセッサエレメントの詳細構成を示すブロック図である。
図１０は、プロセッサエレメントに対する命令の種類を示す図である。
図１１は、論理演算器（ＬＯＵ）の構成を示すブロック図である。
図１２は、基本演算回路（ＬＥ）の構成例を示す図である。
図１３は、図１１，図１２に対する論理回路のマッピング例を示す図である。
図１４は、論理シミュレーション装置の従来例の構成を示す図である。
図１５は、従来例におけるプロセッサ間の通信方式の説明図である。
【発明を実施するための最良の形態】  まず本発明の論理シミュレーション装置の実施形態における特徴について説明する。第１の特徴は最大約８７，０００個の専用プロセッサ（プロセッサエレメント、ＰＥ）を用いた分散型超並列アーキテクチャを採用していることである。本実施形態においては、分散型の超並列アーキテクチャを用いることによって、システムの高性能化と、柔軟な拡張性を図ることができる。
第２の特徴は、論理ブロックレベルでレベルソートおよびコンパイル法を実行するシミュレーション手法を用いることである。回路の評価処理単位（プリミティブ）を、複数ゲートから構成されるブロックとすることによって、実効的なシミュレーション容量の大規模化と、評価対象数の低減による高速化が実現される。
第３の特徴は１種類のプロセッサエレメント（ＰＥ）のみを用いたシステム構築方式である。従来のようにプロセッサ専用回路と通信専用回路を別々に用いたシステム実装方式を避けて、１種類のＰＥを一様なルールで相互に接続することによって、システム実装の容易化と、低コスト化を図っている。各プロセッサに対しては、回路のモデリングにあたって、プログラムによって評価処理、または通信処理のいずれかを実行するか、あるいは評価処理または通信処理のいずれかに重点をおいた動作を行うかの割当てが行われる。
次に全体的なシステム構成について説明する。システムは最大８個のクラスタによって構成される。図２は８個のクラスタ、すなわちクラスタ０からクラスタ７によって構成されるシステムのネットワーク構成の説明図である。
数万プロセッサから構成される超並列システムにおいては、システムの性能、および規模の要件を満たすために、ネットワークアーキテクチャの構築方法が大きな問題となる。回路モデルのプロセッサ分割の容易性、および性能の観点からすれば、プロセッサ間の完全結合方式が最も望ましい接続形態である。しかしながら、回路実装テクノロジの物理的制約から数万プロセッサの完全結合を実現することは困難である。そこで本実施形態ではツリー型階層ネットワークを基本アーキテクチャとして、部分完全結合による接続方式を採用した。
本実施形態におけるネットワークアーキテクチャは、次の３つの特徴を持っている。第１の特徴はツリー型階層ネットワークを採用することによって、スケーラブルな拡張性を持つことである。
第２の特徴は、部分完全結合方式を用いることによるプロセッサ間通信の局所的最適化である。一般的に大規模な回路においては、設計階層に基づく通信接続関係の局所性が存在する。下位階層になるに従って相互接続が多くなる傾向がある。従って下位側の階層におけるプロセッサ間通信時間を、例えば完全接続によって最小化することによって、性能向上を図ることができる。
第３の特徴は、前述の同一プロセッサエレメントＰＥを用いることによるネットワーク構築の容易性である。通信処理と評価処理とを１つのプロセッサで可能とすることによって、システム実装の容易性と低コストが図られている。
図２において８個の各クラスタは、最大５階層からなるツリー型の階層ネットワーク構造を持っている。各階層におけるノード（○印）は、それぞれ後述するプロセッサエレメントグループ（ＰＥＧ）に相当する。各階層は、上位側の階層の１つのノードを中心に、下位側の階層の４つのノードが接続される形式が基本となっている。各クラスタは、最上位の階層Ｌ４において、論理的にはそれぞれ１つのＰＥＧが各クラスタ間で相互に１対１に接続される形式となる。この形式については図４でさらに詳述する。
図３は本実施形態におけるクラスタ内の最下位の階層Ｌ０内のＰＥＧの接続関係と、１つ上の階層Ｌ１内のＰＥＧとの接続関係の説明図である。本実施形態においては、物理的な実現可能性と、下位側の階層におけるプロセッサ間の高速通信の必要性から、下位側の階層Ｌ０とＬ１階層内のノード間が部分完全結合とされ、Ｌ２とＬ３階層のノード間、およびＬ１とＬ２階層のノード間はそれぞれツリー型で接続する方式を用いた。図３においては、Ｌ０階層内におけるノード間の結合と、そのＬ０階層内の各ノードと１つ上位のＬ１階層内のノードとの結合を示している。
図４は図２のおける１つのクラスタの詳細構成図である。各クラスタは約１１Ｋ個のプロセッサと、２種類のメモリ回路によって構成される。前述のように、各クラスタは５つの階層からなるツリー型の階層ネットワーク構造を持ち、最上位階層でそれぞれ１対１に完全結合される。
図４において、複数のプロセッサがプロセッサエレメントグループ（ＰＥＧ）を構成する。すなわち論理回路の評価、および通信処理を行うことができるプロセッサエレメント（ＰＥ）６４個、メモリ回路の評価および外部入出力パターンの書込み／読み出し制御を行う入出力プロセッサＩＯＰ２１、およびＰＥＧ内の全てのプロセッサを相互に１対１に直接接続するためのインターコネクト回路ＤＩＳＴ（ディストリビューションサーキッド）２２によってＰＥＧ１０が構成される。プロセッサエレメントＰＥは０．１８μｍＣＭＯＳＬＳＩテクノロジによる実装を前提として、その物理的制約から６４個単位にグループ化される。
前述のように階層設計における接続関係として、下位側の階層になるほど接続先および接続数が増大するため、本実施形態では、下位階層におけるプロセッサ間の高速データ転送を実現するために、ＰＥＧ内の全ＰＥ間が完全結合される接続形態が採用されている。
最下位の階層を構成するＰＥＧ１０内のＩＯＰ２１には、２つのメモリＭＲＡＭ１３とＴＲＡＭ１４が接続されている。ＭＲＡＭ（メモリＲＡＭ）はキャッシュメモリに相当し、小規模のデータを格納する４Ｍバイトのランダムアクセスメモリであり、ＩＯＰ２１に対するメモリデータの高速転送を行うために、最下位の階層の各ＰＥＧに対して配置される。
ＴＲＡＭ（トレースメモリ）は、シミュレーションのトレースデータと外部入力信号パターンを格納するメモリであり、１２８Ｍバイトの容量を持っている。システム内のプロセッサから送り出される多量のトレースデータをローカル処理することによって、ネットワークのオーバーフローを回避するために、ＴＲＡＭ１４は評価処理が主体となる最下位階層のＰＥＧ１０に対応して配置される。
図４においてＭＲＡＭ１２が上位側階層、図２では最上位から２番目の階層Ｌ３内のＰＥＧに対して配置されている。このＭＲＡＭ１２は主記憶に相当し、大容量のデータを格納できる、例えば２Ｇバイトのランダムアクセスメモリである。大規模メモリ回路は、通常ハードウエアシステムの設計段階において最上位側の階層に位置づけられる。従ってクラスタ内の各ＰＥに対するメモリデータの転送距離を一様化するために、２ＧバイトのＭＲＡＭ１２が各クラスタの最上位側の階層に配置される。ＭＲＡＭ１２もＰＥＧ１０内のＩＯＰ２１に直接接続されて制御される。
前述のように各クラスタの最上位の階層においては、論理的にはそれぞれ１つのＰＥＧが、各クラスタ間で相互に１対１に接続される形式となっている。図４では最上位の階層にＰＥＧが２つ存在するが、これは実装上の理由によるものである。
図４において、最上位の階層より１つ下の階層にもＰＥＧが２つ存在し、この２つのＰＥＧはそれぞれ最上位の階層のＰＥＧと相互に完全結合される形式となっている。そこで更に下位のＰＥＧ、すなわち図２のＬ２〜Ｌ０の階層にあるＰＥＧから見れば、他のクラスタのＰＥＧに対しては最上位の階層Ｌ４における論理的には１つのＰＥＧを介して接続されることになる。
図４においてＣＰ（コントロールプロセッサ）１１は、最大８個のクラスタによって構成されるシステム全体を制御するものであり、プロセッサ間の同期制御、およびシステムの状態監視を行うものである。
図５は図４における１つのプロセッサエレメントグループＰＥＧ１０の構成ブロック図である。ＰＥＧ１０は、前述のように完全結合された６４個のＰＥ２０と、１個のＩＯＰ２１によって構成される。ＰＥＧ１０に対する入出力としては、上位階層のＰＥＧと接続するための４ビット×６４幅の１組の入出力ポートＵと、下位階層のＰＥＧとの接続のための４ビット×６４幅の１組の入出力ポートＬがある。
ＰＥＧ１０内の各ＰＥ２０は、４ビット×６４幅の入出力ポートを３組持っている。Ｉポートは自ＰＥＧ１０内でのプロセッサの出力を、各プロセッサの入力に与えるための接続ポートである。ＵおよびＬポートは、上位階層のＰＥＧ１０、および下位階層のＰＥＧ１０との接続ポートである。
次に各プロセッサエレメントの動作、および構成について説明する。プロセッサエレメントＰＥは、前述のように論理回路モデルの評価およびプロセッサ間の通信処理のいずれをも実行できる専用プロセッサである。ＰＥは図６に示される論理プリミティブ、および図７に示されるメモリプリミティブを評価単位として、評価処理を実行する。
図６は１６入力、４出力の組合せ回路からなる論理ブロックであり、この論理ブロックは基本的に１マシンサイクルで評価される。各ＰＥは最大６４個の論理ブロックを格納することができる。
図７は、データｍビット（入出力）とアドレスｎビット（入力）のメモリ素子に相当するメモリプリミティブである。入力としてはさらにチップセレクト１ビットとライトイネーブル１ビットを持つ。
シミュレーションにおいて、非検証回路は図６，図７のプリミティブをテンプレートした論理ブロックのネットリストとして表現される。論理ブロックの評価は、外部入力端子および記憶素子からの論理段数の深さに基づいてレベル付けされた各論理ブロックを、レベル番号の昇順に順次評価処理することで行われる（レベルソート法）。
また各論理ブロックの評価順序、および評価結果の信号伝達順序は、プロセッサに対する命令を用いてプログラムとして表現される（コンパイル法）。プログラム化された回路モデルは、プログラムの命令順序に従って、プロセッサによって解釈されて実行される。
システム内の全てのＰＥは、図４の制御プロセッサＣＰ１１から送り出されるスタート信号に対応して同期動作を行う。また各プロセッサは後述するシミュレーションクロックの期間中、それぞれ独立に動作する。これはレベルソートおよびコンパイル法では、１シミュレーションクロック内の回路の評価順序はモデル作成時にあらかじめ確定され、個々に独立動作しても論理矛盾が生じないためである。
図８はＰＥに対する動作サイクルの説明図である。各ＰＥは４つの基本サイクルに対応して、時刻管理される。前述のように、各ＰＥは制御プロセッサＣＰから発行されるスタート信号に対応して、シミュレーションサイクルＳＣを開始する。ＰＥの最小動作サイクルはシステムの基本クロックに対応するマシンサイクルＭＣであり、本実施形態ではシステムはこのマシンサイクルを基準とする同期回路として動作する。
ユニットサイクルＵＣはシステム動作の基本サイクルであり、ＰＥにおける１命令の実行サイクルを示す。１ＵＣは基本的には１ＭＣであるが、１ＵＣ内でデータ信号を多量に転送する場合などは２ＭＣ以上となる。レベルサイクルＬＣは、レベルソート法における１つのレベルの実行サイクルに相当する。
例えばあるＰＥにおいて１つのレベルで１個の論理ブロックを評価処理する場合には１ＬＣ＝１ＵＣであるが、１つのレベル内でｎ個の論理ブロックを処理する場合には１ＬＣ＝ｎ×ＵＣとなる。最上位のシミュレーションサイクルＳＣは１シミュレーションクロックの実行サイクルを意味し、ＬＣの整数倍で表される。
図９はＰＥの詳細構成ブロック図である。シミュレーションの実行は、制御メモリＣＲＡＭ（コントロールＲＡＭ）２５に格納されている制御プログラムによって制御される。制御プログラムは被検証回路の論理ブロックのネットリストと、それに対応する実行手順をＰＥに対する命令語で表現した、等価な回路モデルに相当する。１つの論理ブロックに対する評価処理は基本的に１つのＰＥ命令で表現される。
ＣＲＡＭ２５は２８７ビット×６４ワードのメモリであり、命令語長２８７ビットのＰＥ命令を最大６４個まで格納できるＣＲＡＭの深さは、フリップフロップの間の組合せ回路のゲート段数が通常２０段、もしくは３０段以内であることから、余裕をみて論理ブロックレベルで最大６４段まで扱えるように設計されている。
またＰＥの間でＣＲＡＭ２５を論理的に連結することによって、１シミュレーションサイクルにおける論理ブロック段数を最大２５６段まで拡張可能としている。またＣＲＡＭ２５内の各命令は、ＰＥ内のプログラムカウンタＰＣの示すアドレスに従って読み出されて実行される。
ＣＲＡＭ２５に格納されている命令後は７つの制御フィールドから構成されている。制御フィールドは、時刻管理および条件監視を行う２つの制御フィールド（ＯＰ，Ｘ）と、データパス制御を行う５つの制御フィールド（ＩＳ，ＦＮ，ＬＶ，ＯＳ，ＳＷ）からなっている。
ＯＰフィールドはＣＲＡＭ２５の動作を制御するフィールドで、命令タイプを示す３ビットのオペコードと、制御データとしての８ビットのオペランドからなる。オペコードはプログラムカウンタＰＣ２６の制御コードであり、デコーダ２７で解釈されて、ＰＣ２６の制御に用いられる。Ｘフィールドはトレースデータ、および監視条件信号を示す２ビットのフラグである。
図１０はＰＥに対する命令の種類を示す。本実施形態においては、ＣＲＡＭ２５の限られたアドレス空間を効率的に使用するために、同図に示される６種類の基本命令がサポートされている。例えばレベルソート法において複数のＰＥが１シミュレーションサイクルＳＣの処理を実行する場合に、シミュレーションサイクルＳＣはＰＥの中で最大の数の論理プリミティブを評価するＰＥに対応するレベルサイクル数によって決定される。その他のＰＥは、割り当てられた論理プリミティブに対する評価終了後がアイドル状態となり、ｎｏｐ命令、またはｗａｉｔ命令を実行して、それぞれ１ＳＣを終了することになる。
前述のようにＰＥに対する入力信号はＩ，ＵおよびＬの３つの信号グループから構成されている。各信号グループは４ビット×６４の幅を持つ。ここで６４は接続先のＰＥの数に相当する。ＩグループはそのＰＥが属するプロセッサグループ（ＰＥＧ）内の６４個のプロセッサからの入力信号、ＵおよびＬは他のＰＥＧからの入力信号である。
入力セレクタＩＳＬ２８は、論理演算器ＬＯＵ２９（ロジカル・オペレーション・ユニット）に与えるべき１６本の出力信号を選択する回路である。ＩＳＬは論理的に７６８対１６のセレクタ回路であり、１９２対１のセレクタ１６個を４行×４列のアレー状に配置して構成される。各列の４つのセレクタには、１９２個のＰＥからの同一番号の出力線がそれぞれ接続される。各ＰＥの入出力数に対称性を持たるために、１９２×４ビットの入力のうち、６４×４ビットは同一グループのＰＥから、残り１２８×４ビットは他のグループ内のＰＥからそれぞれ入力される。ＩＳＬ２８は、ＣＲＡＭ２５から出力される８ビット×１６のＩＳフィールドの信号によって選択制御される。
論理演算器ＬＯＵ２９は、論理ブロックの評価を実行する回路である。ＬＯＵの論理演算機能は、評価対象の論理ブロックのゲート構成に対応して、ＬＯＵ２９を構成する各基本演算回路、ＬＥ（ロジカル・エレメント）の論理機能を組み合わせることによって実現される。ＬＯＵおよびＬＥの構成をそれぞれ図１１，図１２に示す。
図１１においてＬＯＵは１２個のＬＥから構成される。ＬＯＵ２９の回路構成として、目標マシンサイクルおよび被検証回路の論理プリミティブへのマッピング効率の観点から、４個のＬＥを３段とする回路構造を採用している。
図１２において、各ＬＥには４入力のＡＮＤ回路３６、ＯＲ回路３７、ＸＯＲ回路３８、およびＡＮＤ／ＯＲ回路３９の４種類の基本回路がそれぞれ１個ずつ実装され、この中の１つの基本回路がセレクタ４０によって選択される形式となっている。
また論理プリミティブへのマッピング効率を向上させるために、各ＬＥの入力および出力端に、極性反転用の制御としてＸＯＲ回路３５，４１が配置されている。
演算器ＬＯＵ２９は、４入力のゲートから構成される、最大１２ゲートの組み合せ回路を１マシンサイクルで評価することになる。その論理機能は、ＣＲＡＭ２５からの７ビット×１２のＦＮフィールドの信号によって制御される。
図１２のＬＥの論理機能は、ＩＮＶとＦＮＣの信号によって決定される。ＩＮＶはＸＯＲ３５，４１の論理反転機能を制御し、またＦＮＣは４つの基本回路のいずれかの選択信号として用いられる。
図９の状態値レジスタＳＲ３０は、演算器ＬＯＵ２９によって評価された論理ブロックの出力信号値を格納するレジスタである。１個のＳＲは６４ビット×１ワードのレジスタであり、ＬＯＵの各出力に１対１に対応して４個実装される。ＬＯＵ２９の出力の値は、同一ビットアドレスで４つのＳＲに同時に書き込まれる。またデータの読み出しは各ＳＲに対して独立に任意のアドレスを用いて行うことができる。ＳＲは全てのレベルサイクルにおける論理ブロックの出力値を、１シミュレーションサイクルの間保持する。ＳＲに対する書込みアドレスはＣＲＡＭ２５からの６ビットのＬＵフィールドによって与えられる。
出力セレクタＯＳＬ（アウト・プット・セレクタ）３１は、４つの状態値レジスタＳＲに書き込まれた論理ブロックに対する評価処理の出力値を読み出して、ＰＥの出力値を確定するものである。ＯＳＬ３１は論理的に２５６対１のセレクタ回路で構成され、４つの各状態値レジスタのアドレスを１つにまとめたアドレス空間６４ビット×４の任意のアドレスを選択できる。全アドレス空間へのアクセス機能は、ＳＲ上の特定アドレスへの読み出しの競合によって生ずる待ち時間を最小化するために実装されている。ＯＳＬ３１の動作はＣＲＡＭ２５からの８ビット×４ビットのＯＳフィールドによって制御される。
出力スイッチＳＷ３２は、出力セレクタＯＳＬ３１によって読み出されたデータ信号を行き先のＰＥに転送するために、ＯＳＬの出力端子と、行き先のＰＥに接続されているＰＥの出力端子とを接続する回路である。すなわちＰＥの間の接続が配線によって固定化されるため、ＯＳＬ３１の４つの出力端子をデータ信号の行き先に応じて１２本の出力端子の適当な１つと接続することにより、パスを形成するものである。ＰＥの出力信号線はそれぞれの接続先のＰＥに対応して４ビットからなる３つのグループに分けられる。各グループＩ，Ｕ，およびＬの定義は入力信号に対すると同様である。ＳＷ３２はＣＲＡＭ２５からの２ビット×１２のＳＷフィールドの信号によって、４対１２の接続パスを形成するように制御される。
図１３は、図１１および図１２に示した論理演算器ＬＯＵ２９に対する回路のマッピング例を示す。上の図はマッピング対象回路であり、それを図１１の１２個の基本演算回路ＬＥにマッピングした結果が下の図である。同図において、１段目のＬＥ＃３は２段目のＬＥの全てに“０”を出力するためのものであり、２段目のＬＥ＃５とＬＥ＃７とは３段目の全てのＬＥにそれぞれ“１”を出力するためのものであり、３段目のＬＥ＃８とＬＥ＃１０とは実質的にスルーの動作をするものである。
以上において本発明の実施形態について詳細に説明したが、例えば図９におけるＣＲＡＭ２５の出力する各制御ビットなどは、当然単に１つの実装形態を示すものであり、また図１２に示した演算エレメントＬＥの構成においても入力部に更にセレクタを設けたり、基本演算回路の種類を変更することなどは当然可能である。
以上詳細に説明したように本発明によれば、レベルソートおよびコンパイル法を用いて、論理ブロックレベルで大規模ディジタル回路の論理シミュレーションを実行でき、実用的に容易に使用できる規模の装置を提供することが可能となる。
また評価用のプロセッサと通信用のプロセッサとを分離することなく、評価と通信の両方を実行できる同一形式のプロセッサエレメントを用い、それらのプロセッサエレメントをグループとして、複数のグループを階層型のツリー形状に相互に接続することによって、システム全体での高速性が実現される。
【産業上の利用可能性】  本発明はディジタル・システム機器における大規模かつ高速の論理検証や論理設計を必要とするすべての産業において利用可能である。
【図１】
2004061722.tif 000003
【図２】
2004061722.tif 000004
【図３】
2004061722.tif 000005
【図４】
2004061722.tif 000006
【図５】
2004061722.tif 000007
【図６】
2004061722.tif 000008
【図７】
2004061722.tif 000009
【図８】
2004061722.tif 000010
【図９】
2004061722.tif 000011
【図１０】
2004061722.tif 000012
【図１１】
2004061722.tif 000013
【図１２】
2004061722.tif 000014
【図１３】
2004061722.tif 000015
【図１４】
2004061722.tif 000016
【図１５】
2004061722.tif 000017
【国際調査報告】
2004061722.tif 000018
2004061722.tif 000019
2004061722.tif 000020
2004061722.tif 000021