JP2016071430A - マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法 - Google Patents

マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法 Download PDF

Info

Publication number
JP2016071430A
JP2016071430A JP2014197113A JP2014197113A JP2016071430A JP 2016071430 A JP2016071430 A JP 2016071430A JP 2014197113 A JP2014197113 A JP 2014197113A JP 2014197113 A JP2014197113 A JP 2014197113A JP 2016071430 A JP2016071430 A JP 2016071430A
Authority
JP
Japan
Prior art keywords
pattern signal
test pattern
test
cycle number
multicycle
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.)
Granted
Application number
JP2014197113A
Other languages
English (en)
Other versions
JP6404658B2 (ja
Inventor
直樹 志村
Naoki Shimura
直樹 志村
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.)
NEC Space Technologies Ltd
Original Assignee
NEC Space Technologies 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 NEC Space Technologies Ltd filed Critical NEC Space Technologies Ltd
Priority to JP2014197113A priority Critical patent/JP6404658B2/ja
Publication of JP2016071430A publication Critical patent/JP2016071430A/ja
Application granted granted Critical
Publication of JP6404658B2 publication Critical patent/JP6404658B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 種々の動作条件に対しても適切なマルチサイクル数で動作できるように、マルチサイクル数が自律判定できるようにする。
【解決手段】 入力要素の組み合わせパタンに対応した試験パタン信号を生成して組合せ回路に出力する試験パタン信号生成部と、サイクル数を示すマルチサイクル数設定指令を出力し、その際に最初は所定のマルチサイクル数初期値を内容とするマルチサイクル数設定指令を出力して、試験パタン信号生成部に低速試験用の試験パタン信号を生成させ、該低速試験が終了するとマルチサイクル数初期値より小さい値をマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、試験パタン信号生成部に高速試験用の試験パタン信号を生成させるシーケンサと、試験パタン信号に対して組合せ回路が行った処理結果を記憶し、その際に低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果との一致を判断する比較ユニットと、を備える。
【選択図】 図2

Description

