JP2008305329A - クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置 - Google Patents

クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置 Download PDF

Info

Publication number
JP2008305329A
JP2008305329A JP2007154143A JP2007154143A JP2008305329A JP 2008305329 A JP2008305329 A JP 2008305329A JP 2007154143 A JP2007154143 A JP 2007154143A JP 2007154143 A JP2007154143 A JP 2007154143A JP 2008305329 A JP2008305329 A JP 2008305329A
Authority
JP
Japan
Prior art keywords
clock
simulation
model
logic
clock controller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007154143A
Other languages
English (en)
Inventor
Isao Uchiumi
功朗 内海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Oki Networks Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Oki Networks Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd, Oki Networks Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2007154143A priority Critical patent/JP2008305329A/ja
Publication of JP2008305329A publication Critical patent/JP2008305329A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】実際のLSI等に適応したコ・シミュレーションを可能にする。
【解決手段】動作周波数(クロック周波数)の遅い論理モデルであるシミュレーションモデル31の速度に追随するように、CPU41を有するCPUボード40内のクロックコントローラ50によって自動的にクロック周波数を調整するようにしている。そのため、CPUボード40と、PC30内のシミュレーションモデル31とが、同一クロック周波数で動作する場合に近い形でシミュレーションができるので、実際のLSI等に適応したコ・シミュレーションが可能である。更に、シミュレーションモデル31側で生成されたクロック分周比の値を、CPU41からスレーブモデル32へのアクセスと同時に、クロックコントローラ50内に取り込むようにしたので、クロック制御(調整)のためのオーバヘッドが極めて少ないシミュレーション方法を実現できる。
【選択図】図1

Description

