【発明が解決しようとする課題】
【0010】
しかしながら、上述した各特許文献にかかる構成では、以下のような問題があった。即ち、ディジタル論理回路を構成する各機能回路では、信号処理に伴う遅延が発生する。かかる遅延に対してディジタル論理回路全体が、適切な信号処理を行わせるためには(正常動作させるためには)、マルチサイクル数を適切に設定する必要がある。しかし、様々な動作条件により遅延量が変動してしまう。このことは、動作条件により適切なマルチサイクル数も変動してしまうことを意味している。従って、ディジタル論理回路の設計においては、動作条件を想定して適切なマルチサイクル数で動作するように設計しなければならず、かかる設計作業には多大の労力が必要となる問題があった。
【0011】
また、動作合成ツールを用いる場合、C言語記述が逐次処理記述であるため、処理の深さを見積ることが困難である。加えて、RTLコードを自動生成する等によってC言語記述を見ただけで、回路の遅延量を見積ることは非常に困難である。さらに、信号処理やアルゴリズム処理では、算術演算を用いた処理が頻出するため、回路の遅延量自体が、増大する傾向がある。これら事情により、ディジタル論理回路の設計においては、マルチサイクルパス設計が必要となるケースが、増加している。そこで、これらのディジタル論理回路を効率的に設計し、かつ、適切なマルチサイクル数で動作させるための開発手法が、求められていた。
【0012】
かかる問題をディジタル論理回路の一つであるシングルサイクル回路とマルチサイクル回路とを例示して説明する。
【0013】
先ず、シングルサイクル回路について説明する。
図6は、シングルサイクル回路の構成を示す図で、(a)はブロック図、(b)はタイミングチャートである。
【0014】
このシングルサイクル回路は、端子ユニット100、組合せ回路ユニット110、ラッチユニット120を備える。
【0015】
端子ユニット100は、入力端子101a,101b、出力端子103a,103b、クロック端子102を備える。
【0016】
組合せ回路ユニット110は、所定の処理Aを行う前段組合せ回路111、所定の処理Bを行う後段組合せ回路112を備える。なお、所定の処理Aとは前段組合せ回路11が本来行う処理であり、回路機能によりかかる処理内容が異なるので、単に処理Aと記載している。所定の処理Bについても同様である。
【0017】
ラッチユニット120は、前段組合せ回路111の前段に設けられた前段ラッチ部121、前段組合せ回路111と後段組合せ回路112との間に設けられた中段ラッチ部122、後段組合せ回路112の後段に設けられた後段ラッチ部123を備える。
【0018】
また、前段ラッチ部121は、入力端子101aからの信号が入力するフィリップフロップ121a、入力端子101bからの信号が入力するフィリップフロップ121bを備える。同様に、中段ラッチ部122は、入力端子101aからの信号に対する前段組合せ回路111により処理Aが行われた結果信号が入力するフィリップフロップ122a、入力端子101bからの信号に対する前段組合せ回路111により処理Aが行われた結果信号が入力するフィリップフロップ122bを備える。後段ラッチ部123は、入力端子101aからの信号に対する後段組合せ回路112により処理Aが行われた結果信号が入力するフィリップフロップ123a、入力端子101bからの信号に対する後段組合せ回路112により処理Aが行われた結果信号が入力するフィリップフロップ123bを備える。
【0019】
このような構成で、入力端子101a,101bからの入力信号(時系列的にDin_0、Din_1、Din_2、Din_3、…と記載)は、クロック端子102からのクロック信号の立上エッジで、前段ラッチ部121によりラッチされる。
【0020】
組合せ回路111は、前段ラッチ部121からの信号に対して所定の処理Aを行う。
【0021】
処理Aが行われた結果信号(時系列的にDa_0、Da_1、Da_2、Da_3、…と記載)は、次のクロック信号の立上エッジで、中段ラッチ部122によりラッチされる。
【0022】
組合せ回路112は、中段ラッチ部122からの結果信号に対して所定の処理Bを行う。
【0023】
組合せ回路112で処理Bが行われた結果信号(時系列的にDb_0、Db_1、Db_2、Db_3、…と記載)は、次のクロック信号の立上エッジで、後段ラッチ部123によりラッチされる。
【0024】
そして、後段ラッチ部123からの信号は、出力信号(時系列的にDout_0、Dout_1、Dout_2、Dout_3、…と記載)として出力端子103a,103bから出力される。
【0025】
このとき、シングルサイクル回路が正常に動作するためには、組合せ回路111及び組合せ回路112等で生じる遅延量Dtがクロック信号の1周期以下であることが要求される。厳密には、中段ラッチ部122等やクロック信号のクロックスキューやジッターも考慮する必要があるが、説明を簡単にするために省略する。
【0026】
次に、マルチサイクル回路について説明する。
図7は、マルチサイクル回路の構成を示す図で、(a)はブロック図、(b)はタイミングチャートである。マルチサイクル回路の構成は、シングルサイクル回路とほぼ同じであるが、N進カウンタ141が追加されている。そして、ラッチユニット120における各フィリップフロップは、N進カウンタ141からの信号(イネーブル信号)が入力するイネーブル端子を備えている。
【0027】
ここで、N進カウンタ141は、例えば4クロックに1回アサートされるカウンタ信号をイネーブル信号として出力するものとする。即ち、N=4の場合を考える。
【0028】
入力端子101a、101bからの入力信号(時系列的にDin_0、Din_1、Din_2、Din_3、…と記載)は、クロック端子102からのイネーブル信号の立上エッジで、前段ラッチ部121でラッチされる。
【0029】
組合せ回路111は、前段ラッチ部121からの信号に対して所定の処理Aを行う。
【0030】
組合せ回路111で処理Aが行われて出力された結果信号(時系列的にDa_0、Da_1、Da_2、Da_3、…と記載)は、次のクロック信号の立上エッジで、中段ラッチ部122でラッチされる。
【0031】
組合せ回路112は、中段ラッチ部221からの信号に対して所定の処理Bを行う。
【0032】
組合せ回路112で処理Bが行われて出力された信号(時系列的にDb_0、Db_1、Db_2、Db_3、…と記載)は、次のイネーブル信号の立上エッジで、後段ラッチ部123でラッチされる。
【0033】
そして、後段ラッチ部123からの信号は、出力信号(時系列的にDout_0、Dout_1、Dout_2、Dout_3、…と記載)として出力端子103a、103bから出力される。
【0034】
このときマルチサイクル回路が正常に動作するためには、組合せ回路111及び組合せ回路112等による遅延量がN進カウンタの設定周期以下でなければならない(イネーブル信号の1周期以下)。即ち、イネーブル信号の1周期がクロック信号の4周期(N=4)の場合は、遅延量Dtはクロック信号の4周期(4T)以下でなければならない。この場合も、厳密には、ラッチユニット120及びクロック信号のクロックスキューやジッターも考慮する必要があるが、説明を簡単にするために省略する。
【0035】
動作合成ツールを用いたディジタル論理回路の開発では、マルチサイクル回路の適用頻度が増加する傾向にある。これはデバイス上にインプリメントされた時の回路遅延を予測する際に、記述の抽象度が実際の回路と比較的近いRTLコードよりも、より抽象的に記述されたC言語等のコードの方が回路遅延の見積が難しくなるためである。
【0036】
C言語等で記述される機能がある程度複雑なものになると、デバイス上にインプリメントされた際の回路遅延の絶対値も大きくなり、遅延量が1クロック周期で収まらない回路となることが多々発生することになる。このような回路は、マルチサイクル回路として
図7(a)で説明したような回路を用いてディジタル論理回路に組み込まれることになる。
【0037】
回路の遅延量に対して適切なマルチサイクル数を持ったディジタル論理回路を実現する上で、様々な動作条件により回路の遅延量が変動すると適切なマルチサイクル数も変動する。
【0038】
このような変更要因として、(1)実装デバイスの遅延性能、(2)動作モード、(3)省電力モード、(4)要求仕様変更に伴う設計変更が例示できる。
【0039】
(1)実装デバイスの遅延性能
設計したディジタル論理回路を動作させるデバイス自身の遅延性能によって、ディジタル論理回路の遅延量が変動することがある。そのため適用するディジタル論理回路によって適切なマルチサイクル数も変化する。また、外部メモリデバイスを使用するディジタル論理回路の場合は、外部メモリのアクセスタイムも遅延量に影響を与える。
【0040】
(2)動作モード
設計するディジタル論理回路が複数の動作モードを持つ場合に、動作モード毎に回路の遅延量が異なり適切なマルチサイクル数が変化することがある。
【0041】
(3)省電力モード
省電力を目的としてディジタル論理回路の電源電圧を定格の範囲内で低下させて動作させることによって回路の遅延量が変化することにより適切なマルチサイクル数も変化することがある。
【0042】
(4)要求仕様変更に伴う設計変更
一旦開発したディジタル論理回路に対して機能の追加や変更が必要になった場合、設計変更後の回路の遅延量が変化することによって適切なマルチサイクル数が変化することがある。
【0043】
従って、ディジタル論理回路の設計においては、上記に列挙した各動作条件を想定して適切なマルチサイクル数で動作させる設計を行うことは非常に労力のかかる作業であった。
【0044】
そこで、本発明の主目的は種々の動作条件に対しても適切なマルチサイクル数で動作できるように、マルチサイクル数が自律判定できるマルチサイクル数自律判定装置及びマルチサイクル数自律判定方法を提供することである。