(57)【要約】【課題】  従来のエミュレーション装置は、複数のユーザー回路に対して、それよりも少ない数のメモリである場合、高速なエミュレーションが困難であった。【解決手段】本発明にかかるエミュレーション装置は、評価基板上に配置される電気的に再設計可能な半導体装置の内部に配置される複数の機能回路１０３と、評価基板上に配置され、複数の機能回路１０３から同時アクセスされることのあるメモリ１０２と、複数の機能回路の少なくとも２つがメモリ１０２に対して同時アクセスした場合はアクセスを時分割多重制御し、複数の機能回路１０３の少なくとも１つがメモリ１０２に対してアクセスをしている場合はアクティブ状態となるポーズ信号を出力するアクセス制御回路１０４と、ポーズ信号がアクティブ状態の間は複数の機能回路１０３へのクロック供給を停止するクロック制御回路１０５とを有するものである。【選択図】図１
2006268651.tif 000002
【特許請求の範囲】
【請求項１】
評価基板上に配置される電気的に再設計可能な半導体装置の内部に配置される複数の機能回路と、
評価基板上に配置され、前記複数の機能回路から同時アクセスされることのあるメモリと、
前記複数の機能回路の少なくとも２つが前記メモリに対して同時アクセスした場合はアクセスを時分割多重制御し、該複数の機能回路の少なくとも１つが前記メモリに対してアクセスをしている場合はアクティブ状態となるポーズ信号を出力するアクセス制御回路と、
前記ポーズ信号がアクティブ状態の間は前記複数の機能回路へのクロック供給を停止するクロック制御回路とを有するエミュレーション装置。
【請求項２】
前記複数の機能回路は、前記メモリを領域分割して仮想的に複数のメモリとして使用することを特徴とする請求項１に記載のエミュレーション装置。
【請求項３】
前記アクセス制御回路は、前記複数の機能回路それぞれが出力する第１のアドレス信号をメモリ上の実際のアドレスを示す第２のアドレス信号に変換するアクセス情報解析部を有することを特徴とする請求項１又は２に記載のエミュレーション装置。
【請求項４】
前記アクセス制御回路は、前記複数の機能回路それぞれが出力する前記第１のアドレス信号に基づきセレクト信号を出力するアクセス情報解析部と、前記セレクト信号に基づき前記複数の機能回路の送受信データのいずれか１つを選択するセレクタを有することを特徴とする請求項１乃至３のいずれか１項に記載のエミュレーション装置。
【請求項５】
前記アクセス制御回路は、前記第１のアドレス信号に基づいて前記クロック制御回路のクロック供給を停止させるポーズ信号を出力することを特徴とする請求項１乃至４のいずれか１項に記載のエミュレーション装置。
【請求項６】
前記クロック制御回路は、前記複数の機能回路が動作を行っている間は該複数の機能回路にクロックを供給することを特徴とする請求項１乃至５のいずれか１項に記載のエミュレーション装置。
【請求項７】
複数の機能回路と、
前記複数の機能回路から同時アクセスされることのあるメモリと、
前記複数の機能回路の少なくとも２つが前記メモリに対して同時アクセスした場合にはアクセスを時分割多重制御し、該複数の機能回路の少なくとも１つが前記メモリに対してアクセスをしている場合はアクティブ状態となるポーズ信号を出力するアクセス制御回路と、
前記ポーズ信号がアクティブ状態の間は前記複数の機能回路へのクロック供給を停止するクロック制御回路とを有するエミュレーション装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエミュレーション装置に関し、特にロジック回路が複数のメモリに同時にアクセスを行うシステムのエミュレーション装置に関する。
【背景技術】
【０００２】
システムＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）の開発において、システムＬＳＩの試作後に、不具合が発見された場合、その修正には、ＬＳＩ露光マスクの修正等高額な費用と、再度の試作等に長期の時間が必要である。特にその修正に要する費用は、ＬＳＩの高集積化が進むにつれて製造工程で使用する技術も高度なものとなるので、益々高額の費用が発生するようになってきている。
【０００３】
そこで、システムＬＳＩの不具合を未然に防ぐため、システムＬＳＩの試作前に、最終製品となるシステムＬＳＩに近い形での実動作検証が行われている。これによって、システムＬＳＩの設計を完成度の高いものとすること可能である。そこで、最終製品となるシステムＬＳＩの試作に先立って、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等の電気的に再設計可能なＬＳＩを用いたプロトタイプボードによってシステムＬＳＩの動作をエミュレーション（擬似動作）し、検証が行われる。
【０００４】
ＦＰＧＡを用いてエミュレーションを行うＦＰＧＡボード３００の模式図を図３に示す。図３に示すＦＰＧＡボード３００では、１つのＦＰＧＡ３０１とそれに接続される１つのメモリ３０２を有している。このＦＰＧＡ３０１は、外部のプログラムによって内部に様々な回路を実現できる。
【０００５】
エミュレーションを行う場合、ＦＰＧＡ３００に機能回路である複数のユーザー回路を実現し、それぞれのユーザー回路がメモリを有するシステムとなる場合がある。３つのユーザー回路とそのそれぞれに接続されるメモリを有するシステム４００のブロック図を図４に示す。図４に示すブロック図は、ユーザー回路４０１、４０２、４０３を有しており、ユーザー回路４０１とユーザー回路４０２とが接続され、ユーザー回路４０２とユーザー回路４０３とが接続されている。また、それぞれのユーザー回路は別々のメモリ４０４、４０５、４０６に接続されている。
【０００６】
システム４００のようなシステムをＦＰＧＡボード３００上でエミュレーションを行う場合、特許文献１で開示されている時分割多重アクセスを応用し、１つのオンボードメモリに対して時分割多重アクセスを行うことが考えられる。
【０００７】
従来の一般的な時分割多重アクセス回路を有するＦＰＧＡ５０１及びメモリ５０２のブロック図を図５に示す。図５に示すＦＰＧＡ５０１は、ユーザー回路１から３、時分割多重アクセス制御回路５０４を有している。また、メモリ５０２は、ユーザー回路１から３に対応して分割されたメモリ１から３を有している。ユーザー回路１から３には外部より低速クロックが与えられており、時分割多重アクセス制御回路５０４には外部より高速クロックが与えられている。時分割多重アクセス制御回路５０４は、各ユーザー回路からのアドレス１から３を受け取り、実際のメモリ上のアドレスに変換し、各ユーザー回路とメモリの通信を行う。
【０００８】
図５に示すＦＰＧＡ５０１及びメモリ５０２の動作タイミングチャートを図６に示す。図６に示す、タイミングＡの区間は、３つのユーザー回路からそれぞれメモリアクセス（ユーザーアクセス１から３）があった場合である。この場合、時分割多重アクセス制御回路５０４はそれぞれのアクセスを順次行う。これによって、３つのユーザー回路はそれぞれアクセスを完了する。また、タイミングＢは、３つのユーザー回路のうちユーザー回路２のみがメモリアクセスを行う場合である。この場合、時分割多重アクセス制御回路５０４はユーザー回路２のみのデータアクセスを行う。
【０００９】
従来の一般的な時分割多重アクセス制御回路では、ユーザー回路の１サイクルのクロック内で、複数のユーザー回路からのすべてのメモリアクセスを完了する必要がある。すべてのユーザー回路のメモリアクセスが完了する前に、ユーザー回路に次のサイクルのクロックが入力された場合、メモリのデータにアクセスできなかったユーザー回路が誤動作を起こす問題がある。
【００１０】
従来の一般的な時分割多重アクセス回路は、ユーザー回路の１サイクルのクロック内の時間をユーザー回路数で分割して使用している。このため、ユーザー回路のクロックの１サイクルの長さは、データアクセス時間とユーザー回路数との積で求まる長さよりも長くなければならない。
【００１１】
つまり、ユーザー回路のクロックの速度は、データアクセス時間とユーザー回路数とから求まる値より速くすることができない。このことから、ユーザー回路がメモリアクセスを行っていない時間であっても、ユーザー回路はメモリアクセスを考慮した遅いクロックで動作させなければならない。よって、ユーザー回路を高速で動作させることが困難である問題があった。また、システムＬＳＩの大規模化が進むと、ＦＰＧＡで実現する回路規模も大きくなり、検証する機能が増える。また、近年ではエミュレーション装置を用いて、早期のソフトウェア開発を行うことも行われている。この場合に、ＦＰＧＡの動作速度が遅いと、検証時間やソフトウェア開発期間が膨大になる問題がある。この問題を解決するために、ＦＰＧＡ内部のユーザー回路数にあわせて、メモリを増設することが考えられるが、この場合、ＦＰＧＡボードを再設計する時間とコストが増大する問題がある。
【特許文献１】特表２００２−５０７２９４号
【発明の開示】
【発明が解決しようとする課題】
【００１２】
従来のエミュレーション装置は、複数のユーザー回路に対して、それよりも少ない数のメモリである場合、高速なエミュレーションが困難であった。
【課題を解決するための手段】
【００１３】
本発明にかかるエミュレーション装置は、評価基板上に配置される電気的に再設計可能な半導体装置の内部に配置される複数の機能回路と、評価基板上に配置され、前記複数の機能回路から同時アクセスされることのあるメモリと、前記複数の機能回路の少なくとも２つが前記メモリに対して同時アクセスした場合はアクセスを時分割多重制御し、該複数の機能回路の少なくとも１つが前記メモリに対してアクセスをしている場合はアクティブ状態となるポーズ信号を出力するアクセス制御回路と、前記ポーズ信号がアクティブ状態の間は前記複数の機能回路へのクロック供給を停止するクロック制御回路とを有するものである。
【００１４】
本発明によれば、メモリに対して時分割多重アクセスを行う複数の機能回路を有するエミュレーション装置であっても、アクセス制御回路及びクロック制御回路を有することとで、機能回路がメモリアクセスを行っている間は機能回路へのクロックの供給を停止させ、メモリアクセスを行っていない間は機能回路へ高速なクロックを供給することが可能である。これによって、メモリアクセスを行っていない間は機能回路を高速に動作させることが可能になるため、エミュレーション検証の時間とコストを削減可能である。
【発明の効果】
【００１５】
本発明のエミュレーション装置によれば、複数のユーザー回路に対して、それよりも少ない数のメモリであっても、高速なエミュレーションが可能になる。
【発明を実施するための最良の形態】
【００１６】
実施の形態１
【００１７】
実施の形態１にかかるエミュレーション装置１００を図１に示す。エミュレーション装置１００について図１を参照して詳細に説明する。エミュレーション装置１００はＦＰＧＡ１０１とメモリ１０２を有している。
【００１８】
ＦＰＧＡ１０１は内部にエミュレーションする機能を実現したユーザー回路１０３、ユーザー回路１０３のメモリアクセスを時分割多重制御するアクセス制御回路１０４、ＦＰＧＡ１０１に入力されるオンボードクロックを制御し、ユーザー回路１０３へのユーザークロック供給を制御するクロック制御回路１０５を有している。
【００１９】
ユーザー回路１０３は、エミュレーションする機能回路の単位であるユーザー回路１から３を有している。ユーザー回路１から３は、それぞれ第１のアドレス信号であるアドレス１から３、データの書き込みを指定する信号Ｗｅｎ１から３、データの読み込みを指定する信号Ｒｅｎ１から３、送受信データとなるデータ１から３を入力又は出力する。ユーザー回路の入出力信号は、入力配線と出力配線とが分離しているセパレートバスであっても、入力配線と出力配線とが一体となっている入出力バスでもよい。
【００２０】
アクセス制御回路１０４は、アクセス情報解析部１０６とセレクタ１０７とを有している。アクセス情報解析部１０６は、アドレス１から３をメモリ上の実際アドレスを示す第２のアドレス信号であるＣｏｎｖｅｒｔｅｄアドレスに変換して出力する。また、アクセス情報解析部１０６は、入力されるアドレス１から３に基づいて、セレクタ１０７が接続されるユーザー回路１から３のいずれか１つを選択するためのセレクト信号ＳＥＬを出力する。セレクタ１０７は、このセレクト信号ＳＥＬに基づいて選択された１つユーザー回路とメモリ１０２との信号の送受信を可能にする。
【００２１】
さらに、アクセス情報解析部１０６は、アドレス１から３に基づいてポーズ信号と、メモリクロックを出力する。ポーズ信号は、クロック制御回路１０５が出力するユーザークロックを停止させる信号である。ポーズ信号は、アクティブ状態を示すＨｉｇｈレベル（例えば、電源電圧）の場合にユーザークロックを停止させ、ディスアクティブ状態を示すＬｏｗレベル（例えば、接地電圧）の場合はユーザークロックを停止させない。メモリクロックは、ユーザー回路がメモリアクセスを行っている時はクロックを出力し、メモリアクセスを行っていない時には停止しているクロックである。
【００２２】
また、アクセス情報解析部１０６は、外部からのオンボードクロックに基づいて動作している。さらに、クロック制御回路から出力されるユーザークロックをモニタしている。
【００２３】
クロック制御回路１０５は、クロックカウンタ１０８と判定器１０９を有している。クロックカウンタ１０８は外部より入力されるオンボードクロックの立ち上がりエッジの回数をカウントし、そのカウント値を出力端子Ｑより出力する。また、クロックカウンタ１０８は、アクセス制御回路１０４からインバータ１１０を介して反転したポーズ信号がｅｎａｂｌｅ端子に入力される。クロックカウンタ１０８は、ｅｎａｂｌｅ端子にＨｉｇｈレベルの信号が入力される時はオンボードクロックのカウントを行い、Ｌｏｗレベルの信号が入力される時はオンボードクロックのカウントを停止する。
【００２４】
判定器１０９は、判定条件によってクロックカウンタの分周比を決定し、ユーザークロックを生成する。実施の形態１は、例えば、４分周の判定条件となっている。判定条件Ｑ［１］＝＝１'ｂ１は、クロックカウンタ１０８の出力Ｑの２ビット目が"１（Ｈｉｇｈ）"である場合に判定器１０９は"１"を出力し、２ビット目が"０（Ｌｏｗ）"である場合に判定器１０９は"０"を出力する条件である。つまり、クロックカウンタ１０８の出力が２ビットのビットサイズであって、十の位を２ビット、一の位を１ビットとした場合、クロックカウンタ１０８の出力は"００"、"０１"、"１０"、"１１"と進む。このことから、２回のオンボードクロックの立ち上がり毎に判定器１０９の出力が"１"と"０"を繰り返し、４分周となることが分かる。この分周比は、１／２分周、２分周、８分周など任意に設定可能である。
【００２５】
メモリ１０２は、メモリが必要となるユーザー回路の数と同じだけ分割された仮想メモリ空間を有する。例えば、ユーザー回路１から３にそれぞれ対応したメモリ１から３を有している。
【００２６】
次に、実施の形態１にかかるエミュレーション装置の動作のタイミングチャートを図２に示す。図２を参照して実施の形態１にかかるエミュレーション装置の動作について説明する。
【００２７】
まず、タイミングＴ１でユーザー回路１から３がそれぞれメモリに対してアクセス１から３を行う。この場合、アクセス制御回路１０４はタイミングＴ１からＴ２でアクセス１に基づいてユーザー回路１とメモリ１とのデータの送受信を行い、タイミングＴ２からＴ３でアクセス２に基づいてユーザー回路２とメモリ２とのデータの送受信を行い、タイミングＴ３からＴ４でアクセス３に基づいてユーザー回路３とメモリ３とのデータの送受信を行う。つまり、アクセス制御回路１０４タイミングＴ１からＴ４で各アクセスを時分割多重して行う。
【００２８】
また、アクセス制御回路１０４は、タイミングＴ１で各ユーザー回路からのアクセス信号に基づいてメモリクロックを生成する。このメモリクロックに基づいてメモリは動作する。さらに、アクセス制御回路１０４は、アクセス信号に基づいてポーズ信号を生成する。このポーズ信号は、インバータ１１０によって反転した信号となり、クロック制御回路１０５内部のクロックカウンタ１０８のｅｎａｂｌｅ端子に入力される。クロックカウンタ１０８は、ｅｎａｂｌｅ端子にはＬｏｗレベルの信号が入力されることとなるため、オンボードクロックのカウント動作を停止する。これによって、クロックカウンタ１０８の出力は"１０"のまま保持される。クロックカウンタ１０８の出力Ｑが"０１"のままであるため、判定器１０９が出力するユーザークロックはＨｉｇｈレベルを保持したままになる。ユーザークロックがＨｉｇｈレベルで保持されている間、各ユーザー回路はデータ処理動作を停止する。
【００２９】
タイミングＴ４ですべてのユーザー回路からのアクセスを完了すると、アクセス制御回路１０４は、ポーズ信号をＬｏｗレベルとする。ポーズ信号に応じて、クロックカウンタ１０８のｅｎａｂｌｅ端子はＨｉｇｈレベルとなるため、オンボードクロックのカウントを再開する。よって、クロック制御回路１０５はユーザークロックを出力する。ユーザークロックに基づいて各ユーザー回路はデータ処理動作を行う。ユーザー回路１から３のいずれもがメモリへのアクセスを行わない場合、アクセス制御回路１０４はメモリクロックを停止する。
【００３０】
タイミングＴ５でユーザー回路２からメモリ１０２に対するアクセス２があり、ユーザー回路１及び３からはメモリ１０２に対するアクセスがなかった場合、アクセス制御回路１０４はアクセス２に基づいて、ユーザー回路２とメモリ２とのデータの送受信を行う。この場合も、ポーズ信号がＨｉｇｈレベルになり、クロックカウンタ１０８のカウント動作を停止する。よって、ユーザー回路２がアクセス２を完了するまで各ユーザー回路はデータ処理を停止する。
【００３１】
実施の形態１のエミュレーション装置１００によれば、ユーザー回路１から３の少なくともいずれか１つがメモリ１０２とデータを送受信している場合、アクセス制御回路１０４がポーズ信号をＨｉｇｈレベルにし、クロック制御回路１０５のユーザークロックを停止させる。これにより、ユーザークロックの速度を上げても、各ユーザー回路がメモリ１０２へのアクセス中にユーザー回路は動作しない。よって、メモリアクセス不良を起こすことなく、ユーザー回路を高速動作させることが可能である。複雑で大規模なユーザー回路を膨大な検証パターンによって検証する場合、ユーザー回路を高速動作させることで、従来のエミュレーション装置に比べ検証時間を短縮することが可能である。また、ソフトウェア開発にエミュレーション装置を用いる場合であっても、ユーザー回路を高速に動作させることができるため、ソフトウェアの開発期間を短縮することが可能である。
【００３２】
また、実施の形態１にかかるエミュレーション装置１００は、各ユーザー回路からメモリ１０２に対して時分割多重アクセスを行う。このことから、例えば、高速動作が可能な多様なユーザー回路を備えたエミュレーション検証基板を、１個のＦＰＧＡと１個のメモリとで実現可能である。つまり、所定のエミュレーション検証基板で様々なユーザー回路を検証可能であれば、新規にエミュレーション検証基板を設計する時間とコストとを削減可能である。
【００３３】
本発明は上記実施の形態に限られたものではなく、適宜変更が可能である。例えば、ユーザー回路は１つでも複数でもよく、個数は限られたものではない。また、メモリは複数でもよく、ユーザー回路から時分割多重アクセスされればよい。さらに、アクセス制御回路１０４とクロック制御回路１０５との接続はポーズ信号によって、ユーザークロックを停止できればよく、その接続の論理及び接続方法は上記実施の形態に限られたものではない。
【００３４】
また、上記実施の形態では電気的に再設計可能な装置としてＦＰＧＡを用いたが、これは、電気的に再設計可能な装置であればよい。例えば、ＣＰＬＤ（Ｃｏｍｐｌｅｘ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｌｏｇｉｃ  Ｄｅｖｉｃｅ）などでも実現可能である。また、ユーザー回路から時分割多重アクセスされるメモリは、メモリに限らずユーザー回路から時分割多重アクセスされる装置であればよい。
【図面の簡単な説明】
【００３５】
【図１】実施の形態１にかかるエミュレーション装置を示す図である。
【図２】実施の形態１にかかるエミュレーション装置の動作タイミングチャートである。
【図３】一般的なＦＰＧＡボードを示す図である。
【図４】複数のユーザー回路と複数のメモリを有する一般的なシステムの図である。
【図５】従来のエミュレーション装置を示す図である。
【図６】従来のエミュレーション装置の動作タイミングチャートを示す図である。
【符号の説明】
【００３６】
１０１    ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）
１０２    メモリ
１０３    ユーザー回路
１０４    アクセス制御回路
１０５    クロック制御回路
１０６    アクセス情報解析部
１０７    セレクタ
１０８    クロックカウンタ
１０９    判定器
１０９    判定器
１１０    インバータ
３０１    ＦＰＧＡ
３０２    メモリ
４０１    ユーザー回路
４０２    ユーザー回路
４０３    ユーザー回路
４０４    メモリ
５０１    ＦＰＧＡ
５０２    メモリ
５０４    時分割多重アクセス制御回路
【図１】
2006268651.tif 000003
【図２】
2006268651.tif 000004
【図３】
2006268651.tif 000005
【図４】
2006268651.tif 000006
【図５】
2006268651.tif 000007
【図６】
2006268651.tif 000008