本発明は、クロック周波数を自動的に調整するためのクロックコントローラ、及びそれを用いた論理シミュレーション方法と論理シミュレーション装置に関し、例えば、論理シミュレーションを高速化するためのハードウェア論理制御等に関するものである。
従来、例えば、下記の文献等に記載されているように、論理シミュレーションを高速化する方法として、ソフトウェアによって実現されている部分回路をエミュレータで置き換える方法が知られている。
特開平11−312186号公報 特開2004−157986号公報
特許文献1には、システムレベルシミュレーションを効率良く、且つ高速に行えるようにしたシステムレベルシミュレーション方法及びその装置等に関する技術が記載されている。このシステムレベルシミュレーション方法では、シミュレーション対象装置を第1、第2の部分回路に分割し、前記第1の部分回路の動作を書き換え型ハードウェアによって構成したエミュレーション対象回路によってエミュレーションし、前記第2の部分回路の動作をソフトウェアによって構成される部分回路処理代行手段でシミュレーションし、前記エミュレーション対象回路と前記部分回路処理代行手段との間で通信を行いながら、前記シミュレーション対象装置の動作をシミュレーションしている。
特許文献2には、論理検証システムとフィールド・プログラマブル・ゲート・アレイ(Field Programmable Gate Array、以下「FPGA」という。)モジュールに関し、例えば、大規模集積回路(以下「LSI」という。)の開発設計に用いられる論理シミュレータ(エミュレータ)に利用し、開発時間を改善し、設計品質を向上した論理検証システムとFPGAモジュールの技術が記載されている。この論理検証システムでは、論理エミュレーションと論理シミュレーションの2つの検証工程において、同一のFPGAモジュールと同一のコンフィギュレーションデータ(Configuration Data;回路構成の命令情報)を使用している。又、FPGAモジュールでは、検証すべき論理回路が分割して実装される再構成可能な複数のFPGAと、前記複数のFPGAの相互の接続をプログラマブルに行って前記検証すべき論理回路を実現するスイッチングデバイスと、前記FPGAに対してクロックを供給するクロック生成回路を有するデバイスとを備えている。
図4は、従来の一般的な論理シミュレーション装置を示す概略の構成図である。
この論理シミュレーション装置では、論理シミュレーションの高速化手法を実現するために、一部の論理をソフトウェアからFPGAに置き換えて高速化する手法を採用しており、ハードウェア論理制御をするためのパーソナル・コンピュータ(Personal Computer、以下「PC」という。)10と、FPGAボード20とを備え、これらのPC10とFPGA20とが、ローカル・バス・アーキテクチャであるペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect、以下「PCI」という。)バス15を介して接続されている。特許文献1等には、インタフェースとして特に記載されていないが、説明を容易にするために、インタフェースをPCIバス15として記載する。このPCIバス15を経由して、PC10からFPGAボード20へデータ転送が可能である。
PC10上では、デジタルハードウェア論理を表現したシミュレーションモデル11が実行される。このシミュレーションモデル11では、マスタモデル12と仮想スレーブモデル13とを有し、これらがバスモデルを介して相互に接続されている。仮想スレーブモデル13は、ソフトウェアで構成されるPCIデバイスドライバ14を介して、PCIバス15に接続されている。
FPGAボード20上では、論理シミュレーション(つまりシミュレーションモデル11)として高速化させたいスレーブ論理モデル21をFPGA上にインプリメント(実装)して実行する。スレーブ論理モデル21とPCIバス15の間では、インタフェースが異なるため2つのインタフェースの橋渡しをするPCI―論理モデルバスブリッジ回路(以下単に「バスブリッジ回路」という。)22が設けられている。シミュレーションモデル11からスレーブ論理モデル21をアクセスする場合、PCIバス15のデータを送るため、PCIデバイスドライバ14を経由する。
図5(A)、(B)は、図4の論理シミュレーション動作(スレーブアクセス)を示すタイミングチャートであり、同図(A)は、マスタモデル12と仮想スレーブモデル13との間のスレーブモデルインタフェースのタイミングチャートであり、同図(B)は、PCIデバイスドライバ14がPCIバス15へアクセスする場合のPCIインタフェースのタイミングチャートである。スレーブモデルインタフェースは、シミュレーションモデル11でのクロックhclkで動作しており、PCIインタフェースは、PCIバス15のハードウェアで実動作していて、完全な独立である。
図5(A)のスレーブモデルインタフェースは、標準的なバス構成で、(1)の信号hclkはスレーブモデルのクロックであり、パルスτ1,τ2,τ3,τ4,・・・により構成されている。(2)の信号busreqはバス使用要求であってバス要求時にアサート(assert、有効な状態に)される。図5では1つのマスタなのでずっと論理“1”になっている。(3)の信号bus_ackはバス使用応答でバスが利用できることを示している。(4)の信号addressはアクセスするアドレス値を示している。(5)の信号writeはライトアクセス(書き込みアクセス)かリードアクセス(読み出しアクセス)かを示すもので、クロックhclkのパルスτ2では論理“0”よりリードアクセスを示している。(6)の信号transはアクセスの有無を示すもので、パルスτ2では“1”よりアクセスがあることを示している。(7)の信号burstはバーストアクセスの種類を示すものであり、パルスτ2では信号singleよりシングルアクセスであることを示している。(8)の信号sizeはアクセスサイズを示すものであり、パルスτ2では信号wordとなっており、ワードアクセスを示している。(9)の信号readyはアクセス応答信号を示すものであり、リードアクセスの場合、この信号readyが“1”になってアクセスが完了する。(10)の信号read_dataはアクセスしたリードデータであり、(9)の信号readyが“1”になったときに有効なデータになり、(9)の信号readyが“1”になれるまで(1)の信号hclkを停止させる。これにより、15PCIバスからの応答の待ちに対応したスレーブアクセスのシミュレーションが可能になる。
図4の仮想スレーブモデル13は、リードアクセスがあると、PCIデバイスドライバ14を呼び出し、PCIバス15にアクセスする。
次に、図5(B)のPCIインタフェースのタイミングチャートについて説明する。
(1)の信号clkはPCIバス15の基本クロックであり、パルスτ1,τ2,τ3,τ4,τ5,τ6,τ7,・・・により構成されている。(2)の信号frameはアクセスの開始を示す。(3)の信号adはアドレス/データバスを示すものであり、パルスτ3ではPCIバス15へのアクセスのターゲット(目標)となるアドレスを示し、パルスτ4ではリードデータread_dataが設定される。(4)の信号c/beはコード/バイトイネーブルを示しており、パルスτ3でリードアクセスであるコードが設定され、パルスτ4ではリードのバイトイネーブルが設定される。(5)は信号irdyでデータ転送可能であることを示す。(6)の信号trdyはターゲット側のデータ転送可能であることを示す。(7)の信号devselはデバイスセレクトでデバイスの応答があることを示すものであり、パルスτ4では信号trdyが論理“L”になっていることによりリードアクセスが完了し、リードデータが揃っていることを示す。
図4のPCIデバイスドライバ14は、PCIバス15でのリードアクセスが完了すると、PCIバス15からデータをリードし、仮想スレーブモデル13にそのデータを渡す。仮想スレーブモデル13は、そのリードデータをスレーブインタフェースのデータライン上に載せて、クロックclkを再開させる。
シミュレーションモデル11でのスレーブアクセスでは、PCIデバイスドライバ14を呼び出している間はシミュレーションモデル11が止まるので、シミュレーションの精度が維持できる。
近年、システムLSI等の大規模チップ開発等において、設計・開発及び検証(シミュレーション)に費やす工数が増大しているので、製品の開発期間の短縮が求められている。ハードウェアとソフトウェア開発を別々に行う従来の手法では、これに対応できない。そこで、ハードウェアとソフトウェアを並行設計・開発・検証することにより、開発期間を短縮したり、システム・レベルでの設計・検証の精度を向上することによってハードウェアの作り直しを無くすために、ハードウェア・ソフトウェアのコ・シミュレーション(Co-Simulation)が注目されている。ハードウェア・ソフトウェアのコ・シミュレーションは、組み込み機器等のハードウェアとソフトウェアをワークステーションあるいはPC上の疑似環境下で同時にシミュレーションする手法である。
しかしながら、図4に示す従来の論理シミュレーション技術では、PC10内の中央処理装置(以下「CPU」という。)モデルにシミュレーションモデル11、FPGAにスレーブモデルの構成を想定しており、CPUのLSIチップ等を利用したコ・シミュレーションの方法には、対応していなかった。CPUボード上のCPUと、PC10内のシミュレーションモデル11との間でコ・シミュレーションさせようとした場合、CPUボード上の動作周波数がおよそ33MHz、シミュレーションモデル11の動作周波数がせいぜい10KHz程度で、2つの動作周波数には大きな開きがあり、実際のLSI動作とかけ離れているという問題があった。実際の動作に近い形でシミュレーションするには、シミュレーションモデル11からクロックを生成してCPUボード上にそのクロックを転送する必要がある。しかし、この場合、毎サイクルごとにPC10上のクロックをCPUボードに転送しなければならず、シミュレーションモデル11の性能が極端に落ちてしまうという課題があった。
本発明のクロックコントローラは、外部で生成された分周比を設定し、前記分周比に基づきカウント動作を行って所定周波数のクロックを出力する分周手段と、前記クロックを入力し、制御信号の論理レベルに応答して、該論理レベルが第1の論理レベルの時には、前記クロックの外部への出力を遮断し、第2の論理レベルの時には、前記クロックを外部へ出力する出力手段とを有している。
本発明の論理ミュレーション方法は、CPUと前記発明のクロックコントローラとを有するCPUボードと、コンピュータとを用いた論理ミュレーション方法であって、前記クロックにより第1の動作周波数で動作する前記CPUボードと、前記コンピュータ上で実行され、前記第1の動作周波数とは異なる第2の動作周波数で動作するシミュレーションモデルとをコ・シミュレーションする場合に、前記CPUボードから前記シミュレーションモデルへアクセスする度に、前記CPUボードから前にアクセスされた時間からカウントして求めた第1のサイクル比を取り出し、前記カウンタ値と前記アクセス間に実行した前記シミュレーションモデル上のサイクル数から第2のサイクル比を求め、前記第2のサイクル比を前記分周比として前記クロックコントローラへ設定することで、前記第1の動作周波数を前記第2の動作周波数に近似させて実行している。
更に、本発明の論理ミュレーション装置は、前記発明のクロックコントローラと、前記クロックコントローラから出力される前記クロックにより第1の動作周波数で動作する中央処理装置とを有するCPUボードと、前記CPUボードにバスで接続され、前記第1の動作周波数とは異なる第2の動作周波数で動作するシミュレーションモデルを実行するコンピュータと、を備えた論理シミュレーション装置である。そして、前記シミュレーションモデルは、前記CPUボードと前記シミュレーションモデルをコ・シミュレーションする場合に、前記CPUボードから前記シミュレーションモデルへアクセスする度に、前にアクセスされた時間からカウントして求めた第1のサイクル比を取り出し、前記カウンタ値と前記アクセス間に実行した前記シミュレーションモデル上のサイクル数から第2のサイクル比を求め、前記第2のサイクル比を前記分周比として前記クロックコントローラに設定する機能を有している。
本発明のクロックコントローラによれば、外部から設定された分周比に基づき、カウント動作を行って、所望のクロック周波数を自動的に調整できる。
前記クロックコントローラを用いた論理シミュレーション方法と論理シミュレーション装置によれば、動作周波数(クロック周波数)の遅い論理モデルであるシミュレーションモデルの速度に追随するように、その論理モデルのシミュレーション性能が損なわれることを抑えた構成で、CPUボード内のクロックコントローラによって自動的にクロック周波数を調整できる。そのため、CPUボードとコンピュータ内のシミュレーションモデルとが、同一クロック周波数で動作する場合に近い形でシミュレーションができるので、実際のLSI等に適応したコ・シミュレーションが可能である。更に、シミュレーションモデル側で生成されたクロック分周比の値を、CPUからシミュレーションモデルへのアクセスと同時に、クロックコントローラ内に取り込むようにしたので、クロック制御(調整)のためのオーバヘッド(独占時間)が極めて少ないシミュレーション方法及びその装置を実現できる。
論理シミュレーション方法は、CPUボードとPC上のシミュレーションモデルをコ・シミュレーションする場合に、CPUボードから論理モデルであるシミュレーションモデルへアクセスするたびに、CPUボードから前にアクセスされた時間からカウントして求めたサイクル比を取り出し、そのカウンタ値とその間に実行したシミュレーションモデル上のサイクル数からサイクル比を求め、そのサイクル比をCPUボードへのクロックに反映させる(即ち、そのサイクル比をCPUボード内のクロックコントローラへ設定してCPUに与えるクロックの周波数を自動的に調整する)ことで、論理モデルのシミュレーション性能が損なわれることを抑えた構成で、CPUボードの動作周波数を論理モデルの動作周波数に近似させて実行している。
(論理シミュレーション装置の構成)
図1(A)、(B)は、本発明の実施例1を示す論理シミュレーション装置の概略の構成図であり、同図(A)は全体の構成図、及び、同図(B)は同図(A)中のクロックコントローラの構成図である。
図1(A)に示される論理シミュレーション装置は、シミュレーションを実施するためのコンピュータ(例えば、PC)30と、このPC30にPCIデバイスドライバ35を介して接続されたバス(例えば、PCIバス)37と、このPCIバス37に接続されたCPUボード40とを備えている。
PC30内のソフトウェアにより実行するためのシミュレーションの対象となるシミュレーションモデル31は、スレーブタスクであるスレーブモデル32と、このスレーブモデル13にバスモデル33を介して相互に接続され、そのスレーブモデル32をアクセスするためのバスマスタタスクであるマスタモデル34とから構成されている。マスタモデル34は、シミュレーション上のクロックで動作するサイクルカウンタ34aを持ち、このサイクルカウンタ34aでサイクル比を計算する。マスタモデル34とPCIバス37との間に接続された第2のインタフェース回路(例えば、PCIデバイスドライバ)35は、マスタモデル34から必要な時に呼び出される。
PCIバス37に接続されたCPUボード40は、CPU41と、アドレス信号S42a及びデータ信号S42bを格納するメモリ42と、このメモリ42に接続された第1のインタフェース回路(例えば、バスブリッジ回路)43と、このバスブリッジ回路43に接続され、CPU41に供給するためのクロック周波数を調整するクロックコントローラ50とを有している。メモリ42及びクロックコントローラ50は、バスブリッジ回路43を介して、PCIバス37に繋がっている。
実際のマスタモデル34は、CPUボード40上でCPU41であり、バスブリッジ回路43を経由して、PCIバス37でPC30と接続されている。CPU41は通常、メモリ42との間でデータの受け渡しがされるが、シミュレーションモデル31内のスレーブモデル32をアクセスする場合、バスブリッジ回路43へアクセスする。CPU41に供給されるクロックclkの動作周波数は、シミュレーションモデル31側から与えられるクロックの動作周波数に比べて早いため、クロックコントローラ50は、シミュレーションモデル31側から与えられる動作周波数の遅いクロックを、自動的に内部の分周回路により調整し(即ち、動作周波数の早いクロックを生成し)、この調整したクロックclkをCPU41へ与える回路である。バスブリッジ回路43からクロックコントローラ50へは制御信号(例えば、アクセス中信号)S43a、リセット信号rst、その他データバスが繋がっている。このバスブリッジ回路43は、シミュレーションモデル31からCPU41へリセットが掛けられるように、ライトしたら一定期間リセット信号rstをアサートするリセットレジスタ43aを保持している。
図1(B)に示すクロックコントローラ50は、分周手段(例えば、分周比レジスタ51、分周比デクリメントカウンタ52、及び出力反転回路であるフリップフロップ(以下、「FF」という。)53からなる分周回路により構成されている。)と、FF53に接続された出力手段(例えば、2入力1出力の論理回路である論理和回路(以下「OR回路」という。)54と、カウント手段(例えば、インクリメントカウンタ)55とを有している。
分周比レジスタ51は、PC30から供給されるクロック分周比のライトデータS42bを設定するレジスタであり、この出力側に分周比デクリメントカウンタ52が接続されている。分周比デクリメントカウンタ52は、値が「0」になった時に、分周比レジスタ51の値をロードして毎サイクルごとにデクリメント(減分)すると共に、デクリメントによりロードした値が「0」になった時に反転指定信号S52のパルスを出力するカウンタであり、この出力側に出力反転回路であるFF53が接続されている。FF53は、反転指定信号S52のパルスが来た場合に出力を反転させる回路であり、この出力側にOR回路54が接続されている。OR回路54は、バスブリッジ回路43からの制御信号であるアクセス中信号S43aが第1の論理レベル(例えば、“1”)の場合、出力信号を“1”に固定にする回路である。
インクリメントカウンタ55は、アクセス中信号S43aが“1”の時はインクリメント(増分)を中断し、アクセス中信号S43aが第2の論理レベル(例えば、“0”)から“1”になると、“0”に一旦クリアされてからカウントアップするカウンタである。これらの分周比レジスタ51、分周比デクリメントカウンタ52、及び、インクリメントカウンタ55は、リセットレジスタ43aから出力されるリセット信号rstがアサートされた場合、“0”にクリアされる構成になっている。
(論理シミュレーション方法)
図2は、図1の論理シミュレーション装置における論理シミュレーション方法を示すクロック制御のフローチャートである。
このフローチャートでは、CPUボード40上のCPU41のアクセスからPC30上のシミュレーションモデル31内の仮想マスタモデル34へのアクセスへの変換及びクロック分周比の生成手順が示されている。図2では、シミュレーションモデル31内のマスタモデル34、PCIデバイスドライバ35、バスブリッジ回路43、クロックコントローラ50、及びCPU41の各動作を横に並べて示している。
先ず、(A)リセットシーケンス、次に、(B)シミュレーションモデルアクセスの処理手順を以下説明する。
(A)リセットシーケンス
リセット時の動作は、以下の(1)〜(5)の処理手順に従って実行される。
(1) シミュレーションモデル31にリセットが入ると、マスタモデル34はリセットを伝えるため、PCIデバイスドライバ35を呼び出す。
(2) PCIデバイスドライバ35は、バスブリッジ回路43へリセットを通知するために、PCIバス37経由でバスブリッジ回路43内のリセットレジスタ43aにライトする。
(3) バスブリッジ回路43は、内部のリセットレジスタ43aをライトされたことで、クロックコントローラ50及びCPU41に、リセット信号rstを一定期間入れる。
(4) クロックコントローラ50は、リセット信号rstによって内部の分周比レジスタ51、分周比デクリメントカウンタ52、及びインクリメントカウンタ55を初期化する。リセット及びリセットネゲート(リセットの無効状態)後、分周比デクリメントカウンタ52は、分周比レジスタ51の値が“0”なので、反転指定信号S52を毎サイクル出力し、クロック用FF53が毎サイクル反転するようにする。インクリメントカウンタ55は、リセット後、毎サイクルインクリメント(増分)を開始する。
(5) CPU41は、リセット後、クロックコントローラ50からクロックclkが入るので、アクセスを開始する。
(B) シミュレーションモデルアクセス
CPU41からシミュレーションモデル31内のスレーブモデル32へアクセスした場合のクロック変換動作は、以下の(6)〜(14)の処理手順に従って実行される。
(6) CPU41が論理モデルであるシミュレーションモデル31内のスレーブモデル32に対してリード又はライトのアクセスをする。
(7) バスブリッジ回路43がPCIバス37上に割り込みを入れる(割り込みをアサート)。バスブリッジ回路43からクロックコントローラ50へ出力されるアクセス中信号S43aを“1”にする。
(8) クロックコントローラ50は、クロック用OR回路54により、CPU41へ供給するクロックclkを“1”のままにして停止する。
(9) PCIデバイスドライバ35は、割り込みにより呼び出され、バスブリッジ回路43を経由して、クロックコントローラ50内のインクリメントカウンタ55のデータであるサイクル数(クロック値)をリードする。アクセスがライトアクセスの場合、ライトデータもアクセスする。
(10) シミュレーションモデル31内のマスタモデル34は、アクセスの種類(ライト又はリード)に従い、バスモデル33を介してスレーブモデル32をアクセスする。アクセス後、スレーブモデル32は、リードしてきたCPU41内のサイクル数(CT)とシミュレーションモデル31のサイクル数(ST)から、例えば、以下の計算例に示すように、クロック比であるサイクル比R(n)を計算する。
CPU41のサイクル数をCT(n)、シミュレーションモデル31のサイクル数をST(n)とすると、スレーブモデル32は、下記の式に従い、過去のデータを保持して、クロック比であるサイクル比R(n)を計算する。
Figure 2008305329


以後の処理により、分周比レジスタ51へは、クロック比であるサイクル比R(n)の値(R(n)/2 −1)が転送される。スレーブモデル32は、サイクル比R(n)の計算後、シミュレーションモデル31のサイクル数を“0”からカウントする。
(11) PCIデバイスドライバ35は、サイクル比R(n)の値(R(n)/2 −1)を、PCIバス37経由でバスブリッジ回路43へ転送してライトする。又、CPU41がリードアクセスの場合は、リードの値もバスブリッジ回路43にライトする。
(12) バスブリッジ回路43は、サイクル比R(n)の値(R(n)/2 −1)がライトされると、これをクロックコントローラ50へ転送する。転送後、アクセス中信号S43aを“0”にする。
(13) クロックコントローラ50内で、分周比レジスタ51にサイクル比(R)の値(R(n)/2 −1)を設定し、分周カウンタ値を更新する。アクセス中信号S43aの“0”によりクロック用OR回路54が開いて、CPU41へのクロックclkが再開する。
(14) CPU41はクロックclkが再開したことで、アクセスを完了する。リードの場合、バスブリッジ回路43にはリードデータが入っているので、取り出せる。
(クロックコントローラ50の動作)
図3は、図1(B)のクロックコントローラ50の動作を示すタイミングチャートである。
PC30上のシミュレーションモデル31からPCIバス37経由でCPUボード40へ転送する方法は、図5に示す従来の論理シミュレーション方法と同じなので、説明は省略する。図3のタイミングチャートでは、図1(B)に示すクロックコントローラ50のカウンタ52,55と信号、及び、CPU41からバスブリッジ回路43へのアドレス、データが記載されている。以下、図3の内容を説明する。
時刻t1のタイミングで、CPU41によりアクセスされるメモリ42からアドレス信号S42aにスレーブモデル32のアドレスが入ると、バスブリッジ回路43はアクセス中信号S43aを“1”にする。これにより、クロックコントローラ50内のOR回路54が閉じて、CPU41へのクロックclkは“1”に固定され(即ち、クロックclkの供給が停止され)、又、インクリメントカウンタ55が停止する。この状態は図2のフローチャートの(6)の処理に対応する。バスブリッジ回路43は、インクリメントカウンタ55の値「97」を取り出し、PCIバス37の割り込み信号によって、PCIデバイスドライバ35を起動させて、インクリメントカウンタ55の値「97」をPC30に取り込ませる。
図2のフローチャートの(10)の処理に従って、PC30上のマスタモデル34は、バスモデル33を介して、スレーブモデル32へリードアクセスすると同時に、スレーブモデル32が値「97」からクロック比であるサイクル比R(n)を計算し、クロック分周比の値「4」を導いたとする。PCIデバイスドライバ35は、リードデータ信号の転送と共にクロック分周比の値「4」を分周比レジスタ51へ転送する。
時刻t2のタイミングで、分周比レジスタ51にクロック分周比の値「4」が設定されると同時に、バスブリッジ回路43のアクセス中信号S43aが“0”になる。これにより、OR回路54が開いてCPU41へのクロックclkの供給が再開される。
時刻t3のタイミングで、分周比デクリメントカウンタ52の値が「0」になることより、分周比レジスタ51の値「4」が、その分周比デクリメントカウンタ52にロードされ、以降からクロック分周比の値「4」でクロック分周が行われてクロックclkが生成され、これがCPU41へ送られる。
(実施例1の効果)
本実施例1によれば、動作周波数(クロック周波数)の遅い論理モデルであるシミュレーションモデル31の速度に追随するように、その論理モデルのシミュレーション性能が損なわれることを抑えた構成で、CPUボード40内のクロックコントローラ50によって自動的にクロック周波数を調整するようにしている。そのため、CPUボード40とPC30内のシミュレーションモデル31とが、同一クロック周波数で動作する場合に近い形でシミュレーションができるので、実際のLSI等に適応したコ・シミュレーションが可能である。
更に、シミュレーションモデル31側で生成されたクロック分周比の値を、CPU41からスレーブモデル32へのアクセスと同時に、クロックコントローラ50内に取り込むようにしたので、クロック制御(調整)のためのオーバヘッドが極めて少ないシミュレーション方法を実現できる。
(変形例)
本発明は、上記実施例1に限定されず、種々の利用形態や変形が可能である。この利用形態や変形例としては、例えば、次の(a)〜(d)のようなものがある。
(a) 図1(B)のクロックコントローラ50は、論理シミュレーション装置のみならず、クロックコントローラを必要とする集積回路(IC)等に対しても適用可能である。
(b) クロックコントローラ50内に取り込むために、シミュレーションモデル31側でクロック分周比の値を求める方法として、4回のサンプルからシミュレーションモデル31のサイクル数とCPU41のサイクル数をサンプルし、両者の値からサイクル比を求めて、クロック分周比の値を決定したが、その4回のサンプル回数は任意の回数でも良く、更に、その他の演算方法等でクロック分周比の値を求めても良い。
(c) クロックコントローラ50内の分周回路は、分周レジスタ51、分周比デクリメントカウンタ52、及びFF53を有し、分周比デクリメントカウンタ52の値が「0」になるたびに反転する回路構成であるが、他の分周回路構成でも適用が可能である。
(d) 図1の論理シミュレーション装置では、PCIバス37を使用しているが、このPCIバス37はPC30に最もよく利用されているバスにすぎず、他のバス構成でも対応が可能である。
本発明の実施例1を示す論理シミュレーション装置の概略の構成図である。 図1の論理シミュレーション装置における論理シミュレーション方法を示すクロック制御のフローチャートである。 図1(B)のクロックコントローラ50の動作を示すタイミングチャートである。 従来の一般的な論理シミュレーション装置を示す概略の構成図である。 図4の論理シミュレーション動作(スレーブアクセス)を示すタイミングチャートである。
符号の説明
30 PC
31 シミュレーションモデル
32 スレーブモデル
34 マスタモデル
35 PCIデバイスドライバ
37 PCIバス
40 CPUボード
41 CPU
43 PCI−論理モデルバスブリッジ回路
50 クロックコントローラ
51 分周比レジスタ
52 分周比デクリメントカウンタ
53 FF
54 OR回路
55 インクリメントカウンタ

Claims (9)

  1. 外部で生成された分周比を設定し、前記分周比に基づきカウント動作を行って所定周波数のクロックを出力する分周手段と、
    前記クロックを入力し、制御信号の論理レベルに応答して、該論理レベルが第1の論理レベルの時には、前記クロックの外部への出力を遮断し、第2の論理レベルの時には、前記クロックを外部へ出力する出力手段と、
    を有することを特徴とするクロックコントローラ。
  2. 前記分周手段は、
    前記分周比を設定する分周比レジスタと、
    カウント値が「0」になった時に、反転指示信号を出力し、前記分周比レジスタにおける設定値をロードして毎サイクルごとにデクリメントする分周比デクリメントカウンタと、
    前記反転指示信号に応答して出力信号を反転させる出力反転回路と、
    を有することを特徴とする請求項1記載のクロックコントローラ。
  3. 前記出力手段は、2入力1出力の論理回路であることを特徴とする請求項1又は2記載のクロックコントローラ。
  4. 請求項1〜3のいずれか1項に記載のクロックコントローラは、更に、
    前記制御信号に応答して、前記制御信号が前記第1の論理レベルの時にカウント動作を中断し、前記制御信号が前記第2の論理レベルの時にカウント動作を行って、前記分周比を生成するための回数データを外部へ出力するカウント手段を有することを特徴とするクロックコントローラ。
  5. 前記カウント手段は、インクリメントカウンタであることを特徴とする請求項4記載のクロックコントローラ。
  6. 中央処理装置と請求項1〜5のいずれか1項に記載のクロックコントローラとを有する中央処理装置ボードと、コンピュータとを用いた論理ミュレーション方法であって、
    前記クロックにより第1の動作周波数で動作する前記中央処理装置ボードと、前記コンピュータ上で実行され、前記第1の動作周波数とは異なる第2の動作周波数で動作するシミュレーションモデルとをコ・シミュレーションする場合に、
    前記中央処理装置ボードから前記シミュレーションモデルへアクセスする度に、前記中央処理装置ボードから前にアクセスされた時間からカウントして求めた第1のサイクル比を取り出し、前記カウンタ値と前記アクセス間に実行した前記シミュレーションモデル上のサイクル数から第2のサイクル比を求め、前記第2のサイクル比を前記分周比として前記クロックコントローラへ設定することで、前記第1の動作周波数を前記第2の動作周波数に近似させて実行することを特徴とする論理ミュレーション方法。
  7. 請求項1〜5のいずれか1項に記載のクロックコントローラと、前記クロックコントローラから出力される前記クロックにより第1の動作周波数で動作する中央処理装置とを有する中央処理装置ボードと、
    前記中央処理装置ボードにバスで接続され、前記第1の動作周波数とは異なる第2の動作周波数で動作するシミュレーションモデルを実行するコンピュータと、
    を備えた論理シミュレーション装置であって、
    前記シミュレーションモデルは、
    前記中央処理装置ボードと前記シミュレーションモデルをコ・シミュレーションする場合に、前記中央処理装置ボードから前記シミュレーションモデルへアクセスする度に、前にアクセスされた時間からカウントして求めた第1のサイクル比を取り出し、前記カウンタ値と前記アクセス間に実行した前記シミュレーションモデル上のサイクル数から第2のサイクル比を求め、前記第2のサイクル比を前記分周比として前記クロックコントローラに設定する機能を有することを特徴とする論理ミュレーション装置。
  8. 請求項7記載の論理ミュレーション装置は、更に、
    前記中央処理装置ボードと前記バスとの間に接続された第1のインタフェース回路と、 前記シミュレーションモデルと前記バスとの間に接続された第2のインタフェース回路と、
    を有することを特徴とする論理ミュレーション装置。
  9. 前記シミュレーションモデルは、スレーブモデル及びマスタモデルを有し、
    前記バスは、ペリフェラル・コンポーネント・インターコネクト・バスであり、
    前記第1のインタフェース回路は、ペリフェラル・コンポーネント・インターコネクト−論理モデルバスブリッジ回路であり、
    前記第2のインタフェース回路は、ペリフェラル・コンポーネント・インターコネクト・デバイスドライバであることを特徴とする請求項8記載の論理ミュレーション装置。
JP2007154143A 2007-06-11 2007-06-11 クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置 Pending JP2008305329A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007154143A JP2008305329A (ja) 2007-06-11 2007-06-11 クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007154143A JP2008305329A (ja) 2007-06-11 2007-06-11 クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置

Publications (1)

Publication Number Publication Date
JP2008305329A true JP2008305329A (ja) 2008-12-18

Family

ID=40233969

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007154143A Pending JP2008305329A (ja) 2007-06-11 2007-06-11 クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置

Country Status (1)

Country Link
JP (1) JP2008305329A (ja)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5880723A (ja) * 1981-11-09 1983-05-14 Hitachi Ltd クロツク信号発生装置
JPS6240825A (ja) * 1985-08-19 1987-02-21 Fujitsu Ltd プログラマブル遅延・分周回路
JPH02153653A (ja) * 1988-12-05 1990-06-13 Yamaha Corp 低消費電力モード制御回路
JPH0653820A (ja) * 1992-07-29 1994-02-25 Nec Ic Microcomput Syst Ltd クロック分周回路
JP2001117903A (ja) * 1999-10-22 2001-04-27 Seiko Epson Corp 半導体集積回路装置、マイクロプロセッサ、マイクロコンピュータ及び電子機器
JP2003022296A (ja) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd 協調シミュレーション方法および協調シミュレーション装置
JP2003248524A (ja) * 2002-02-25 2003-09-05 Oki Electric Ind Co Ltd システムlsi
JP2004005009A (ja) * 2002-04-26 2004-01-08 Fujitsu Ltd クロック信号発生装置、通信装置および半導体装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5880723A (ja) * 1981-11-09 1983-05-14 Hitachi Ltd クロツク信号発生装置
JPS6240825A (ja) * 1985-08-19 1987-02-21 Fujitsu Ltd プログラマブル遅延・分周回路
JPH02153653A (ja) * 1988-12-05 1990-06-13 Yamaha Corp 低消費電力モード制御回路
JPH0653820A (ja) * 1992-07-29 1994-02-25 Nec Ic Microcomput Syst Ltd クロック分周回路
JP2001117903A (ja) * 1999-10-22 2001-04-27 Seiko Epson Corp 半導体集積回路装置、マイクロプロセッサ、マイクロコンピュータ及び電子機器
JP2003022296A (ja) * 2001-07-06 2003-01-24 Matsushita Electric Ind Co Ltd 協調シミュレーション方法および協調シミュレーション装置
JP2003248524A (ja) * 2002-02-25 2003-09-05 Oki Electric Ind Co Ltd システムlsi
JP2004005009A (ja) * 2002-04-26 2004-01-08 Fujitsu Ltd クロック信号発生装置、通信装置および半導体装置

Similar Documents

Publication Publication Date Title
US6601126B1 (en) Chip-core framework for systems-on-a-chip
Pasricha et al. Extending the transaction level modeling approach for fast communication architecture exploration
US5493672A (en) Concurrent simulation of host system at instruction level and input/output system at logic level with two-way communication deadlock resolution
CN109783954B (zh) 一种ies联合fpga硬件仿真加速系统
JP4599266B2 (ja) シミュレーション装置及びシミュレーション方法
JP2007048280A (ja) バスモニタリングのための集積回路装置及びその方法
CN115017845A (zh) 用于ip单元级别验证的总线驱动式芯片仿真激励模型
US20050144436A1 (en) Multitasking system level platform for HW/SW co-verification
US7228513B2 (en) Circuit operation verification device and method
US20130054854A1 (en) Full Bus Transaction Level Modeling Approach for Fast and Accurate Contention Analysis
US7370311B1 (en) Generating components on a programmable device using a high-level language
US11392533B1 (en) Systems and methods for high-speed data transfer to multiple client devices over a communication interface
US20050071145A1 (en) Simulation apparatus, simulation program, and recording medium
US9898563B2 (en) Modeling memory in emulation based on cache
US11106846B1 (en) Systems and methods for emulation data array compaction
JP2014194746A (ja) シミュレーション装置及びシミュレーション方法及びプログラム
JP2008305329A (ja) クロックコントローラ及びそれを用いた論理シミュレーション方法と論理シミュレーション装置
US11048843B1 (en) Dynamic netlist modification of compacted data arrays in an emulation system
Bellows High-visibility debug-by-design for FPGA platforms
Taraate et al. System-on-chip (SOC) design
Nilsson DMA Controller for LEON3 SoC: s Using AMBA
JP2009223762A (ja) 協調検証装置
Devi et al. Efficient implementation of memory controllers and memories and virtual platform
Tan Design of a direct memory access module for 32-BIT RISC32 processor
JP2008003786A (ja) 論理シミュレーション方法及びその装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20081224

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090423

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100514

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120307

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120627

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20121030