本発明は、マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法に関する。
ディジタル論理回路では、マルチサイクル回路が多用される場合がある。このようなマルチサイクル回路に関する提案として、特開2012−248038号公報、特開2002−043934号公報、特開2004−228417号公報等が知られている。
特開2012−248038号公報においては、論理検証部、始点終点データ比較部、データ幅最小値抽出部、マルチサイクル数決定部を含むマルチサイクルパス検出装置が開示されている。
即ち、このマルチサイクルパス検出装置においては、論理検証部によりRTL(Register transfer level)データとネットリストとのいずれかと、RTLシミュレーションで使用されたユーザ検証パタンとを基に論理検証を実行する。始点終点データ比較部は、この論理検証の結果に基づき、半導体集積回路のパスを特定パスとして特定し、かつ、特定パスの始点のデータ値と終点のデータ値との比較を行う。データ幅最小値抽出部は、特定パスを伝搬する0と1とのいずれかのデータでありクロック信号のサイクル数をデータ幅とするデータを対象として、始点終点データ比較部によるデータ比較結果に基づき、最小のサイクル数を示すデータ幅最小値を抽出する。そして、マルチサイクル数決定部は、データ幅最小値に応じて、特定パスにおけるマルチサイクル数を決定する。これにより、ユーザ仕様依存のマルチサイクルパスを短時間で自動検出できるようにしている。
また、特開2002−043934号公報においては、比較的小さな回路規模で広いロックレンジを有するクロック生成回路が開示されている。
このクロック生成回路は、可変遅延回路を備え、外部クロックからデータ出力までの遅延量の最適なサイクル数を測定する。そして、そのサイクル数でロックを行えるようにDLL(Dynamic Link Library)回路などを構成している。
さらに、特開2004−228417号公報においては、フェーズ・ロックド・ループ回路(PLL)を設け、このPLL内の動作制御信号により分周回路の分周率を制御して、クロック信号の周波数を決定する技術が開示されている。
このとき、ディジタル論理回路設計において、主に信号処理やアルゴリズム処理等の機能において、実現する回路の動作仕様をC言語等の逐次処理で記述される場合が多く、そのための動作合成ツールが開発されている。この動作合成は、C言語等の逐次処理コードを元にRTL(Register transfer level)コードと呼ばれる論理合成可能なハードウェア記述を自動生成する開発手法であり、ディジタル論理回路の元仕様がC言語等で記述された設計対象をハードウェア化する際において一般的に用いられる開発手法である。
特開2012−248038号公報 特開2002−043934号公報 特開2004−228417号公報
しかしながら、上述した各特許文献にかかる構成では、以下のような問題があった。即ち、ディジタル論理回路を構成する各機能回路では、信号処理に伴う遅延が発生する。かかる遅延に対してディジタル論理回路全体が、適切な信号処理を行わせるためには(正常動作させるためには)、マルチサイクル数を適切に設定する必要がある。しかし、様々な動作条件により遅延量が変動してしまう。このことは、動作条件により適切なマルチサイクル数も変動してしまうことを意味している。従って、ディジタル論理回路の設計においては、動作条件を想定して適切なマルチサイクル数で動作するように設計しなければならず、かかる設計作業には多大の労力が必要となる問題があった。
また、動作合成ツールを用いる場合、C言語記述が逐次処理記述であるため、処理の深さを見積ることが困難である。加えて、RTLコードを自動生成する等によってC言語記述を見ただけで、回路の遅延量を見積ることは非常に困難である。さらに、信号処理やアルゴリズム処理では、算術演算を用いた処理が頻出するため、回路の遅延量自体が、増大する傾向がある。これら事情により、ディジタル論理回路の設計においては、マルチサイクルパス設計が必要となるケースが、増加している。そこで、これらのディジタル論理回路を効率的に設計し、かつ、適切なマルチサイクル数で動作させるための開発手法が、求められていた。
かかる問題をディジタル論理回路の一つであるシングルサイクル回路とマルチサイクル回路とを例示して説明する。
先ず、シングルサイクル回路について説明する。図6は、シングルサイクル回路の構成を示す図で、(a)はブロック図、(b)はタイミングチャートである。
このシングルサイクル回路は、端子ユニット100、組合せ回路ユニット110、ラッチユニット120を備える。
端子ユニット100は、入力端子101a,101b、出力端子103a,103b、クロック端子102を備える。
組合せ回路ユニット110は、所定の処理Aを行う前段組合せ回路111、所定の処理Bを行う後段組合せ回路112を備える。なお、所定の処理Aとは前段組合せ回路11が本来行う処理であり、回路機能によりかかる処理内容が異なるので、単に処理Aと記載している。所定の処理Bについても同様である。
ラッチユニット120は、前段組合せ回路111の前段に設けられた前段ラッチ部121、前段組合せ回路111と後段組合せ回路112との間に設けられた中段ラッチ部122、後段組合せ回路112の後段に設けられた後段ラッチ部123を備える。
また、前段ラッチ部121は、入力端子101aからの信号が入力するフィリップフロップ121a、入力端子101bからの信号が入力するフィリップフロップ121bを備える。同様に、中段ラッチ部122は、入力端子101aからの信号に対する前段組合せ回路111により処理Aが行われた結果信号が入力するフィリップフロップ122a、入力端子101bからの信号に対する前段組合せ回路111により処理Aが行われた結果信号が入力するフィリップフロップ122bを備える。後段ラッチ部123は、入力端子101aからの信号に対する後段組合せ回路112により処理Aが行われた結果信号が入力するフィリップフロップ123a、入力端子101bからの信号に対する後段組合せ回路112により処理Aが行われた結果信号が入力するフィリップフロップ123bを備える。
このような構成で、入力端子101a,101bからの入力信号(時系列的にDin_0、Din_1、Din_2、Din_3、…と記載)は、クロック端子102からのクロック信号の立上エッジで、前段ラッチ部121によりラッチされる。
組合せ回路111は、前段ラッチ部121からの信号に対して所定の処理Aを行う。
処理Aが行われた結果信号(時系列的にDa_0、Da_1、Da_2、Da_3、…と記載)は、次のクロック信号の立上エッジで、中段ラッチ部122によりラッチされる。
組合せ回路112は、中段ラッチ部122からの結果信号に対して所定の処理Bを行う。
組合せ回路112で処理Bが行われた結果信号(時系列的にDb_0、Db_1、Db_2、Db_3、…と記載)は、次のクロック信号の立上エッジで、後段ラッチ部123によりラッチされる。
そして、後段ラッチ部123からの信号は、出力信号(時系列的にDout_0、Dout_1、Dout_2、Dout_3、…と記載)として出力端子103a,103bから出力される。
このとき、シングルサイクル回路が正常に動作するためには、組合せ回路111及び組合せ回路112等で生じる遅延量Dtがクロック信号の1周期以下であることが要求される。厳密には、中段ラッチ部122等やクロック信号のクロックスキューやジッターも考慮する必要があるが、説明を簡単にするために省略する。
次に、マルチサイクル回路について説明する。図7は、マルチサイクル回路の構成を示す図で、(a)はブロック図、(b)はタイミングチャートである。マルチサイクル回路の構成は、シングルサイクル回路とほぼ同じであるが、N進カウンタ141が追加されている。そして、ラッチユニット120における各フィリップフロップは、N進カウンタ141からの信号(イネーブル信号)が入力するイネーブル端子を備えている。
ここで、N進カウンタ141は、例えば4クロックに1回アサートされるカウンタ信号をイネーブル信号として出力するものとする。即ち、N=4の場合を考える。
入力端子101a、101bからの入力信号(時系列的にDin_0、Din_1、Din_2、Din_3、…と記載)は、クロック端子102からのイネーブル信号の立上エッジで、前段ラッチ部121でラッチされる。
組合せ回路111は、前段ラッチ部121からの信号に対して所定の処理Aを行う。
組合せ回路111で処理Aが行われて出力された結果信号(時系列的にDa_0、Da_1、Da_2、Da_3、…と記載)は、次のクロック信号の立上エッジで、中段ラッチ部122でラッチされる。
組合せ回路112は、中段ラッチ部221からの信号に対して所定の処理Bを行う。
組合せ回路112で処理Bが行われて出力された信号(時系列的にDb_0、Db_1、Db_2、Db_3、…と記載)は、次のイネーブル信号の立上エッジで、後段ラッチ部123でラッチされる。
そして、後段ラッチ部123からの信号は、出力信号(時系列的にDout_0、Dout_1、Dout_2、Dout_3、…と記載)として出力端子103a、103bから出力される。
このときマルチサイクル回路が正常に動作するためには、組合せ回路111及び組合せ回路112等による遅延量がN進カウンタの設定周期以下でなければならない(イネーブル信号の1周期以下)。即ち、イネーブル信号の1周期がクロック信号の4周期(N=4)の場合は、遅延量Dtはクロック信号の4周期(4T)以下でなければならない。この場合も、厳密には、ラッチユニット120及びクロック信号のクロックスキューやジッターも考慮する必要があるが、説明を簡単にするために省略する。
動作合成ツールを用いたディジタル論理回路の開発では、マルチサイクル回路の適用頻度が増加する傾向にある。これはデバイス上にインプリメントされた時の回路遅延を予測する際に、記述の抽象度が実際の回路と比較的近いRTLコードよりも、より抽象的に記述されたC言語等のコードの方が回路遅延の見積が難しくなるためである。
C言語等で記述される機能がある程度複雑なものになると、デバイス上にインプリメントされた際の回路遅延の絶対値も大きくなり、遅延量が1クロック周期で収まらない回路となることが多々発生することになる。このような回路は、マルチサイクル回路として図7(a)で説明したような回路を用いてディジタル論理回路に組み込まれることになる。
回路の遅延量に対して適切なマルチサイクル数を持ったディジタル論理回路を実現する上で、様々な動作条件により回路の遅延量が変動すると適切なマルチサイクル数も変動する。
このような変更要因として、(1)実装デバイスの遅延性能、(2)動作モード、(3)省電力モード、(4)要求仕様変更に伴う設計変更が例示できる。
(1)実装デバイスの遅延性能
設計したディジタル論理回路を動作させるデバイス自身の遅延性能によって、ディジタル論理回路の遅延量が変動することがある。そのため適用するディジタル論理回路によって適切なマルチサイクル数も変化する。また、外部メモリデバイスを使用するディジタル論理回路の場合は、外部メモリのアクセスタイムも遅延量に影響を与える。
(2)動作モード
設計するディジタル論理回路が複数の動作モードを持つ場合に、動作モード毎に回路の遅延量が異なり適切なマルチサイクル数が変化することがある。
(3)省電力モード
省電力を目的としてディジタル論理回路の電源電圧を定格の範囲内で低下させて動作させることによって回路の遅延量が変化することにより適切なマルチサイクル数も変化することがある。
(4)要求仕様変更に伴う設計変更
一旦開発したディジタル論理回路に対して機能の追加や変更が必要になった場合、設計変更後の回路の遅延量が変化することによって適切なマルチサイクル数が変化することがある。
従って、ディジタル論理回路の設計においては、上記に列挙した各動作条件を想定して適切なマルチサイクル数で動作させる設計を行うことは非常に労力のかかる作業であった。
そこで、本発明の主目的は種々の動作条件に対しても適切なマルチサイクル数で動作できるように、マルチサイクル数が自律判定できるマルチサイクル数自律判定装置及びマルチサイクル数自律判定方法を提供することである。
上記課題を解決するため、所定の機能をなす少なくとも1以上の組合せ回路に入力する信号をラッチする前段ラッチ部及び、組合せ回路からの出力信号をラッチする後段ラッチ部をからなるディジタル論理回路における各処理で発生する遅延量に適応したマルチサイクル数を自律判定するマルチサイクル数自律判定装置にかかる発明は、少なくとも入力要素の組み合わせパタンに対応した試験パタン信号を生成して組合せ回路に出力する試験パタン信号生成部と、サイクル数を示すマルチサイクル数設定指令を出力し、その際に動作条件が変化した際には予め設定されたマルチサイクル数初期値を低速試験時のサイクル数とするマルチサイクル数設定指令を出力して、試験パタン信号生成部に低速試験用の試験パタン信号を生成させ、該低速試験が終了するとマルチサイクル数初期値より小さい値を高速試験時のサイクル数とするマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、試験パタン信号生成部に高速試験用の試験パタン信号を生成させるシーケンサと、試験パタン信号に対して組合せ回路が行った処理結果を記憶し、その際に低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果との一致を判断する比較ユニットと、を備え、シーケンサは、比較ユニットからの比較結果が低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果とが一致しなくなるまで、マルチサイクル数から1を減算した値を新たなマルチサイクル数トライ値としてマルチサイクル数設定指令を出力して、低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果とが不一致になったときのマルチサイクル数に1を加算した値を最適マルチサイクルとして判定することを特徴とするマルチサイクル数自律判定装置。
また、所定の機能をなす組合せ回路に入力する信号をラッチする前段ラッチ部及び、組合せ回路からの出力信号をラッチする後段ラッチ部をからなるディジタル論理回路における各処理で発生する遅延量に適応したマルチサイクル数を自律判定するマルチサイクル数自律判定方法にかかる発明は、入力要素の組み合わせパタン毎に対応した試験パタン信号を生成して組合せ回路に出力する試験パタン信号生成手順と、サイクル数を示すマルチサイクル数設定指令を出力し、その際に動作条件が変化した際には予め設定されたマルチサイクル数初期値を低速試験時のサイクル数とするマルチサイクル数設定指令を出力して、低速試験用の試験パタン信号を生成させ、該低速試験が終了するとマルチサイクル数初期値より小さい値を高速試験時のサイクル数とするマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、該高速試験用の試験パタン信号を生成させるシーケンス手順と、試験パタン信号に対して組合せ回路が行った処理結果を記憶し、その際に低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果との一致を判断する比較手順と、を備え、シーケンス手順は、比較結果が低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果とが一致しなくなるまで、マルチサイクル数から1を減算した値を新たなマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、低速試験用の試験パタン信号に対する処理結果と高速試験用の試験パタン信号に対する処理結果とが不一致になったときのマルチサイクル数に1を加算した値を最適マルチサイクルとして判定する手順を含むことを特徴とするマルチサイクル数自律判定方法。
本発明によれば種々の動作条件が変化した際に、自立的に適切なマルチサイクル数を判定できるようになる。
ディジタル論理回路におけるマルチサイクル数自律判定処理の概念を説明した図である。 マルチサイクル数自律判定装置が組み込まれたディジタル論理回路のブロック図である。 ディジタル論理回路における動作モードの遷移を示した図である。 サイクル数判定処理モードの動作を示すフローチャートである。 マルチサイクル数と回路遅延量の関係を説明するタイミングチャートで、(a)はマルチサイクル数=5、(b)はマルチサイクル数=4、(c)はマルチサイクル数=3の場合を示している。 関連技術の説明に適用されるシングルサイクル回路の動作を示す図で、(a)はブロック図、(b)はタイミングチャートである。 関連技術の説明に適用されるマルチサイクル回路の動作を示す図で、(a)はブロック図、(b)はタイミングチャートである。
発明を実施するための形態の説明に先立ち、本発明の概要及び原理を説明する。マルチサイクル数自律判定装置は、ディジタル論理回路に組み込まれて、ディジタル論理回路が本来目的とする処理の開始前に最適なマルチサイクル数を調べるためのマルチサイクル数自律判定処理を行う。これにより、様々な動作条件下において、常に最適なマルチサイクル数でディジタル論理回路を動作させ、処理スループット向上や低消費電力化を図った回路を容易に開発することが可能になる。
図1は、ディジタル論理回路におけるマルチサイクル数自律判定処理(以下、サイクル数判定処理と適宜記載する)の概念を説明した図である。ディジタル論理回路は、当該ディジタル論理回路における本来目的の処理(正規処理)と、サイクル数判定処理とを選択的に行う。そして、サイクル数判定処理は正規処理の開始前に低速試験と高速試験とを行い、この結果を比較することにより最適サイクル数を決定する。
(低速試験)
外部回路からの開始指令G1がディジタル論理回路に入力すると、サイクル数判定処理が開始する。即ち、開始指令G1がシーケンサ11に入力すると、シーケンサ11は予め設定されたマルチサイクル数設定値をサイクル数初期値とするマルチサイクル数設定指令G2を試験パタン信号生成部12及び組合せ回路13に出力する。
このときサイクル数初期値は、組合せ回路13に対して想定された遅延量より十分大きなマルチサイクル数とする。即ち、サイクル時間は、組合せ回路13の遅延量より十分大きい値になるように、サイクル数初期値が設定される。
次に、シーケンサ11は、試験パタン信号生成部12に対して試験パタン信号生成指令G3を出力する。これにより試験パタン信号生成部12は、試験パタン信号を生成して組合せ回路13に出力する。このとき生成される試験パタン信号は、ディジタル論理回路を構成する全ての入力要素を組み合わせた際の、組み合わせ毎の試験パタン信号である。
組合せ回路13は、試験パタン信号に対する処理結果を、低速試験時の処理結果G4として第1メモリ14に格納する。
全ての組合せ試験パタン信号に対する処理結果が第1メモリ14に格納されると、シーケンサ11は、現在のマルチサイクル数より1だけ小さい値のマルチサイクル数に変更し(変更されたマルチサイクル数をマルチサイクル数トライ値)これを新たなマルチサイクル数設定指令G2として出力する。
(高速試験処理)
そして、シーケンサ11は、新たなマルチサイクル数設定指令G2を試験パタン信号生成部12及び組合せ回路13に出力する。これにより、試験パタン信号生成部12は、新たに通知されたマルチサイクル数トライ値に対して試験パタン信号を作成し、組合せ回路13に出力する。組合せ回路13は、試験パタン信号に対する処理結果を、高速試験時の処理結果G5として第2メモリ15に格納する。
全ての組合せ試験パタン信号に対する処理結果が第2メモリ15に格納されると、値比較部16は、第1メモリ14に格納された低速試験時の処理結果と第2メモリ15に格納された高速試験時の処理結果との値比較を行う。
この比較結果はシーケンサ11に通知され、全ての値が一致した場合にはマルチサイクル数設定指令G2を現在値より1小さい値に再設定して、上記高速試験処理を繰り返す。
一方、低速試験時の処理結果と高速試験時の処理結果とが不一致である場合、マルチサイクル数の決定処理が行われる。
即ち、比較結果が不一致の場合(正確には、一致から不一致になった場合)、現在のマルチサイクル数設定値に1を加えた値を、現状の動作条件に対する最適なマルチサイクル数設定値と決定し、これによりサイクル数判定処理は終了する。
<第1実施形態>
次に、上述した発明の原理に基づく本発明の実施形態を説明する。図2は、本実施形態にかかるマルチサイクル数自律判定装置が組み込まれたディジタル論理回路20のブロック図である。このディジタル論理回路20は、マルチサイクル数自律判定装置が組み込まれたディジタル論理回路20のブロック図である。
ディジタル論理回路20は、セレクタユニット21、ラッチユニット22、組合せ回路23、比較ユニット24、シーケンサ25、試験パタン信号生成部26、N進カウンタ27、入力側端子ユニット28、出力側端子ユニット29を備える。そして、マルチサイクル数自律判定装置は、セレクタユニット21、比較ユニット24、シーケンサ25、試験パタン信号生成部26等により構成されている。
セレクタユニット21は、処理対象である入力信号と試験パタン信号とのいずれか1方を選択してラッチユニット22に出力するセレクタ21a,21bを備える。
ラッチユニット22は、組合せ回路23の前段に設けられて処理対象データをラッチするイネーブル機能付きの前段ラッチ部22A(22Aa,22Ab)、組合せ回路23の後段に設けられて該組合せ回路23の処理結果をラッチするイネーブル機能付きの後段ラッチ部22B(22Ba,22Bb)を備える。
組合せ回路23は、ディジタル論理回路20の処理ロジックを含み、所定の処理Cを行う。
比較ユニット24は、第1メモリ24Aa及び第2メモリ24Abを含むメモリ部24A、メモリ部24Aの書込み及び読出し制御を行うメモリ制御部24B、第1メモリ24Aa及び第2メモリ24Abの値を比較する値比較部24Cを含む。
このとき、第1メモリ24Aaには、低速試験時における組合せ回路23のサイクル数判定結果が格納される。また、第2メモリ24Abには、高速試験時における組合せ回路23のサイクル数判定結果が格納される。そして、値比較部24Cは、第1メモリ24Aaと第2メモリ24Abとに格納されているデータ値を比較する。
シーケンサ25は、サイクル数判定処理におけるサイクル数設定指示G21、データ選択信号G22、試験パタン信号生成指令G23を出力する。
試験パタン信号生成部26は、サイクル数判定処理における試験パタン信号を生成する。
N進カウンタ27は、組合せ回路23に対してのマルチサイクル数を指示する。
入力側端子ユニット28は、入力信号端子(IN1,IN2)28a,28b、処理タイミング指示信号端子(IEN)28c、クロック信号端子(CLK)28d、判定開始信号端子(REQ)28e、リセット信号端子(RST)28f、を備える。
出力側端子ユニット29は、ディジタル論理回路20の処理結果が出力される出力信号端子(OUT1、OUT2)29a,29b、後段のディジタル論理回路20に対する処理タイミング指示信号端子(OEN)29c、判定終了信号端子(FIN)29dを備える。
次に、上記ディジタル論理回路20の動作を説明する。
図3は、ディジタル論理回路20における動作モードの遷移を示した図である。ディジタル論理回路20は、本来の処理(正規処理)を行う正規処理モードと、サイクル数判定処理を行うサイクル数判定処理モードとの、2つのモードを切り替えながら動作する。
リセット信号端子28fにリセット信号G11が入力すると、ディジタル論理回路20は初期化される。この初期化により、ディジタル論理回路20はサイクル数判定処理モードに遷移し、サイクル数判定処理を開始する。
そして、判定終了信号端子29dにサイクル数判定処理終了指令G12が入力すると、ディジタル論理回路20は正規処理モードに遷移する。
このとき、サイクル数判定処理モードにおけるサイクル数判定処理により決定されたサイクル数が、N進カウンタ70に設定される。正規処理モードにおいては、この設定されたサイクル数で正規処理が行われる。
ディジタル論理回路20が正規処理モードで正規処理を実行している最中に動作条件が変化すると、リセット信号端子28fから再度サイクル数判定処理の開始を意味するリセット信号G11が入力して、ディジタル論理回路20は正規処理モードからサイクル数判定処理モードに遷移する。そして、上述したようにサイクル数が決定される。
次に、サイクル数判定処理モードの動作を、図4に示すフローチャートを参照して説明する。
ステップSA1: リセット信号G11が入力して、ディジタル論理回路20が初期化されると、ディジタル論理回路20はサイクル数判定処理モードに遷移して、サイクル数判定処理を開始する。サイクル数判定処理が開始されると、シーケンサ25は、マルチサイクル数を指定するサイクル数設定指示G21をN進カウンタ27、試験パタン信号生成部12及びメモリ制御部24Bに出力する。このときのサイクル数は、暫定値であり、ここではMとする。但し、暫定値Mは、実装される組合せ回路23における想定した遅延量に対して十分に大きな値とする。
ステップSA2: 次に、シーケンサ25は、試験パタン信号生成部12からの信号を選択するためのデータ選択信号G22を、セレクタユニット21に対して出力する。
ステップSA3: その後、シーケンサ25は、試験パタン信号生成部12及びメモリ制御部24Bに対して、試験パタン信号生成指令G23を出力する。これにより試験パタン信号生成部12は、試験パタン信号を生成し、セレクタユニット21に出力する。
ステップSA4:以上により、サイクル数判定処理(低速試験)の前準備が完了するので、サイクル数判定が開始される。
低速試験におけるサイクル数判定処理では、試験パタン信号生成部12が試験パタン信号を生成し、セレクタユニット21が信号選択を行い、前段ラッチ部22Aが信号のラッチを行う。そして、組合せ回路23がラッチされた信号に対して処理Cを行い、その出力を後段ラッチ部22Bがラッチする。後段ラッチ部22Bからの信号は、比較ユニット24のメモリ部24Aに記憶される。
即ち、試験パタン信号生成部12に試験パタン信号生成指令G23が受信されると、この試験パタン信号生成部12はクロック信号端子28dから入力したクロック信号G26の周期Tに対してM倍の周期(=T*M)で、全ての入力要素の組合せのパタンを試験パタン信号として生成する。なお、組合せ数は、データ入力信号の二乗数ある。例えば、図2のように入力信号が2本の場合は4パタン、入力信号が16本の場合は256パタンの試験パタン信号が生成される。
セレクタユニット21は、データ選択信号G22に基づき、試験パタン信号生成部26からの信号を選択して、前段ラッチ部22Aに出力する。即ち、セレクタユニット21は、サイクル数判定処理モードの最中は、常時試験パタン信号生成部12からの信号を選択して前段ラッチ部22Aに出力する。なお、正規処理モードの時は、セレクタユニット21は、入力端子28a,28bからの入力信号を選択して前段ラッチ部22Aに出力する。
前段ラッチ部22Aに含まれる各フィリップフロップ22Aa、22Abは、イネーブル機能を有する。そして、N進カウンタ27から出力されるラッチイネーブル信号G24に同期して、セレクタユニット21からの信号をラッチする。従って、前段ラッチ部22Aは、サイクル数判定処理モードにおいては試験パタン信号をラッチし、正規処理モードにおいては入力端子28a,28bからの入力信号をラッチする。
組合せ回路23は、前段ラッチ部22Aからの信号に対して処理Cを行う。
後段ラッチ部22Bに含まれる各フィリップフロップ22Ba、22Bbは、イネーブル機能を有する。そして、N進カウンタ27から出力されるラッチイネーブル信号G24に同期して、組合せ回路23からの信号をラッチする。従って、後段ラッチ部22Bは、サイクル数判定処理モードにおいては処理Cを行った試験パタン信号をラッチし、正規処理モードにおいては処理Cを行った入力信号をラッチする。
この時、後段ラッチ部22Bは前段ラッチ部22Aと同じイネーブル信号G24でラッチするので、クロック信号G26の周期Tに対してM倍の周期(=T*M)の時間が、組合せ回路23における処理Cに対して与えられる。
メモリ制御部24Bは、後段ラッチ部22Bがラッチしたデータを、第1メモリ24Aaに書き込むために、メモリ制御信号G25をラッチイネーブル信号G24のタイミングで出力する。これにより、試験パタン信号に対して処理Cが行われた結果が、第1メモリ24Aaに書き込まれる。なお、先にも説明したように、試験パタン信号は複数存在するので、処理Cが行われた各試験パタン信号の処理結果は第1メモリ24Aaに順に(例えば、先頭アドレスから)書き込まれる。
ステップSA5〜SA7: 以上により、低速試験におけるサイクル数判定処理が終了し、次に高速試験におけるサイクル数判定処理が行なわれる。この設定は、シーケンサ25がN進カウンタ27、試験パタン信号生成部12、メモリ制御部24Bに、サイクル数の更新値(マルチサイクル数トライ値)を指定するサイクル数設定指示G21を出力することにより行われる。但し、このときに指定するマルチサイクル数トライ値は、現在のサイクル数から1を減算した値とする。以下の説明では、マルチサイクル数トライ値をサイクル数Kとする。
その後、シーケンサ25は、再度、試験パタン信号生成指令G23を試験パタン信号生成部26、メモリ制御部24Bに出力する。これにより、メモリ制御部24Bは、組合せ回路23からのデータが第2メモリ24Abに記憶されるように制御する。そして、試験パタン信号生成部26が試験パタン信号の生成を開始する。生成された試験パタン信号は、セレクタユニット21、前段ラッチ部22Aを介して、組合せ回路23に入力し、ここで処理Cが行われ、後段ラッチ部22Bを介してメモリ部24Aに入力する。そして、組合せ回路23からのデータは、第2メモリ24Abに記憶される。
ステップSA8、SA9: メモリ部24Bに指定したサイクル数に対応した試験パタン信号に対する処理Cを行ったデータが全て記憶されると、値比較部24Cは、第1メモリ24Aaと第2メモリ24Abとの値を読み取り、これらが一致しているか否かを判断する。この判断は、高速試験時のサイクル数不足により、例えば後段ラッチ部22Bでのラッチミスを判定する処理である。なお、一致しているか否かの判断は、全試験パタン信号において一致していた場合に一致したと判断する。
即ち、サイクル数が十分大きければ、低速試験の結果と高速試験の結果とが一致するはずである。但し、これらが一致することは、このときのサイクル数が必要十分であることを意味しない。そこで、必要十分なサイクル数を求めるため、一致している場合にはステップSA5に戻り、一致していない場合にはステップSA10に進む。
第1メモリ24Aaと第2メモリ24Abとの値が一致しているために、ステップSA5に戻った場合には、再度サイクル数の指定が行われる。このとき指定されるサイクル数は、現在のサイクル数から1を減算した値である。
ステップSA10: 一方、第1メモリ24Aaと第2メモリ24Abとの値が一致していない場合
には、ステップSA5で指定した現在のサイクル数(即ち、一致した状態からサイクル数を更新したため、不一致状態になったときのサイクル数)に1を加算した値を最終的なサイクル数(最適サイクル数)とする。
このようにして求めた最適サイクル数は、高速動作した際にもラッチミス等が発生しないための必要十分な値である。図5を参照して、このようにして求めた最適サイクル数が必要十分であることを説明する。
今、或る動作条件下における組合せ回路23での処理Cによる遅延量Dtが、クロック信号の周期Tの3.5サイクル分であったとする(Dt=3.5*T)。そして、低速試験時のサイクル数Mが、組合せ回路23における想定した処理Cによる遅延量Dtより十分大きな値として、5(初期値)が設定されたとする(M=5*T)。なお、図5は、マルチサイクル数Mと回路遅延量の関係を説明するタイミングチャートで、(a)はM=5、(b)はM=4、(c)はM=3の場合を示している。
図5(a)に示すように、サイクル数M(=5)の場合、後段ラッチ部22BにおけるラッチタイミングL1に対して、1.5*T前に組合せ回路23の処理結果が確定している。従って、後段ラッチ部22Bでは、組合せ回路23からの処理結果を正常にラッチされる。このような場合、値比較部24Cは、第1メモリ24Aaと第2メモリ24Abとの値を比較した結果、一致と判断する。
同様に、図5(b)に示すように、サイクル数M(=4)の場合、後段ラッチ部22BにおけるラッチタイミングL2に対して、0.5*T前に組合せ回路23の処理結果が確定している。従って、後段ラッチ部22Bでは、組合せ回路23からの処理結果を正常にラッチされる。このような場合、値比較部24Cは、第1メモリ24Aaと第2メモリ24Abとの値を比較した結果、一致と判断する。
しかし、図5(c)に示すように、サイクル数M(=3)の場合、後段ラッチ部22BにおけるラッチタイミングL3に対して、−0.5*T前に組合せ回路23の処理結果が確定する。従って、後段ラッチ部22Bでは、組合せ回路23からの処理結果を正常にラッチすることができない。このような場合、値比較部24Cは、第1メモリ24Aaと第2メモリ24Abとの値を比較した結果、一致しないと判断する。
依って、サイクル数M=3に1を加算したM=4が最適サイクル数となり、この最適サイクル数が必要十分なサイクル数となる。
以上説明したように最適サイクル数を自律判定することにより、以下の効果を奏する。先ず、コスト優先の遅延量の大きな低速デバイス適用時とで各々のデバイス性能に応じた最適なマルチサイクル数で動作させることができる(実装デバイスの遅延性能)。
また、組合せ回路の動作モードによって遅延量が異なる場合、動作モード毎に適したマルチサイクル数で動作させることができる(ディジタル論理回路の動作モード)。
また、 高い処理能力を必要としない低負荷状態での動作において、定格の範囲内でディジタル論理回路の電源電圧を低下させることで消費電力を削減させることができる(省電力モード)。
なお、上記説明では、組合せ回路23の対象とする回路は基本的には回路の組合せからなることを前提としているが、ディジタル論理回路20と外部接続されるメモリデバイスに対してサイクル数判定処理を適用してもよい。これにより、接続するメモリデバイスのアクセスタイムに適したマルチサイクル数でディジタル論理回路20を動作させることが可能になる。
また、サイクル数判定処理によってマルチサイクル数を決定する代わりに、クロック信号を供給するPLL等のクロック発信ブロックに対する周波数設定値をサイクル数判定処理によって探索してもよい。これにより、マルチサイクル数の探索と同様に各動作条件に適した処理サイクルでディジタル論理回路を動作させることが可能である。
11 シーケンサ
12 試験パタン信号生成部
13 組合せ回路
14 第1メモリ
15 第2メモリ
16 値比較部
20 ディジタル論理回路
21 セレクタユニット
21a,21b セレクタ
22 ラッチユニット
22A 前段ラッチ部
22B 後段ラッチ部
22Aa,22Ab フィリップフロップ
22Ba、22Bb フィリップフロップ
23 組合せ回路
24 比較ユニット
24A メモリ部
24Aa 第1メモリ
24Ab 第2メモリ
24B メモリ制御部
24C 値比較部
25 シーケンサ
26 試験パタン信号生成部
27 N進カウンタ

