(57)【要約】【課題】ポート機能の変更時における誤エッジ検出を防止する。【解決手段】本発明による半導体集積回路は、端子１１０の機能が変更可能なポート回路部１００と、端子１１０からの入力信号ＤＩＮのエッジを検出するエッジ検出回路部２００とを具備する。端子１１０の機能の変更時刻を基準とした所定の期間Ｔ、エッジ検出回路部２００におけるエッジ検出動作は無効となる。【選択図】図３
2012039472.tif 000002
【特許請求の範囲】
【請求項１】
端子の機能が変更可能なポート回路部と、
前記端子からの入力信号のエッジを検出するエッジ検出回路部と、
を具備し、
前記端子の機能の変更時刻を基準とした所定の期間、前記エッジ検出回路部におけるエッジ検出動作は無効となる
半導体集積回路。
【請求項２】
請求項１に記載の半導体集積回路において、
前記エッジ検出回路部は、エッジ検出回路と、前記エッジ検出回路のエッジ検出動作を制御するエッジ検出制御回路とを備え、
前記エッジ検出制御回路は、端子の機能を設定する機能有効フラグの変更に応じて検出制御信号の信号レベルを変更し、
前記エッジ検出回路は、
前記端子からの入力信号が入力されるシフトレジスタを形成するｎ段のフリップフロップと、
前記ｎは２以上の整数であり、
前記ｎ段のフリップフロップにおける１段目からｎ−１段目の出力信号と、最終段であるｎ段目のフリップフロップの反転出力信号との論理積をエッジ検出信号として出力するＡＮＤ回路と、
前記ｎ段のフリップフロップのいずれかのフリップフロップ間に設けられたセレクタと
を備え、
前記セレクタは、前記検出制御信号の信号レベルに応じて、前記セレクタの前段のフリップフロップの出力信号と反転出力信号の一方を選択して前記セレクタの後段のフリップフロップに出力する
半導体集積回路。
【請求項３】
請求項２に記載の半導体集積回路において、
前記エッジ検出制御回路は、前記機能有効フラグの変更に応じて検出制御信号の信号レベルを第１レベルから第２レベルに変更し、
前記セレクタは、前記検出制御信号の信号レベルが前記第２レベルのとき前記反転出力信号を前記２段目のフリップフロップに出力し、
前記検出制御信号が前記第２レベルである期間は、クロック信号のｎ周期以上に設定される
半導体集積回路。
【請求項４】
請求項２又は３に記載の半導体集積回路において、
前記エッジ検出制御回路は、前記機能有効フラグの変更直後における反転クロック信号のアクティブエッジに同期して前記検出制御信号の信号レベルを変更し、
前記複数のフリップフロップはクロック信号のアクティブエッジに同期してシフトレジスタとして動作する
半導体集積回路。
【請求項５】
請求項２から４のいずれか１項に記載の半導体集積回路において、
前記セレクタは、前記複数のフリップフロップにおける初段のフリップフロップと２段目のフリップフロップとの間に設けられ、前記検出制御信号の信号レベルに応じて、前記初段のフリップフロップの出力信号と反転出力信号の一方を選択して前記２段目のフリップフロップに出力する
半導体集積回路。
【請求項６】
端子の機能を変更するステップと、
前記端子の機能の変更時刻を基準とした所定の期間、エッジ検出回路部におけるエッジ検出動作を無効とするステップと、
前記所定の期間の経過後、前記端子からの入力信号のエッジを検出するステップと
を具備する
エッジ検出方法。
【請求項７】
請求項６に記載のエッジ検出方法において、
検出制御信号の信号レベルを変更するステップと、
前記端子の機能を設定する機能有効フラグの変更に応じて検出制御信号の信号レベルを変更するステップと、
シフトレジスタを形成するｎ段のフリップフロップのいずれかのフリップフロップ間に設けられたセレクタが、前記検出制御信号の信号レベルに応じて、前記セレクタの前段のフリップフロップの出力信号と反転出力信号の一方を選択して前記セレクタの後段のフリップフロップに出力するステップと、
前記ｎは２以上の整数であり、
前記ｎ段のフリップフロップにおける１段目からｎ−１段目の出力信号と、最終段であるｎ段目のフリップフロップの反転出力信号との論理積をエッジ検出信号として出力するステップと
を具備する
エッジ検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エッジ検出回路を備える半導体集積回路に関し、端子の機能変更後における入力信号のエッジの検出回路を備える半導体集積回路に関する。
【背景技術】
【０００２】
シングルチップマイクロコンピュータシステムでは、少ないポート数で多くの機能を実現することが求められる。このようなシステムでは、１つのポートに複数の機能を付与し、それぞれの機能を切替えることでポート数の削減を実現している。例えば、１つのポートが外部制御信号の入力端子と汎用ポートを兼用する場合、その機能はモードレジスタに設定された値に応じて切替えられる。
【０００３】
ポートの機能の切り替わりの前後において、ポートへの入力信号と、内部回路における信号レベルが異なる場合がある。エッジ検出回路は、ポートから入力される信号の変化をエッジとして検出するため、ポートの機能切替時に出現する信号レベルの変化をエッジとして誤検出することがある。
【０００４】
このようなポート機能の切替え時における誤検出を防止する技術が、例えば特開平７−８６８９０に記載されている（特許文献１参照）。図１は、特許文献１に記載のエッジ検出回路の構成を示す図である。
【０００５】
図１を参照して、特許文献１に記載のエッジ検出回路は、エッジ検出回路５００及び機能選択回路５００を具備する。機能選択回路５００からのポートの機能を切替える際、ポート機能表示信号Ｆを出力する。エッジ検出回路５００は、ポートからの入力信号ＤＩＮのエッジを検出するシフトレジスタ（フリップフロップ４１、４２）と、ポート機能表示信号Ｆの変化を検出し、フリップフロップ４１、４２のリセットを制御するフリップフロップ３７を備える。ポート機能表示信号Ｆがハイレベルの間、フリップフロップ４１、４２はリセットされるため、この間の入力信号ＤＩＮの変化はエッジとして検出されない。
【０００６】
しかし、図２に示すように、ポート機能の切り替え後において、本来、期待していないエッジ入力が発生し、これを誤検出してしまう場合がある。ポート機能の切り替え直後では、ノイズやチャタリングの発生確率が高まる。特許文献１に記載のエッジ検出回路では、ポート機能の切り替え時における信号レベルの変化をエッジとして誤検出することはないが、その後に発生する信号レベルの擾乱をエッジとして誤検出することがある。
【０００７】
一方、チャタリングによる誤動作を防止するエッジ検出回路が、例えば特開２００２−６４３７０に記載されている（特許文献２参照）。特許文献３では、入力信号のハイレベル期間が所定の時間を超えた後に、エッジ検出をアクティブにすることで、チャタリングと制御信号とを区別し、誤動作を防止している。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開平７−８６８９０
【特許文献２】特開２００２−６４３７０
【発明の概要】
【発明が解決しようとする課題】
【０００９】
特許文献２に記載のエッジ検出回路では、端子のハイレベル期間によってチャタリングか否かを判定している。しかし、ポート間の転送速度の増加に伴い、チャタリングと複数回の入力信号のハイレベル期間の差は小さくなってきている。特に、入力信号のハイレベル期間より長いハイレベル期間のノイズやチャタリングが発生した場合、特許文献２に記載の方法では、入力信号をチャタリングとして判定してしまう。
【００１０】
このため、マイクロコンピュータへの転送速度を更に高めるためには、ポート機能の変更時に発生するチャタリングによるエッジの誤検出を防止しつつ、入力信号のエッジを確実に検出する技術が求められている。
【課題を解決するための手段】
【００１１】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、［特許請求の範囲］の記載と［発明を実施するための形態］の記載との対応関係を明らかにするために、［発明を実施するための形態］で使用される番号・符号が付加されている。ただし、付加された番号・符号は、［特許請求の範囲］に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【００１２】
本発明による半導体集積回路は、端子（１１０）の機能が変更可能なポート回路部（１００）と、端子（１１０）からの入力信号（ＤＩＮ）のエッジを検出するエッジ検出回路部（２００）とを具備する。端子（１１０）の機能の変更時刻を基準とした所定の期間（Ｔ）、エッジ検出回路部（２００）におけるエッジ検出動作は無効となる。
【００１３】
本発明によるエッジ検出方法は、端子（１１０）の機能を変更するステップと、端子（１１０）の機能の変更時刻を基準とした所定の期間（Ｔ）、エッジ検出回路部におけるエッジ検出動作を無効とするステップと、所定の期間（Ｔ）の経過後、前記端子（１１０）からの入力信号（ＤＩＮ）のエッジを検出するステップとを具備する。
【発明の効果】
【００１４】
本発明によれば、ポート機能の変更時における誤エッジ検出を防止できる。
【００１５】
又、ポート機能の変更時に発生するチャタリングによる誤エッジ検出を防止するとともに、入力信号のエッジを確実に検出することができる。
【００１６】
更に、マイクロコンピュータへの転送速度を向上させることができる。
【図面の簡単な説明】
【００１７】
【図１】図１は、従来技術によるエッジ検出回路の構成の一例を示す図である。
【図２】図２は、従来技術によるエッジ検出動作の一例を示すタイミングチャートである。
【図３】図３は、本発明による半導体集積回路の構成を示す図である。
【図４】図４は、本発明によるエッジ検出回路の構成の一例を示す図である。
【図５】図５は、本発明によるエッジ検出動作の一例を示すタイミングチャートである。
【図６】図６は、本発明によるエッジ検出回路の構成の他の一例を示す図である。
【図７】図７は、本発明によるエッジ検出動作の他の一例を示すタイミングチャートである。
【発明を実施するための形態】
【００１８】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【００１９】
（半導体集積回路の全体構成）
本発明による半導体集積回路は、複数の機能を実現するポート（端子）を有するシングルチップマイクロコンピュータに例示される。端子の機能は、後述する機能有効フラグによって設定され、このフラグを変更することで、端子の機能が切り替わる。
【００２０】
図３を参照して、本発明による半導体集積回路の全体構成を説明する。本発明による半導体集積回路は、ポート回路部１００、エッジ検出回路部２００、及び複数の周辺マクロ部３００−１、３００−２を具備する。周辺マクロ部３００−１、３００−２は共通の端子１１０を介して外部装置とデータの転送を行う。ポート回路部１００は、端子１１０から入力される入力信号ＤＩＮの出力先を、端子１１０に設定された機能に応じて変更する。図３に示す一例では、入力信号ＤＩＮの出力先が周辺マクロ部３００−１の場合、入力信号ＤＩＮは、エッジ検出回路部２００を介して周辺マクロ部３００−１に出力される。一方、入力信号ＤＩＮの出力先が周辺マクロ部３００−２の場合、入力信号ＤＩＮは、直接周辺マクロ部３００−２に出力される。
【００２１】
ポート回路部１００は、セレクタ１０１、１０２及び機能有効フラグレジスタ１０３（機能モードレジスタ）を備える。機能有効フラグレジスタ１０３には、端子１１０の機能に応じたフラグ（以下、機能有効フラグと称す）が設定される。エッジ検出回路部２００及びセレクタ１０１、１０２には、機能有効フラグに応じた信号レベルの制御信号１２０（ＰＭＣ）が入力される。セレクタ１０１は、端子１１０からの入力信号と、インアクティブレベル信号１１１の一方を選択してエッジ検出回路部２００に出力する。セレクタ１０２は、端子１１０からの入力信号と、インアクティブレベル信号１１２の一方を選択して周辺マクロ部３００−２に出力する。
【００２２】
例えば、セレクタ１０１は、所定のレベル（例えばハイレベル）の制御信号１２０（ＰＭＣ）に応じて端子１１０からの入力信号ＤＩＮを選択し、エッジ検出回路部２００に出力する。このとき、セレクタ１０２は、制御信号１２０（ＰＭＣ）に応じてインアクティブレベル信号１１２を周辺マクロ部３００−２に出力し、周辺マクロ部３００−２をインアクティブとする。あるいは、セレクタ１０１は、所定のレベルの反転レベル（例えばローレベル）の制御信号１２０（ＰＭＣ）に応じてインアクティブレベル信号１１１を選択し、エッジ検出回路部２００に出力する。このとき、セレクタ１０２は、制御信号１２０（ＰＭＣ）に応じて端子１１０からの入力信号ＤＩＮを周辺マクロ部３００−２に出力する。
【００２３】
エッジ検出回路部２００は、エッジ検出制御回路２０とエッジ検出回路２１を備える。エッジ検出回路２１は、検出制御信号１３０からの入力信号に対するエッジ検出処理を行い、検出結果を端子２１０を介して周辺マクロ部３００−１に出力する。エッジ検出制御回路２０は、制御信号１２０（ＰＭＣ）に応じた信号レベルの検出制御信号１３０をエッジ検出回路２１に出力し、エッジ検出回路２１におけるエッジ検出動作を制御する。詳細には、エッジ検出制御回路２０は、制御信号１２０（ＰＭＣ）の信号レベルの変化（エッジ）をトリガとして、所定の期間、検出制御信号１３０の信号レベルを所定のレベル（例えばハイレベル）に遷移する。この際、エッジ検出制御回路２０は、クロック信号ＭａｃｒｏＣＬＫの反転信号に応じて検出制御信号１３０の信号レベルを遷移する。検出制御信号１３０が所定のレベルである間、エッジ検出回路２１における入力信号ＤＩＮのエッジ検出動作は無効（ディセーブル）となる。又、その他の期間、エッジ検出回路２１における入力信号ＤＩＮのエッジ検出動作は有効（イネーブル）となる。
【００２４】
尚、半導体集積回路に搭載される周辺マクロ部３００の数は２つに限らず、更に多くの周辺マクロ部が搭載されてもよい。
【００２５】
（エッジ検出回路２１の一例）
図４は、本発明によるエッジ検出回路２１の構成の一例を示す図である。図４を参照して、エッジ検出回路２１の構成の詳細を説明する。図４に示すエッジ検出回路２１は、２段のＤ−フリップフロップ１（ＦＦ１）と、Ｄ−フリップフロップ２（ＦＦ２）をカスケード接続したシフトレジスタを利用してエッジ検出を行う。
【００２６】
エッジ検出回路２１は、ＦＦ１、ＦＦ２、セレクタ１１及びＡＮＤ回路１２を備える。ＦＦ１とＦＦ２は、セレクタ１１を介してカスケード接続される。ＦＦ１は、ポート回路部１００からの入力信号ＤＩＮを入力Ｄとし、出力信号２０１（出力Ｑ）及び出力信号２１１（反転出力ＱＺ）をセレクタ１１に出力する。この際、ＦＦ１は、クロック信号ＭａｃｒｏＣＬＫのアクティブエッジに同期したタイミングで出力信号２０１（出力Ｑ）及び出力信号２１１（反転出力ＱＺ）の信号レベルを入力信号ＤＩＮに応じた信号レベルに更新する。出力信号２０１は、ＡＮＤ回路１２にも出力される。
【００２７】
セレクタ１１は、ＦＦ１からの出力信号２０１（出力Ｑ）と出力信号２１１（反転出力ＱＺ）の一方を、検出制御信号１３０に応じて選択し、ＦＦ２に出力する。セレクタ１１は、検出制御信号１３０の信号レベルに応じた出力信号を選択し、ＦＦ２に出力する。例えば、セレクタ１１は、ハイレベルの検出制御信号１３０に応じて出力信号２１１（反転出力ＱＺ）を選択し、ローレベルの検出制御信号１３０に応じて出力信号２０１（出力Ｑ）を選択する。
【００２８】
ＦＦ２は、セレクタ１１からの出力信号２２０を入力Ｄとし、出力信号２１２（反転出力ＱＺ）をＡＮＤ回路１２に出力する。この際、ＦＦ２は、クロック信号ＭａｃｒｏＣＬＫのアクティブエッジに同期したタイミングで出力信号２１２（反転出力ＱＺ）の信号レベルを出力信号２２０に応じた信号レベルに更新する。
【００２９】
ＡＮＤ回路１２は、ＦＦ１（初段）からの出力信号Ｆ２０１（出力Ｑ）とＦＦ２（最終段）からの出力信号２１２（反転出力ＱＺ）との論理積をエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔとして端子２１０（周辺マクロ部３００−１）に出力する。
【００３０】
セレクタ１１は、検出制御信号１３０が所定のレベルの反転レベル（例えばローレベル）の間、出力信号２０１（出力Ｑ）を選択してＦＦ２に出力する。これにより、ＦＦ１におけるエッジの検出結果が、次段のフリップフロップ（ここではＦＦ２）に伝播する。すなわち、検出制御信号１３０に応じた所定の期間、エッジ検出動作はイネーブルとなる。
【００３１】
又、セレクタ１１は、検出制御信号１３０が所定のレベル（例えばハイレベル）の間、出力信号２１１（反転出力ＱＺ）を選択してＦＦ２に出力する。すなわち、初段ＦＦ１におけるエッジの検出結果は反転されて次段（最終段）のＦＦ２に伝播される。この結果、検出制御信号１３０に応じた所定の期間、ＦＦ１におけるエッジの検出結果は初期化（リセット）され、エッジ検出動作はディセーブルとなる。
【００３２】
（エッジ検出動作の一例）
次に、図５を参照して、本発明によるエッジ検出動作の一例を説明する。図５は、図４に示すエッジ検出回路２１のエッジ検出動作を示すタイミングチャートである。ここでは、時刻ｔ１において端子１１０の機能変更（１次機能から２次機能に変更）が行われるものとして説明する。
【００３３】
時刻ｔ１において、機能有効フラグが変更され、制御信号１２０（ＰＭＣ）がハイレベルに遷移する。エッジ検出制御回路２０は、制御信号１２０の立ち上がりの直後におけるクロック信号ＭａｃｒｏＣＬＫの立下りエッジ（反転クロック信号のアクティブエッジ）に応じて、検出制御信号１３０（ＭＯＤＥ＿ｅｄｇｅ）をハイレベルに遷移する（時刻ｔ２）。
【００３４】
検出制御信号１３０のハイレベル期間は、エッジ検出回路２１設けられるシフトレジスタの段数に応じて設定される。詳細には、シフトレジスタがｎ段のフリップフロップで構成される場合、クロック信号ＭａｃｒｏＣＬＫのｎ周期以上の期間が、検出制御信号１３０のハイレベル期間となるように設定されることが好ましい。ただし、ｎは２以上の整数である。
【００３５】
検出制御信号１３０のハイレベル期間がクロック信号ＭａｃｒｏＣＬＫのｎ周期である場合、ｎ＋０．５周期の期間が、エッジ検出回路２１がディセーブルとなる期間Ｔとなる。この間、セレクタ１１はＦＦ１の反転出力ＱＺである出力信号２１１を選択し、出力信号２２０としてＦＦ２に出力する。これにより、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ディセーブル期間Ｔにおいて常にローレベルを維持する。図５に示す一例では、検出制御信号１３０のハイレベル期間が１周期に設定されることで、ディセーブル期間Ｔは１．５周期となる。すなわち、端子１１０の機能が変更された直後の立下りクロック（時刻ｔ２）から時刻ｔ４までの１．５周期分の期間Ｔの間は、入力信号ＤＩＮの信号レベル（端子１１０の端子レベル）が変化しても、エッジ検出回路２１は、当該変化をエッジとして検出することはない。
【００３６】
図５に示す一例では、ディセーブル期間Ｔ中に、入力信号ＤＩＮの信号レベルが変動する場合の動作が示される。ここで、入力信号ＤＩＮは、時刻Ｔ２（ｔｄ１）においてローレベルに遷移した後、時刻ｔ３と時刻ｔ４との間における時刻ｔｄ２においてハイレベルに遷移する。クロック信号ＭａｃｒｏＣＬＫの立上がりエッジとなる時刻ｔ３において、ＦＦ１は、ローレベルの入力信号ＤＩＮに応じて、出力信号２０１をローレベルに遷移するとともに出力信号２１１をハイレベルに遷移する。又、次のクロック信号ＭａｃｒｏＣＬＫの立上がりエッジとなる時刻ｔ４において、ＦＦ１は、ハイレベルの入力信号ＤＩＮに応じて、出力信号２０１をハイレベルに遷移するとともに出力信号２１１をローレベルに遷移する。
【００３７】
時刻ｔ２〜ｔ４の間、セレクタ１１は、ハイレベルの検出制御信号１３０に応じて出力信号２１１（反転出力ＱＺ）を選択し、出力信号２２０として出力する。詳細には、ディセーブル期間Ｔ中の時刻ｔ３において、セレクタ１１は、ローレベルに遷移した出力信号２０１ではなく、その反転出力ＱＺである出力信号２１１を選択する。これにより、ＦＦ２にはハイレベルの出力信号２２０が伝播し、時刻ｔ４におけるＦＦ２の出力信号２１２（反転出力ＱＺ）はローレベルを維持し、ＡＮＤ回路１２からのエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ローレベルを維持することとなる。
【００３８】
従来技術では、時刻ｔｄ２において入力信号ＤＩＮがハイレベルに遷移すると、時刻ｔ３においてＦＦ１が検出し、検出結果が次の時刻ｔ４においてＦＦ２及びＡＮＤ回路１２に伝播して、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔの信号レベルは遷移する。しかし、本発明では、ディセーブル期間Ｔ中にＦＦ１によって検出された結果は、セレクタによって反転されてＦＦ２に伝播される。このため、この期間Ｔ中に発生した入力信号ＤＩＮのレベル変動は、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔに反映されない。すなわち、エッジ検出回路部２００において機能変更が検出されてから所定の期間（ディセーブル期間Ｔ）、エッジ検出回路部２００においてエッジ検出は行われない。これにより、端子１１０の機能変更直後に発生する入力信号ＤＩＮの信号レベルの変動がエッジとして検出されることを防止することが可能となる。
【００３９】
時刻ｔ４以降は、検出制御信号１３０がローレベルとなるため、セレクタ１１は、出力信号２０１を出力信号２２０としてＦＦ２に出力する。このため、時刻ｔ４以降、ＦＦ２の出力信号２１２（反転出力ＱＺ）は、ＦＦ１の出力信号２０１（出力Ｑ）に従った信号レベルとなり、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔの信号レベルは、入力信号ＤＩＮの信号レベルの遷移に応じて変化する。
【００４０】
図５に示す一例では、時刻ｔ４以降、入力信号ＤＩＮは、時刻ｔｄ３においてローレベルに遷移した後、時刻ｔｄ４においてハイレベルに遷移する。この場合、時刻ｔｄ３の直後におけるクロック信号ｍａｃｒｏＣＬＫの立上がりエッジに同期して、ＦＦ１の出力信号２０１はローレベル、出力信号２１１はハイレベルに遷移し、その次のクロック信号ｍａｃｒｏＣＬＫの立上がりエッジに同期してＦＦ２の出力信号２１２はハイレベルに遷移する。続いて、時刻ｔｄ４において入力信号ＤＩＮが立ち上がると、その直後におけるクロック信号ｍａｃｒｏＣＬＫの立上がりエッジに同期して、ＦＦ１の出力信号２０１はハイレベル、出力信号２１１はローレベルに遷移し、その次のクロック信号ｍａｃｒｏＣＬＫの立上がりエッジに同期してＦＦ２の出力信号２１２はローレベルに遷移する。この結果、ＡＮＤ回路１２から出力されるエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ＦＦ１の出力信号２０１（出力Ｑ）とＦＦ２の出力信号２１２（反転出力ＱＺ）がともにハイレベルとなる時刻ｔ５においてハイレベルに遷移する。これにより、周辺マクロ部３００−１は、時刻ｔｄ４における入力信号ＤＩＮの立上がりエッジを検出することができる。
【００４１】
以上のように、本発明による半導体集積回路では、機能有効フラグの設定から所定の期間Ｔ、セレクタ１１によって多段フリップフロップにおける後段への入力を反転させている。これにより、この期間Ｔにおいて入力信号ＤＩＮの信号レベルが変動してもＡＮＤ回路１２の出力（エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔ）はローレベルを維持し、誤エッジ検出を防止することが可能となる。
【００４２】
（エッジ検出回路２１の他の一例）
図４に示す一例では、２段のフリップフロップを利用したエッジ検出回路２１について説明したが、段数はこれに限らず３つ以上搭載されていても良い。図６は、本発明によるエッジ検出回路２１の構成の他の一例を示す図である。図６に示すエッジ検出回路２１は、５段のＤ−フリップフロップ１（ＦＦ１）〜Ｄ−フリップフロップ５（ＦＦ５）をカスケード接続したシフトレジスタを利用してエッジ検出を行う。
【００４３】
エッジ検出回路２１は、ＦＦ１、ＦＦ２、ＦＦ３、ＦＦ４、ＦＦ５、セレクタ１１及びＡＮＤ回路１２を備える。その他の構成は図４に示す一例と同様である。ＦＦ１とＦＦ２は、セレクタ１１を介してカスケード接続され、ＦＦ２〜ＦＦ５はカスケード接続される。ＦＦ１は、ポート回路部１００からの入力信号ＤＩＮを入力Ｄとし、出力信号２０１（出力Ｑ）及び出力信号２１１（反転出力ＱＺ）をセレクタ１１に出力する。この際、ＦＦ１は、クロック信号ＭａｃｒｏＣＬＫのアクティブエッジに同期したタイミングで出力信号２０１（出力Ｑ）及び出力信号２１１（反転出力ＱＺ）の信号レベルを入力信号ＤＩＮに応じた信号レベルに更新する。
【００４４】
セレクタ１１は、ＦＦ１からの出力信号２０１（出力Ｑ）と出力信号２１１（反転出力ＱＺ）の一方を、検出制御信号１３０に応じて選択し、ＦＦ２に出力する。セレクタ１１は、検出制御信号１３０の信号レベルに応じた出力信号を選択し、ＦＦ２に出力する。例えば、セレクタ１１は、ハイレベルの検出制御信号１３０に応じて出力信号２１１（反転出力ＱＺ）を選択し、ローレベルの検出制御信号１３０に応じて出力信号２０１（出力Ｑ）を選択する。
【００４５】
ＦＦ２は、セレクタ１１からの出力信号２２０を入力Ｄとし、出力信号２１２（反転出力ＱＺ）を次段のＦＦ３に出力する。ＦＦ３、ＦＦ４は、それぞれの前段の出力信号２０２、２０３（出力Ｑ）を入力Ｄとし、それぞれ出力信号２０３、２０４（出力Ｑ）を次段に出力する。この際、ＦＦ２、ＦＦ３、ＦＦ４は、クロック信号ＭａｃｒｏＣＬＫ同期したタイミングで出力信号２０２、２０３、２０４（出力Ｑ）の信号レベルをそれぞれの入力Ｄに応じた信号レベルに更新する。
【００４６】
最終段のＦＦ５は、前段のＦＦ４からの出力信号２０４を入力Ｄとし、出力信号２１５（反転出力ＱＺ）をＡＮＤ回路１２に出力する。ＦＦ５は、クロック信号ＭａｃｒｏＣＬＫのアクティブエッジに同期したタイミングで出力信号２１５（反転出力ＱＺ）の信号レベルを入力Ｄ（出力信号２０４）に応じた信号レベルに更新する。
【００４７】
又、最終段のＦＦ５を除くＦＦ１〜ＦＦ４の出力信号２０１〜２０４（出力Ｑ）はＡＮＤ回路１２に入力される。
【００４８】
ＡＮＤ回路１２は、出力信号２０１〜２０４（出力Ｑ）と、ＦＦ５（最終段）からの出力信号２１５（反転出力ＱＺ）との論理積をエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔとして端子２１０（周辺マクロ部３００−１）に出力する。
【００４９】
セレクタ１１は、検出制御信号１３０が所定のレベルの反転レベル（例えばローレベル）の間、出力信号２０１（出力Ｑ）を選択してＦＦ２に出力する。これにより、ＦＦ１におけるエッジの検出結果が、次段のフリップフロップ（ここではＦＦ２）に伝播する。すなわち、検出制御信号１３０に応じた所定の期間、エッジ検出動作はイネーブルとなる。
【００５０】
又、セレクタ１１は、検出制御信号１３０が所定のレベル（例えばハイレベル）の間、出力信号２１１（反転出力ＱＺ）を選択してＦＦ２に出力する。すなわち、初段ＦＦ１におけるエッジの検出結果は反転されて次段（最終段）のＦＦ５に伝播される。この結果、検出制御信号１３０に応じた所定の期間、ＦＦ１におけるエッジの検出結果は初期化（リセット）され、エッジ検出動作はディセーブルとなる。
【００５１】
（エッジ検出動作の他の一例）
次に、図７を参照して、本発明によるエッジ検出動作の一例を説明する。図７は、図６に示すエッジ検出回路２１のエッジ検出動作を示すタイミングチャートである。ここでは、時刻ｔ１において端子１１０の機能変更（１次機能から２次機能に変更）が行われるものとして説明する。
【００５２】
時刻ｔ１において、機能有効フラグが変更され、制御信号１２０（ＰＭＣ）がハイレベルに遷移する。エッジ検出制御回路２０は、制御信号１２０の立ち上がりの直後におけるクロック信号ＭａｃｒｏＣＬＫの立下りエッジ（反転クロック信号のアクティブエッジ）に応じて、検出制御信号１３０（ＭＯＤＥ＿ｅｄｇｅ）をハイレベルに遷移する（時刻ｔ２）。
【００５３】
検出制御信号１３０のハイレベル期間は、エッジ検出回路２１設けられるシフトレジスタの段数に応じて設定される。図６に示す構成では、シフトレジスタが５段のフリップフロップで構成されているため、クロック信号ＭａｃｒｏＣＬＫの５周期の期間が、検出制御信号１３０のハイレベル期間となるように設定される。これにより、５．５周期分の期間が、エッジ検出回路２１がディセーブルとなる期間Ｔとなる。この間、セレクタ１１はＦＦ１の反転出力ＱＺである出力信号２１１を選択し、出力信号２２０としてＦＦ２に出力する。この結果、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ディセーブル期間Ｔにおいて常にローレベルを維持する。すなわち、端子１１０の機能が変更された直後の立下りクロック（時刻ｔ２）から５．５周期分の期間Ｔの間は、入力信号ＤＩＮの信号レベル（端子１１０の端子レベル）が変化しても、エッジ検出回路２１は、当該変化をエッジとして検出することはない。
【００５４】
図７に示す一例では、機能変更が行われた時刻ｔ１から機能変更を検出した時刻ｔ２までの間、及び、ディセーブル期間Ｔ中に、入力信号ＤＩＮの信号レベルが変動する場合の動作が示される。ここで、入力信号ＤＩＮは、時刻ｔ２以前にローレベルに遷移した後、ディセーブル期間Ｔ中に２回ハイレベルに遷移し、ディセーブル期間Ｔの終了後、ローレベルからハイレベルに遷移する。詳細には、入力信号ＤＩＮは、時刻ｔ１と時刻ｔ２の間の時刻ｔｄ１においてローレベルに遷移した後、ディセーブル期間Ｔ中の時刻ｔ３と時刻ｔ４の間の時刻ｔｄ２においてハイレベルに遷移する。又、入力信号ＤＩＮは、ディセーブル期間Ｔ中の時刻ｔ４と時刻ｔ５の間の時刻ｔｄ３においてローレベルに遷移した後、ディセーブル期間Ｔ中の時刻ｔ６と時刻ｔ７の間の時刻ｔｄ４においてハイレベルに遷移する。更に、入力信号ＤＩＮは、ディセーブル期間Ｔ中の時刻ｔ７と時刻ｔ８の間の時刻ｔｄ５においてローレベルに遷移した後、ディセーブル期間Ｔが終了する時刻ｔ９移行の時刻ｔｄ６においてハイレベルに遷移する。
【００５５】
クロック信号ＭａｃｒｏＣＬＫの立上がりエッジとなる時刻ｔ３において、ＦＦ１は、ローレベルの入力信号ＤＩＮに応じて、出力信号２０１をローレベルに遷移するとともに出力信号２１１をハイレベルに遷移する。又、次のクロック信号ＭａｃｒｏＣＬＫの立上がりエッジとなる時刻ｔ４において、ＦＦ１は、ハイレベルの入力信号ＤＩＮに応じて、出力信号２０１をハイレベルに遷移するとともに出力信号２１１をローレベルに遷移する。更に、次のクロック信号ＭａｃｒｏＣＬＫの立上がりエッジとなる時刻ｔ５、ｔ６において、ＦＦ１は、ローレベルの入力信号ＤＩＮに応じて、出力信号２０１をローレベルとし、出力信号２１１をハイレベルとする。同様に、ＦＦ１は、時刻ｔ７から時刻ｔ８の間、出力信号２０１をハイレベルとし、出力信号２１１をローレベルとする。
【００５６】
時刻ｔ２〜ｔ９の間、セレクタ１１は、ハイレベルの検出制御信号１３０に応じて出力信号２１１（反転出力ＱＺ）を選択し、出力信号２２０として出力する。詳細には、ディセーブル期間Ｔ中の時刻ｔ３において、セレクタ１１は、ローレベルに遷移した出力信号２０１ではなく、その反転出力ＱＺである出力信号２１１を選択する。これにより、ＦＦ２からＦＦ５にはハイレベルの出力信号２２０が伝播し、時刻ｔ７におけるＦＦ５の出力信号２１５（反転出力ＱＺ）はローレベルを維持し、ＡＮＤ回路１２からのエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ローレベルを維持することとなる。
【００５７】
又、時刻ｔ４では、セレクタ１１は、ハイレベルに遷移した出力信号２０１ではなく、その反転出力ＱＺである出力信号２１１を選択する。これにより、ＦＦ２からＦＦ５にはローレベルの出力信号２２０が伝播し、時刻ｔ８におけるＦＦ５の出力信号２１５（反転出力ＱＺ）はハイレベルに遷移する。しかし、ディセーブル期間Ｔでは、ＦＦ２〜ＦＦ４の出力Ｑを介してＦＦ５に対し、ＦＦ１の出力信号２２０（反転出力ＱＺ）が伝播しているため、ＦＦ５の出力信号２１５がハイレベルである場合、出力信号２０１〜２０４のいずれかは必ずローレベルとなる。このため、時刻ｔ８において、ＦＦ５の出力信号２１５（反転出力ＱＺ）がハイレベルに遷移しても、ＡＮＤ回路１２からのエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔはローレベルを維持することとなる。本一例では、時刻ｔ８において出力信号２０１がローレベルのためエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔはローレベルとなる。
【００５８】
同様に、ディセーブル期間Ｔ中の時刻ｔ５、ｔ６において、セレクタ１１は、ローレベルに遷移した出力信号２０１ではなく、その反転出力ＱＺである出力信号２１１を選択する。これにより、ＦＦ２からＦＦ５にはハイレベルの出力信号２２０が伝播し、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔはローレベルを維持する。又、時刻ｔ７において、セレクタ１１は、ハイレベルに遷移した出力信号２０１ではなく、その反転出力ＱＺである出力信号２１１を選択する。これにより、ＦＦ２からＦＦ５にはローレベルの出力信号２２０が伝播し、時刻ｔ９におけるＦＦ５の出力信号２１５（反転出力ＱＺ）はハイレベルに遷移する。しかし、ディセーブル期間Ｔでは、ＦＦ２〜ＦＦ４の出力Ｑを介してＦＦ５に対し、ＦＦ１の出力信号２２０（反転出力ＱＺ）が伝播しているため、ＦＦ５の出力信号２１５がハイレベルである場合、出力信号２０１〜２０４のいずれかは必ずローレベルとなる。このため、時刻ｔ９において、ＦＦ５の出力信号２１５（反転出力ＱＺ）がハイレベルに遷移しても、ＡＮＤ回路１２からのエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔはローレベルを維持することとなる。本一例では、時刻ｔ９において出力信号２０１がローレベルのためエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔはローレベルとなる。
【００５９】
図６に示すエッジ検出回路２１のようにシフトレジスタの段数を増加させても、ディセーブル期間Ｔ中にＦＦ１によって検出された結果は、セレクタによって反転されて次段のＦＦ２からＦＦ４の出力Ｑを介して最終段ＦＦ５に伝播され、ＡＮＤ回路１２の入力信号のいずれかは必ずローレベルとなる。このため、この期間Ｔ中に発生した入力信号ＤＩＮのレベル変動は、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔに反映されない。すなわち、エッジ検出回路部２００において機能変更が検出されてから所定の期間（ディセーブル期間Ｔ）、エッジ検出回路部２００においてエッジ検出は行われない。これにより、端子１１０の機能変更直後に発生する入力信号ＤＩＮの信号レベルの変動がエッジとして検出されることを防止することが可能となる。
【００６０】
時刻ｔ９以降は、検出制御信号１３０がローレベルとなるため、セレクタ１１は出力信号２０１を出力信号２２０として、ＦＦ２からＦＦ４を介してＦＦ５に出力する。これにより、時刻ｔ９以降、ＦＦ５の出力信号２１５（反転出力ＱＺ）は、ＦＦ１の出力信号２０１（出力Ｑ）に従った信号レベルとなり、エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔの信号レベルは、入力信号ＤＩＮの信号レベルの遷移に応じて変化する。
【００６１】
図７に示す一例では、時刻ｔ９以降、入力信号ＤＩＮは、時刻ｔｄ６においてハイレベルに遷移する。この場合、時刻ｔｄ６の直後におけるクロック信号ｍａｃｒｏＣＬＫの立上がりエッジに同期して、ＦＦ１の出力信号２０１はハイレベルに遷移し、その次のクロック信号ｍａｃｒｏＣＬＫの立上がりエッジ以降、ＦＦ２からＦＦ５にハイレベルの出力信号が伝播する。この結果、ＡＮＤ回路１２から出力されるエッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔは、ＦＦ１からＦＦ４の出力信号２０１〜２０４（出力Ｑ）とＦＦ５の出力信号２１５（反転出力ＱＺ）がともにハイレベルとなる時刻ｔ１０においてハイレベルに遷移する。これにより、周辺マクロ部３００−１は、時刻ｔｄ６における入力信号ＤＩＮの立上がりエッジを検出することができる。
【００６２】
以上のように、本発明による半導体集積回路では、機能有効フラグの設定から所定の期間Ｔ、セレクタ１１によって多段フリップフロップにおける後段への入力を反転させている。これにより、この期間Ｔにおいて入力信号ＤＩＮの信号レベルが変動してもＡＮＤ回路１２の出力（エッジ検出信号Ｅｄｇｅ＿ｄｅｔｅｃｔ）はローレベルを維持し、誤エッジ検出を防止することが可能となる。
【００６３】
本発明によれば、ポート機能の変更時における誤エッジ検出を防止できる。
【００６４】
又、ポート機能の変更時に発生するチャタリングによる誤エッジ検出を防止するとともに、入力信号のエッジを確実に検出することができる。
更に、マイクロコンピュータへの転送速度を向上させることができる。
【００６５】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述のようにエッジ検出回路２１に搭載するシフトレジスタの段数を増やすことでエッジ検出をしない期間Ｔを長くすることができる。又、上述の実施の形態では、エッジ検出回路２１に搭載されるシフトレジスタは、クロック信号の立上がりをアクティブエッジとして動作したが、これに限らず立ち下がりエッジをアクティブエッジと動作しても良い。ただし、この場合、エッジ検出制御回路２０は、クロック信号ＭａｃｒｏＣＬＫの立上がりエッジに同期して動作することが好ましい。更に、セレクタ１１は、検出制御信号１３０がハイレベルのときにＦＦ１の出力信号２１１（反転出力ＱＺ）を選択したが、これに限らない。例えば、エッジ検出制御回路２０が、機能有効フラグの変更に応じてハイレベルの検出制御信号１３０をローレベルに変更するように構成した場合、セレクタ１１は、ローレベルの検出制御信号１３０に応じて出力信号２１１を選択出力する。更に、上述の実施の形態において、セレクタ１１は、初段のＦＦ１と２段目のＦＦ２との間に設けられているが、シフトレジスタを構成するフリップフロップのいずれかの間に設けられればその場所は限定されない。
【符号の説明】
【００６６】
１１：セレクタ
１２：ＡＮＤ回路
２０：エッジ検出制御回路
２１：エッジ検出回路
１００：ポート回路部
１０１：セレクタ
１０２：セレクタ
１０３：機能有効フラグレジスタ
１１０、２１０：端子
１１１、１１２：インアクティブレベル信号
１２０：制御信号
１３０：検出制御信号
２００：エッジ検出回路部
２０１〜２０４、２１１、２１２、２１５、２２０：出力信号
３００、３００−１、３００−２：周辺マクロ部
【図１】
2012039472.tif 000003
【図２】
2012039472.tif 000004
【図３】
2012039472.tif 000005
【図４】
2012039472.tif 000006
【図５】
2012039472.tif 000007
【図６】
2012039472.tif 000008
【図７】
2012039472.tif 000009