説明

半導体集積回路及びエッジ検出方法

【課題】ポート機能の変更時における誤エッジ検出を防止する。
【解決手段】本発明による半導体集積回路は、端子110の機能が変更可能なポート回路部100と、端子110からの入力信号DINのエッジを検出するエッジ検出回路部200とを具備する。端子110の機能の変更時刻を基準とした所定の期間T、エッジ検出回路部200におけるエッジ検出動作は無効となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エッジ検出回路を備える半導体集積回路に関し、端子の機能変更後における入力信号のエッジの検出回路を備える半導体集積回路に関する。
【背景技術】
【0002】
シングルチップマイクロコンピュータシステムでは、少ないポート数で多くの機能を実現することが求められる。このようなシステムでは、1つのポートに複数の機能を付与し、それぞれの機能を切替えることでポート数の削減を実現している。例えば、1つのポートが外部制御信号の入力端子と汎用ポートを兼用する場合、その機能はモードレジスタに設定された値に応じて切替えられる。
【0003】
ポートの機能の切り替わりの前後において、ポートへの入力信号と、内部回路における信号レベルが異なる場合がある。エッジ検出回路は、ポートから入力される信号の変化をエッジとして検出するため、ポートの機能切替時に出現する信号レベルの変化をエッジとして誤検出することがある。
【0004】
このようなポート機能の切替え時における誤検出を防止する技術が、例えば特開平7−86890に記載されている(特許文献1参照)。図1は、特許文献1に記載のエッジ検出回路の構成を示す図である。
【0005】
図1を参照して、特許文献1に記載のエッジ検出回路は、エッジ検出回路500及び機能選択回路500を具備する。機能選択回路500からのポートの機能を切替える際、ポート機能表示信号Fを出力する。エッジ検出回路500は、ポートからの入力信号DINのエッジを検出するシフトレジスタ(フリップフロップ41、42)と、ポート機能表示信号Fの変化を検出し、フリップフロップ41、42のリセットを制御するフリップフロップ37を備える。ポート機能表示信号Fがハイレベルの間、フリップフロップ41、42はリセットされるため、この間の入力信号DINの変化はエッジとして検出されない。
【0006】
しかし、図2に示すように、ポート機能の切り替え後において、本来、期待していないエッジ入力が発生し、これを誤検出してしまう場合がある。ポート機能の切り替え直後では、ノイズやチャタリングの発生確率が高まる。特許文献1に記載のエッジ検出回路では、ポート機能の切り替え時における信号レベルの変化をエッジとして誤検出することはないが、その後に発生する信号レベルの擾乱をエッジとして誤検出することがある。
【0007】
一方、チャタリングによる誤動作を防止するエッジ検出回路が、例えば特開2002−64370に記載されている(特許文献2参照)。特許文献3では、入力信号のハイレベル期間が所定の時間を超えた後に、エッジ検出をアクティブにすることで、チャタリングと制御信号とを区別し、誤動作を防止している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開平7−86890
【特許文献2】特開2002−64370
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献2に記載のエッジ検出回路では、端子のハイレベル期間によってチャタリングか否かを判定している。しかし、ポート間の転送速度の増加に伴い、チャタリングと複数回の入力信号のハイレベル期間の差は小さくなってきている。特に、入力信号のハイレベル期間より長いハイレベル期間のノイズやチャタリングが発生した場合、特許文献2に記載の方法では、入力信号をチャタリングとして判定してしまう。
【0010】
このため、マイクロコンピュータへの転送速度を更に高めるためには、ポート機能の変更時に発生するチャタリングによるエッジの誤検出を防止しつつ、入力信号のエッジを確実に検出する技術が求められている。
【課題を解決するための手段】
【0011】
上記の課題を解決するために、本発明は、以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には、[特許請求の範囲]の記載と[発明を実施するための形態]の記載との対応関係を明らかにするために、[発明を実施するための形態]で使用される番号・符号が付加されている。ただし、付加された番号・符号は、[特許請求の範囲]に記載されている発明の技術的範囲を限定的に解釈するために用いてはならない。
【0012】
本発明による半導体集積回路は、端子(110)の機能が変更可能なポート回路部(100)と、端子(110)からの入力信号(DIN)のエッジを検出するエッジ検出回路部(200)とを具備する。端子(110)の機能の変更時刻を基準とした所定の期間(T)、エッジ検出回路部(200)におけるエッジ検出動作は無効となる。
【0013】
本発明によるエッジ検出方法は、端子(110)の機能を変更するステップと、端子(110)の機能の変更時刻を基準とした所定の期間(T)、エッジ検出回路部におけるエッジ検出動作を無効とするステップと、所定の期間(T)の経過後、前記端子(110)からの入力信号(DIN)のエッジを検出するステップとを具備する。
【発明の効果】
【0014】
本発明によれば、ポート機能の変更時における誤エッジ検出を防止できる。
【0015】
又、ポート機能の変更時に発生するチャタリングによる誤エッジ検出を防止するとともに、入力信号のエッジを確実に検出することができる。
【0016】
更に、マイクロコンピュータへの転送速度を向上させることができる。
【図面の簡単な説明】
【0017】
【図1】図1は、従来技術によるエッジ検出回路の構成の一例を示す図である。
【図2】図2は、従来技術によるエッジ検出動作の一例を示すタイミングチャートである。
【図3】図3は、本発明による半導体集積回路の構成を示す図である。
【図4】図4は、本発明によるエッジ検出回路の構成の一例を示す図である。
【図5】図5は、本発明によるエッジ検出動作の一例を示すタイミングチャートである。
【図6】図6は、本発明によるエッジ検出回路の構成の他の一例を示す図である。
【図7】図7は、本発明によるエッジ検出動作の他の一例を示すタイミングチャートである。
【発明を実施するための形態】
【0018】
以下、添付図面を参照しながら本発明の実施の形態を説明する。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示す。
【0019】
(半導体集積回路の全体構成)
本発明による半導体集積回路は、複数の機能を実現するポート(端子)を有するシングルチップマイクロコンピュータに例示される。端子の機能は、後述する機能有効フラグによって設定され、このフラグを変更することで、端子の機能が切り替わる。
【0020】
図3を参照して、本発明による半導体集積回路の全体構成を説明する。本発明による半導体集積回路は、ポート回路部100、エッジ検出回路部200、及び複数の周辺マクロ部300−1、300−2を具備する。周辺マクロ部300−1、300−2は共通の端子110を介して外部装置とデータの転送を行う。ポート回路部100は、端子110から入力される入力信号DINの出力先を、端子110に設定された機能に応じて変更する。図3に示す一例では、入力信号DINの出力先が周辺マクロ部300−1の場合、入力信号DINは、エッジ検出回路部200を介して周辺マクロ部300−1に出力される。一方、入力信号DINの出力先が周辺マクロ部300−2の場合、入力信号DINは、直接周辺マクロ部300−2に出力される。
【0021】
ポート回路部100は、セレクタ101、102及び機能有効フラグレジスタ103(機能モードレジスタ)を備える。機能有効フラグレジスタ103には、端子110の機能に応じたフラグ(以下、機能有効フラグと称す)が設定される。エッジ検出回路部200及びセレクタ101、102には、機能有効フラグに応じた信号レベルの制御信号120(PMC)が入力される。セレクタ101は、端子110からの入力信号と、インアクティブレベル信号111の一方を選択してエッジ検出回路部200に出力する。セレクタ102は、端子110からの入力信号と、インアクティブレベル信号112の一方を選択して周辺マクロ部300−2に出力する。
【0022】
例えば、セレクタ101は、所定のレベル(例えばハイレベル)の制御信号120(PMC)に応じて端子110からの入力信号DINを選択し、エッジ検出回路部200に出力する。このとき、セレクタ102は、制御信号120(PMC)に応じてインアクティブレベル信号112を周辺マクロ部300−2に出力し、周辺マクロ部300−2をインアクティブとする。あるいは、セレクタ101は、所定のレベルの反転レベル(例えばローレベル)の制御信号120(PMC)に応じてインアクティブレベル信号111を選択し、エッジ検出回路部200に出力する。このとき、セレクタ102は、制御信号120(PMC)に応じて端子110からの入力信号DINを周辺マクロ部300−2に出力する。
【0023】
エッジ検出回路部200は、エッジ検出制御回路20とエッジ検出回路21を備える。エッジ検出回路21は、検出制御信号130からの入力信号に対するエッジ検出処理を行い、検出結果を端子210を介して周辺マクロ部300−1に出力する。エッジ検出制御回路20は、制御信号120(PMC)に応じた信号レベルの検出制御信号130をエッジ検出回路21に出力し、エッジ検出回路21におけるエッジ検出動作を制御する。詳細には、エッジ検出制御回路20は、制御信号120(PMC)の信号レベルの変化(エッジ)をトリガとして、所定の期間、検出制御信号130の信号レベルを所定のレベル(例えばハイレベル)に遷移する。この際、エッジ検出制御回路20は、クロック信号MacroCLKの反転信号に応じて検出制御信号130の信号レベルを遷移する。検出制御信号130が所定のレベルである間、エッジ検出回路21における入力信号DINのエッジ検出動作は無効(ディセーブル)となる。又、その他の期間、エッジ検出回路21における入力信号DINのエッジ検出動作は有効(イネーブル)となる。
【0024】
尚、半導体集積回路に搭載される周辺マクロ部300の数は2つに限らず、更に多くの周辺マクロ部が搭載されてもよい。
【0025】
(エッジ検出回路21の一例)
図4は、本発明によるエッジ検出回路21の構成の一例を示す図である。図4を参照して、エッジ検出回路21の構成の詳細を説明する。図4に示すエッジ検出回路21は、2段のD−フリップフロップ1(FF1)と、D−フリップフロップ2(FF2)をカスケード接続したシフトレジスタを利用してエッジ検出を行う。
【0026】
エッジ検出回路21は、FF1、FF2、セレクタ11及びAND回路12を備える。FF1とFF2は、セレクタ11を介してカスケード接続される。FF1は、ポート回路部100からの入力信号DINを入力Dとし、出力信号201(出力Q)及び出力信号211(反転出力QZ)をセレクタ11に出力する。この際、FF1は、クロック信号MacroCLKのアクティブエッジに同期したタイミングで出力信号201(出力Q)及び出力信号211(反転出力QZ)の信号レベルを入力信号DINに応じた信号レベルに更新する。出力信号201は、AND回路12にも出力される。
【0027】
セレクタ11は、FF1からの出力信号201(出力Q)と出力信号211(反転出力QZ)の一方を、検出制御信号130に応じて選択し、FF2に出力する。セレクタ11は、検出制御信号130の信号レベルに応じた出力信号を選択し、FF2に出力する。例えば、セレクタ11は、ハイレベルの検出制御信号130に応じて出力信号211(反転出力QZ)を選択し、ローレベルの検出制御信号130に応じて出力信号201(出力Q)を選択する。
【0028】
FF2は、セレクタ11からの出力信号220を入力Dとし、出力信号212(反転出力QZ)をAND回路12に出力する。この際、FF2は、クロック信号MacroCLKのアクティブエッジに同期したタイミングで出力信号212(反転出力QZ)の信号レベルを出力信号220に応じた信号レベルに更新する。
【0029】
AND回路12は、FF1(初段)からの出力信号F201(出力Q)とFF2(最終段)からの出力信号212(反転出力QZ)との論理積をエッジ検出信号Edge_detectとして端子210(周辺マクロ部300−1)に出力する。
【0030】
セレクタ11は、検出制御信号130が所定のレベルの反転レベル(例えばローレベル)の間、出力信号201(出力Q)を選択してFF2に出力する。これにより、FF1におけるエッジの検出結果が、次段のフリップフロップ(ここではFF2)に伝播する。すなわち、検出制御信号130に応じた所定の期間、エッジ検出動作はイネーブルとなる。
【0031】
又、セレクタ11は、検出制御信号130が所定のレベル(例えばハイレベル)の間、出力信号211(反転出力QZ)を選択してFF2に出力する。すなわち、初段FF1におけるエッジの検出結果は反転されて次段(最終段)のFF2に伝播される。この結果、検出制御信号130に応じた所定の期間、FF1におけるエッジの検出結果は初期化(リセット)され、エッジ検出動作はディセーブルとなる。
【0032】
(エッジ検出動作の一例)
次に、図5を参照して、本発明によるエッジ検出動作の一例を説明する。図5は、図4に示すエッジ検出回路21のエッジ検出動作を示すタイミングチャートである。ここでは、時刻t1において端子110の機能変更(1次機能から2次機能に変更)が行われるものとして説明する。
【0033】
時刻t1において、機能有効フラグが変更され、制御信号120(PMC)がハイレベルに遷移する。エッジ検出制御回路20は、制御信号120の立ち上がりの直後におけるクロック信号MacroCLKの立下りエッジ(反転クロック信号のアクティブエッジ)に応じて、検出制御信号130(MODE_edge)をハイレベルに遷移する(時刻t2)。
【0034】
検出制御信号130のハイレベル期間は、エッジ検出回路21設けられるシフトレジスタの段数に応じて設定される。詳細には、シフトレジスタがn段のフリップフロップで構成される場合、クロック信号MacroCLKのn周期以上の期間が、検出制御信号130のハイレベル期間となるように設定されることが好ましい。ただし、nは2以上の整数である。
【0035】
検出制御信号130のハイレベル期間がクロック信号MacroCLKのn周期である場合、n+0.5周期の期間が、エッジ検出回路21がディセーブルとなる期間Tとなる。この間、セレクタ11はFF1の反転出力QZである出力信号211を選択し、出力信号220としてFF2に出力する。これにより、エッジ検出信号Edge_detectは、ディセーブル期間Tにおいて常にローレベルを維持する。図5に示す一例では、検出制御信号130のハイレベル期間が1周期に設定されることで、ディセーブル期間Tは1.5周期となる。すなわち、端子110の機能が変更された直後の立下りクロック(時刻t2)から時刻t4までの1.5周期分の期間Tの間は、入力信号DINの信号レベル(端子110の端子レベル)が変化しても、エッジ検出回路21は、当該変化をエッジとして検出することはない。
【0036】
図5に示す一例では、ディセーブル期間T中に、入力信号DINの信号レベルが変動する場合の動作が示される。ここで、入力信号DINは、時刻T2(td1)においてローレベルに遷移した後、時刻t3と時刻t4との間における時刻td2においてハイレベルに遷移する。クロック信号MacroCLKの立上がりエッジとなる時刻t3において、FF1は、ローレベルの入力信号DINに応じて、出力信号201をローレベルに遷移するとともに出力信号211をハイレベルに遷移する。又、次のクロック信号MacroCLKの立上がりエッジとなる時刻t4において、FF1は、ハイレベルの入力信号DINに応じて、出力信号201をハイレベルに遷移するとともに出力信号211をローレベルに遷移する。
【0037】
時刻t2〜t4の間、セレクタ11は、ハイレベルの検出制御信号130に応じて出力信号211(反転出力QZ)を選択し、出力信号220として出力する。詳細には、ディセーブル期間T中の時刻t3において、セレクタ11は、ローレベルに遷移した出力信号201ではなく、その反転出力QZである出力信号211を選択する。これにより、FF2にはハイレベルの出力信号220が伝播し、時刻t4におけるFF2の出力信号212(反転出力QZ)はローレベルを維持し、AND回路12からのエッジ検出信号Edge_detectは、ローレベルを維持することとなる。
【0038】
従来技術では、時刻td2において入力信号DINがハイレベルに遷移すると、時刻t3においてFF1が検出し、検出結果が次の時刻t4においてFF2及びAND回路12に伝播して、エッジ検出信号Edge_detectの信号レベルは遷移する。しかし、本発明では、ディセーブル期間T中にFF1によって検出された結果は、セレクタによって反転されてFF2に伝播される。このため、この期間T中に発生した入力信号DINのレベル変動は、エッジ検出信号Edge_detectに反映されない。すなわち、エッジ検出回路部200において機能変更が検出されてから所定の期間(ディセーブル期間T)、エッジ検出回路部200においてエッジ検出は行われない。これにより、端子110の機能変更直後に発生する入力信号DINの信号レベルの変動がエッジとして検出されることを防止することが可能となる。
【0039】
時刻t4以降は、検出制御信号130がローレベルとなるため、セレクタ11は、出力信号201を出力信号220としてFF2に出力する。このため、時刻t4以降、FF2の出力信号212(反転出力QZ)は、FF1の出力信号201(出力Q)に従った信号レベルとなり、エッジ検出信号Edge_detectの信号レベルは、入力信号DINの信号レベルの遷移に応じて変化する。
【0040】
図5に示す一例では、時刻t4以降、入力信号DINは、時刻td3においてローレベルに遷移した後、時刻td4においてハイレベルに遷移する。この場合、時刻td3の直後におけるクロック信号macroCLKの立上がりエッジに同期して、FF1の出力信号201はローレベル、出力信号211はハイレベルに遷移し、その次のクロック信号macroCLKの立上がりエッジに同期してFF2の出力信号212はハイレベルに遷移する。続いて、時刻td4において入力信号DINが立ち上がると、その直後におけるクロック信号macroCLKの立上がりエッジに同期して、FF1の出力信号201はハイレベル、出力信号211はローレベルに遷移し、その次のクロック信号macroCLKの立上がりエッジに同期してFF2の出力信号212はローレベルに遷移する。この結果、AND回路12から出力されるエッジ検出信号Edge_detectは、FF1の出力信号201(出力Q)とFF2の出力信号212(反転出力QZ)がともにハイレベルとなる時刻t5においてハイレベルに遷移する。これにより、周辺マクロ部300−1は、時刻td4における入力信号DINの立上がりエッジを検出することができる。
【0041】
以上のように、本発明による半導体集積回路では、機能有効フラグの設定から所定の期間T、セレクタ11によって多段フリップフロップにおける後段への入力を反転させている。これにより、この期間Tにおいて入力信号DINの信号レベルが変動してもAND回路12の出力(エッジ検出信号Edge_detect)はローレベルを維持し、誤エッジ検出を防止することが可能となる。
【0042】
(エッジ検出回路21の他の一例)
図4に示す一例では、2段のフリップフロップを利用したエッジ検出回路21について説明したが、段数はこれに限らず3つ以上搭載されていても良い。図6は、本発明によるエッジ検出回路21の構成の他の一例を示す図である。図6に示すエッジ検出回路21は、5段のD−フリップフロップ1(FF1)〜D−フリップフロップ5(FF5)をカスケード接続したシフトレジスタを利用してエッジ検出を行う。
【0043】
エッジ検出回路21は、FF1、FF2、FF3、FF4、FF5、セレクタ11及びAND回路12を備える。その他の構成は図4に示す一例と同様である。FF1とFF2は、セレクタ11を介してカスケード接続され、FF2〜FF5はカスケード接続される。FF1は、ポート回路部100からの入力信号DINを入力Dとし、出力信号201(出力Q)及び出力信号211(反転出力QZ)をセレクタ11に出力する。この際、FF1は、クロック信号MacroCLKのアクティブエッジに同期したタイミングで出力信号201(出力Q)及び出力信号211(反転出力QZ)の信号レベルを入力信号DINに応じた信号レベルに更新する。
【0044】
セレクタ11は、FF1からの出力信号201(出力Q)と出力信号211(反転出力QZ)の一方を、検出制御信号130に応じて選択し、FF2に出力する。セレクタ11は、検出制御信号130の信号レベルに応じた出力信号を選択し、FF2に出力する。例えば、セレクタ11は、ハイレベルの検出制御信号130に応じて出力信号211(反転出力QZ)を選択し、ローレベルの検出制御信号130に応じて出力信号201(出力Q)を選択する。
【0045】
FF2は、セレクタ11からの出力信号220を入力Dとし、出力信号212(反転出力QZ)を次段のFF3に出力する。FF3、FF4は、それぞれの前段の出力信号202、203(出力Q)を入力Dとし、それぞれ出力信号203、204(出力Q)を次段に出力する。この際、FF2、FF3、FF4は、クロック信号MacroCLK同期したタイミングで出力信号202、203、204(出力Q)の信号レベルをそれぞれの入力Dに応じた信号レベルに更新する。
【0046】
最終段のFF5は、前段のFF4からの出力信号204を入力Dとし、出力信号215(反転出力QZ)をAND回路12に出力する。FF5は、クロック信号MacroCLKのアクティブエッジに同期したタイミングで出力信号215(反転出力QZ)の信号レベルを入力D(出力信号204)に応じた信号レベルに更新する。
【0047】
又、最終段のFF5を除くFF1〜FF4の出力信号201〜204(出力Q)はAND回路12に入力される。
【0048】
AND回路12は、出力信号201〜204(出力Q)と、FF5(最終段)からの出力信号215(反転出力QZ)との論理積をエッジ検出信号Edge_detectとして端子210(周辺マクロ部300−1)に出力する。
【0049】
セレクタ11は、検出制御信号130が所定のレベルの反転レベル(例えばローレベル)の間、出力信号201(出力Q)を選択してFF2に出力する。これにより、FF1におけるエッジの検出結果が、次段のフリップフロップ(ここではFF2)に伝播する。すなわち、検出制御信号130に応じた所定の期間、エッジ検出動作はイネーブルとなる。
【0050】
又、セレクタ11は、検出制御信号130が所定のレベル(例えばハイレベル)の間、出力信号211(反転出力QZ)を選択してFF2に出力する。すなわち、初段FF1におけるエッジの検出結果は反転されて次段(最終段)のFF5に伝播される。この結果、検出制御信号130に応じた所定の期間、FF1におけるエッジの検出結果は初期化(リセット)され、エッジ検出動作はディセーブルとなる。
【0051】
(エッジ検出動作の他の一例)
次に、図7を参照して、本発明によるエッジ検出動作の一例を説明する。図7は、図6に示すエッジ検出回路21のエッジ検出動作を示すタイミングチャートである。ここでは、時刻t1において端子110の機能変更(1次機能から2次機能に変更)が行われるものとして説明する。
【0052】
時刻t1において、機能有効フラグが変更され、制御信号120(PMC)がハイレベルに遷移する。エッジ検出制御回路20は、制御信号120の立ち上がりの直後におけるクロック信号MacroCLKの立下りエッジ(反転クロック信号のアクティブエッジ)に応じて、検出制御信号130(MODE_edge)をハイレベルに遷移する(時刻t2)。
【0053】
検出制御信号130のハイレベル期間は、エッジ検出回路21設けられるシフトレジスタの段数に応じて設定される。図6に示す構成では、シフトレジスタが5段のフリップフロップで構成されているため、クロック信号MacroCLKの5周期の期間が、検出制御信号130のハイレベル期間となるように設定される。これにより、5.5周期分の期間が、エッジ検出回路21がディセーブルとなる期間Tとなる。この間、セレクタ11はFF1の反転出力QZである出力信号211を選択し、出力信号220としてFF2に出力する。この結果、エッジ検出信号Edge_detectは、ディセーブル期間Tにおいて常にローレベルを維持する。すなわち、端子110の機能が変更された直後の立下りクロック(時刻t2)から5.5周期分の期間Tの間は、入力信号DINの信号レベル(端子110の端子レベル)が変化しても、エッジ検出回路21は、当該変化をエッジとして検出することはない。
【0054】
図7に示す一例では、機能変更が行われた時刻t1から機能変更を検出した時刻t2までの間、及び、ディセーブル期間T中に、入力信号DINの信号レベルが変動する場合の動作が示される。ここで、入力信号DINは、時刻t2以前にローレベルに遷移した後、ディセーブル期間T中に2回ハイレベルに遷移し、ディセーブル期間Tの終了後、ローレベルからハイレベルに遷移する。詳細には、入力信号DINは、時刻t1と時刻t2の間の時刻td1においてローレベルに遷移した後、ディセーブル期間T中の時刻t3と時刻t4の間の時刻td2においてハイレベルに遷移する。又、入力信号DINは、ディセーブル期間T中の時刻t4と時刻t5の間の時刻td3においてローレベルに遷移した後、ディセーブル期間T中の時刻t6と時刻t7の間の時刻td4においてハイレベルに遷移する。更に、入力信号DINは、ディセーブル期間T中の時刻t7と時刻t8の間の時刻td5においてローレベルに遷移した後、ディセーブル期間Tが終了する時刻t9移行の時刻td6においてハイレベルに遷移する。
【0055】
クロック信号MacroCLKの立上がりエッジとなる時刻t3において、FF1は、ローレベルの入力信号DINに応じて、出力信号201をローレベルに遷移するとともに出力信号211をハイレベルに遷移する。又、次のクロック信号MacroCLKの立上がりエッジとなる時刻t4において、FF1は、ハイレベルの入力信号DINに応じて、出力信号201をハイレベルに遷移するとともに出力信号211をローレベルに遷移する。更に、次のクロック信号MacroCLKの立上がりエッジとなる時刻t5、t6において、FF1は、ローレベルの入力信号DINに応じて、出力信号201をローレベルとし、出力信号211をハイレベルとする。同様に、FF1は、時刻t7から時刻t8の間、出力信号201をハイレベルとし、出力信号211をローレベルとする。
【0056】
時刻t2〜t9の間、セレクタ11は、ハイレベルの検出制御信号130に応じて出力信号211(反転出力QZ)を選択し、出力信号220として出力する。詳細には、ディセーブル期間T中の時刻t3において、セレクタ11は、ローレベルに遷移した出力信号201ではなく、その反転出力QZである出力信号211を選択する。これにより、FF2からFF5にはハイレベルの出力信号220が伝播し、時刻t7におけるFF5の出力信号215(反転出力QZ)はローレベルを維持し、AND回路12からのエッジ検出信号Edge_detectは、ローレベルを維持することとなる。
【0057】
又、時刻t4では、セレクタ11は、ハイレベルに遷移した出力信号201ではなく、その反転出力QZである出力信号211を選択する。これにより、FF2からFF5にはローレベルの出力信号220が伝播し、時刻t8におけるFF5の出力信号215(反転出力QZ)はハイレベルに遷移する。しかし、ディセーブル期間Tでは、FF2〜FF4の出力Qを介してFF5に対し、FF1の出力信号220(反転出力QZ)が伝播しているため、FF5の出力信号215がハイレベルである場合、出力信号201〜204のいずれかは必ずローレベルとなる。このため、時刻t8において、FF5の出力信号215(反転出力QZ)がハイレベルに遷移しても、AND回路12からのエッジ検出信号Edge_detectはローレベルを維持することとなる。本一例では、時刻t8において出力信号201がローレベルのためエッジ検出信号Edge_detectはローレベルとなる。
【0058】
同様に、ディセーブル期間T中の時刻t5、t6において、セレクタ11は、ローレベルに遷移した出力信号201ではなく、その反転出力QZである出力信号211を選択する。これにより、FF2からFF5にはハイレベルの出力信号220が伝播し、エッジ検出信号Edge_detectはローレベルを維持する。又、時刻t7において、セレクタ11は、ハイレベルに遷移した出力信号201ではなく、その反転出力QZである出力信号211を選択する。これにより、FF2からFF5にはローレベルの出力信号220が伝播し、時刻t9におけるFF5の出力信号215(反転出力QZ)はハイレベルに遷移する。しかし、ディセーブル期間Tでは、FF2〜FF4の出力Qを介してFF5に対し、FF1の出力信号220(反転出力QZ)が伝播しているため、FF5の出力信号215がハイレベルである場合、出力信号201〜204のいずれかは必ずローレベルとなる。このため、時刻t9において、FF5の出力信号215(反転出力QZ)がハイレベルに遷移しても、AND回路12からのエッジ検出信号Edge_detectはローレベルを維持することとなる。本一例では、時刻t9において出力信号201がローレベルのためエッジ検出信号Edge_detectはローレベルとなる。
【0059】
図6に示すエッジ検出回路21のようにシフトレジスタの段数を増加させても、ディセーブル期間T中にFF1によって検出された結果は、セレクタによって反転されて次段のFF2からFF4の出力Qを介して最終段FF5に伝播され、AND回路12の入力信号のいずれかは必ずローレベルとなる。このため、この期間T中に発生した入力信号DINのレベル変動は、エッジ検出信号Edge_detectに反映されない。すなわち、エッジ検出回路部200において機能変更が検出されてから所定の期間(ディセーブル期間T)、エッジ検出回路部200においてエッジ検出は行われない。これにより、端子110の機能変更直後に発生する入力信号DINの信号レベルの変動がエッジとして検出されることを防止することが可能となる。
【0060】
時刻t9以降は、検出制御信号130がローレベルとなるため、セレクタ11は出力信号201を出力信号220として、FF2からFF4を介してFF5に出力する。これにより、時刻t9以降、FF5の出力信号215(反転出力QZ)は、FF1の出力信号201(出力Q)に従った信号レベルとなり、エッジ検出信号Edge_detectの信号レベルは、入力信号DINの信号レベルの遷移に応じて変化する。
【0061】
図7に示す一例では、時刻t9以降、入力信号DINは、時刻td6においてハイレベルに遷移する。この場合、時刻td6の直後におけるクロック信号macroCLKの立上がりエッジに同期して、FF1の出力信号201はハイレベルに遷移し、その次のクロック信号macroCLKの立上がりエッジ以降、FF2からFF5にハイレベルの出力信号が伝播する。この結果、AND回路12から出力されるエッジ検出信号Edge_detectは、FF1からFF4の出力信号201〜204(出力Q)とFF5の出力信号215(反転出力QZ)がともにハイレベルとなる時刻t10においてハイレベルに遷移する。これにより、周辺マクロ部300−1は、時刻td6における入力信号DINの立上がりエッジを検出することができる。
【0062】
以上のように、本発明による半導体集積回路では、機能有効フラグの設定から所定の期間T、セレクタ11によって多段フリップフロップにおける後段への入力を反転させている。これにより、この期間Tにおいて入力信号DINの信号レベルが変動してもAND回路12の出力(エッジ検出信号Edge_detect)はローレベルを維持し、誤エッジ検出を防止することが可能となる。
【0063】
本発明によれば、ポート機能の変更時における誤エッジ検出を防止できる。
【0064】
又、ポート機能の変更時に発生するチャタリングによる誤エッジ検出を防止するとともに、入力信号のエッジを確実に検出することができる。
更に、マイクロコンピュータへの転送速度を向上させることができる。
【0065】
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。上述のようにエッジ検出回路21に搭載するシフトレジスタの段数を増やすことでエッジ検出をしない期間Tを長くすることができる。又、上述の実施の形態では、エッジ検出回路21に搭載されるシフトレジスタは、クロック信号の立上がりをアクティブエッジとして動作したが、これに限らず立ち下がりエッジをアクティブエッジと動作しても良い。ただし、この場合、エッジ検出制御回路20は、クロック信号MacroCLKの立上がりエッジに同期して動作することが好ましい。更に、セレクタ11は、検出制御信号130がハイレベルのときにFF1の出力信号211(反転出力QZ)を選択したが、これに限らない。例えば、エッジ検出制御回路20が、機能有効フラグの変更に応じてハイレベルの検出制御信号130をローレベルに変更するように構成した場合、セレクタ11は、ローレベルの検出制御信号130に応じて出力信号211を選択出力する。更に、上述の実施の形態において、セレクタ11は、初段のFF1と2段目のFF2との間に設けられているが、シフトレジスタを構成するフリップフロップのいずれかの間に設けられればその場所は限定されない。
【符号の説明】
【0066】
11:セレクタ
12:AND回路
20:エッジ検出制御回路
21:エッジ検出回路
100:ポート回路部
101:セレクタ
102:セレクタ
103:機能有効フラグレジスタ
110、210:端子
111、112:インアクティブレベル信号
120:制御信号
130:検出制御信号
200:エッジ検出回路部
201〜204、211、212、215、220:出力信号
300、300−1、300−2:周辺マクロ部

