説明

信号処理装置および信号処理方法

【課題】 相互に異なる周期のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部のリセットを、簡単な構成で、確実に行うことができる信号処理装置および信号処理方法を提供する。
【解決手段】 モジュール回路部14は、モジュールA,B,Cのうちのいずれかに対するリセット指令が与えられると、指令されたモジュールを指定する信号を含み、かつCPUCLKの1周期分の長さを有する1shotリセット信号を生成する。同期リセット生成回路部15は、1shotリセット信号が与えられ、この1shotリセット信号の長さを指令されたモジュールに対応する長さに引き延ばした伸長リセット信号を生成し、生成した伸長リセット信号を指令されたモジュールのクロックに同期させて同期リセット信号を生成し、指定されたモジュールでは、同期リセット信号が与えられた状態で、クロック信号が立上がりまたは立下ると、リセットされる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、複数の処理部を備える信号処理装置およびその信号処理装置における信号処理方法に関する。
【背景技術】
【0002】
図1は、従来の技術の信号処理装置1の構成を示すブロック図である。信号処理装置1は、IC(Integrated Circuit)によって実現され、制御用のレジスタ群2と、複数の処理部(以下、処理部をモジュールという)A,B,Cとを備えている。レジスタ群2は、CPU(Central Processing Unit)3に同期して動作し、CPU3にバスで接続されている。レジスタ群2は、CPU3からの各種設定レジスタと、データの受け渡し用レジスタとを備えている。レジスタ群2は、CPU3のクロック信号(CPUCLK)が入力されて動作する。またレジスタ群2は、非同期リセット信号(RST_X)が与えられることによってリセットされる。
【0003】
モジュールA,B,Cは、相互に異なる周期のクロック信号(以下、クロックという)が与えられ、かつ相互に非同期で所定の処理を行う。モジュールA,B,Cは、入力されるクロックと接続されている外部ICとが異なるが、基本的な動作は同様であるので、モジュールA,B,Cのうちの任意のモジュールをモジュールXとし、このモジュールXに入力されるクロックをクロックX(CLK_X)とし、モジュールXに接続されている外部ICを外部IC(X)として説明する。
【0004】
モジュールXは、クロックX(CLK_X)が入力されて動作する。モジュールXは、それぞれ外部IC(X)と接続され、CPU3からレジスタ群2に設定された送信データを受け取り、エンコードおよび変調して、外部IC(X)に送信する。モジュールXは、外部IC(X)からの受信データを復調およびデコードして、レジスタ群に転送する。外部IC(X)からの受信データは、CPU3で用いられる。またモジュールXは、RST_Xが与えられることによってリセットされる。
【0005】
図2は、モジュールA,B,Cにおける回路の構成の一部を示す図である。モジュールA,B,Cは、それぞれフリップフロップ5を備える。ここで、フリップフロップ5は、Dフリップフロップについて示しており、Dピン、Cpピン、Qピン、Sピン、Rピンを備える。Dピンには、入力データ(data_in)が与えられ、Cpピンには、クロックが与えられ、Qピンからは、データが出力される。Sピンは、グランドに接続され、Rピンには、インバータ(not)6を介して、RST_Xが与えられる。RST_Xは、フリップフロップ5に入力されるクロックとは非同期にリセットをかける信号である。
【0006】
非同期リセット信号は、信号処理装置1内の全てのフリップフロップ5に同様に入力される。このため、RST_Xの信号レベルをハイ(Hi)レベルからロー(Lo)レベルに切り換えると、全てのフリップフロップ5がリセットされてしまう。このため、たとえば、モジュールAと外部IC(A)との通信上にトラブルが発生し、モジュールB,Cは正常に動作しているときに、モジュールAをリセットするため、非同期リセット信号によってモジュールAのフリップフロップを初期状態にしようとすると、モジュールB,Cおよびレジスタ群の全てがリセットされてしまうことになる。また信号処理装置1の外部に設けられ、システム全体の制御元であるCPU3から非同期リセット信号が与えられるので、CPU3の負荷が増え、またリセット後にCPU3から再度、モジュールA,B,Cに対する設定をレジスタ群2に行う必要があるので、さらにCPU3の負荷が増えるという問題がある。
【0007】
このような問題に鑑み、モジュールA,B,Cを個別にリセットするために、レジスタ群2にモジュール毎のリセット信号を生成する機能を備えることが考えられる。これはレジスタ群2の所定のアドレスの該当ビットに「1」を書き込むと、レジスタ群2においてCPUCLKの1周期(1shot)分の長さとなる負の同期リセット信号を、モジュールごとに発生させることができる機能である。同期リセット信号を、sync_clrと記載する。図3は、CPUCLKと、sync_clrとの一例を示すタイミングチャートである。図3に示すように、sync_clrのLoレベルの部分の長さT1は、CPUCLKの1周期の長さT1に等しい。またsync_clrのLoレベルの部分を、1shot信号という。
【0008】
図4は、sync_clrによってリセットを行う場合のモジュールA,B,Cの回路構成の一部を示す図である。モジュールA,B,Cは、図2に示す回路構成に加えて、論理積回路(and)7を備える。data_inと、sync_clrとは、論理積回路7にそれぞれ入力され、論理積回路7の出力がDピンに与えられる。このような回路構成であれば、図3に示すようにCPUCLKの立ち上がり時刻t1で、sync_clrがLoレベル、すなわちsync_clr=0であれば、data_inの信号レベルに関わらず、Qピンからは、Loレベルの信号が出力され、フリップフロップ5をリセットすることができる。
【0009】
図4に示す回路構成とすることによって、モジュールA,B,Cごとに個別にリセットすることが可能となるが、個別にリセットするためには所定の条件を満たさなければならない。その所定の条件とは、同期リセット信号は、CPU3からのレジスタ群2への書き込みによるものであるので、1shot信号は、CPUCLKに同期したものであり、リセットされるべきモジュールA,B,Cのフリップフロップ自体がCPUCLKに同期して動作する必要がある、というものである。したがって、図1に示す信号処理装置1の場合には、CLK_A、CLK_BおよびCLK_Cが、CPUCLKである場合のみ、モジュールA,B,Cごとに個別にリセットすることが可能となる。
【0010】
しかしながら、CPU3とは別体で構成される信号処理装置1のモジュールA,B,Cが、CPU3のバスクロックのみで動作することは稀である。たとえば、モジュールAと外部IC(A)との通信は、所定の規格に準じたもので、CPU3のバスクロックのクロック周期とは全く異なる周期で、またクロック精度が厳しくバスクロックの逓倍または分周によってクロックを生成することができない場合、CPUCLKとCLK_Aとは、非同期にならざるを得ない。図5は、CPUCLKと、CLK_Aと、sync_clrとの一例を示すタイミングチャートである。CLK_Aの周期T2は、CPUCLKの周期T1よりも長く選ばれている。このような場合、CLK_Aの立ち上がり時刻t1で、sync_clrがLoレベル、すなわちsync_clr=0ではない場合が発生し、フリップフロップ5をリセットすることができない場合がある。
【0011】
さらに特許文献1には、複数の回路モジュールをリセットする場合、リセット信号が一定期間保持され、回路モジュールが同期リセットされることが記載されている。
【0012】
また特許文献2には、CPUクロックが動作ブロックのクロックよりも高速である場合に、非同期のソフトリセット信号を保持して同期化を行い、異なる周波数で動作する回路に対して、基準クロックよりも高いか低いかを、周波数比較回路で判断し、高い場合はリセット信号を伸ばし、低い場合はリセット信号をそのまま出力することが記載されている。
【0013】
【特許文献1】特表2004−524631号公報
【特許文献2】特開2005−78147号公報
【発明の開示】
【発明が解決しようとする課題】
【0014】
特許文献1に記載される技術では、時間的に伸ばされたリセット信号をモジュールごとに異なるクロックで同期化してはいるが、そのリセット信号をどのように生成するのかについては記載がなく、仮に、前述した1shot信号を特許文献1に記載される「reset_in_n」に入力した場合、ある周波数よりも低い周波数で動作するモジュールはリセットされないおそれがあるという問題がある。
【0015】
特許文献2に記載される技術では、周波数比較回路を装置に実装する必要があるので、回路規模が大きくなってしまうという問題がある。また特許文献2では、フリップフロップのリセット端子に論理積回路などのゲートからの信号を入力する構成となっているが、これのようにリセット端子にゲートからの信号を入力すると、ゲートに入力される信号のタイミングのずれなどによってゲートから不所望な信号が出力されて、いわゆるひげが生じて、回路の誤動作およびシミュレーション結果と実機の動作との相違が生じてしまうという問題がある。
【0016】
したがって本発明の目的は、相互に異なる周期のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部のリセットを、簡単な構成で、確実に行うことができる信号処理装置および信号処理方法を提供することである。
【課題を解決するための手段】
【0017】
本発明(1)は、相互に異なる周期の複数のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部を備える信号処理装置において、
第1のクロック信号で動作し、前記複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成する1周期リセット信号生成部と、
前記1周期リセット信号生成部によって生成されたリセット信号が与えられ、このリセット信号の長さを前記予め定める処理部に対応する長さに引き延ばした伸長リセット信号を生成し、生成した伸長リセット信号を第2のクロック信号に同期させて同期リセット信号を生成する同期リセット信号生成部とを備え、
前記予め定める処理部は、前記同期リセット信号生成部から同期リセット信号が与えられている間に、第2のクロック信号が立上がりまたは立下ると、リセットされることを特徴とする信号処理装置である。
【0018】
本発明(6)は、相互に異なる複数のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部を備える信号処理装置における信号処理方法であって、
第1のクロック信号で動作し、前記複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成し、
生成されたリセット信号の長さを前記予め定める処理部に対応する長さに引き伸ばした伸長リセット信号を生成し、生成した伸長リセット信号に第2のクロック信号に同期させて同期リセット信号を生成し、
前記同期リセット信号が与えられている間に、第2のクロック信号が立上がりまたは立下ると、予め定める処理部をリセットすることを特徴とする信号処理方法である。
【発明の効果】
【0019】
本発明(1)によれば、1周期リセット信号生成部は、第1のクロック信号で動作する。1周期リセット信号生成部は、複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成する。同期リセット信号生成部は、1周期リセット信号生成部によって生成されたリセット信号が与えられ、このリセット信号の長さを前記予め定める処理部に対応する長さに引き伸ばした伸長リセット信号を生成し、生成した伸長リセット信号を第2のクロック信号に同期させて同期リセット信号を生成する。このように、同期リセット信号生成部は、第1のクロック信号の1周期分の長さを有するリセット信号を引き伸ばして、同期リセット信号を生成するので、前記リセット信号を引き伸ばすという簡単な処理によって、予め定める処理部をリセットするための同期リセット信号を生成することができる。したがって、装置を構成する回路の規模が大きくなってしまうことが抑制される。また従来の技術のような論理積回路からの出力をフリップフロップのリセット端子に入力する構成とは異なるので、回路の誤動作およびシミュレーション結果と実機の動作との相違が生じてしまうとことが抑制される。
【0020】
本発明(6)によれば、複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成する。生成されたリセット信号が与えられ、このリセット信号の長さを前記予め定める処理部に対応する長さに引き伸ばした伸長リセット信号を生成し、生成した伸長リセット信号を第2のクロック信号に同期させて同期リセット信号を生成する。このように、第1のクロック信号の1周期分の長さを有するリセット信号を引き伸ばして、同期リセット信号を生成するので、前記リセット信号を引き伸ばすという簡単な処理によって、予め定める処理部をリセットするための同期リセット信号を生成することができる。したがって、装置を形成する回路の規模が大きくなってしまうことが抑制される。また従来の技術のような論理積回路からの出力をフリップフロップのリセット端子に入力する構成とは異なるので、回路の誤動作およびシミュレーション結果と実機の動作との相違が生じてしまうとことが抑制される。
【発明を実施するための最良の形態】
【0021】
図6は、本発明の実施の一形態の信号処理装置11の構成を示すブロック図である。図6には、信号処理装置11だけではなく、CPU13と、外部IC(A),(B),(C)とについても示している。
【0022】
信号処理装置11は、ICによって実現され、制御用のレジスタ群と1周期リセット信号生成部とを含むモジュール回路部14と、同期リセット生成回路部15と、複数の処理部(以下、モジュールという)A,B,Cとを備えている。同期リセット生成回路部15は、同期リセット信号生成部である。
【0023】
モジュール回路部14は、CPU13に同期して動作し、CPU13にバスで接続されている。モジュール回路部14の制御用レジスタ群は、CPU13からの各種設定レジスタと、データの受け渡し用レジスタとを備えている。モジュール回路部14は、CPU13のクロック信号(CPUCLK)が入力されて動作する。CPUCLKは、第1のクロック信号である。
【0024】
モジュール回路部14の1周期リセット信号生成部は、モジュールA,B,Cのうちのいずれか1つに対するリセット指令が与えられると、このリセットしたいモジュールを指定する信号を含み、かつCPUCLKの1周期(1shot)分の長さを有するリセット信号を生成する。このリセット信号は、モジュール回路部14から同期リセット生成回路部15に与えられる。
【0025】
以後、前記リセット信号を、1shotリセット信号という場合がある。1周期リセット信号生成部は、たとえば制御用のレジスタ群の予め定めるアドレスに予め定めるデータが記憶されると、1shotリセット信号を生成して出力する。ここで1shotリセット信号は、CPUCLKの1周期(1shot)分の長さの負論理の信号である。
【0026】
モジュールA,B,Cは、CPUCLKの周期よりも長い周期を有するクロック信号で動作する。モジュールA,B,Cは、相互に異なる周期のクロック(CLK)が与えられ、かつ相互に非同期で所定の処理を行う。ここで、モジュールA,Bは、CPUCLKに同期しないで動作し、モジュールCはCPUCLKに同期して動作するものとする。
【0027】
図7は、モジュールA,B,Cの回路構成の一部を示す図である。モジュールA,B,Cは、フリップフロップ(FF)16と、論理積回路(and)17とをそれぞれが備える。ここでフリップフロップ16は、Dフリップフロップについて示しており、Dピン、CpピンおよびQピンを備える。論理積回路7の出力がDピンに与えられる。論理積回路17には、入力データ(data_in)と、同期リセット信号(sync_clr)とが与えられ、Cpピンには、クロックが与えられ、Qピンからは、データが出力される。動作は、図4に示す回路と同様であり、CLKの立ち上がり時に、sync_clrがLoレベル、すなわちsync_clr=0であれば、data_inの信号レベルに関わらず、Qピンからは、Loレベルの信号が出力され、フリップフロップ16をリセットすることができる。
【0028】
モジュールA,B,Cは、入力されるクロックと接続されている外部ICが異なるが、基本的な動作は同様であるので、モジュールA,B,Cのうちの任意のモジュールをモジュールXとし、このモジュールXに入力されるクロックをクロックX(CLK_X)とし、モジュールXに接続されている外部ICを外部IC(X)として説明する。
【0029】
モジュールXは、クロックX(CLK_X)が入力されて動作する。モジュールXは、それぞれ外部IC(X)と接続され、CPU13からレジスタ群2に設定された送信データを受け取り、エンコードおよび変調して、外部IC(X)に送信する。モジュールXは、外部IC(X)からの受信データを復調およびデコードして、レジスタ群に転送する。外部IC(X)からの受信データは、CPU13で用いられる。
【0030】
同期リセット生成回路部15は、モジュール回路部14から1shotリセット信号が与えられ、この1shotリセット信号の長さをモジュールA,B,Cのいずれか1つに対応する長さに引き伸ばした伸長リセット信号を生成し、生成した伸長リセット信号を、前記モジュールA,B,Cのいずれか1つに対応するクロック信号に同期させて同期リセット信号(sync_clr)を生成する。モジュールAに対応する同期クロック信号を、sync_clrAと記載し、モジュールBに対応する同期クロック信号を、sync_clrBと記載し、モジュールCに対応する同期クロック信号を、sync_clrCと記載する場合がある。
【0031】
すなわち同期リセット生成回路部15は、モジュール回路部14からモジュールXに対応する1shotリセット信号が与えられると、この1shotリセット信号の長さをモジュールXに対応する長さに引き伸ばした伸長リセット信号X1を生成し、生成した伸長リセット信号X1を、CLK_Xに同期させて同期リセット信号X2を生成する。
【0032】
図8は、同期リセット生成回路部15の構成の一部を示す図である。ここでは、CLK_Aに同期する同期リセット信号A2を生成する部分の構成についてのみ説明し、同期リセット信号B2,C2を生成する部分についても、それぞれ同様な構成であるので、その説明を省略する。
【0033】
同期リセット生成回路部15の同期リセット信号を生成する部分の構成(以下、同期リセット信号生成部という)18は、カウンタ21、設定値記憶部22と、CPUCLKに同期させるためのCPUCLK同期用フリップフロップ23と、CLK_Aに同期させるためにCLK_A同期用フリップフロップ群24とを備えている。
【0034】
カウンタ21には、1shotリセット信号と、CPUCLKとが入力され、設定値記憶部22に記憶される設定値を表す情報に応じて、1shotリセット信号が入力されてから、CPUCLKにあわせて前記設定値の数だけカウントすることによって、1shotリセット信号の所定の周期分だけ伸長した、伸長信号を生成する。カウンタ21の初期値は、0とし、カウンタ21は、カウントが終了すると、そのカウント値が0に戻るものとする。設定値記憶部22には、カウンタ21によって用いられる設定値が記憶されている。設定値は、カウンタ21によってカウントされる数を表す。カウンタ21は、CPUCLKにあわせてカウントを行うので、CPUCLKの周期の逓倍の長さを有する伸長リセット信号が生成される。
【0035】
前記設定値記憶部22に記憶されている設定値は、予め定められていてもよく、また設定部を設けて、設定部によって変更可能に設けられてもよい。設定部は、たとえばCPU13と、キーボードなどの入力装置とを含んで構成され、ユーザが入力装置を操作することによって、CPU13が設定値記憶部22の設定値を書き換えることができる。このように設定値を変更可能としておくことによって、モジュールA,B,Cの仕様を変更したときに、新たな設定値に変更することができ、利便性が向上する。
【0036】
CPUCLK同期用フリップフロップ23は、Dフリップフロップによって実現され、Dピンにカウンタ21からの出力信号が入力され、CpピンにCPUCLKが入力される。これによってQピンからは、CPUCLKに同期した伸長リセット信号が出力される。
【0037】
CLK_A同期用フリップフロップ群24は、少なくとも2つのDフリップフロップを備えて構成される。信号が伝送される方向において上流側の同期用フリップフロップ24AであるDフリップフロップのDピンには、CPUCLK同期用フリップフロップ23からの出力信号が入力される。上流側のDフリップフロップのQピンからの出力信号は、下流側の同期用フリップフロップ24BであるDフリップフロップのDピンに入力される。また各DフリップフロップのCpピンには、CLK_Aが入力され、これによって伸長リセット信号からCLK_Aに同期した同期リセット信号を生成することができる。またCLK_A同期用フリップフロップ群9は、少なくとも2つのDフリップフロップを備えることによって、メタステーブルを抑制することができる。
【0038】
本実施の形態では、CLK_AがCPUCLKに同期していない場合について説明しているが、CLK_AがCPUCLKに同期している場合、およびCLK_AとしてCPUCLKを用いる場合などでは、CPUCLK同期用フリップフロップ23のQピンからのCPUCLKに同期した伸長リセット信号を、そのまま同期リセット信号として出力してもよい。
【0039】
図9は、信号処理装置11におけるリセット処理の手順について示すフローチャートである。ここでは、モジュールAについてリセットを行う場合についてのみ示しているが、モジュールB,Cについてリセットを行う場合についても同様である。リセット処理を開始すると、ステップs0からステップs1に移る。ステップs1では、CPU13からモジュールAに対して同期リセットの設定が行われ、モジュール回路部14の制御用レジスタ群が、予め定めるアドレス(たとえばアドレス「0x2」のbit「0」の位置)に、予め定めるデータ(たとえば「1」)を記憶して、ステップs2に移る。
【0040】
ステップs2では、CPU13のライド動作が行われて、ステップs1のようにモジュール回路部14の制御用レジスタ群が、予め定めるアドレスに、予め定めるデータを記憶することによって、1周期リセット信号生成部は、モジュールAに対応させて、CPUCLKの1周期の幅の1shotリセット信号を同期リセット生成回路部15に出力して、ステップs3に移る。
【0041】
ステップs3では、同期リセット生成回路において、CPUCLKの1周期の幅の1shotリセット信号を、CPUCLKで動作するカウンタ21を用いて伸ばし、伸ばした伸長リセット信号を、CLK_Aで2度以上叩いて、CLK_Aに同期させてモジュールAに出力する。ここで、CLK_Aで叩くとは、のクロック信号としてCLK_Aを用いたフリップフロップに信号を入力して、CLK_Aに同期した信号を出力することをいう。
【0042】
ステップs4では、モジュールAに入力された、同期リセット生成回路部15によって1shotリセット信号から「伸ばされた」、かつ「CLK_A」に同期した同期リセット信号を、モジュールA内の全てのフリップフロップに与えられる。同期リセット信号sync_clrAは、モジュール回路部14の図7に示されるsync_clrAが入力されるべき論理積回路の入力端子に入力されて、これによって、モジュールA,B,Cのうち、モジュールAのみをリセットすることができる。
【0043】
図10は、信号処理装置11の動作を表すタイミングチャートである。図10には、(1)CPUCLKと、(2)ADDR/DATA(アドレス/データ)信号と、(3)CS(チップセレクト)信号と、(4)WE(ライトイネーブル)信号と、(5)WAIT(ハードウェイト)信号と、(6)1shotリセット信号と、(7)カウンタ値と、(8)伸長リセット信号と、(9)CLK_Aと、(10)伸長リセット信号をCLK_Aによって1回叩いたときの同期リセット信号と、(11)伸長リセット信号をCLK_Aによって2回叩いたときの同期リセット信号とを示している。ADDR/DATA(アドレス/データ)は、CPU13からモジュール回路部14に与えられる。CS信号は、CPU13がモジュール回路部14を選択していないときはHレベルに維持され、CPU13がモジュール回路部14を選択しているときにはLレベルに維持される信号である。WE信号は、CPU13がモジュール回路部14のレジスタに書き込みをしないときにはHレベルに維持され、書き込みをするときにはLレベルに維持される信号である。WAIT信号は、CPU13がモジュール回路部14の1周期リセット信号生成部の処理を一時的に停止するための信号であり、モジュール回路部14を処理可能とするときにはHレベルに維持され、モジュール回路部14の処理を停止するときには、Lレベルに維持される信号である。
【0044】
時刻t1で、CS信号およびWE信号をHレベルからLレベルに変化させて、ADDR/DATAの書き込みが開始される。ADDR/DATAの書き込みが開始されると、時刻t2でWAIT信号をHレベルからLレベルに変化させて、モジュール回路部14の1周期リセット信号生成部の処理を一時的に停止させる。ADDR/DATAの書き込みが終了すると、WAIT信号をLレベルからHレベルに変化させて、CS信号およびWE信号がLレベルであり、かつWAIT信号がHレベルとなっているときに、CPUCLKが立ち上がると、1周期リセット信号生成部が処理を開始して、時刻t3で1shotリセット信号を生成して、出力する。モジュール回路部14は、Hレベルに維持されている出力信号を、Lレベルに変化させて1shotリセット信号を生成する。
【0045】
1shotリセット信号がカウンタ21に与えられ、モジュール回路部14からの出力がLレベルからHレベルに立ち上がると、カウンタ21では、CPUCLKの立ち上がりにあわせて、カウントを開始する。ここでは、設定値が「5」である場合に示している。カウンタ21がカウントを開始すると、時刻t3で、CPUCLK同期用FF23の出力が、HレベルからLレベルに切り替わる。CPUCLK同期用FF23は、カウンタ21がカウントしている間だけ、出力をLレベルに維持することによって、伸長リセット信号を生成する。
【0046】
ここで、カウンタ21の設定値をどのように選ぶかについて説明する。ここで、CLK_Aの1周期をT1とし、CLK_Aの1周期をT2とする。カウンタ21の設定値は、以下の(1)〜(3)の手順を順番に行うことによって決定する。
【0047】
(1)CPUCLKの1周期(T1)を計算する。たとえばCPUCLKの周波数が41Mhzの場合は、T1は、約24.4nsとなる。
(2)CLK_Aの1周期(T2)を計算する。たとえばCLK_Aの周波数が18Mhzの場合は、T2は、約55.6nsとなる。
(3)n(nは自然数)×T1>T2になるまで、T1を整数(n)倍していき、T1>T2が成立したときに乗算した数「n」が目的に設定値になる。たとえば、24.4nsを2倍すると48.8nsとなるが、これは55.6ns未満であり、24.4nsを3倍すると73.2nsとなり、これは55.6nsを超えるので、設定値は、「3」となる。すなわち、1shotリセット信号の長さを3倍に伸ばせばよい。ただし、マージンをとって、設定値は「n+1」とするのが好ましい。
【0048】
同期用FF24AはCLK_Aの立ち上がり時に、伸長リセット信号が与えられていると、すなわちCPUCLK同期用FF23からLレベルの信号が与えられていると、Lレベルの信号を出力し、CLK_Aの立ち上がり時に、CPUCLK同期用FF23からHレベルの信号が与えられていると、Hレベルの信号を出力する。ここでは、伸長リセット信号が与えられ、かつCLK_Aの立ち上がった後、このCLK_Aの立ち上がり時刻t4からわずかに遅れて、時刻t5からCLK_Aの2周期分(2×T2)の間、同期用FF24AがLレベルの信号を出力する。
【0049】
同期用FF24BはCLK_Aの立ち上がり時に、同期用FF24AからLレベルの信号が与えられていると、Lレベルの信号を出力し、CLK_Aの立ち上がり時に、同期用FF24BからHレベルの信号が与えられていると、Hレベルの信号を出力する。ここでは、同期用FF24AからLレベルの信号が与えられ、かつCLK_Aの立ち上がった後、このCLK_Aの立ち上がり時刻t6からわずかに遅れて、時刻t7からCLK_Aの2周期分(2×T2)の間、同期用FF24BがLレベルの信号を、同期リセット信号として出力する。モジュールAに、同期用FF24Bからの同期リセット信号が与えられ、かつCLK_Aが与えられることによって、モジュールAはリセットされる。
【0050】
以上のように信号処理装置11は、同期リセット信号生成部15が、CPUCLKの1周期分の長さを有する1shotリセット信号を引き伸ばして、同期リセット信号を生成するので、1shotリセット信号を引き伸ばすという簡単な処理によって、モジュールA,B,Cをリセットするための同期リセット信号を生成することができる。したがって、装置を構成する回路の規模が大きくなってしまうことが抑制される。また従来の技術のような論理積回路からの出力をフリップフロップのリセット端子に入力する構成とは異なるので、回路の誤動作およびシミュレーション結果と実機の動作との相違が生じてしまうとことが抑制される。
【0051】
また前記モジュールA,B,Cは、CPUCLKとは非同期のクロック信号で動作しているが、モジュールA,B,Cの少なくとも1つを除くモジュールは、CPUCLKと同期するクロック信号、またはCPUCLKで動作する構成としてもよく、この場合、同期リセット生成回路部15は、同期リセット信号として、前述した伸長リセット信号を与える構成とすればよい。
【0052】
また本実施の形態では、同期リセット生成回路部15は、各モジュールA,B,Cに対して、それぞれ図8に示す同期リセット生成回路部15を備えているが、本発明の実施の他の形態においては、各モジュールA,B,Cに対して、同期リセット生成回路部15を1つだけ備える構成としてもよい。この場合、1つのカウンタ21を共用して、モジュールA,B,Cに対する同期リセット信号が生成されるため、カウンタ21の設定値は、モジュールA,B,Cのクロック信号のうち最も周期が長いクロック信号について、前述した条件に基づいて求められる。また同期クロック信号は、モジュールA,B,Cに共通に与えられる。ここでは、モジュールA,B,Cについて同期リセット生成回路部15を共用しているが、モジュールA,B,Cのうちのいずれか2つについて、同期リセット生成回路部15を共用する構成としてもよい。
【0053】
図11は、本発明の実施の他の形態の信号処理装置41の一部の構成を示すブロック図である。信号処理装置41は、前述した図6に示す信号処理装置11と類似の構成を有し、信号処理装置11において、モジュールAとモジュールBとの間でデータを受け渡しする構成となっており、その他の構成は、信号処理装置11と同様であるので、同様の構成には同様の参照符号を付して、その説明を省略する。
【0054】
信号処理装置41は、信号処理装置11の構成に加えて、クロック乗せ換え部42を備える。クロック乗せ換え部42は、モジュールAおよびモジュールBとともに、モジュールDを構成する。ここでは、モジュールAのCLK_Aは、CPUCLKに同期し、かつCPUCLKに等しく、モジュールBのCLK_Bは、CPUCLKとは非同期であり、かつその周期がCPUCLKの、たとえば2.5倍程度であるとする。
【0055】
クロック乗せ換え部42は、クロック信号の周期が異なるモジュールAおよびモジュールBとの間におけるデータの受け渡しを行うときにクロック信号の周期の差を収縮する回路によって実現される。
【0056】
図12は、クロック乗せ換え部42の構成を示す図である。クロック乗せ換え部42は、モジュールAからモジュールBに制御信号およびデータなどの情報(signal_a_to_b)を伝送する第1部分42aと、モジュールBからモジュールAに制御信号およびデータなどの情報(signal_b_to_a)を伝送する第2部分42bとを備えている。第1および第2部分は、それぞれ3つ以上のフリップフロップ5を備えており、複数段に接続されて、すなわち前段のフリップフロップ5のQピンと後段のフリップフロップ5のDピンが接続されている。各スリップフロップ5のそれぞれのCpピンには、情報を受取るモジュールのクロックが入力され、すなわち第1部分42aのスリップフロップ5にはCLK_Aが与えられ、第2部分42bのスリップフロップ5にはCLK_Bが与えられる。
【0057】
モジュールAとモジュールBとが通信中であって、たとえばモジュールAからリクエスト信号(データ転送要求)が出力されており、このリクエストに対して、モジュールBがアック信号(データ受付OK)を出力している状態で、モジュールAとモジュールBとに対して、同時ではなく、タイムラグのある同期リセット信号を入力したとする。ここではモジュールAに、先に同期リセット信号が入力され、その後、モジュールBに同期リセット信号が入力される場合を考える。
【0058】
この場合には、モジュールAがリセットされ、結果としてモジュールAから出力されたリクエスト信号はクリアされる。しかしながら、モジュールBはリセットされていないので、アック信号は出力され続け、モジュールAにはアック信号が入力されることになる。
【0059】
ここでモジュールAのリセットが解除されると、モジュールAはリクエストを出していないにもかかわらず、アック信号が入力されてしまうことになり、モジュールAの内部回路が動作してしまうおそれがある。このため結果としてモジュールAがリセットされていない状態となってしまう。
【0060】
次に、モジュールBがリセットされると、アック信号がクリアされる。モジュールAでは、アック信号が入力されていることを前提で回路が誤動作しているおそれがあり、また想定してないアック信号の取り下げが発生するので、誤動作のおそれがさらに高まってしまう。またもモジュールAが誤動作しているときに、モジュールBに誤ったリクエスト信号が入力されてしまうと、モジュールBはモジュールAのリクエスト信号に反応して、アック信号を返信するおそれがあり、結果としてモジュールDがリセットされず、また誤動作するおそれがある。
【0061】
このため、信号処理装置41では、CPU13からモジュールAに対して同期リセット信号が与えられるときに、モジュールBに対しても同期リセット信号を与え、モジュールA、Bをほぼ同時にリセットする。
【0062】
図13は、信号処理装置41における動作を表すタイミングチャートである。図12には、(1)CPUCLKと、(2)ADDR/DATA(アドレス/データ)信号と、(3)CS(チップセレクト)信号と、(4)WE(ライトイネーブル)信号と、(5)WAIT(ハードウェイト)信号と、(6)1shotリセット信号と、(7)カウンタ値と、(8)伸長リセット信号と、(9)CLK_Aと、(10)伸長リセット信号をCLK_Aによって1回叩いたときの同期リセット信号と、(11)伸長リセット信号をCLK_Aによって2回叩いたときの同期リセット信号と、(12)CLK_Bとを示している。
【0063】
本実施の形態では、カウンタ21の設定値は、以下の(4)〜(5)の手順を順番に行うことによって決定する。
【0064】
(4)CPUCLKの1周期(T1)を計算する。
(5)CLK_Bの1周期(T3)を計算する。
(6)n(nは自然数)×T1>T3になるまで、T1を整数(n)倍していき、T1>T3が成立したときに乗算した数「n」が目的に設定値になる。ただし、マージンをとって、設定値は「n+1」とするのが好ましい。ここでは、設定値を「5」として示している。
【0065】
CPUCLK同期用FF23からの出力信号が、モジュールAのsync_clrAが入力されるべき論理積回路の入力端子に入力される。また同期用FF24Bからの出力信号が、モジュールBのsync_clrAが入力されるべき論理積回路の入力端子に入力される。このように構成することによって、伸長リセット信号が出力されている期間T4と、同期リセット信号が出力されている期間T5とは、期間T6の間で重ねることができる。この重なった期間T6の間で、CLK_AおよびCLK_Bが立ち上がって、モジュールA,Bをほぼ同時にリセットすることができる。これによって、簡単な構成で、モジュールA,Bをほぼ同時で、かつ確実にリセットすることができ、モジュールA,Bが誤動作してしまうことを抑制することができる。
【0066】
前述した各実施の形態のモジュールA,B,Cは、同期リセット信号が与えられており、かつクロック信号が立上がるときに、リセットされる構成としているが、同期リセット信号が与えられており、かつクロック信号が立下がるときに、リセットされる構成としてもよい。
【0067】
図14は、前述した信号処理装置11を備えるナビゲーション装置50である。ナビゲーション装置50は、ナビゲーション装置50の現在位置を道路地図などの地図上に表示したり、道路地図などの地図データに基づいて、利用者によって設定される出発地から目的地までの経路を探索し、探索された経路に沿って移動可能にするように、ナビゲーション装置50の現在位置および地図を表示して、経路案内を行ったりする。ナビゲーション装置50は、車両などの移動体に設けられて用いられる。
【0068】
ナビゲーション装置50は、GPS(Global Positioning System)レシーバ51と、主記憶部52と、一時記憶部53と、操作部54と、表示部55と、ナビゲーション処理部(以下「ナビ処理部」という)56と、信号処理装置11と、通信部57とを基本的に含んで構成される。ナビゲーション装置50に加えて、GPSアンテナ58と、マイクロフォン59と、スピーカ60とを含んで構成される。
【0069】
GPSレシーバ51は、GPSアンテナ58を介して、GPS用衛星から送信される複数の電波信号を受信する。GPSレシーバ51は、受信した複数の電波信号をナビ処理部56に与える。
【0070】
主記憶部52は、たとえばフラッシュROM(Read Only Memory)およびハードディスクなどの不揮発性記録媒体によって実現される。主記憶部52は、ナビゲーション装置50を構成するハードウェア資源を統括的に制御するための制御プログラム、経路案内をするために用いられる地図を表す地図データ、ナビゲーション装置50に設定された設定情報、ならびに予め定める音声に関する音声情報を記憶する。予め定める音声は、たとえば経路案内を行うときにスピーカ60から出力させるビープ音および合成音声である。設定情報は、たとえば、表示される地図のスケールに関する情報、ナビゲーションの出発地および目的地に関する情報などである。
【0071】
一時記憶メモリ24は、たとえばSDRAM(Synchronous Dynamic Random Access
Memory)などの揮発性の半導体メモリによって実現される。一時記憶メモリ24は、ナビ処理部50の処理における演算結果、および主記憶部52から読み出されて実行される制御プログラム、ならびにナビ処理部56によって生成されるナビゲーション装置50の位置情報などを一時的に記憶する。
【0072】
操作部55は、入力部であって、利用者が操作してナビゲーション装置50に与える指令を含む所定の情報を入力するための操作スイッチを有する。表示部55は、たとえばカラー表示可能な液晶ディスプレイ(略称:LCD)または有機EL(Electro Luminescence)ディスプレイによって実現される。表示部55は、ナビ処理部56から与えられる指令に従って所定の文字および画像を表示する。表示部55に表示される画像は、道路地図、ナビゲーション装置50の位置、経路案内および観光案内などである。
【0073】
マイクロフォン59は、たとえば利用者によって発せられる音声を入力する。マイクロフォン59に入力された音声を表す音声情報は、ナビ処理部56に与えられる。ナビ処理部56は、マイクロフォン59から与えられる予め定める音声情報を認識して、たとえば経路案内処理を行ってもよい。
【0074】
スピーカ60は、主記憶部52に記憶されている予め定める音声、具体的にはビープ音および合成音声などのデータが電気信号として与えられると、この電気信号を音響化して出力する。
【0075】
通信部57は、赤外線通信を行うIrDA(Infrared Data Association)モジュール、および有線で外部の電子機器に接続するインタフェース(I/F)モジュールとを含んで構成されている。IrDAモジュールおよびI/Fモジュールは、前述した外部ICである。
【0076】
このようなナビゲーション装置50では、ナビ処理部56からの指令に応じて信号処理装置11が動作して、通信部57のIrDAモジュールおよびI/Fモジュールを個別にリセットすることができ、ナビゲーション装置50と外部の電子機器との間における通信の信頼性が確保される。
【図面の簡単な説明】
【0077】
【図1】従来の技術の信号処理装置1の構成を示すブロック図である。
【図2】モジュールA,B,Cにおける回路の構成の一部を示す図である。
【図3】CPUCLKと、sync_clrとの一例を示すタイミングチャートである。
【図4】sync_clrによってリセットを行う場合のモジュールA,B,Cの回路構成の一部を示す図である。
【図5】CPUCLKと、CLK_Aと、sync_clrとの一例を示すタイミングチャートである。
【図6】本発明の実施の一形態の信号処理装置11の構成を示すブロック図である。
【図7】モジュールA,B,Cの回路構成の一部を示す図である。
【図8】同期リセット生成回路部15の構成の一部を示す図である。
【図9】信号処理装置11におけるリセット処理の手順について示すフローチャートである。
【図10】信号処理装置11の動作を表すタイミングチャートである。
【図11】本発明の実施の他の形態の信号処理装置41の一部の構成を示すブロック図である。
【図12】クロック乗せ換え部42の構成を示す図である。
【図13】信号処理装置41における動作を表すタイミングチャートである。
【図14】信号処理装置11を備えるナビゲーション装置50である。
【符号の説明】
【0078】
11,41 信号処理装置
13 CPU
14 モジュール回路部
15 同期リセット生成回路部
16 フリップフロップ
17 論理積回路
18 同期リセット信号生成部
21 カウンタ
22 設定値記憶部
42 クロック乗せ換え部
A,B,C,D 処理部

