説明

論理シミュレーション装置

レベルソートおよびコンパイル法を用いて、サイクルベースでシミュレーションを実行し、実用的に使用可能な規模で、システム全体での高速性を実現するために、1つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサを備え、複数のプロセッサによって構成される各プロセッサグループが、ツリー形状の階層型に接続される。

【発明の詳細な説明】
【技術分野】
本発明は大規模論理回路のシミュレーション方式に係わり、更に詳しくは、数千万ゲート以上の大規模ディジタル回路の高速シミュレーションを目的として、論理ブロックレベルでシミュレーションを実行する分散型超並列プロセッサ方式のサイクルベース論理シミュレーション装置に関する。
【背景技術】
近年CMOSLSI技術の急速な進歩に伴って、ディジタルシステム機器の高性能化と高機能化が急速に進展している。システム回路のほとんどがLSIとして集約され、また製品開発期間の短縮が進んでいる状況で、いかに早期に高品質な設計を実現して商品の早期市場投入を図るかが、新製品開発における最重要課題となっている。その対策として、大規模なシステム回路の論理検証を効率的に行うための大容量、かつ高速なシミュレーション装置が強く求められている。
論理シミュレーションの高性能化のために専用ハードウエアの研究開発がなされてきた。これらの専用ハードウエア実現方式は基本的にプロセッサ方式と、FPGA(フィールド・プログラマブル・ゲート・アレイ)方式とに分類される。
プロセッサ方式では、回路モデルがプロセッサの命令に置き換えられてシミュレーションアルゴリズムが実行される。実際のハードウエア回路を模擬するFPGA方式に比べて処理速度は遅いが、回路モデルのセットアップの時間が短く、またプロセッサの数の増加によって、性能向上と大容量化を図ることができるという特徴がある。
FPGA方式では、回路モデルのマッピングにより直接的に回路動作の模擬が行われるため、高速処理が実現されるが、回路規模の増大に対応して動作周波数が低下するなどの理由から、大容量化には難点がある。
プロセッサ方式のシミュレーション専用ハードウエアは基本的にレベルソート法と、イベント法とに大別される。
レベルソート法では、論理検証が行われるべき回路の外部入力端子、あるいは記憶素子からの段数に基づいてレベル番号が割り付けられ、レベル番号に対応して次々とシミュレーションが実行される。シミュレーションの実行によって、このレベル番号に対応するゲートの出力の変化の有無に関係なく、全てのゲートに対して計算が行われる。
イベント法では、イベントドリブン、すなわち入力信号の変化をイベントとして、そのイベントに対応してゲートの出力の評価が行われ、出力が変化した場合にその変化がイベントとして回路内で伝えられて、順番にゲートに対する計算が行われる。
レベルソート法とイベント法とを組み合わせたアルゴリズムに基づいて、論理ブロックレベルでシミュレーションを実行する専用ハードウエアも発表されているが、本発明ではレベルソート法を採用した論理シミュレーション装置を対象とする。このようなレベルソート法に基づく専用ハードウエアは、遅延時間を扱うことができないため、いずれも同期回路を対象としたサイクルベース型のシミュレータである。
以上に述べたような論理シミュレーション装置や、超並列プロセッサ結合方式については、次のような文献があある。
【特許文献1】 特開2000−36737号公報「電気的に再構成可能なゲートアレイロジックを用いる方法及び、これによって構成される装置」
【特許文献2】 特開平7−200508号公報「ノード間結合方式」
【特許文献3】 特開昭64−26969号公報「プログラマブルアクセラレータ及びその方法」
特許文献1では、電気的に再構成可能なゲートアレーが再構成可能な相互接続を介して接続され、接続の再構成によって相互接続チップ上に実現されたディジタル回路網が変更され、シミュレーション、プロトタイピング、実行計画を含む各種の目的に適合するシステムが開示されている。
特許文献2では、超並列計算機向けの結合トポロジーとして、n次元メッシュ状にリンクで接続された第1の種類のノードに対して、ある次元に関して第2の種類のノードが接続された結合方式が開示されている。
特許文献3では、プログラマブルアクセラレータ、すなわちプログラマブルな論理シミュレーション装置として、スイッチを介してクラスタを形成するようにフレキシブルに相互接続された、複数の実質的に同じプロセッサエレメントが採用され、そのプロセッサがプログラマブルであるアクセラレータが開示されている。
以上に述べたシミュレーションハードウエア、あるいは文献においては、本発明が対象とするレベルソート法を用いていても、シミュレーションがゲートレベルで行われており、論理ブロックレベルでシミュレーションを実行する論理シミュレーション装置は実現されていないという問題点があった。
レベルソート法は理論的には最も古くから用いられている方法であるが、前述のようにレベルに対応して全てのゲートに対する計算が必要となるため、物量的に非常に大きくなり、数千万ゲート以上からなる大規模ディジタル回路の論理シミュレーションに適用することを目的として、実用的に使用可能な規模の装置を作ることは困難であると考えられていた。
次に従来の論理シミュレータにおいては、一般に、計算すなわち評価を行うプロセッサと、プロセッサ間の通信を行うプロセッサとが分離されていた。すなわち並列処理用のプロセッサ群と、通信用のネットワークとが分離されており、プロセッサ間の通信距離に差があるために、システム全体の速度が低下するという問題点があった。
図14,図15はこの問題点の説明図である。図14は論理シミュレーション装置の従来例の構成を示し、プロセッサ群とネットワークとが分離されている。
シミュレーションには論理演算、すなわち評価とその評価に伴う更新の作業がある。高速な処理を実現するために、評価は分割/並列的に実行される。結果の更新については、評価結果を使用する評価単位としてのプロセッサが分散されているために、他のプロセッサに結果を通知するための伝搬処理用のネットワークが必要である。
すなわち、それぞれのプロセッサの評価の結果は、その結果を必要とするプロセッサに伝搬された後に、次の演算が開始される。そこでシステムの性能は評価速度と伝搬速度との2つによって決まり、伝搬速度が遅い場合には全体としてシステムの速度が低下することになる。
図15は各プロセッサの間の評価結果の伝搬の説明図である。プロセッサ0(PE0)の評価結果の伝搬が、近くのPE1および遠くのPEnに対して必要となる場合を考える。従来の方式では、遠方のプロセッサPEnに評価結果を伝搬する時間によってシステム全体の伝搬速度が決定されてしまうことになる。従来はこの伝搬に要する時間の問題点を解消するために、処理のパイプライン化およびオーバラップなどによって、伝搬時間の影響を小さくする工夫がなされてきている。しかしながら大規模なデータ処理を行うためにプロセッサの数を大幅に増加する場合には、ハードウエアの物理的制約から伝搬速度の改善が難しくなってきている。
【発明の開示】
本発明の目的は、上述の問題点に鑑み、レベルソート法を用いて論理ブロックレベルでシミュレーションを実行し、また評価用のプロセッサと通信用のプロセッサとを分離することなく、評価と通信の両方を実行できる同一形式のプロセッサエレメントを用いる論理シミュレーション装置を提供することである。
図1は本発明の原理構成ブロック図である。同図は、レベルソートおよびコンパイル法を使用して、サイクルベースの論理シミュレーションを実行するシミュレーション装置の原理構成ブロック図である。
同図において、論理シミュレーション装置1は多数のプロセッサ2を備える。各プロセッサ2は、1つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理3と、他のプロセッサとの間の通信処理4とのいずれも実行可能なものである。
発明の実施の形態においては、前述の論理ブロックはハードワイヤード可能な形式の1つ以上のゲートから構成されることができる。
また実施の形態においては、前述の多数のプロセッサ2がそれぞれ複数のプロセッサによって構成されるプロセッサグループに分割され、複数のプロセッサグループが階層形のツリー形状に相互に接続されてクラスタを構成すると共に、複数のクラスタによって論理シミュレーション装置が構成されることもできる。
この場合、プロセッサグループ内の複数のプロセッサが相互に完全結合されることも、また階層型ツリー形状の下位側の階層において同一階層内の各プロセッサグループが相互に完全結合されることも、更に複数の各クラスタにおける最上位階層のプロセッサグループが他のクラスタ内の最上位階層のプロセッサグループと論理的に相互に完全結合されることもできる。
実施の形態においては、各プロセッサグループが、そのグループを構成する各プロセッサに対応して、メモリデータおよび外部入出力パターンの入出力制御を行う入出力プロセッサを備えることもでき、また階層型ツリー形状の下位側に属する各プロセッサグループに対応して、シミュレーションのトレースデータと外部入力信号パターンとを格納するトレースデータ記憶手段と、キャッシュメモリに相当する小容量のデータ記憶手段とを備えることもでき、更にツリー形状の上位側に属する各プロセッサグループに対応して、主記憶に相当する大容量データ記憶手段を備えることもできる。
更に実施の形態においては、論理シミュレーション装置において、前述の多数のプロセッサによる分散型超並列アーキテクチャが採用されることもできる。
以上のように本発明によれば、論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサによって論理シミュレーション装置が構成される。
【図面の簡単な説明】
図1は、本発明の論理シミュレーション装置の原理構成ブロック図である。
図2は、8つのクラスタによって構成されるシステムのネットワーク構成の説明図である。
図3は、クラスタ内の下位側の階層におけるプロセッサエレメントグループの接続関係の説明図である。
図4は、クラスタの詳細構成を示すブロック図である。
図5は、プロセッサエレメントグループの構成を示すブロック図である。
図6は、本実施形態における論理プリミティブを示す図である。
図7は、本実施形態におけるメモリプリミティブを示す図である。
図8は、プロセッサエレメントに対する動作サイクルの説明図である。
図9は、プロセッサエレメントの詳細構成を示すブロック図である。
図10は、プロセッサエレメントに対する命令の種類を示す図である。
図11は、論理演算器(LOU)の構成を示すブロック図である。
図12は、基本演算回路(LE)の構成例を示す図である。
図13は、図11,図12に対する論理回路のマッピング例を示す図である。
図14は、論理シミュレーション装置の従来例の構成を示す図である。
図15は、従来例におけるプロセッサ間の通信方式の説明図である。
【発明を実施するための最良の形態】
まず本発明の論理シミュレーション装置の実施形態における特徴について説明する。第1の特徴は最大約87,000個の専用プロセッサ(プロセッサエレメント、PE)を用いた分散型超並列アーキテクチャを採用していることである。本実施形態においては、分散型の超並列アーキテクチャを用いることによって、システムの高性能化と、柔軟な拡張性を図ることができる。
第2の特徴は、論理ブロックレベルでレベルソートおよびコンパイル法を実行するシミュレーション手法を用いることである。回路の評価処理単位(プリミティブ)を、複数ゲートから構成されるブロックとすることによって、実効的なシミュレーション容量の大規模化と、評価対象数の低減による高速化が実現される。
第3の特徴は1種類のプロセッサエレメント(PE)のみを用いたシステム構築方式である。従来のようにプロセッサ専用回路と通信専用回路を別々に用いたシステム実装方式を避けて、1種類のPEを一様なルールで相互に接続することによって、システム実装の容易化と、低コスト化を図っている。各プロセッサに対しては、回路のモデリングにあたって、プログラムによって評価処理、または通信処理のいずれかを実行するか、あるいは評価処理または通信処理のいずれかに重点をおいた動作を行うかの割当てが行われる。
次に全体的なシステム構成について説明する。システムは最大8個のクラスタによって構成される。図2は8個のクラスタ、すなわちクラスタ0からクラスタ7によって構成されるシステムのネットワーク構成の説明図である。
数万プロセッサから構成される超並列システムにおいては、システムの性能、および規模の要件を満たすために、ネットワークアーキテクチャの構築方法が大きな問題となる。回路モデルのプロセッサ分割の容易性、および性能の観点からすれば、プロセッサ間の完全結合方式が最も望ましい接続形態である。しかしながら、回路実装テクノロジの物理的制約から数万プロセッサの完全結合を実現することは困難である。そこで本実施形態ではツリー型階層ネットワークを基本アーキテクチャとして、部分完全結合による接続方式を採用した。
本実施形態におけるネットワークアーキテクチャは、次の3つの特徴を持っている。第1の特徴はツリー型階層ネットワークを採用することによって、スケーラブルな拡張性を持つことである。
第2の特徴は、部分完全結合方式を用いることによるプロセッサ間通信の局所的最適化である。一般的に大規模な回路においては、設計階層に基づく通信接続関係の局所性が存在する。下位階層になるに従って相互接続が多くなる傾向がある。従って下位側の階層におけるプロセッサ間通信時間を、例えば完全接続によって最小化することによって、性能向上を図ることができる。
第3の特徴は、前述の同一プロセッサエレメントPEを用いることによるネットワーク構築の容易性である。通信処理と評価処理とを1つのプロセッサで可能とすることによって、システム実装の容易性と低コストが図られている。
図2において8個の各クラスタは、最大5階層からなるツリー型の階層ネットワーク構造を持っている。各階層におけるノード(○印)は、それぞれ後述するプロセッサエレメントグループ(PEG)に相当する。各階層は、上位側の階層の1つのノードを中心に、下位側の階層の4つのノードが接続される形式が基本となっている。各クラスタは、最上位の階層L4において、論理的にはそれぞれ1つのPEGが各クラスタ間で相互に1対1に接続される形式となる。この形式については図4でさらに詳述する。
図3は本実施形態におけるクラスタ内の最下位の階層L0内のPEGの接続関係と、1つ上の階層L1内のPEGとの接続関係の説明図である。本実施形態においては、物理的な実現可能性と、下位側の階層におけるプロセッサ間の高速通信の必要性から、下位側の階層L0とL1階層内のノード間が部分完全結合とされ、L2とL3階層のノード間、およびL1とL2階層のノード間はそれぞれツリー型で接続する方式を用いた。図3においては、L0階層内におけるノード間の結合と、そのL0階層内の各ノードと1つ上位のL1階層内のノードとの結合を示している。
図4は図2のおける1つのクラスタの詳細構成図である。各クラスタは約11K個のプロセッサと、2種類のメモリ回路によって構成される。前述のように、各クラスタは5つの階層からなるツリー型の階層ネットワーク構造を持ち、最上位階層でそれぞれ1対1に完全結合される。
図4において、複数のプロセッサがプロセッサエレメントグループ(PEG)を構成する。すなわち論理回路の評価、および通信処理を行うことができるプロセッサエレメント(PE)64個、メモリ回路の評価および外部入出力パターンの書込み/読み出し制御を行う入出力プロセッサIOP21、およびPEG内の全てのプロセッサを相互に1対1に直接接続するためのインターコネクト回路DIST(ディストリビューションサーキッド)22によってPEG10が構成される。プロセッサエレメントPEは0.18μmCMOSLSIテクノロジによる実装を前提として、その物理的制約から64個単位にグループ化される。
前述のように階層設計における接続関係として、下位側の階層になるほど接続先および接続数が増大するため、本実施形態では、下位階層におけるプロセッサ間の高速データ転送を実現するために、PEG内の全PE間が完全結合される接続形態が採用されている。
最下位の階層を構成するPEG10内のIOP21には、2つのメモリMRAM13とTRAM14が接続されている。MRAM(メモリRAM)はキャッシュメモリに相当し、小規模のデータを格納する4Mバイトのランダムアクセスメモリであり、IOP21に対するメモリデータの高速転送を行うために、最下位の階層の各PEGに対して配置される。
TRAM(トレースメモリ)は、シミュレーションのトレースデータと外部入力信号パターンを格納するメモリであり、128Mバイトの容量を持っている。システム内のプロセッサから送り出される多量のトレースデータをローカル処理することによって、ネットワークのオーバーフローを回避するために、TRAM14は評価処理が主体となる最下位階層のPEG10に対応して配置される。
図4においてMRAM12が上位側階層、図2では最上位から2番目の階層L3内のPEGに対して配置されている。このMRAM12は主記憶に相当し、大容量のデータを格納できる、例えば2Gバイトのランダムアクセスメモリである。大規模メモリ回路は、通常ハードウエアシステムの設計段階において最上位側の階層に位置づけられる。従ってクラスタ内の各PEに対するメモリデータの転送距離を一様化するために、2GバイトのMRAM12が各クラスタの最上位側の階層に配置される。MRAM12もPEG10内のIOP21に直接接続されて制御される。
前述のように各クラスタの最上位の階層においては、論理的にはそれぞれ1つのPEGが、各クラスタ間で相互に1対1に接続される形式となっている。図4では最上位の階層にPEGが2つ存在するが、これは実装上の理由によるものである。
図4において、最上位の階層より1つ下の階層にもPEGが2つ存在し、この2つのPEGはそれぞれ最上位の階層のPEGと相互に完全結合される形式となっている。そこで更に下位のPEG、すなわち図2のL2〜L0の階層にあるPEGから見れば、他のクラスタのPEGに対しては最上位の階層L4における論理的には1つのPEGを介して接続されることになる。
図4においてCP(コントロールプロセッサ)11は、最大8個のクラスタによって構成されるシステム全体を制御するものであり、プロセッサ間の同期制御、およびシステムの状態監視を行うものである。
図5は図4における1つのプロセッサエレメントグループPEG10の構成ブロック図である。PEG10は、前述のように完全結合された64個のPE20と、1個のIOP21によって構成される。PEG10に対する入出力としては、上位階層のPEGと接続するための4ビット×64幅の1組の入出力ポートUと、下位階層のPEGとの接続のための4ビット×64幅の1組の入出力ポートLがある。
PEG10内の各PE20は、4ビット×64幅の入出力ポートを3組持っている。Iポートは自PEG10内でのプロセッサの出力を、各プロセッサの入力に与えるための接続ポートである。UおよびLポートは、上位階層のPEG10、および下位階層のPEG10との接続ポートである。
次に各プロセッサエレメントの動作、および構成について説明する。プロセッサエレメントPEは、前述のように論理回路モデルの評価およびプロセッサ間の通信処理のいずれをも実行できる専用プロセッサである。PEは図6に示される論理プリミティブ、および図7に示されるメモリプリミティブを評価単位として、評価処理を実行する。
図6は16入力、4出力の組合せ回路からなる論理ブロックであり、この論理ブロックは基本的に1マシンサイクルで評価される。各PEは最大64個の論理ブロックを格納することができる。
図7は、データmビット(入出力)とアドレスnビット(入力)のメモリ素子に相当するメモリプリミティブである。入力としてはさらにチップセレクト1ビットとライトイネーブル1ビットを持つ。
シミュレーションにおいて、非検証回路は図6,図7のプリミティブをテンプレートした論理ブロックのネットリストとして表現される。論理ブロックの評価は、外部入力端子および記憶素子からの論理段数の深さに基づいてレベル付けされた各論理ブロックを、レベル番号の昇順に順次評価処理することで行われる(レベルソート法)。
また各論理ブロックの評価順序、および評価結果の信号伝達順序は、プロセッサに対する命令を用いてプログラムとして表現される(コンパイル法)。プログラム化された回路モデルは、プログラムの命令順序に従って、プロセッサによって解釈されて実行される。
システム内の全てのPEは、図4の制御プロセッサCP11から送り出されるスタート信号に対応して同期動作を行う。また各プロセッサは後述するシミュレーションクロックの期間中、それぞれ独立に動作する。これはレベルソートおよびコンパイル法では、1シミュレーションクロック内の回路の評価順序はモデル作成時にあらかじめ確定され、個々に独立動作しても論理矛盾が生じないためである。
図8はPEに対する動作サイクルの説明図である。各PEは4つの基本サイクルに対応して、時刻管理される。前述のように、各PEは制御プロセッサCPから発行されるスタート信号に対応して、シミュレーションサイクルSCを開始する。PEの最小動作サイクルはシステムの基本クロックに対応するマシンサイクルMCであり、本実施形態ではシステムはこのマシンサイクルを基準とする同期回路として動作する。
ユニットサイクルUCはシステム動作の基本サイクルであり、PEにおける1命令の実行サイクルを示す。1UCは基本的には1MCであるが、1UC内でデータ信号を多量に転送する場合などは2MC以上となる。レベルサイクルLCは、レベルソート法における1つのレベルの実行サイクルに相当する。
例えばあるPEにおいて1つのレベルで1個の論理ブロックを評価処理する場合には1LC=1UCであるが、1つのレベル内でn個の論理ブロックを処理する場合には1LC=n×UCとなる。最上位のシミュレーションサイクルSCは1シミュレーションクロックの実行サイクルを意味し、LCの整数倍で表される。
図9はPEの詳細構成ブロック図である。シミュレーションの実行は、制御メモリCRAM(コントロールRAM)25に格納されている制御プログラムによって制御される。制御プログラムは被検証回路の論理ブロックのネットリストと、それに対応する実行手順をPEに対する命令語で表現した、等価な回路モデルに相当する。1つの論理ブロックに対する評価処理は基本的に1つのPE命令で表現される。
CRAM25は287ビット×64ワードのメモリであり、命令語長287ビットのPE命令を最大64個まで格納できるCRAMの深さは、フリップフロップの間の組合せ回路のゲート段数が通常20段、もしくは30段以内であることから、余裕をみて論理ブロックレベルで最大64段まで扱えるように設計されている。
またPEの間でCRAM25を論理的に連結することによって、1シミュレーションサイクルにおける論理ブロック段数を最大256段まで拡張可能としている。またCRAM25内の各命令は、PE内のプログラムカウンタPCの示すアドレスに従って読み出されて実行される。
CRAM25に格納されている命令後は7つの制御フィールドから構成されている。制御フィールドは、時刻管理および条件監視を行う2つの制御フィールド(OP,X)と、データパス制御を行う5つの制御フィールド(IS,FN,LV,OS,SW)からなっている。
OPフィールドはCRAM25の動作を制御するフィールドで、命令タイプを示す3ビットのオペコードと、制御データとしての8ビットのオペランドからなる。オペコードはプログラムカウンタPC26の制御コードであり、デコーダ27で解釈されて、PC26の制御に用いられる。Xフィールドはトレースデータ、および監視条件信号を示す2ビットのフラグである。
図10はPEに対する命令の種類を示す。本実施形態においては、CRAM25の限られたアドレス空間を効率的に使用するために、同図に示される6種類の基本命令がサポートされている。例えばレベルソート法において複数のPEが1シミュレーションサイクルSCの処理を実行する場合に、シミュレーションサイクルSCはPEの中で最大の数の論理プリミティブを評価するPEに対応するレベルサイクル数によって決定される。その他のPEは、割り当てられた論理プリミティブに対する評価終了後がアイドル状態となり、nop命令、またはwait命令を実行して、それぞれ1SCを終了することになる。
前述のようにPEに対する入力信号はI,UおよびLの3つの信号グループから構成されている。各信号グループは4ビット×64の幅を持つ。ここで64は接続先のPEの数に相当する。IグループはそのPEが属するプロセッサグループ(PEG)内の64個のプロセッサからの入力信号、UおよびLは他のPEGからの入力信号である。
入力セレクタISL28は、論理演算器LOU29(ロジカル・オペレーション・ユニット)に与えるべき16本の出力信号を選択する回路である。ISLは論理的に768対16のセレクタ回路であり、192対1のセレクタ16個を4行×4列のアレー状に配置して構成される。各列の4つのセレクタには、192個のPEからの同一番号の出力線がそれぞれ接続される。各PEの入出力数に対称性を持たるために、192×4ビットの入力のうち、64×4ビットは同一グループのPEから、残り128×4ビットは他のグループ内のPEからそれぞれ入力される。ISL28は、CRAM25から出力される8ビット×16のISフィールドの信号によって選択制御される。
論理演算器LOU29は、論理ブロックの評価を実行する回路である。LOUの論理演算機能は、評価対象の論理ブロックのゲート構成に対応して、LOU29を構成する各基本演算回路、LE(ロジカル・エレメント)の論理機能を組み合わせることによって実現される。LOUおよびLEの構成をそれぞれ図11,図12に示す。
図11においてLOUは12個のLEから構成される。LOU29の回路構成として、目標マシンサイクルおよび被検証回路の論理プリミティブへのマッピング効率の観点から、4個のLEを3段とする回路構造を採用している。
図12において、各LEには4入力のAND回路36、OR回路37、XOR回路38、およびAND/OR回路39の4種類の基本回路がそれぞれ1個ずつ実装され、この中の1つの基本回路がセレクタ40によって選択される形式となっている。
また論理プリミティブへのマッピング効率を向上させるために、各LEの入力および出力端に、極性反転用の制御としてXOR回路35,41が配置されている。
演算器LOU29は、4入力のゲートから構成される、最大12ゲートの組み合せ回路を1マシンサイクルで評価することになる。その論理機能は、CRAM25からの7ビット×12のFNフィールドの信号によって制御される。
図12のLEの論理機能は、INVとFNCの信号によって決定される。INVはXOR35,41の論理反転機能を制御し、またFNCは4つの基本回路のいずれかの選択信号として用いられる。
図9の状態値レジスタSR30は、演算器LOU29によって評価された論理ブロックの出力信号値を格納するレジスタである。1個のSRは64ビット×1ワードのレジスタであり、LOUの各出力に1対1に対応して4個実装される。LOU29の出力の値は、同一ビットアドレスで4つのSRに同時に書き込まれる。またデータの読み出しは各SRに対して独立に任意のアドレスを用いて行うことができる。SRは全てのレベルサイクルにおける論理ブロックの出力値を、1シミュレーションサイクルの間保持する。SRに対する書込みアドレスはCRAM25からの6ビットのLUフィールドによって与えられる。
出力セレクタOSL(アウト・プット・セレクタ)31は、4つの状態値レジスタSRに書き込まれた論理ブロックに対する評価処理の出力値を読み出して、PEの出力値を確定するものである。OSL31は論理的に256対1のセレクタ回路で構成され、4つの各状態値レジスタのアドレスを1つにまとめたアドレス空間64ビット×4の任意のアドレスを選択できる。全アドレス空間へのアクセス機能は、SR上の特定アドレスへの読み出しの競合によって生ずる待ち時間を最小化するために実装されている。OSL31の動作はCRAM25からの8ビット×4ビットのOSフィールドによって制御される。
出力スイッチSW32は、出力セレクタOSL31によって読み出されたデータ信号を行き先のPEに転送するために、OSLの出力端子と、行き先のPEに接続されているPEの出力端子とを接続する回路である。すなわちPEの間の接続が配線によって固定化されるため、OSL31の4つの出力端子をデータ信号の行き先に応じて12本の出力端子の適当な1つと接続することにより、パスを形成するものである。PEの出力信号線はそれぞれの接続先のPEに対応して4ビットからなる3つのグループに分けられる。各グループI,U,およびLの定義は入力信号に対すると同様である。SW32はCRAM25からの2ビット×12のSWフィールドの信号によって、4対12の接続パスを形成するように制御される。
図13は、図11および図12に示した論理演算器LOU29に対する回路のマッピング例を示す。上の図はマッピング対象回路であり、それを図11の12個の基本演算回路LEにマッピングした結果が下の図である。同図において、1段目のLE#3は2段目のLEの全てに“0”を出力するためのものであり、2段目のLE#5とLE#7とは3段目の全てのLEにそれぞれ“1”を出力するためのものであり、3段目のLE#8とLE#10とは実質的にスルーの動作をするものである。
以上において本発明の実施形態について詳細に説明したが、例えば図9におけるCRAM25の出力する各制御ビットなどは、当然単に1つの実装形態を示すものであり、また図12に示した演算エレメントLEの構成においても入力部に更にセレクタを設けたり、基本演算回路の種類を変更することなどは当然可能である。
以上詳細に説明したように本発明によれば、レベルソートおよびコンパイル法を用いて、論理ブロックレベルで大規模ディジタル回路の論理シミュレーションを実行でき、実用的に容易に使用できる規模の装置を提供することが可能となる。
また評価用のプロセッサと通信用のプロセッサとを分離することなく、評価と通信の両方を実行できる同一形式のプロセッサエレメントを用い、それらのプロセッサエレメントをグループとして、複数のグループを階層型のツリー形状に相互に接続することによって、システム全体での高速性が実現される。
【産業上の利用可能性】
本発明はディジタル・システム機器における大規模かつ高速の論理検証や論理設計を必要とするすべての産業において利用可能である。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】