Claims (8)

  1. 所定の機能をなす少なくとも1以上の組合せ回路に入力する信号をラッチする前段ラッチ部及び、前記組合せ回路からの出力信号をラッチする後段ラッチ部をからなるディジタル論理回路における各処理で発生する遅延量に適応したマルチサイクル数を自律判定するマルチサイクル数自律判定装置であって、
    少なくとも入力要素の組み合わせパタンに対応した試験パタン信号を生成して前記組合せ回路に出力する試験パタン信号生成部と、
    サイクル数を示すマルチサイクル数設定指令を出力し、その際に動作条件が変化した際には予め設定されたマルチサイクル数初期値を低速試験時のサイクル数とするマルチサイクル数設定指令を出力して、前記試験パタン信号生成部に低速試験用の試験パタン信号を生成させ、該低速試験が終了すると前記マルチサイクル数初期値より小さい値を高速試験時のサイクル数とするマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、前記試験パタン信号生成部に高速試験用の試験パタン信号を生成させるシーケンサと、
    前記試験パタン信号に対して前記組合せ回路が行った処理結果を記憶し、その際に前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果との一致を判断する比較ユニットと、を備え、
    前記シーケンサは、前記比較ユニットからの比較結果が前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果とが一致しなくなるまで、前記マルチサイクル数から1を減算した値を新たなマルチサイクル数トライ値としてマルチサイクル数設定指令を出力して、前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果とが不一致になったときのマルチサイクル数に1を加算した値を最適マルチサイクルとして判定することを特徴とするマルチサイクル数自律判定装置。
  2. 請求項1に記載のマルチサイクル数自律判定装置であって、
    前記マルチサイクル数設定指令を受信して、当該マルチサイクル数設定指令で指定されたサイクル数の周期で前記組合せ回路を動作させるN進カウンタを備えることを特徴とするマルチサイクル数自律判定装置。
  3. 請求項1又は2に記載のマルチサイクル数自律判定装置であって、
    前記シーケンサが出力した前記マルチサイクル数初期値を内容とするマルチサイクル数設定指令を受信した際には、前記前段ラッチ部を介して前記組合せ回路に前記試験パタン信号が入力するように回路を切り替えるセレクタユニットを備えることを特徴とするマルチサイクル数自律判定装置。
  4. 前記比較ユニットは、前記低速試験の前記組合せ回路による処理結果をメモリする第1メモリと、前記高速試験の前記組合せ回路による処理結果をメモリする第2メモリとを含むメモリ部と、
    前記第1メモリと前記第2メモリとに記憶されている、全ての組み合わせ毎の前記試験パタンに対する前記処理結果が一致するか否かを判断する値比較部とを備えることを特徴とするマルチサイクル数自律判定装置。
  5. 所定の機能をなす組合せ回路に入力する信号をラッチする前段ラッチ部及び、前記組合せ回路からの出力信号をラッチする後段ラッチ部をからなるディジタル論理回路における各処理で発生する遅延量に適応したマルチサイクル数を自律判定するマルチサイクル数自律判定方法であって、
    入力要素の組み合わせパタン毎に対応した試験パタン信号を生成して前記組合せ回路に出力する試験パタン信号生成手順と、
    サイクル数を示すマルチサイクル数設定指令を出力し、その際に動作条件が変化した際には予め設定されたマルチサイクル数初期値を低速試験時のサイクル数とするマルチサイクル数設定指令を出力して、低速試験用の試験パタン信号を生成させ、該低速試験が終了すると前記マルチサイクル数初期値より小さい値を高速試験時のサイクル数とするマルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、該高速試験用の試験パタン信号を生成させるシーケンス手順と、
    前記試験パタン信号に対して前記組合せ回路が行った処理結果を記憶し、その際に前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果との一致を判断する比較手順と、を備え、
    前記シーケンス手順は、前記比較結果が前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果とが一致しなくなるまで、前記マルチサイクル数から1を減算した値を新たな前記マルチサイクル数トライ値としたマルチサイクル数設定指令を出力して、前記低速試験用の前記試験パタン信号に対する処理結果と前記高速試験用の前記試験パタン信号に対する処理結果とが不一致になったときのマルチサイクル数に1を加算した値を最適マルチサイクルとして判定する手順を含むことを特徴とするマルチサイクル数自律判定方法。
  6. 請求項5に記載のマルチサイクル数自律判定方法であって、
    前記マルチサイクル数設定指令を受信して、当該マルチサイクル数設定指令で指定されたサイクル数の周期で前記組合せ回路を動作させる手順を含むことを特徴とするマルチサイクル数自律判定方法。
  7. 請求項5又は6に記載のマルチサイクル数自律判定方法であって、
    前記マルチサイクル数初期値を内容とするマルチサイクル数設定指令を受信した際には前記前段ラッチ部を介して前記組合せ回路に前記試験パタン信号が入力するように回路を切り替える手順を含むことを特徴とするマルチサイクル数自律判定方法。
  8. 請求項5乃至7のいずれか1項に記載のマルチサイクル数自律判定方法であって、
    前記低速試験の前記組合せ回路による処理結果を第1メモリに記憶させ、前記高速試験の前記組合せ回路による処理結果を第2メモリに記憶させるメモリ手順と、
    前記第1メモリと前記第2メモリとに記憶されている、全ての組み合わせパタン毎の前記試験パタンに対する前記処理結果が一致するか否かを判断する値比較手順とを含むことを特徴とするマルチサイクル数自律判定方法。