【特許請求の範囲】
【請求項1】
相互に異なる周期の複数のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部を備える信号処理装置において、
第1のクロック信号で動作し、前記複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成する1周期リセット信号生成部と、
前記1周期リセット信号生成部によって生成されたリセット信号が与えられ、このリセット信号の長さを前記予め定める処理部に対応する長さに引き延ばした伸長リセット信号を生成し、生成した伸長リセット信号を第2のクロック信号に同期させて同期リセット信号を生成する同期リセット信号生成部とを備え、
前記予め定める処理部は、前記同期リセット信号生成部から同期リセット信号が与えられている間に、第2のクロック信号が立上がりまたは立下ると、リセットされることを特徴とする信号処理装置。
【請求項2】
第1のクロック信号で動作する処理部をさらに備え、
前記1周期リセット信号生成部は、第1のクロック信号で動作する処理部に対するリセット指令が外部から与えられると、この処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成し、
前記第1のクロック信号で動作する処理部は、前記1周期リセット信号生成部からリセット信号が与えられている間に、第1のクロック信号が立上がりまたは立下ると、リセットされることを特徴とする請求項1に記載の信号処理装置。
【請求項3】
前記同期リセット信号生成部が、リセット信号を引き延ばす長さに関する設定が可能な設定部を備えることを特徴とする請求項1または2に記載の信号処理装置。
【請求項4】
前記同期リセット信号生成部は、カウンタを用いて伸長リセット信号を生成し、複数の予め定める処理部に対応する伸長リセット信号を1つのカウンタを用いて生成することを特徴とする請求項1〜3のいずれか1つに記載の信号処理装置。
【請求項5】
第1のクロックで動作する処理部をさらに備え、
第1のクロックで動作する処理部と、前記予め定める処理部が、相互にデータを受け渡し可能に設けられ、
第1のクロックで動作する処理部に対するリセット指令が与えられると、前記同期リセット信号生成部は、第1のクロックで動作する処理部のクロック信号に同期する第1の同期リセット信号と、前記予め定める処理部に与えられる第2の同期リセット信号とを生成し、第1のクロックで動作する処理部に第1の同期リセット信号が与えられている間に、前記予め定める処理部に第2の同期リセット信号を与えることを特徴とする請求項1に記載の信号処理装置。
【請求項6】
相互に異なる複数のクロック信号が与えられ、かつ相互に非同期で所定の処理を行う複数の処理部を備える信号処理装置における信号処理方法であって、
第1のクロック信号で動作し、前記複数の処理部のうち第1のクロック信号の周期よりも長い周期を有する第2のクロック信号で動作する予め定める処理部に対するリセット指令が外部から与えられると、前記予め定める処理部を指定する信号を含み、かつ第1のクロック信号の1周期分の長さを有するリセット信号を生成し、
生成されたリセット信号の長さを前記予め定める処理部に対応する長さに引き伸ばした伸長リセット信号を生成し、生成した伸長リセット信号に第2のクロック信号に同期させて同期リセット信号を生成し、
前記同期リセット信号が与えられている間に、第2のクロック信号が立上がりまたは立下ると、予め定める処理部をリセットすることを特徴とする信号処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−9427(P2010−9427A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−169632(P2008−169632)
【出願日】平成20年6月27日(2008.6.27)
【出願人】(000237592)富士通テン株式会社 (3,383)
【Fターム(参考)】