【特許請求の範囲】
【請求項1】
レベルソートおよびコンパイル法を使用して、サイクルベースの論理シミュレーションを実行するシミュレーション装置において、
1つ以上のゲートに対応する論理ブロックを評価単位としてシミュレーションを実行する評価処理と、他のプロセッサとの間の通信処理とのいずれをも実行可能な多数のプロセッサを備えることを特徴とする論理シミュレーション装置。
【請求項2】
前記論理ブロックが、ハードワイヤード可能な形式の1つ以上のゲートから構成されることを特徴とする請求項1記載の論理シミュレーション装置。
【請求項3】
前記多数のプロセッサがそれぞれ複数のプロセッサによって構成されるプロセッサグループに分割され、
複数の該プロセッサグループが階層型のツリー形状に相互に接続されて、1つのクラスタを構成すると共に、
複数の該クラスタによって前記論理シミュレーション装置が構成されることを特徴とする請求項1記載の論理シミュレーション装置。
【請求項4】
前記プロセッサグループ内の複数のプロセッサが相互に完全結合されることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項5】
前記階層型ツリー形状の下位側の階層において、同一階層内の各プロセッサグループが相互に完全結合されることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項6】
前記複数の各クラスタにおける最上位階層のプロセッサグループが、他のクラスタ内の最上位階層のプロセッサグループと相互に完全結合されることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項7】
前記各プロセッサグループが、該グループを構成する各プロセッサに対応して、メモリデータおよび外部入出力パターンの入出力制御を行う入出力プロセッサを備えることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項8】
前記階層型ツリー形状の下位側に属する各プロセッサグループに対応して、シミュレーションのトレースデータと外部入力信号パターンとを格納するトレースデータ記憶手段と、
キャッシュメモリに相当する小容量データ記憶手段とを備えることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項9】
前記階層型ツリー形状の上位側に属する各プロセッサグループに対応して、主記憶に相当する大容量データ記憶手段を備えることを特徴とする請求項3記載の論理シミュレーション装置。
【請求項10】
前記論理シミュレーション装置において、前記多数のプロセッサによる分散型超並列アーキテクチャが採用されることを特徴とする請求項1記載の論理シミュレーション装置。

【国際公開番号】WO2004/061722
【国際公開日】平成16年7月22日(2004.7.22)
【発行日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−564447(P2004−564447)
【国際出願番号】PCT/JP2002/013823
【国際出願日】平成14年12月27日(2002.12.27)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】