JP2014197113A 2014-09-26 2014-09-26 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法 Active JP6404658B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014197113A JP6404658B2 (ja) 2014-09-26 2014-09-26 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014197113A JP6404658B2 (ja) 2014-09-26 2014-09-26 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法

Publications (2)

Publication Number Publication Date
JP2016071430A true JP2016071430A (ja) 2016-05-09
JP6404658B2 JP6404658B2 (ja) 2018-10-10

Family

ID=55864662

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014197113A Active JP6404658B2 (ja) 2014-09-26 2014-09-26 マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法

Country Status (1)

Country Link
JP (1) JP6404658B2 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243092A (ja) * 2007-03-29 2008-10-09 Toshiba Corp マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム
JP2009230392A (ja) * 2008-03-21 2009-10-08 Fujitsu Microelectronics Ltd シミュレーション装置、シミュレーション方法及びプログラム
JP2012248038A (ja) * 2011-05-30 2012-12-13 Mitsubishi Electric Corp マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008243092A (ja) * 2007-03-29 2008-10-09 Toshiba Corp マルチサイクルパス検出装置、マルチサイクルパス検出方法及びマルチサイクルパス検出プログラム
JP2009230392A (ja) * 2008-03-21 2009-10-08 Fujitsu Microelectronics Ltd シミュレーション装置、シミュレーション方法及びプログラム
JP2012248038A (ja) * 2011-05-30 2012-12-13 Mitsubishi Electric Corp マルチサイクルパス検出装置及びマルチサイクルパス検出プログラム

