(57)【要約】【課題】処理時間の短縮を図ることができる。また、受信側の回路形態にかかわらず、確実に正確なデータの送受信を行うことができる。【解決手段】データ判定部５は、データ生成部２からデータが出力されたとき、前回出力したデータと今回送信するデータとをビット毎に比較して変化したビット数の判定を行い、変化したビット数が所定値以上になった今回送信するデータについて、変化したビットの位置を示す位置情報および変化したビットの個数をカウントした回数情報を出力する。出力制御部６は、位置情報および回数情報を受け取り、データ出力の際に位置情報に該当するビットについてこのビットの値のばらつきを落ち着かせるための時間を確保し、該確保した時間の経過後、位置情報に該当するビットの値を外部回路７に送信するようデータ格納部３に指示する。【選択図】図１
2008165494.tif 000002
【特許請求の範囲】
【請求項１】
複数ビットのデータを出力する信号制御回路において、
複数ビットのデータを生成するデータ生成部と、
前記データ生成部により生成された前記データを格納し、前記データの出力要求に応じて外部回路に前記データを出力するデータ格納部と、
前回出力した前記データを保持するデータ保持部と、
前記データ生成部から前記データが出力されたとき、前回出力した前記データと今回送信する前記データとをビット毎に比較して変化したビット数の判定を行い、変化した前記ビット数が所定値以上になった今回送信する前記データについて、変化したビットの位置を示す位置情報および変化したビットの個数をカウントした回数情報を出力するデータ判定部と、
前記位置情報および前記回数情報を受け取り、データ出力の際に前記位置情報に該当するビットについて該ビットの値のばらつきを落ち着かせるための時間を確保し、該確保した時間の経過後、前記位置情報に該当するビットの値を前記外部回路に送信するよう前記データ格納部に指示する出力制御部と、
を有することを特徴とする信号制御回路。
【請求項２】
前記データ判定部は、前記データ生成部から前記データ格納部に前記データが格納されるときに前記判定を行うことを特徴とする請求項１記載の信号制御回路。
【請求項３】
前記出力制御部は、前記データ格納部への指示の前に前記位置情報に該当するビットの値のばらつきを落ち着かせるための時間を加味した転送長を前記外部回路に出力することを特徴とする請求項１記載の信号制御回路。
【請求項４】
前記出力制御部は、前記位置情報および前記回数情報を受け取り、前記位置情報に示されたビットについては、予め設定された時間だけ前記位置情報に示されたビットと同じビットの値を前記外部回路に送信するよう、前記データ格納部に指示することを特徴とする請求項１記載の信号制御回路。
【請求項５】
前記外部回路が前記データの有効または無効を判断することができる場合、前記出力制御部は、前記位置情報に該当するビットの値のばらつきを落ち着かせるための時間において前記外部回路に前記データを書き込み禁止にする信号を送信することを特徴とする請求項４記載の信号制御回路。
【請求項６】
予め設定された時間を格納する保持長格納部をさらに有することを特徴とする請求項４記載の信号制御回路。
【請求項７】
前記出力制御部は、前記位置情報および前記回数情報を受け取り、前記位置情報に示されたビットと次のビットとの間で前記データを分割して前記外部回路に送信するよう、前記データ格納部に指示することを特徴とする請求項１記載の信号制御回路。
【請求項８】
複数ビットのデータの入出力が内部で行われる信号制御装置において、
複数ビットのデータが入力される対象回路と、
前記データを生成するデータ生成部と、前記データ生成部により生成された前記データを格納し、前記データの出力要求に応じて前記対象回路に前記データを出力するデータ格納部と、前回出力した前記データを保持するデータ保持部と、前記データ生成部から前記データが出力されたとき、前回出力した前記データと今回送信する前記データとをビット毎に比較して変化したビット数の判定を行い、変化した前記ビット数が所定値以上になった今回送信する前記データについて、変化したビットの位置を示す位置情報および変化したビットの個数をカウントした回数情報を出力するデータ判定部と、前記位置情報および前記回数情報を受け取り、データ出力の際に前記位置情報に該当するビットについて該ビットの値のばらつきを落ち着かせるための時間を確保し、該確保した時間の経過後、前記位置情報に該当するビットの値を前記対象回路に送信するよう前記データ格納部に指示する出力制御部とを備える信号制御回路と、
を有することを特徴とする信号制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は信号制御回路および信号制御装置に関し、特に複数ビットの外部出力端子を備える信号制御回路および複数ビットのデータの入出力が内部で行われる信号制御装置に関する。
【背景技術】
【０００２】
ＬＳＩ（Large Scale Integration）に内蔵される一般的な信号制御回路において、信号制御回路から出力される複数の出力信号が同時に変化（例えば、８ビットの出力信号が、「００００００００」から「１１１１１１１１」に変化）することにより生じるノイズによって１つまたは複数ビットの出力信号が過渡的に誤った値を示し、誤動作の原因となることがある。この誤動作への対処方法としては、例えばノイズの絶対量を減らすための、電源系の強化や入出力速度の低速化が考えられる。しかし、電源まわりを強化するにはコストがかかり、入出力速度を低速化すると、性能も低下するという問題がある。
【０００３】
これに対し、同時変化を監視し、所定の変化数を上回った際にノイズ対策を施す方法が知られている（例えば特許文献１〜３参照）。特許文献１は、同時変化が基準値以上のときに基準信号を遅延させ、ノイズによる過渡的なデータ誤り状態の終了後のデータを有効とするものである。特許文献２、３では、所定のビット幅に分割し、同時変化ノイズの発生を抑えている。分割した際に、有効または無効となるビットを通知するため、対応するビット毎に書き込み制御信号を出力している。
【特許文献１】特開平１１−１６７５３０号公報
【特許文献２】特開２００４−３１８４５０号公報
【特許文献３】特開平７−８４９８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、前述した特許文献１〜３の回路構成においては、外部回路へのデータ転送時に同時判定を行う方法を採用している。このため、データ転送と同時にアドレス、転送長を外部回路に伝えており、処理に時間がかかるという問題があった。
【０００５】
また、外部回路の回路形態は多様にわたり、種々の構成の外部回路に適用する信号制御方法が望まれている。
本発明はこのような点に鑑みてなされたものであり、処理時間の短縮を図ることができる信号制御回路および信号制御装置を提供することを目的とする。
【０００６】
また、他の目的として、受信側の回路形態にかかわらず、確実に正確なデータの送受信を行うことができる信号制御回路および信号制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明では上記課題を解決するために、複数ビットのデータを出力する信号制御回路において、複数ビットのデータを生成するデータ生成部と、前記データ生成部により生成された前記データを格納し、前記データの出力要求に応じて外部回路に前記データを出力するデータ格納部と、前回出力した前記データを保持するデータ保持部と、前記データ生成部から前記データが出力されたとき、前回出力した前記データと今回送信する前記データとをビット毎に比較して変化したビット数の判定を行い、変化した前記ビット数が所定値以上になった今回送信する前記データについて、変化したビットの位置を示す位置情報および変化したビットの個数をカウントした回数情報を出力するデータ判定部と、前記位置情報および前記回数情報を受け取り、データ出力の際に前記位置情報に該当するビットについて該ビットの値のばらつきを落ち着かせるための時間を確保し、該確保した時間の経過後、前記位置情報に該当するビットの値を前記外部回路に送信するよう前記データ格納部に指示する出力制御部と、を有することを特徴とする信号制御回路が提供される。
【０００８】
このような信号制御回路によれば、データ生成部により、複数ビットのデータが生成される。データ格納部により、データ生成部によって生成されたデータが格納され、データの出力要求に応じて外部回路にデータが出力される。データ保持部により、前回出力したデータが保持される。データ判定部により、データ生成部からデータが出力されたとき、前回出力したデータと今回送信するデータとがビット毎に比較され変化したビット数の判定が行われ、変化したビット数が所定値以上になった今回送信するデータについて、位置情報および回数情報が出力される。この位置情報および回数情報が出力制御部により受け取られ、出力制御部により、データ出力の際に位置情報に該当するビットについて該ビットの値のばらつきを落ち着かせるための時間を確保し、この確保した時間の経過後、位置情報に該当するビットの値を外部回路に送信するようデータ格納部が指示される。
【発明の効果】
【０００９】
本発明によれば、出力制御部が、前もって作成された位置情報および回数情報を受け取り、データの出力の際に、位置情報に該当するビットの値のばらつきを落ち着かせるための時間を確保し、確保した時間の経過後、位置情報に該当するビットの値を外部回路に出力するようにデータ格納部に指示するようにしたので、データ出力の際に、位置情報および回数情報を算出する場合に比べ処理時間を短縮することができる。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、本発明の概要について説明し、その後、実施の形態を説明する。
図１は、本発明の概要を示す図である。
【００１１】
図１に示す信号制御回路１は、データ生成部２と、データ格納部３と、データ保持部４と、データ判定部５と、出力制御部６とを有している。
データ生成部２は、複数ビットのデータ（図１では「１１１」）を生成する。
【００１２】
データ格納部３は、データ生成部２により生成されたデータを格納し、データの出力要求に応じて信号制御回路１の外部に設けられた外部回路７にデータを出力する。なお、外部回路７は、信号制御回路１にとっての外部回路であり、信号制御回路１と外部回路７とが一体的に形成されていてもよい。
【００１３】
データ保持部４は、前回出力したデータ（図１では「０１１」）を保持する。
データ判定部５は、データ生成部２からデータが出力されたとき、前回出力したデータ（「０１１」）と今回送信するデータ（「１１１」）とをビット毎に比較して変化したビット数の判定を行い、変化したビット数が所定値以上になった今回送信するデータ（「１１１」）について、変化したビットの位置を示す位置情報および変化したビットの個数をカウントした回数情報を出力する。
【００１４】
図１では、所定値が「１」である場合、出力開始から数えたビットの位置「１」を位置情報として出力し、変化したビットの個数「１」を回数情報として出力する。
出力制御部６は、位置情報および回数情報を受け取り、データ出力の際に位置情報に該当するビットについて、このビットの値のばらつきを落ち着かせるための時間を確保し、確保した時間の経過後、位置情報に該当するビットの値を外部回路７に送信するようデータ格納部３に指示する。図１では、データ「１１１」のうちの１ビット目の値「１」について、値のばらつきを落ち着かせるための時間を確保（・・）し、確保した時間の経過後、１ビット目の値を外部回路７に送信するようデータ格納部３に指示する。
【００１５】
このような信号制御回路１によれば、データ生成部２により、複数ビットのデータが生成される。データ格納部３により、データ生成部２によって生成されたデータが格納され、データの出力要求に応じて外部回路７にデータが出力される。データ保持部４により、前回出力したデータが保持される。データ判定部５により、データ生成部２からデータが出力されたとき、前回出力したデータと今回送信するデータとがビット毎に比較され変化したビット数の判定が行われ、変化したビット数が所定値以上になった今回送信するデータについて、位置情報および回数情報が出力される。この位置情報および回数情報が出力制御部６により受け取られ、出力制御部６により、データ出力の際に位置情報に該当するビットについて該ビットの値のばらつきを落ち着かせるための時間を確保し、この確保した時間の経過後、位置情報に該当するビットの値を外部回路７に送信するようデータ格納部３が指示される。
【００１６】
以下、本発明の実施の形態を説明する。
図２は、実施の形態の信号制御装置を示す図である。
信号制御装置３０は、信号制御回路１０と信号制御回路１０に接続された外部ＲＡＭ（Random Access Memory）２０とを有している。外部ＲＡＭ２０としては特に限定されないが、例えばＳＤＲＡＭ（Synchronous DRAM）とＳＤＲＡＭコントローラの組み合わせの形態等が挙げられる。
【００１７】
信号制御回路１０は、ＣＰＵ（Central Processing Unit）１１と、データ生成部１２と、データバッファＲＡＭ１３と、設定レジスタ１４と、ＦＦ（フリップフロップ）１５と、データ判定部１６とＲＡＭ（設定情報格納部）１７と、出力制御部１８とを有している。
【００１８】
ＣＰＵ１１は、信号制御回路１０全体を制御しており主として以下（１）〜（３）の動作を行う。
（１）データ生成部１２に外部ＲＡＭ２０に送信するデータの生成指示を送る。
【００１９】
（２）設定レジスタ１４に設定情報（後述）を送る。
（３）データ判定部１６および出力制御部１８にデータを出力する指示（転送指示）を送る。
【００２０】
データ生成部１２は、ＣＰＵ１１の生成指示を受けて外部ＲＡＭ２０に出力する複数ビットのデータを生成し、生成したデータを出しつつライト制御信号（ライトイネーブルおよびライトアドレス）をデータバッファＲＡＭ１３に出力する。その後、データ生成部１２は、データを、データバッファＲＡＭ１３に出力すると同時にデータ判定部１６にも出力する。
【００２１】
データバッファＲＡＭ１３は、データ生成部１２と外部ＲＡＭ２０との間に設けられており、受け取ったデータを一時格納する。また、リード要求および読み出しアドレスを受け取ると、該当するアドレスに格納されているデータを外部ＲＡＭ２０に送信する。
【００２２】
設定レジスタ１４は、ＣＰＵ１１から入力された設定情報を格納する。設定情報には、以下の３つの情報が含まれている。
（１）例えばデータ生成部１２が生成したデータのビット数が３２ビットである場合、例えばそのうちの１６ビットが変化するとデータ判定部に同時変化が生じたと判定させるための値（判定基準値）。判定基準値は、例えば過去の同等回路における、データ出力のクロック周波数とノイズが生じる同時変化ビット数との関連等によりＣＰＵ１１が適宜決定する。
【００２３】
（２）１回あたりのデータのばらつきに対し延長するサイクル数（保持長）。保持長は、例えばノイズによる過渡的なデータ誤り状態が終了すると判断されるサイクル数からＣＰＵ１１が適宜決定する。
【００２４】
（３）同時変化点のデータを予め設定した保持長のサイクルだけ延長して出力するモード（保持モード）と、同時変化点で分割して出力するモード（分割モード）のいずれか一方が指定されたモード選択信号。モード選択信号は、外部ＲＡＭ２０の形態に応じて予めどちらのモードを使用するのかをＣＰＵ１１が適宜決定する。
【００２５】
また、保持モードにはさらに２つのモードが存在し、データバッファＲＡＭ１３から外部ＲＡＭ２０へのデータ送信時に、データの有効／無効を通知する書き込み制御信号を外部ＲＡＭ２０に出力するモードを第１の保持モード（保持モード＃１）といい、出力しないモードを第２の保持モード（保持モード＃２）という。
【００２６】
ＦＦ１５は、データ生成部１２から出力されるデータを一時的に保持する機能を有している。
データ判定部１６は、データ生成部１２が出力するライト制御信号を受け取ると、設定レジスタ１４から設定情報を読み取り、入力されるデータからばらついている箇所の個数を判断する。具体的には、データ生成部１２から受け取ったデータの各ビット（今回出力されたデータ）と、前のデータ（ＦＦ１５に格納されているデータ）の各ビットとを比較（同時変化検出）して値が変化しているビットの位置（変化位置）および変化したビットの個数（検出数）を検出する。そして、変化位置のビットの値について、判定基準値に基づいてサイクル数を延長するか否かの判定をする。具体的には判定基準値以上の同時変化を検出した場合に、サイクル数を延長する判定を行う。
【００２７】
サイクル数を延長する判定を行った場合、ばらついた箇所を変化位置（例えば、３２個のデータのうち５番目が変化した）としてＲＡＭ１７に書き込む。また、ばらついた箇所の延べの個数を検出数としてＲＡＭ１７に書き込む。
【００２８】
出力制御部１８は、ＲＡＭ１７から変化位置と検出数とを読み取り、これからデータの転送長を算出し、書き込みアドレスとともに外部ＲＡＭ２０に出力する（転送要求）。これにより、外部ＲＡＭ２０側は、データが書き込まれる前にどれだけのデータをどこに書き込めばよいのかを容易に把握することができる。
【００２９】
その後、データの送信開始を示す制御信号を外部ＲＡＭ２０に出力する（リクエスト）。
その後、出力制御部１８は、データバッファＲＡＭ１３にデータのリード要求および読み出しアドレスを出す。
【００３０】
また、出力制御部１８は、選択されているモード（保持モード、分割モード）とＲＡＭ１７から読み取った変化位置とに応じてデータバッファＲＡＭ１３へのリード要求および読み出しアドレスを変化させる。
【００３１】
次に、データ判定部１６の同時変化を検出する動作（同時変化検出動作）の概要について説明する。
図３は、同時変化検出動作を示すフローチャートである。
【００３２】
データ判定部１６は、ライト制御信号を見て、データが入力されたか否か（データがデータバッファＲＡＭ１３に書き込まれたか否か）を判断する（ステップＳ１１）。
データが入力されていない場合（ステップＳ１１のＮｏ）、データの入力を待機する。
【００３３】
データが入力されると（ステップＳ１１のＹｅｓ）、前後のデータの各ビットを比較して同時変化が判定基準値以上か否かを判断する（ステップＳ１２）。
同時変化が判定基準値未満の場合（ステップＳ１２のＮｏ）、ステップＳ１４に移行する。
【００３４】
一方、同時変化が判定基準値以上の場合（ステップＳ１２のＹｅｓ）、変化位置をＲＡＭ１７に書き込む（ステップＳ１３）。
次にライト制御信号を見て、データ生成部１２のデータの出力が終了したか否か（データのデータバッファＲＡＭ１３への書き込みが終了したか否か）を判断する（ステップＳ１４）。
【００３５】
データの出力が終了していない場合（ステップＳ１４のＮｏ）、ステップＳ１２に移行して同時変化検出動作を継続して行う。
一方、データの出力が終了した場合（ステップＳ１４のＹｅｓ）、検出数をＲＡＭ１７に書き込む（ステップＳ１５）。
【００３６】
以上で同時変化検出動作を終了する。
次に、データ判定部１６の機能について詳しく説明する。
図４は、データ判定部の機能を示すブロック図である。
【００３７】
データ判定部１６は、比較部１６１と、判定部１６２と、カウンタ部１６３と、カウンタ部１６４と、イネーブル付きフリップフロップ（ＦＦ）１６５と、アドレス生成部１６６とを有している。
【００３８】
比較部１６１は、受け取ったデータ（新データ）と前のデータ（前データ）とをビット毎に比較し、検出数を得る。
判定部１６２は、設定レジスタ１４に格納された判定基準値を読み出し、検出数が判定基準値以上であった場合には１サイクルの処理制御信号をカウンタ部１６３に送る。
【００３９】
カウンタ部１６３は、検出数をカウントするカウンタを有しており、処理制御信号が入力される毎に検出数を１カウントアップする。
カウンタ部１６４は、データバッファＲＡＭ１３へのデータ格納の際に、データ生成部１２から出力されているライト制御信号に含まれるライトイネーブル信号をカウントする。これにより、書き込み開始からのデータ位置に等しい数がカウントされる。
【００４０】
イネーブル付きフリップフロップ１６５は、判定部１６２からの処理制御信号をイネーブル信号とし、処理制御信号が入力されたとき、すなわち検出数が判定基準値以上であった場合、そのときのデータ位置の値を変化位置としてＲＡＭ１７に書き込む。
【００４１】
アドレス生成部１６６は、処理制御信号を受ける毎に、変化位置のアドレス（変化位置アドレス）を生成し、ＲＡＭ１７に書き込む。これにより、ＲＡＭ１７には、変化位置およびそのアドレスの情報が関連づけられて格納される。
【００４２】
ＣＰＵ１１からの転送指示７７により、検出数がＲＡＭ１７の所定のアドレスへ書き込まれる。その後、カウンタ部１６３およびカウンタ部１６４の各カウンタはリセットされる。なお、図４中、３つの転送指示７７はそれぞれ同じ信号である。
【００４３】
次に、出力制御部１８の機能について詳しく説明するが、出力制御部１８の機能は保持モードと分割モードとで異なるため、最初に保持モードの出力制御部１８の機能について説明し、次に分割モードの出力制御部１８の機能について説明する。
【００４４】
図５は、保持モードの出力制御部の機能を示すブロック図である。
出力制御部１８は、パラメータ出力部１８１と、アドレス生成部１８２と、読み出し制御部１８３とを有している。
【００４５】
図５に示すように、転送指示には、転送開始要求と実データ長、外部ＲＡＭアドレスが含まれている。ここで実データ長は、データ生成部１２が出力するデータの長さ（ビット数）を示す情報である。また、外部ＲＡＭアドレスは、外部ＲＡＭ２０にデータを出力する際の先頭番地のアドレスである。
【００４６】
パラメータ出力部１８１は、ＣＰＵ１１から転送開始要求が入力されると、その時点での実データ長、外部ＲＡＭアドレス、保持長、モード選択信号の各値を保持する。
その後、パラメータ出力部１８１は、変化位置、検出数読み出し要求をＲＡＭ１７に出して検出数および変化位置を読み出し、実データ長を用いて転送長を算出する。そして、算出した転送長を読み出し制御部１８３に送り、外部ＲＡＭアドレスから転送長分のアドレスを確保した書き込みアドレスを生成し、転送長とともに外部ＲＡＭ２０に送信する。
【００４７】
アドレス生成部１８２は、カウンタを備えており、リード要求がＨｉの期間はカウンタをインクリメントして値を生成する。そして、生成した値を読み出しアドレスとしてデータバッファＲＡＭ１３に送る。また、リード要求がＬｏの期間はカウンタをインクリメントせずに、当該カウンタの値を読み出しアドレスとしてデータバッファＲＡＭ１３に送る。
【００４８】
読み出し制御部１８３は、外部ＲＡＭ２０から出力要求を受信すると、リード要求をデータバッファＲＡＭ１３およびアドレス生成部１８２に送る。また、リード要求を送っている最中に、変化位置に到達した場合、変化位置通知をパラメータ出力部１８１に送る。
【００４９】
＜保持モード＃１の処理＞
次に、出力制御部１８の保持モード＃１の処理（データ出力処理）について説明する。
図６は、第１の保持モードの処理を示すフローチャートである。
【００５０】
まず、パラメータ出力部１８１がＲＡＭ１７から検出数を読み出す（ステップＳ２１）。
次に、パラメータ出力部１８１が転送長を算出する（ステップＳ２２）。計算式は、転送長＝データ長＋検出数×保持長である。
【００５１】
次に、読み出し制御部１８３が、外部ＲＡＭ２０にリクエスト（制御信号）を送信して、データの出力を開始する（ステップＳ２３）。
次に、読み出し制御部１８３が、ＲＡＭ１７から変化位置を読み込む（ステップＳ２４）。
【００５２】
次に、読み出し制御部１８３が、リード要求を出力し、アドレス生成部１８２が読み出しアドレスを出力し、データバッファＲＡＭ１３にデータの各ビットを出力させる（ステップＳ２５）。
【００５３】
読み出し制御部１８３は、リード要求の際、データの各ビットに対し、それぞれ変化位置か否かを判断する（ステップＳ２６）。
変化位置の場合（ステップＳ２６のＹｅｓ）、読み出し制御部１８３は、保持長のサイクルだけ要求データをＬｏにし、変化位置のビットの値を出力する時間を延長する（ステップＳ２７）。すなわち、変化位置のビットの値は（保持長＋１）サイクル期間保持される。このとき、変化位置を含めた保持長のサイクル分、制御信号を書き込み禁止状態にする。
【００５４】
変化位置ではない場合（ステップＳ２６のＮｏ）、読み出し制御部１８３は、転送長分のデータ出力が終了したか否か（転送終了か）を判断する（ステップＳ２８）。
データ出力が終了していない場合（ステップＳ２８のＮｏ）、ステップＳ２５に移行し、変化位置の読み取り位置を次の位置に変えて、動作を繰り返す。これにより、全部で「検出数」のデータ出力処理を行うことになる。
【００５５】
一方、データ出力が終了した場合（ステップＳ２８のＹｅｓ）、データ出力処理を終了する。
図７は、保持モードにおいて外部ＲＡＭに出力されるデータを示す図である。
【００５６】
図７において、転送長はＮ、保持長はＬである。
＜保持モード＃２の処理＞
出力制御部１８の保持モード＃２においては、図６におけるステップＳ２７にて変化位置を含めた保持長のサイクル分、制御信号を書き込み禁止状態にしないこと以外は、保持モード＃１と同じ処理を行う。
【００５７】
＜保持モードの具体例＞
次に、保持モード＃１であるときの出力制御部１８の動作を、実データ長が「１６」、保持長が「２」、検出数が「２」、変化位置が、「６」および「１１」である場合を例にとって説明する。
【００５８】
図８は、具体例のＲＡＭからの読み出しアドレスおよび外部ＲＡＭに出力されるデータの関係を示す図である。図８中のデータは、データバッファＲＡＭ１３から外部ＲＡＭ２０に出力されるデータである。また、図８中のデータに付されたアドレスの値は、アドレス生成部１８２が出力する読み出しアドレスの値であり、外部ＲＡＭ２０のアドレス値を表すものではない。すなわち、図８中、アドレス値「１」は、データバッファＲＡＭ１３に格納されているデータ（図８中のデータ）「１」の格納アドレスを指す。
【００５９】
パラメータ出力部１８１は、実データ長とＲＡＭ１７から読み出した保持長および検出数とで転送長を計算する。本具体例では、転送長＝１６＋２×２＝２０となる。
そして、パラメータ出力部１８１は、外部ＲＡＭ２０に対し、転送長および書き込みアドレスを転送パラメータとして、外部ＲＡＭ２０に送信する。その後、転送長および保持長を読み出し制御部１８３に送り、読み出し要求をＲＡＭ１７に送る。これによりＲＡＭ１７が変化位置（＝６）と検出数とをパラメータ出力部１８１および読み出し制御部１８３に送る。
【００６０】
読み出し制御部１８３は、制御信号（リクエスト）を外部ＲＡＭ２０に送信し、出力要求を受信すると、リード要求（Ｈｉ）をデータバッファＲＡＭ１３およびアドレス生成部１８２に送る。
【００６１】
アドレス生成部１８２は、読み出しアドレスを生成し、データバッファＲＡＭ１３に送る。
データバッファＲＡＭ１３は、読み出しアドレスに該当するアドレスのデータを読み出し、外部ＲＡＭ２０に出力する。
【００６２】
読み出し制御部１８３は、変化位置（＝６）のリード要求出力後、リード要求をＬｏにする。これにより、アドレス生成部１８２が変化位置の読み出しアドレスと同じ読み出しアドレスを出し続けることによって、データバッファＲＡＭ１３からは、変化位置（＝６）のデータと同じデータが出力され続けることになる。なお、ここで「モード選択信号」が保持モード＃１であるため、同期間、制御信号をＨｉにして、データバッファＲＡＭ１３が出力するデータを外部ＲＡＭ２０が書き込むのを禁止させる。
【００６３】
また、読み出し制御部１８３は、リード要求をＬｏにすると同時に、変化位置通知をパラメータ出力部１８１に送る。
パラメータ出力部１８１は、変化位置通知を受け取ると、ＲＡＭ１７に対し、次の変化位置の読み出し要求を送る。これによりＲＡＭ１７が、次の変化位置（＝１１）を出力する。
【００６４】
保持長分（＝２サイクル）経過後、読み出し制御部１８３は、リード要求をＨｉにするとともに制御信号をＬｏにする。これにより、アドレス生成部１８２が新たな読み出しアドレスを生成し、データバッファＲＡＭ１３から新たなビットのデータが出力される。
【００６５】
読み出し制御部１８３は、次の変化位置（＝１１）のビットのデータを受け取ると、上記と同様の動作を行う。すなわち、変化位置（＝１１）のリード要求出力後、リード要求をＬｏにする。これにより、データバッファＲＡＭ１３から出力されるデータは変化位置（＝１１）のデータと同じデータが出力され続けることになる。また、同期間、制御信号をＨｉにする。
【００６６】
また、読み出し制御部１８３は、リード要求をＬｏにすると同時に、変化位置通知をパラメータ出力部１８１に送る。
読み出し制御部１８３は、転送長（＝２０）のリード要求が終了した時点で、リード要求の送信を停止する。これにより、外部ＲＡＭ２０へのデータ転送が終了する。
【００６７】
このようにして、転送指示により外部ＲＡＭ２０に与えた転送長で、データ判定部１６で計算された変化位置が引き延ばされたデータがデータバッファＲＡＭ１３から外部ＲＡＭ２０に送信される。
【００６８】
＜分割モード＞
図９は、分割モードの出力制御部の機能を示すブロック図である。
分割モードは、主としてモード選択信号の設定値と、パラメータ出力部１８１および読み出し制御部１８３の動作が保持モードと異なっている。以下、保持モードと同様の部分についてはその説明を省略する。
【００６９】
分割モードでは、出力制御部１８は、ＲＡＭ１７からの変化位置および検出数はパラメータ出力部１８１のみが受け取る（読み出し制御部１８３は受け取らない）。
パラメータ出力部１８１は、ＣＰＵ１１からの転送開始要求により、その時点での実データ長、外部ＲＡＭ２０のアドレス、モード選択信号の各値を受け取り保持する（保持長は使用しない）。
【００７０】
また、パラメータ出力部１８１は、検出数と変化位置とをＲＡＭ１７から読み出すと、分割モードの転送長を算出する。
また、読み出し制御部１８３は、データ転送中にデータバッファＲＡＭ１３が出力するデータを外部ＲＡＭ２０が書き込むのを禁止させる制御信号を送信しない。但し、リクエストは送信する。
【００７１】
＜分割モードの処理＞
次に、出力制御部１８の分割モードの処理（データ出力処理）について説明する。
図１０は、分割モードの処理を示すフローチャートである。
【００７２】
まず、転送回数＝０とする（ステップＳ３１）。この検出回数は、出力制御部１８が保持しているパラメータである。
まず、ＲＡＭ１７から検出数を読み出す（ステップＳ３２）。
【００７３】
次に、ＲＡＭ１７から変化位置を読み出す（ステップＳ３３）。
次に、変化位置を用いて転送長を算出する（ステップＳ３４）。計算方法は後述する。
次に、外部ＲＡＭ２０への書き込みアドレスを算出する（ステップＳ３５）。外部ＲＡＭ２０への書き込みアドレスは、前回のアドレスと前回の転送長とから求める。
【００７４】
次に、外部ＲＡＭ２０にリクエストを送信し（ステップＳ３６）、データの出力を開始し、転送長分のデータの出力を行う（ステップＳ３７）。その際、データの各ビットを出力する度に、データ出力が終了したか否か（転送長分のデータを出力したか否か）を判断する（ステップＳ３８）。
【００７５】
データ出力が終了していない場合（ステップＳ３８のＮｏ）、ステップＳ３７に移行して、次のビットのデータを出力する。
一方、データ出力が終了した場合（ステップＳ３８のＹｅｓ）、転送回数が、検出数＋１の値に等しいか否かを判断する（ステップＳ３９）。
【００７６】
転送回数が、検出数＋１の値に等しくない場合（ステップＳ３９のＮｏ）、ステップＳ３２に移行して、ステップＳ３３以降の処理を継続する。
一方、転送回数が、検出数＋１の値に等しい場合（ステップＳ３９のＹｅｓ）、データ出力処理を終了する。すなわち、分割モードではデータの転送を検出数＋１回だけ繰り返す。
【００７７】
次に、前述したステップＳ３４の転送長の算出処理について説明する。
図１１は、転送長の算出処理を示すフローチャートである。
まず、転送回数を１インクリメントする（ステップＳ３４１）。
【００７８】
次に、転送回数＝１か否かを判断する（ステップＳ３４２）。
転送回数＝１の場合（ステップＳ３４２のＹｅｓ）、初回の転送であるため、転送長＝変化位置−１とする（ステップＳ３４３）。
【００７９】
一方、転送回数＝１ではない場合（ステップＳ３４２のＮｏ）、初回以降の転送であると判断し、次に転送回数＝検出数＋１か否かを判断する（ステップＳ３４４）。
転送回数＝検出数＋１ではない場合（ステップＳ３４４のＮｏ）、最後の転送ではないため、転送長＝今回読み込んだ変化位置−前回の変化位置とする（ステップＳ３４５）。
【００８０】
一方、転送回数＝検出数＋１の場合（ステップＳ３４４のＹｅｓ）、最後の転送であるため、転送長＝実データ長−前回の変化位置＋１とする（ステップＳ３４６）。
図１２は、分割モードの外部ＲＡＭに出力されるデータを示す図である。
【００８１】
図１２において、転送長はＮ、検出数はＭ、ｍ１、ｍ２、・・・、ｍＭは、それぞれ１番目、２番目、・・・、Ｍ番目の変化位置、斜線部分は分割区間を示す。
＜分割モードの具体例＞
次に、分割モードであるときの出力制御部１８の動作を、実データ長が「１６」、検出数「２」、変化位置「６」および「１１」である場合を例にとって説明する。
【００８２】
図１３は、具体例の分割モードのデータバッファＲＡＭからの出力データの様子を示す図である。なお、図１３中の出力データの各ビットに付された値は、アドレス生成部１８２が生成する読み出しアドレスの値である。
【００８３】
パラメータ出力部１８１は、読み出した変化位置から転送長を計算する。前述したように、初回は変化位置−１とすることから、本具体例では初回の転送長＝６−１＝５となる。
【００８４】
パラメータ出力部１８１は、転送長とアドレスを転送パラメータとして、転送要求を外部ＲＡＭ２０に出力する。ここでは、書き込みアドレスは「０ｘ０」とする。
また、パラメータ出力部１８１は、転送長を読み出し制御部１８３に送る。
【００８５】
読み出し制御部１８３は、外部ＲＡＭ２０から出力要求を受信すると、転送（転送Ｎｏ．１）を開始する。すなわち、転送長の期間（＝５サイクル）、リード要求をデータバッファＲＡＭ１３およびアドレス生成部１８２に送る。
【００８６】
アドレス生成部１８２は、リード要求の出力により読み出しアドレス［０ｘ０］〜［０ｘ５］を生成する。
読み出し制御部１８３は、転送長（＝５）のリード要求が終了した後にリード要求をＬｏにして完了通知をパラメータ出力部１８１に送る。これにより、転送Ｎｏ．１が終了する。
【００８７】
ここで、パラメータ出力部１８１は、転送回数（＝２）が検出数＋１（＝３）より少ないと判断し、２回目の転送（転送Ｎｏ．２）を行う。転送Ｎｏ．２は、今回の変化位置が「１１」、前回の変化位置が「６」であることから、転送長は、１１−６＝５となる。
【００８８】
次に、書き込みアドレスを、前回の書き込みアドレスと、前回の転送長とから求める。本具体例では、外部ＲＡＭ２０のビット幅が、出力データビット幅と同じだとして、前回の書き込みアドレスに前回の転送長を足したものとなる。よって、書き込みアドレス＝０ｘ０＋０ｘ５＝０ｘ５となる。
【００８９】
これらの転送長と書き込みアドレスを転送パラメータとして、転送要求を出力する。以下、１回目と同様である。
読み出し制御部１８３は、転送長（＝５）のリード要求が終了した後にリード要求をＬｏにして完了通知をパラメータ出力部１８１に送る。これにより、転送Ｎｏ．２が終了する。
【００９０】
ここで、パラメータ出力部１８１は、転送回数（＝３）が検出数＋１（＝３）に等しいと判断し、３回目の転送（転送Ｎｏ．３）を行う。
３回目の転送は、最後の転送となるので、転送長＝１６−１１＋１＝６となる。また、書き込みアドレスは、０ｘ５＋０ｘ５＝０ｘＡとなる。以下、１、２回目と同様である。
【００９１】
以上述べたように、信号制御装置３０によれば、データ生成部１２から一旦データバッファＲＡＭ１３に格納する際に、データ判定部１６が、同時変化への処理の判定を予め行い、外部ＲＡＭ２０へのデータを出力する際に、出力制御部１８が、判定結果を用いて保持モードまたは分割モードによりデータバッファＲＡＭ１３にデータを出力させるようにしたので、例えばデータバッファＲＡＭ１３からデータを出力する際に判定を行う場合に比べて処理時間の短縮を図ることができる。
【００９２】
また、例えば外部からのノイズ等により、データ生成部１２から出力されるデータのばらつきが生じた場合においても正確なデータを確実に外部ＲＡＭ２０に送信することができる。
【００９３】
また、外部ＲＡＭ２０が全ビット一括での有効／無効制御信号にのみ対応しているＲＡＭの場合には、保持モード＃１を設定することにより対応することができる。
また、例えば、機能試験等で、データの正当性のみを必要とする場合は、保持モード＃２を用いることにより、制御を簡略化することで、処理時間の短縮を図ることができる。
【００９４】
また、例えば最初は保持モード＃１を使用し、信頼性が確保された後に保持モード＃２に切り替えるような制御を行うことにより、さらに処理時間の短縮を図ることができる。
なお、保持モード＃２は、外部ＲＡＭ２０がデータの有効／無効処理信号に対応していなくても使用することができる。この場合、保持長Ｌの期間だけ期待値（予定される値）を“Ｘ”（don't care）とする。
【００９５】
図１４は、第２の保持モードを説明する図である。
図１４の場合、保持長Ｌの期間だけ出力データを正常なデータとして外部ＲＡＭ２０に読み込ませないことにより、正確なデータを得ることができる。
【００９６】
また、信号制御回路１０と外部ＲＡＭ２０との間にメモリコントローラを接続して用いる場合等においては、保持モード＃２を用いるのが好ましい。この場合は、メモリコントローラが、外部ＲＡＭ２０への出力データ期待値に対して、保持長Ｌの期間および期待値を“Ｘ”（don't care）とする操作を行うようにする。
【００９７】
また、分割モードは、データの有効／無効処理に対応していない外部ＲＡＭ２０（外部回路）にも使用することができる。また、信号制御回路１０と外部ＲＡＭ２０との間にメモリコントローラを接続して用いる場合等においても、分割モードを使用することができる。最終的に外部ＲＡＭ２０へのデータ出力も分割されるためである。
【００９８】
さらに、ＣＰＵ１１がモード切り替え（保持モード＃１および保持モード＃２の切り替えや保持モード、分割モード間での切り替え）を行い、より遅延の少ないモードを選択するようにしてもよい。
【００９９】
以上、本発明の信号制御回路および信号制御装置を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
【０１００】
また、本発明は、前述した実施の形態のうちの、任意の２以上の構成（特徴）を組み合わせたものであってもよい。
【図面の簡単な説明】
【０１０１】
【図１】本発明の概要を示す図である。
【図２】実施の形態の信号制御装置を示す図である。
【図３】同時変化検出動作を示すフローチャートである。
【図４】データ判定部の機能を示すブロック図である。
【図５】保持モードの出力制御部の機能を示すブロック図である。
【図６】第１の保持モードの処理を示すフローチャートである。
【図７】保持モードにおいて外部ＲＡＭに出力されるデータを示す図である。
【図８】具体例の読み出しアドレスおよび出力されるデータの関係を示す図である。
【図９】分割モードの出力制御部の機能を示すブロック図である。
【図１０】分割モードの処理を示すフローチャートである。
【図１１】転送長の算出処理を示すフローチャートである。
【図１２】分割モードの外部ＲＡＭに出力されるデータを示す図である。
【図１３】具体例の分割モードの外部ＲＡＭに出力されるデータを示す図である。
【図１４】第２の保持モードを説明する図である。
【符号の説明】
【０１０２】
１  信号制御回路
２  データ生成部
３  データ格納部
４  データ保持部
５  データ判定部
６  出力制御部
７  外部回路
１０  信号制御回路
１１  ＣＰＵ
１２  データ生成部
１３  データバッファＲＡＭ
１４  設定レジスタ
１５  ＦＦ
１６  データ判定部
１７  ＲＡＭ
１８  出力制御部
２０  外部ＲＡＭ
３０  信号制御装置
１６１  比較部
１６２  判定部
１６３、１６４  カウンタ部
１６５  イネーブル付きフリップフロップ
１６６  アドレス生成部
１８１  パラメータ出力部
１８２  アドレス生成部
１８３  読み出し制御部
【図１】
2008165494.tif 000003
【図２】
2008165494.tif 000004
【図３】
2008165494.tif 000005
【図４】
2008165494.tif 000006
【図５】
2008165494.tif 000007
【図６】
2008165494.tif 000008
【図７】
2008165494.tif 000009
【図８】
2008165494.tif 000010
【図９】
2008165494.tif 000011
【図１０】
2008165494.tif 000012
【図１１】
2008165494.tif 000013
【図１２】
2008165494.tif 000014
【図１３】
2008165494.tif 000015
【図１４】
2008165494.tif 000016