説明

分割搭載した論理回路の論理検証装置

【課題】 大規模な論理を複数のFPGAに搭載して、高速に検証をおこなう場合において、FPGA間に転送サイクル遅れのデータが存在しても、正しい論理動作を実現できる論理検証装置を提供する。
【解決手段】 パラレル−シリアル変換を用い、複数の信号線からの信号を1本の物理線上で送信、受信する時分割転送方法を採用する。このとき、物理線上の信号転送時間をもとに、大規模論理の動作周波数を決める。時分割転送は、クロック信号やリセット信号を時分割転送の対象から除外した、データ信号等を転送対象とし、時分割転送が終了した時に大規模論理のクロックを動作させ、転送したデータを本来の大規模論理のレジスタに反映させる。時分割データ転送処理の開始タイミングおよび終了タイミングの前後には、信号安定化のための保持サイクルが割りあてられ、大規模論理用クロックの立ち上げおよび立ち下げは、両端の保持サイクルに同期して、おこなわれる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、論理回路の論理検証装置に関するものであり、とりわけ、分割搭載した論理回路の論理を検証する装置に関するものである。
【背景技術】
【0002】
ASIC (Application Specific Integrated Circuit) の論理機能検証では一般的にソフトウエア論理シミュレータを用いるが、大規模になると機能検証のための検証項目も多大となり、ソフトウエア論理シミュレータにおける検証項目の消化のための処理時間が膨大となり、開発期間内に検証項目全体を確認することが困難となる。
【0003】
そこで、大規模ASICの論理をFPGA(Field Programmable Gate Array) に搭載して高速に検証をおこないたいが、全論理が、ひとつのFPGAに収まるとはかぎらず、数ないし十数個のFPGAに分割搭載した環境で構築せざるをえない。このとき各FPGA間の信号線量が物理ピン数に収まらず、またクロックや、リセットにおいても、各FPGA間で時間的なずれが発生して、FPGA間の同期クロックでの信号転送に矛盾が発生し、動作に不正が生じることがある。
【0004】
本発明の目的は、該当論理で用いるクロックより高速の転送クロックを利用した、基板上あるいはケーブルを介した基板間に存在する、複数のFPGAまたはASIC間の同期接続手法を提供することである。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平11−331282号公報
【特許文献2】特開2001−34648号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載された発明は、ロック時間で装置の状態が不安定になり、かつチップ面積も大きくなるPLL (Phase Locked Loop) 回路を用いないデータ転送方法であり、データ信号とクロック信号を並行送出して、受信側での受信クロック生成をなくす手段である。この手段では、信号転送用としてクロック信号線が必要となり、データ幅が多量となると1本のクロック線ではデータ信号のセットアップ時間、またはホールド時間が確保できない状態が発生する。
【0007】
そこで、クロック信号線を増加すると、こんどはASICやFPGA間の物理ピン数で接続できる信号線数がクロック線に圧迫され、転送信号数が削減されることとなる。
【0008】
また、特許文献1は、転送後の信号線に対し、受信側の論理のクロック信号との同期をどのようにとるかについて記載しておらず、大規模回路の同期論理を分割搭載した場合には、同期論理が異常動作する場合が生じうる。
【0009】
一方、特許文献2に記載された発明は、FPGAを用いる論理検証方法に関するものであって、論理検証対象回路のFPGAへのマッピングおよびFPGA間の配線の容易化と配線遅延による信号伝送の遅延の回避と、配線ルートの決定に要する時間の短縮化を図る手段として、対象論理を搭載するFPGA間にパラレルーシリアル変換およびシリアル−パラレル変換論理を組み込み、FPGA間信号線の配線用のスイッチFPGAを搭載して論理回路間の信号伝送を行う手法である。しかし、高速転送後の同期をどのようにとるかについては記載がなく、各FPGAに搭載した論理回路において、実行サイクルが数サイクル遅れてしまう危険がある。
【0010】
この問題への対応策として、各FPGA間のクロックを同期化するため、FPGA間配線の長さを等しくし、かつ共通のFPGAを使用してクロック発生部の遅延を同一化する物理的な設計を施し、FPGA間の遅延時間を考慮して論理回路に与えるクロックの周波数を調整し、全FPGAのPLLによるクロック発生が安定したのちに、通常の論理動作を開始する方法が考えられる。
【0011】
しかしながら、この方法では、FPGA搭載基板においてFPGA間のクロック供給用配線の等長配線処理が必要となり、また、同じFPGAを使用してもクロック生成部位に若干の遅延差が生じて、近距離のFPGA間転送においてミニマムディレイ違反などによる転送エラーが発生することがある。
【0012】
本発明は、このような実情に鑑みてなされたものであり、転送サイクル遅れのデータが存在しても正しい論理動作を実現できる論理検証装置を提供することを目的とする。
【課題を解決するための手段】
【0013】
大規模ASIC論理を分割して複数のFPGAに搭載すると、各FPGAに搭載した論理間の信号線がFPGAの物理ピン数を大幅に超過するため、転送手段としてパラレルーシリアル化論理を用いて、複数の信号線を1本の物理線上で送信、受信する時分割転送方法を用いる。このときの、物理線上の信号転送時間により、検証対象の大規模ASIC論理の動作周波数を決めることができる。
【0014】
時分割転送においては、信号値を保持するフリップフロップ等に直接の影響を与えるクロック信号やリセット信号を時分割転送の対象から除外した、データ信号等を転送対象とし、時分割転送が終了した時にASIC論理のクロックを動作させ、転送したデータを本来のASIC論理のレジスタ (フリップフロップ) に反映させる。しかしながら、FPGA搭載論理の状態によっては、FPGA間の転送データを1クロック内で転送できないことがある。そこで、時分割データ転送処理の開始タイミングおよび終了タイミングの前後に、信号安定化のための保持サイクルを割りあて、ASIC論理用クロックの立ち上げおよび立ち下げは、両端の保持サイクルに同期して、おこなう。このようにすれば、時分割転送サイクル遅れのデータが存在しても正しく論理動作する論理検証装置を提供できる。
【0015】
複数FPGAを用いる環境の例として、入出力ピン800本を持つFPGAを4個搭載した基板では、200本を3つのFPGA間との信号線、200本を外部入出力信号線として利用できる。
【0016】
ASIC論理を分割した場合のFPGA間信号線が4000本となった場合は、各FPGAのクロック線やリセット線など、直接フリップフロップを制御する制御信号を10本ていど用いるとすれば、3990/190=21であり、21信号線を1本のFPGAピンで信号送出すればよいことになる。21個のデータをシリアル転送するためには数ビットのシリアル線制御データを含めると24個以上の信号転送時間が必要となり、このときの論理動作は、FPGA間の信号転送処理よりも24倍の時間を要する。たとえば、100MHzでFPGA間転送処理を実現した場合、ASICの論理動作周波数は4.16MHzとなる。ここで、信号安定化のための保持時間として1クロックを割りあて、転送サイクルを25倍としたときのASIC論理動作周波数は4MHzとなり、96%の性能にダウンするが、論理動作の保証が容易であり、FPGA環境の構築も、たやすくなる。
【0017】
請求項1にかかる論理検証装置の構成は、検証対象の論理回路を複数個の論理ブロックに分割し、FPGAなど複数の半導体チップ上に当該複数個の論理ブロックを組み込んで、当該検証対象の論理回路の論理検証をおこなう装置であって、
上記半導体チップの物理ピン数を超える複数の信号線からの信号を転送する手段として、当該複数の信号線からの信号を1本の物理ピンで伝送可能とするパラレル−シリアル変換を用いた時分割転送論理と、
上記複数個の論理ブロック間の信号線の本数と、上記半導体チップの物理ピン数とから算出される、最大信号転送数量をもとに、時分割転送のためのクロックの数を求める論理と、
上記複数の半導体チップの、すべてから等距離に配置された源振クロック供給源とを備え、
パワーオン後に上記半導体チップのクロック生成が安定するまでは時分割転送を停止し、安定した時点で上記半導体チップのひとつから、他の上記半導体チップに対して時分割転送開始の信号を伝送し、
上記検証対象の論理回路で用いるクロックの変動を、時分割転送が終了した時点でおこなうことを特長とする。
【0018】
請求項1の論理検証装置によれば、各FPGAに分割した論理回路へ、それぞれクロック信号を供給した場合でも、位相ずれによる影響が生じない。これは、パラレル−シリアル変換を経て時分割転送されたデータが、すべての論理回路へ到達した後、各レジスタのクロック制御をOFFにして転送データの取り込みを停止し、それから論理回路の動作用クロックを動作させるためである。
【0019】
このように、請求項1の発明では、論理回路の動作用クロックと、時分割転送用のクロックとを、切り分けて用いる。論理回路の動作用クロックは、FPGA間に信号を転送するための最大サイクル数と、信号保持サイクル数を加えた間隔で発生する。時分割転送処理は、まず論理回路の動作用クロックの立ち上げや、立ち下げをおこなって、時分割転送処理の開始を指示する。最初のサイクルで、論理信号値は、転送元のレジスタに取り込まれ、同時に転送先のレジスタがクリアされる。続くサイクルで、データが転送元から出力され、転送先へ送られる。
【0020】
請求項2にかかる論理検証装置の構成は、請求項1に記載の論理検証装置において、
時分割転送のときに転送信号の正当性をチェックし、転送エラーが発生した場合はエラーとなった時分割転送の部位を報告する手段と、
クロック信号供給を停止する手段とを具備することを特長とする。
【0021】
請求項2の論理検証装置によれば、転送エラー信号にもとづいて、論理用クロックおよび転送用クロックの両者を、停止させることができ、エラーの原因追及が容易となる。さらに、この方式によれば、FPGA間の信号転送をせずに、論理クロックの挙動時の信号安定を保証できるため、動作不具合を発生しない。
【発明の効果】
【0022】
本発明を実施すれば、論理回路のクロック信号線と、FPGA間転送のデータ信号線との間において、フリップフロップ動作に充分なセットアップ時間およびホールド時間を容易に確保でき、検証装置の立上げ調整におけるFPGA間の信号転送が簡易となり、検証作業が円滑に進められる結果、検証期間の短縮、および検証コストの削減ができる。
【0023】
また、本発明を実施すれば、検証装置用のボードを設計する段階において、フリップフロップ動作に充分なセットアップ時間およびホールド時間を確保するための、特別な配線が不要となるため、製造コストを削減できる。
【図面の簡単な説明】
【0024】
【図1】本発明にかかる論理検証装置の概略図
【図2】本発明にかかる論理検証装置における検証構成の概略図
【図3】論理を3分割した場合のクロック接続の概略図
【図4】クロック生成機構の概略図
【図5】時分割転送論理部の概略図
【図6】時分割転送処理のタイムチャート
【図7】時分割転送チェック論理の概略図
【図8】転送エラーが生じた場合の時分割転送処理のタイムチャート
【発明を実施するための形態】
【0025】
以下、添付図面を参照しながら、本発明にかかる、分割搭載した論理回路の論理検証装置を実施するための最良の形態を詳細に説明する。図1〜図8は、本発明の実施の形態を例示する図であり、これらの図において、同一の符号を付した部分は同一物を表わし、基本的な構成及び動作は同様であるものとする。
【0026】
本発明の実施例として、半導体にFPGAを用いた方法につき、図を用いて詳細に説明する。図1は、検証対象装置の概略を示す。図1で示すように、検証対象装置全体100は論理1、論理2、論理3、論理4のように、一般的に複数の論理ブロックから構成される。クロック生成回路101で生成したクロックは、装置全体の順序回路を動作させ、装置への入力信号102から入力された信号は、論理1で処理され、その結果が論理2へ信号線103から送出される。また論理2は、信号線103からの入力にもとづき、所定の動作をおこなった結果を、信号線104から論理3へ送出する。同様に論理3は、信号線104からの入力にもとづき、所定の動作をおこなった結果を、信号線105から論理4へ送出し、論理4は、信号線105からの入力にもとづき、所定の動作をおこなった結果を、検証対象装置全体100からの出力信号106として送出する。
【0027】
このような論理構成をFPGA等に搭載する場合、単一のFPGAでは、すべてを搭載できないことが多く、複数のFPGA等に、対象の論理回路を分割して搭載する必要がある。
【0028】
図2は、図1の論理構成を、FPGA1(201)およびFPGA2(202)の、2個のFPGAに分割して搭載した装置の、検証構成の概略図を示す。FPGA間の信号伝播には、遅延がともなうため、一つのFPGA内のクロック生成回路で生成したクロック信号を、別のFPGAに送出して利用すると、信号遅延によって論理動作を同期化することが、むずかしくなる。そこで、複数のFPGAにまたがる論理動作を同期化するために、FPGA1(201)とFPGA2(202)へ、それぞれにクロック生成回路203および204を設け、発振器等からの源振クロック200で、各FPGA内のクロック生成回路203および204を駆動し、それぞれの順序回路にクロック信号を与える。
【0029】
クロックの同期化手段は、つぎのとおりである。各FPGA内のクロック生成回路203および204で用いるPLL等が、源振クロックで安定動作を開始したことを示す信号Lock1およびLock2が、全FPGAの安定動作を監視する同期リセット生成回路205に報告される。すると、同期リセット生成回路205から、同期リセット206が生成されて、全FPGAに伝達され、FPGA1(201)のクロック供給回路F1およびF2、ならびにFPGA2(202)のクロック供給回路F3およびF4のゲートが開き、それぞれの論理へクロックが供給される。
【0030】
一方、FPGA1(201)とFPGA2(202)の間は、物理的なピン数によって接続可能な信号線数が制約される。しかし、検証対象の装置の論理を複数FPGAに搭載すると、各FPGA間で必要となる信号線数は、この制約を超える場合が多い。この対策として、たとえばFPGA1(201)内の論理1から、FPGA2(202)内の論理2に信号を伝える場合、論理1の出力信号線4本を、パラレル−シリアル変換をおこなう時分割論理1でまとめ、1本の転送信号S0で信号転送を行い、FPGA2(202)側では、シリアル−パラレル変換機構などの時分割論理2によって転送信号S0をパラレル化し、信号線103を経由して論理2へ伝える。
【0031】
同様にFPGA2内の論理3から、FPGA1内の論理4に信号を伝える場合、論理3の出力信号線4本を、パラレル−シリアル変換をおこなう時分割論理3でまとめ、1本の転送信号S1で信号転送を行い、FPGA1側では、シリアル−パラレル変換機構などの時分割論理4によって転送信号S1をパラレル化し、信号線105を経由して論理4へ伝える。
【0032】
このとき、論理動作用のクロックC0およびC1が変動を1回する間に、時分割転送用のクロックT0およびT1は、時分割転送を完了させるのに必要なサイクル数の変動が必要である。すなわち時分割転送処理がnサイクル必要であれば、論理動作用クロックの立ち上がりでn回、立下りでn回を必要とするため、クロック生成回路203および204は、C0およびC1の1/2nの周期で、クロックT0およびT1を生成しなくてはならない。
【0033】
図3に、対象論理回路の分割が3個のFPGAとなった場合のクロック接続概略図を示す。図2と同じように、FPGA3にもクロック生成回路を持ち、該当クロック生成回路からのLock3信号を同期化用の同期リセット回路に接続して、すべてのFPGAのクロック生成回路が安定動作に移行したときに、全FPGAの論理用クロック、転送用クロックの駆動を開始することで、装置全体の同期動作を実現する。
【0034】
図4にクロック生成概略図を、図5に時分割転送論理部概略を示す。論理回路の論理用クロックは、各FPGA内のフリップフロップ等の順序回路を駆動する。各フリップフロップへの入力信号値は、ある程度の遅延時間経過後に、出力信号値として伝播するのがふつうである。受信側のFPGAと、送信側FPGAとの物理的距離などにより、転送信号の到達時間は、さらに遅くなる。
【0035】
したがって、FPGA間の信号転送においては、論理用クロックの変動後に、ある程度の遅延時間を考慮して転送用の信号値を取り込む必要があり、受信側では、転送信号の到達時間を考慮して、つぎの論理用クロックの変化をおこなう必要がある。
【0036】
図4を参照しながら、クロック生成方法について述べる。どのFPGAからも等距離に配置した、発振器等から供給される源振クロックが、FPGA内のPLL410に接続される。PLL410によってクロック出力が安定すると、Lock信号が、同期リセット生成回路へ送られる。あらかじめパラメタ等で設定した最大信号転送数量401と、論理クロック発行Waitサイクル数402(後述)との和が、論理クロック周期403となる。PLL410で生成したクロックで更新するカウンタ411のカウント値412と、論理クロック周期403とが、比較器404で比較され、等しければ、フリップフロップ405にイネーブル信号409が供給されるので、論理用クロックが反転して、転送用クロックが制御される。論理用クロックが変化すると、フリップフロップ405の出力信号と、フリップフロップ407の出力信号との、排他的論理和408によって転送起動(SE)が生成され、図5の時分割転送論理部に出力される。
【0037】
図5の時分割転送論理は、転送用クロックで動作する論理であり、送信側のシフト用フリップフロップのシフト段数と、受信側のシフト用フリップフロップのシフト段数を同一にしている。動作の概要は、つぎのとおりである。セレクタ521において、転送起動(SE)がHighになると、転送用クロックの立ち上がりで、転送開始Bit(High)と、検証対象論理部501内の組合せ回路511の出力信号線やフリップフロップ512の出力信号線を、送信側時分割転送論理502の送信用フリップフロップ522に取り込む。転送起動(SE)がLowになると、転送開始Bit(High)に続いて取り込んだ論理の信号値を、順次に送出信号として、受信側FPGAの受信側時分割転送論理503に送出する。
【0038】
受信側FPGAにおける、受信側時分割転送論理503では、受信信号を、順次に転送用クロックを用いて取り込む。転送開始Bitが最終段のフリップフロップ532に到達すると、受信用フリップフロップ531のクロックイネーブルがオフになり、受信用フリップフロップ531のシフト動作が停止する。取り込まれた転送信号は、つぎの転送用クロックで、後段のフリップフロップ533に設定され、検証対象論理部504に出力される。それと同時にフリップフロップ534の出力信号により、受信用フリップフロップ531が初期化される。この初期化で、受信用フリップフロップ531がゼロクリアされるため、つぎの転送信号がHighのときは、転送開始Bitであることが保証される。
【0039】
このように、論理用クロックの変化が生じたサイクルで転送起動(SE)を出力し、つぎの転送用クロックサイクルで、送信側の論理信号を時分割転送論理に取り込み、順次に受信側FPGAの受信側時分割転送論理に送出する。
【0040】
図6に、時分割転送処理のタイムチャートを掲げる。ここでは、4ビットの時分割転送処理を、8サイクルでおこなったときの、ようすを示している。最大信号転送数は5であり、その内訳は、信号が4サイクル、転送開始Bitが1サイクルである。加えて、論理クロック発行Waitサイクル数が3であり、その内訳は、論理クロックから時分割転送論理のセットアップ保証として1サイクル、FPGA間の転送保証として1サイクル、受信側の時分割転送論理から論理クロックのセットアップ保証として1サイクルである。
【0041】
つぎに、時分割転送論理における転送信号のチェック方法について述べる。図7は、時分割転送論理に、転送信号値のチェックをおこなうための、時分割転送チェック論理の概略を示す。送信側FPGAの送信側時分割転送論理701内のパリティチェック回路703は、転送対象信号線のパリティチェックをおこない、送信側チェック結果704を送出信号に付加して、受信側FPGAの受信側時分割転送論理702に送出する。受信側FPGAの受信側時分割転送論理702は、送信側パリティデータ705を受信信号から取り出し、さらにパリティチェック回路706によって、受信信号のパリティチェックをおこなって、受信側チェック結果707を求める。送信側パリティデータ705と、受信側チェック結果707とが比較され、不一致ならば、エラー信号が生成される。このエラー信号を、図4に示す転送エラー信号として用いれば、論理用クロックおよび転送用クロックが停止するので、エラー発生の時に、データ転送をしていた信号線を特定でき、エラー原因の究明が容易となる。
【0042】
図8に、転送エラー時における時分割転送タイムチャートの概略を示す。この方式によれば、FPGA間の信号転送をせずに、論理クロックの挙動時の信号安定を保証できるため、動作不具合を発生しない。
【0043】
以上、本発明の、分割搭載した論理回路の論理検証装置について、具体的な実施の形態を示して説明したが、本発明はこれらに限定されるものではない。当業者であれば、本発明の要旨を逸脱しない範囲内において、上記各実施形態における回路の構成及び機能に様々な変更・改良を加えることが可能である。
【産業上の利用可能性】
【0044】
本発明は、大規模集積回路の論理プロトタイピングに適用でき、大規模論理シミュレーションアクセラレータなどの論理検証装置、とりわけ大規模ASIC等をFPGAに搭載して、その論理機能を検証する装置に応用が可能である。
【0045】
そのほか、外部インタフェースをFPGAでモデリングし、論理エミュレータによってデバイスの機能検証をしようとする場合にも、広く採用することができる。
【符号の説明】
【0046】
100:検証対象装置全体
101:クロック生成回路
102:装置への入力信号
103、104、105:信号線
106:装置からの出力信号
200:発振器等からの源振クロック
201:FPGA1
202:FPGA2
203、204:クロック生成回路
205:同期リセット生成回路
206:同期リセット
401:最大信号転送数量
402:論理クロック発行Waitサイクル数
403:論理クロック周期
404:比較器
405、406,407:フリップフロップ
408:排他的論理和
409:イネーブル信号
410:PLL
411:カウンタ
501,504:検証対象論理部
502:送信側時分割転送論理
503:受信側時分割転送論理
521:セレクタ
522:送信用フリップフロップ
531:受信用フリップフロップ
532:最終段のフリップフロップ
533:受信側の後段のフリップフロップ
701:送信側時分割転送論理
702:受信側時分割転送論理
703、706:パリティチェック回路
704:送信側チェック結果
705:受信信号から取り出した送信側パリティデータ
707:受信側チェック結果