Also Published As

Publication number Publication date
JP6404658B2 (ja) 2018-10-10

Similar Documents

Publication Publication Date Title
KR100930404B1 (ko) Dll 회로 및 그 제어 방법
KR101110819B1 (ko) 반도체 메모리의 동작 타이밍 제어 장치 및 그 방법
US20100253409A1 (en) Clock generation system and clock dividing module
US9054715B2 (en) Delay locked loop and semiconductor apparatus
JPH10134091A (ja) 論理エミュレーションの最適化回路生成法
US8146041B1 (en) Latch based optimization during implementation of circuit designs for programmable logic devices
CN112906338B (zh) 对物理分区结构进行时钟设计的方法、系统和介质
KR101040243B1 (ko) Dll 회로의 업데이트 제어 장치
US6738963B2 (en) Dynamically reconfiguring clock domains on a chip
JP6404658B2 (ja) マルチサイクル数自律判定装置及びマルチサイクル数自律判定方法
KR20140136203A (ko) 반도체 집적회로
JP4063830B2 (ja) 半導体記憶装置
JP2000091506A (ja) 半導体集積回路
US7134060B2 (en) Semiconductor integrated circuit including operation test circuit and operation test method thereof
JP4419633B2 (ja) 論理回路設計システム、論理回路設計方法およびそのプログラム
JP5549474B2 (ja) 集積回路
JP2008198003A (ja) アレイ型プロセッサ
WO2011074044A1 (ja) 集積回路の消費電力算出方法、消費電力算出プログラム及び消費電力算出装置
JP4847383B2 (ja) 順序回路及びその高速化方法
JP5773002B2 (ja) 集積回路
US8850256B2 (en) Communication circuit and communication method
JP4491587B2 (ja) データ発生装置
JP2013036960A (ja) 遅延スキャンテスト方法、半導体装置及び半導体装置の設計方法
JP2010257003A (ja) 論理等価性検証システム、論理等価性検証方法、半導体集積回路の製造方法、制御プログラムおよび可読記憶媒体
JP2001257566A (ja) イネーブル付きラッチ回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170809

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180619

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180807

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20180821

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180913

R150 Certificate of patent or registration of utility model

Ref document number: 6404658

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150