(57)【特許請求の範囲】
【請求項１】
情報の伝送のための固定されたビット幅のバスと、複数の入出力端子と、複数の物理ポートとを有する種類の集積回路であって、各物理ポートは固定されたビット幅を有しバスを対応する入出力端子の組に接続する種類の集積回路内の、１以上の仮想ポートを規定する構成回路であって、
複数の構成可能な入出力インターフェイス素子を含み、各インターフェイス素子は記憶手段を含みバスの複数のビットの１つと対応する１つの入出力端子とを接続し、前記構成回路はさらに、
各インターフェイス素子の記憶手段に接続される少なくとも１つの選択可能なクロックと、
各インターフェイス素子に接続される少なくとも１つのプログラマブルイネーブルとを含み、複数のクロックおよびプログラマブルイネーブルは、インターフェイス素子のうち異なったいくつかのインターフェイス素子に接続され得、クロックおよびプログラマブルイネーブルは各々、それが接続されるインターフェイス素子の活性化を制御するよう構成され得、
活性化された入出力素子は仮想ポートを構成し、該仮想ポートは、物理ポートの固定されたビット幅以下の任意のビット幅である、構成回路。
【請求項２】
該仮想ポートは、単一の物理ポート内に完全に含まれるビットの組を含む、請求項１に記載の構成回路。
【請求項３】
該仮想ポートは、第１の物理ポートからの第１のビットの組と、第２の物理ポートからの第２のビットの組とを含む、請求項１に記載の構成回路。
【請求項４】
ビットを所望の順番にシフトするための回転回路をさらに含む、請求項３に記載の構成回路。
【請求項５】
該回転回路はバレルシフタ回路を含む、請求項４に記載の構成回路。
【請求項６】
３つの別個のプログラマブルイネーブルが、単一の物理ポート内の各インターフェイス素子に接続される、請求項１に記載の構成回路。
【請求項７】
第１の仮想ポートは、第１のプログラマブルイネーブルにより選択されたインターフェイス素子で構成され、第２の仮想ポートは、第２のプログラマブルイネーブルにより選択されたインターフェイス素子で構成され、第３の仮想ポートは第３のプログラマブルイネーブルにより選択されたインターフェイス素子で構成される、請求項６に記載の構成回路。
【請求項８】
該記憶手段は入力レジスタを含む、請求項１に記載の構成回路。
【請求項９】
該記憶手段は出力ラッチを含む、請求項１に記載の構成回路。
【請求項１０】
該記憶手段はＦＩＦＯレジスタを含む、請求項１に記載の構成回路。
【請求項１１】
集積回路であって、
情報の伝送のための固定されたビット幅を有するバスと、
複数の入出力端子と、
複数の物理ポートとを含み、各物理ポートは固定されたビット幅を有し複数の構成可能な入出力インターフェイス素子を有し、各インターフェイス素子は記憶手段を含み該バスの複数のビットの１つと対応する１つの入出力端子とを接続し、前記集積回路はさらに、
各インターフェイス素子の記憶手段に接続される少なくとも１つの選択可能クロックと、
各インターフェイス素子に接続され該クロックと対になる少なくとも１つのプログラマブルイネーブルとを含み、複数のクロックおよびプログラマブルイネーブルはインターフェイス素子のうち異なったいくつかのインターフェイス素子に接続され得、各クロックおよびプログラマブルイネーブルは、それらが接続されるインターフェイス素子の活性化を制御するよう構成され得、
活性化された入出力素子は、仮想ポートを構成し、該仮想ポートは物理ポートの固定されたビット幅以下の任意のビット幅である、集積回路。
【請求項１２】
該仮想ポートは、単一の物理ポート内に完全に含まれるビットの組を含む、請求項１１に記載の集積回路。
【請求項１３】
該仮想ポートは、第１の物理ポートからの第１のビットの組と、第２の物理ポートからの第２のビットの組とを含む、請求項１１に記載の集積回路。
【請求項１４】
ビットを所望の順番にシフトするための回転回路をさらに含む、請求項１３に記載の集積回路。
【請求項１５】
該回転回路はバレルシフタ回路を含む、請求項１４に記載の集積回路。
【請求項１６】
３つの別個のプログラマブルイネーブルが、単一の物理ポート内の各インターフェイス素子に接続される、請求項１１に記載の集積回路。
【請求項１７】
第１の仮想ポートは、第１のプログラマブルイネーブルにより選択されたインターフェイス素子で構成され、第２の仮想ポートは、第２のプログラマブルイネーブルにより選択されたインターフェイス素子で構成され、第３の仮想ポートは第３のプログラマブルイネーブルにより選択されたインターフェイス素子で構成される、請求項１６に記載の集積回路。
【請求項１８】
該記憶手段は入力レジスタを含む、請求項１１に記載の集積回路。
【請求項１９】
該記憶手段は出力ラッチを含む、請求項１１に記載の集積回路。
【請求項２０】
該記憶手段はＦＩＦＯレジスタを含む、請求項１１に記載の集積回路。
【発明の詳細な説明】
【０００１】
【発明の分野】
この発明は、マイクロコントローラに関し、特に、データバスと入出力端子との接続に関する。
【０００２】
【発明の背景】
多くのマイクロコントローラは、プログラマーがチップへおよびチップからデータを移動させることを可能にするポートを有している。典型的には、これらのポートは図７に示すようにバスによってシステムの残りの部分に接続される。図７に示す従来技術によるシステム１００では、プロセッサ１１２はデータバス１１０およびアドレスバス１１１という２つの部分からなるバスによって固定幅（１６ビット）のポートに接続される。アドレスバス１１１上のアドレスは、デコーダ１２０の１つによってデコードされ、入力ポートまたは出力ポートをイネーブルする。これらのポートに対応するアドレスは固定されている。入力データは、入出力（Ｉ／Ｏ）パッド１８０の１つによって受取られ、バッファ１３６を通って入力レジスタ１２８へと進む。クロック１１５および他の信号は、マルチプレクサ１１６へ入力され、マルチプレクサ１１６はこれらを入力レジスタ１２８へ供給する。入力レジスタ１２８において受取られるクロック１１５および他の信号は、マイクロコントローラの内部にあってもまたは外部にあってもよいさまざまなソースから選択され得る。デコーダ１２０の１つからのイネーブル信号１４０は、入力データがトライステートバッファ１２４を通ってデータバス１１０において受取られることを可能にする。データバス１１０から入出力パッド１８０へ転送される出力データは、まず出力ラッチ１３２の１つを通る。デコーダ１２０の１つからの出力イネーブル信号１４１は、出力データがラッチ１３２からバッファ１３８を通って入出力パッド１８０へ進むことを可能にする。出力ラッチ１３２および入力レジスタ１２８は記憶装置を備え、ＦＩＦＯレジスタなどの他の種類の記憶手段で置き換えることもできる。
【０００３】
図７の従来技術によるシステムは、１６ビット幅のデータに関しては良好に作動するが、より幅の狭いデータに対しては極めて効率的とはいえない。たとえば、もしマイクロコントローラが１０ビット幅のＣＣＤ撮像装置からデータを読出すのであれば、１０本のピンしか使用されないにもかかわらず１６ビットのポートすべてを入力用に占用しなければならず、ポートの他の６本のピンは他のどのような目的のためにも使用できず実質的に失われることになる。図８には、従来技術の入力ポートしか図示していないが、図７と同様、レジスタの代わりにイネーブルラッチを使用してもよいという点を除いては、出力ポートは本質的に入力ポートと同様である。従来技術においては、バイト（８ビット）中のビットはすべて、同一のクロック信号を有し、さらにバスへの同一の固定されたイネーブル信号を有する。したがって、ポートごとに２以下の固定されたイネーブル信号と２以下のクロック選択機構とがある。図８のポートでは、第１のイネーブル信号１４３および第１のクロックセレクト信号１５１がデータバス１１０のビット０−７を制御し、一方、第２のイネーブル信号１４４および第２のクロックセレクト信号１５２がデータバス１１０のビット８−１５を制御する。固定されたイネーブルが１つしかない場合には、ポートは１６ビットのエンティティとして読出および書込が行なわれなければならない。このように、従来技術においては、データが８ビットのエンティティとしてまたは１６ビットのエンティティとして構築されるのでなければ、ポートには余分な使用されないピンが存在することとなり、ポートの最大能力が完全に利用されないことになる。
【０００４】
バークナー（Birkner）他への米国特許第４，７５８，７４６号は、出力項をプログラマブルバスを介して選択されたピンへ割りふることができるよう、個別にプログラム可能な出力ピンを備えるプログラマブル論理アレイを提供する。ペダーソン（Pederson）への米国特許第５，８７２，４６３号は、設けられた出力ドライバを効率的に利用するため、各出力バス導体を１以上の出力ドライバに接続可能なプログラマブル論理装置を開示する。シィエ（Shieh）他への米国特許第５，８０４，９８５号は、周辺装置に適切な信号インターフェイスを提供するための１６個の異なった出力構成を備える出力バスを開示する。しかし、装置には１つのイネーブル信号しか与えられない。
【０００５】
この発明の目的は、使用されないデータピンがないように仮想ポートによってより狭い幅のデータを受入れることができるよう、物理ポートよりも幅が狭くあり得る、データバス上の仮想ポートを規定する構成回路を提供することである。
【０００６】
この発明のさらなる目的は、マイクロコントローラのピンのより柔軟性の高い使用を可能とするよう、２つの物理ポートに跨り得る仮想ポートを規定する構成回路を提供することである。
【０００７】
【発明の概要】
上述の目的は、複数の構成可能入出力インターフェイス素子を有する集積回路のための構成回路であって、各構成可能入出力インターフェイス素子は、データバスの複数のビットの１つを対応する１つの入出力端子に接続する、集積回路のための構成回路により達成される。複数のクロックセレクトおよびプログラマブルイネーブルが異なったインターフェイス素子に接続され得、クロックおよびプログラマブルイネーブル各々は、それらが接続されるインターフェイス素子の活性化を制御するよう構成される。活性化されたインターフェイス素子は、物理ポートの固定されたビット幅以下の任意のビット幅であり得る仮想ポートを構成する。
【０００８】
この発明の構成回路では、１ビットから１６ビットまでの幅の複数の仮想ポートをプログラミングできる。さらに、もし２つの物理ポートが利用可能であれば、１つのポートのいくつかの上位ビットと、第２のポートのいくつかの下位ビットとから仮想ポートを作り得る。このように、任意のビット位置から開始しデータバスの幅以下の任意の幅を有する仮想ポートが構築され得、それによって、マイクロコントローラのピンのより柔軟な使用が可能となる。
【０００９】
【詳細な説明】
図１を参照して、この発明の構成回路７５は、データバス１０と入出力パッド６８との間に接続される複数の入出力インターフェイス素子６７を含む。図１中、入出力インターフェイス素子６７の入力部のみが図示されるが、出力部の構成も本質的に同様の態様で動作する。図７の従来技術による回路と同様、出力部は、レジスタ２８およびバッファ２４の代わりに、イネーブル信号により活性化されるラッチを用いてもよい。さらに、出力ラッチおよび入力レジスタ２８は、ＦＩＦＯレジスタなどの他の種類の記憶手段で置き換えることができる。各インターフェイス素子６７は、データバス１０のビットの１つと接続され、入出力パッド６８からデータを受取る入力レジスタ２８を含む。クロック１５および他の入出力信号は、クロックセレクト線５００を有するマルチプレクサ１６を通って入力レジスタ２８へと供給される。データは、プログラマブルイネーブル４００により活性化されるトライステートバッファ２４を通ってデータバス１０へ進む。図１に示すように、この発明と上述の従来技術の回路との主要な違いは、データバス内の各ビットが、異なったクロックセレクト線および異なったプログラマブルイネーブル線によって制御されるインターフェイス素子６７を有している点である。たとえば、ビット０はセレクト線５００およびプログラマブルイネーブル信号４００によって制御されるインターフェイス素子を有し、ビット１は、セレクト線５０１およびプログラマブルイネーブル信号４０１により制御されるインターフェイス素子を有し、ビット２は、セレクト線５０２およびプログラマブルイネーブル信号４０２によって制御されるインターフェイス素子を有し、…そしてビット１５は、セレクト線５１５およびプログラマブルイネーブル信号４１５により制御されるインターフェイス素子を有する。特定のセレクト線およびプログラマブルイネーブル信号により活性化されるインターフェイス素子６７はすべて、仮想ポートのビットを規定する。図１の場合では、１６本の異なったセレクト線５００〜５１５およびプログラマブルイネーブル信号４００〜４１５があるので、１６個の異なった仮想ポートを１６ビットのバスにマッピングすることができる。このため、さまざまなサイズの仮想ポートが可能である。もし、たとえば、ビット２−７に同じセレクト信号およびイネーブル信号が供給されれば、６ビット幅の仮想ポートが達成できよう。ビット９−１３に供給されるセレクト信号とイネーブル信号の第２のセットは、５ビット幅を有する第２の仮想ポートを達成するであろう。理解されるように、ビットの総数がバスの幅よりも少ない限り、１ビットから１６ビットまでの幅の複数の仮想ポートをプログラミングできる。
【００１０】
図５を参照し、出力部も含め図１の入出力インターフェイス素子６７を示す。完全な入出力インターフェイス素子６７は、上に図１を参照して説明した入力部を含むと同時に、データバスからのデータを受取りデータを入出力パッド６８へ送る出力ラッチ３２を含む。出力ラッチは、出力イネーブル信号６００により制御される。各ビットに対する入出力インターフェイス素子６７は、回路の入力部のバッファ２４を制御するイネーブル信号を参照して上に説明したのと同様、各ラッチ３２を制御する異なった出力イネーブル信号を有し得る。
【００１１】
この発明は、その最も一般的な形においては、最大で１６個の仮想ポートを１６ビットのバスに対してマッピングすることが可能であるが、そのためにはビットごとにプログラマブルデコーダが必要であり、このようなプログラマブルデコーダは応用によっては高価なものであり得る。仮想ポートが６ビット幅未満である必要はほとんどないと思われるので、この発明の好ましい実施例では、物理ポートごとに３つのプログラマブルイネーブル信号がある、この発明を実現するより経済的な態様が使用できよう。図２の構成回路７７を参照すると、各入出力インターフェイス素子６７のトライステートバッファ２４は、３つの考えられるイネーブル信号Ｅｎ０、Ｅｎ１またはＥｎ２の１つであり得るイネーブル信号を与えられる。イネーブル信号Ｅｎ０、Ｅｎ１およびＥｎ２は、所望のイネーブル信号の選択のため、マルチプレクサ１７へのデータ入力として供給される。構成ビット３０はマルチプレクサ１７のためのデータセレクトとして供給され、入出力インターフェイス素子ごとに２つの可能な構成ビットが存在する。この実施例では、１６ビットバス内に３つの仮想ポートが可能であり、それによって従来技術の固定されたビット幅の物理ポートよりも大きな柔軟性が可能である。図２の実施例の完全な入出力インターフェイス素子６７を示す図６中、各出力ラッチ３２に、３つの可能な出力イネーブル信号ＯＥ０、ＯＥ１、またはＯＥ２の１つであり得る出力イネーブル信号が与えられることがわかる。出力イネーブル信号ＯＥ０、ＯＥ１およびＯＥ２は、所望の出力イネーブル信号の選択のため、データ入力としてマルチプレクサ２３に供給される。構成ビット３１は、マルチプレクサ２３のためのデータセレクトとして供給される。ラッチ３２のマルチプレクサ２３に対する構成ビット３１は、バッファ２４のためのマルチプレクサ１７に対する構成ビット３０と同一の構成ビットであり得、または、構成ビット３０、３１の各組は別個に発生され得る。もし、構成ビットが別個に発生されるのならば、組合せになったイネーブル信号（すなわちＥｎ０およびＯＥ０）が選択されるよう構成ビットは同一にされねばならない。
【００１２】
この発明においては、もし２つの物理ポートが利用可能であれば、１つの物理ポートの上位ビットいくつかと第２の物理ポートの下位ビットいくつかから仮想ポートを作り出すことができる。したがって、任意のビット位置から始めてデータバスの幅以下の任意の幅を有する仮想ポートを構築できる。隣接したポートを使用して仮想ポートを作り出す能力は、いずれのデータピンをも無駄にせず異なった幅のポートを作り出すことを可能にするが、隣接した物理ポートから作り出された仮想ポート内のデータを使用することはしばしば困難である。図３（Ａ）を参照すると、第１の物理ポートの最後の３ビット２１２と次の物理ポートの初めの４ビット２１１とを使用して７ビットの仮想ポートが作り出されている。したがって、データバス２１０には、バスのビット１３−１５内に有効ビットＶ０、Ｖ１およびＶ２が、そしてバスのビット０−３には有効ビットＶ３、Ｖ４、Ｖ５およびＶ６があり、Ｖｎは仮想ポートのｎ番目のビットである。この形のデータは使用が困難である。しかし、図３（Ｂ）は、データが３ビットだけ回転させられた後のデータバス２１０を示す。図からわかるように、７ビットの仮想ポート２２５がバス２１０のビット０−６内にともに整列させられており、このデータははるかに容易に使用できる。ビットの回転は、バスに回転ユニットを追加することで実行できる。
【００１３】
図４を参照し、５つの仮想ポート９０〜９４が作り出され、仮想ポート９０〜９４は４つの物理ポート８０〜８３に重なる。データが容易に使用できるよう仮想ポート内のビットをシフトするため、構成回路７６に回転回路が追加されている。アドレスバス１１がプログラムデコーダ２０と結合され、プログラムデコーダ２０はアドレスを回転ＲＡＭ１８へ供給する。回転ＲＡＭ１８は、（ｎ×４）ビットのＲＡＭであり、回転回路１９と接続され、回転回路１９はデータをデータバス１０から取込みプロセッサ１２から受取ったコマンドに基づいてデータをシフトする。回転回路１９は、バレルシフタ回路またはデータをｎ個の位置だけシフトできる任意の他の種類の回路であり得る。ＲＡＭ１８用のデコーダ２０は、仮想ポートに対応する、回転ＲＡＭ１８内のワードを選択するようプログラミングされるべきである。さらに、プロセッサ１２が仮想ポートから読出を行なうのではなく仮想ポートに書込をおこなうときには回転の方向が逆にされるであろう。
【００１４】
この発明は、先行技術において達成されるよりもより柔軟なマイクロコントローラのピンの使用を可能にする。規格化された８ビットおよび１６ビットサイズのデータポートの使用を必要とするのではなく、この発明は、物理ポート内のデータピンのいずれも無駄にすることなくより幅の狭いデータに対処するため、物理ポート内で仮想ポートをカスタマイズすることを可能にする。さらにこの発明は、２つの隣接する物理ポートに重なる仮想ポートの創造を可能とし、これによって、マイクロコントローラのピンの使用におけるより大きな多様性が可能となる。
【図面の簡単な説明】
【図１】  この発明による、仮想ポートを規定するための構成回路の回路レベルでの概略図である。
【図２】  図１の回路の好ましい実施例の回路レベルでの概略図である。
【図３】  （Ａ）は、ビットの回転前の仮想ポートの図であり、（Ｂ）はビットの回転後の（Ａ）の仮想ポートの図である。
【図４】  仮想ポートが物理ポートに重なり、構成回路が回転回路を含む、この発明の実施例のブロックレベルでの概略図である。
【図５】  図１の構成回路のための入出力インターフェイス素子の回路レベルでの概略図である。
【図６】  図２の構成回路のための入出力インターフェイス素子の回路レベルでの概略図である。
【図７】  従来技術において公知のマイクロコントローラシステムの回路レベルでの概略図である。
【図８】  図５のシステム内の物理ポートのための回路の回路レベルでの概略図である。
【符号の説明】
１０  データバス、１５  クロック信号、１６  マルチプレクサ、２４  トライステートバッファ、２８  レジスタ、６７  入出力インターフェイス素子、６８  入出力パッド、４００〜４１５  プログラマブルイネーブル信号、５００〜５１５  クロックセレクト線。
【図１】
0004614501.tif 000002
【図２】
0004614501.tif 000003
【図３】
0004614501.tif 000004
【図４】
0004614501.tif 000005
【図５】
0004614501.tif 000006
【図６】
0004614501.tif 000007
【図７】
0004614501.tif 000008
【図８】
0004614501.tif 000009