【特許請求の範囲】
【請求項1】
検証対象の論理回路を複数個の論理ブロックに分割し、FPGAなど複数の半導体チップ上に当該複数個の論理ブロックを組み込んで、当該検証対象の論理回路の論理検証をおこなう装置であって、
上記半導体チップの物理ピン数を超える複数の信号線からの信号を転送する手段として、当該複数の信号線からの信号を1本の物理ピンで伝送可能とするパラレル−シリアル変換を用いた時分割転送論理と、
上記複数個の論理ブロック間の信号線の本数と、上記半導体チップの物理ピン数とから算出される、最大信号転送数量をもとに、時分割転送のためのクロックの数を求める論理と、
上記複数の半導体チップの、すべてから等距離に配置された源振クロック供給源とを備え、
パワーオン後に上記半導体チップのクロック生成が安定するまでは時分割転送を停止し、安定した時点で上記半導体チップのひとつから、他の上記半導体チップに対して時分割転送開始の信号を伝送し、
上記検証対象の論理回路で用いるクロックの変動を、時分割転送が終了した時点でおこなうことを特長とする論理検証装置。
【請求項2】
請求項1に記載の論理検証装置において、
時分割転送のときに転送信号の正当性をチェックし、転送エラーが発生した場合はエラーとなった時分割転送の部位を報告する手段と、
クロック信号供給を停止する手段とを具備する論理検証装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−191893(P2011−191893A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2010−56014(P2010−56014)
【出願日】平成22年3月12日(2010.3.12)
【出願人】(000233295)日立情報通信エンジニアリング株式会社 (195)
【Fターム(参考)】