【特許請求の範囲】
【請求項1】
端子の機能が変更可能なポート回路部と、
前記端子からの入力信号のエッジを検出するエッジ検出回路部と、
を具備し、
前記端子の機能の変更時刻を基準とした所定の期間、前記エッジ検出回路部におけるエッジ検出動作は無効となる
半導体集積回路。
【請求項2】
請求項1に記載の半導体集積回路において、
前記エッジ検出回路部は、エッジ検出回路と、前記エッジ検出回路のエッジ検出動作を制御するエッジ検出制御回路とを備え、
前記エッジ検出制御回路は、端子の機能を設定する機能有効フラグの変更に応じて検出制御信号の信号レベルを変更し、
前記エッジ検出回路は、
前記端子からの入力信号が入力されるシフトレジスタを形成するn段のフリップフロップと、
前記nは2以上の整数であり、
前記n段のフリップフロップにおける1段目からn−1段目の出力信号と、最終段であるn段目のフリップフロップの反転出力信号との論理積をエッジ検出信号として出力するAND回路と、
前記n段のフリップフロップのいずれかのフリップフロップ間に設けられたセレクタと
を備え、
前記セレクタは、前記検出制御信号の信号レベルに応じて、前記セレクタの前段のフリップフロップの出力信号と反転出力信号の一方を選択して前記セレクタの後段のフリップフロップに出力する
半導体集積回路。
【請求項3】
請求項2に記載の半導体集積回路において、
前記エッジ検出制御回路は、前記機能有効フラグの変更に応じて検出制御信号の信号レベルを第1レベルから第2レベルに変更し、
前記セレクタは、前記検出制御信号の信号レベルが前記第2レベルのとき前記反転出力信号を前記2段目のフリップフロップに出力し、
前記検出制御信号が前記第2レベルである期間は、クロック信号のn周期以上に設定される
半導体集積回路。
【請求項4】
請求項2又は3に記載の半導体集積回路において、
前記エッジ検出制御回路は、前記機能有効フラグの変更直後における反転クロック信号のアクティブエッジに同期して前記検出制御信号の信号レベルを変更し、
前記複数のフリップフロップはクロック信号のアクティブエッジに同期してシフトレジスタとして動作する
半導体集積回路。
【請求項5】
請求項2から4のいずれか1項に記載の半導体集積回路において、
前記セレクタは、前記複数のフリップフロップにおける初段のフリップフロップと2段目のフリップフロップとの間に設けられ、前記検出制御信号の信号レベルに応じて、前記初段のフリップフロップの出力信号と反転出力信号の一方を選択して前記2段目のフリップフロップに出力する
半導体集積回路。
【請求項6】
端子の機能を変更するステップと、
前記端子の機能の変更時刻を基準とした所定の期間、エッジ検出回路部におけるエッジ検出動作を無効とするステップと、
前記所定の期間の経過後、前記端子からの入力信号のエッジを検出するステップと
を具備する
エッジ検出方法。
【請求項7】
請求項6に記載のエッジ検出方法において、
検出制御信号の信号レベルを変更するステップと、
前記端子の機能を設定する機能有効フラグの変更に応じて検出制御信号の信号レベルを変更するステップと、
シフトレジスタを形成するn段のフリップフロップのいずれかのフリップフロップ間に設けられたセレクタが、前記検出制御信号の信号レベルに応じて、前記セレクタの前段のフリップフロップの出力信号と反転出力信号の一方を選択して前記セレクタの後段のフリップフロップに出力するステップと、
前記nは2以上の整数であり、
前記n段のフリップフロップにおける1段目からn−1段目の出力信号と、最終段であるn段目のフリップフロップの反転出力信号との論理積をエッジ検出信号として出力するステップと
を具備する
エッジ検出方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate