(57)【要約】【課題】０番地以外の任意の番地からのスタートを、簡単に実行することができるプログラムカウンタ回路を提供する。【解決手段】マルチプレクサ５０は、選択信号ＣＭＸが”０”の時は第１入力端のデータ”０００００”をプリセットデータＰＣＩＮとして出力し、選択信号ＣＭＸが”１”の時は第２入力端のデータ”０８０００”を出力する。カウンタユニット５１−０〜５１−１９は各々２０ビットのカウンタを構成する同一構成のユニットであり、ハーフアダー５３と、１ビットのマルチプレクサ５４とディレイフリップフロップ５５から構成されている。そして、リセット信号ＲＥＳＥＴｎの立ち上がりにおいてデータＰＣＩＮがディレイフリップフロップ５５に読み込まれ、以後、クロックパルスＣＫのタイミングにおいてカウンタユニット５１−０〜５１−１９の出力が逐次インクリメントされる。【選択図】　　図１
2004015698.tif 000002
【特許請求の範囲】
【請求項１】
クロックパルスのタイミングにおいて出力データを順次インクリメントするカウンタと、
スタート番地として設定したデータまたはデータ「０」の一方を外部から供給される選択信号に基づいて選択する第１の選択手段と、
前記第１の選択手段の出力データを、リセット信号のタイミングにおいて前記カウンタにプリセットするプリセット手段と、
を具備することを特徴とするプログラムカウンタ回路。
【請求項２】
前記カウンタを、
入力データに「１」を加算する加算手段と、
リセット信号出力時に前記第１の選択手段の出力を選択し、リセット信号が出力されていない時は前記加算手段の出力を選択する第２の選択手段と、
前記第２の選択手段の出力をクロックパルスのタイミングにおいて読み込み、前記加算手段へ出力するフリップフロップと、
から構成したことを特徴とする請求項１に記載のプログラムカウンタ回路。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＤＳＰ（Ｄｉｇｉｔａｌ　Ｓｉｇｎａｌ　Ｐｒｏｃｅｓｓｏｒ）等において用いられるプログラムカウンタ回路に関する。
【０００２】
【従来の技術】
周知のように、ＤＳＰはプログラムカウンタに従って命令メモリ（ＩｎｓｔｒｕｃｔｉｏｎＭｅｍｏｒｙ）から命令を読み出し、読み出した命令を解読して各種の処理を行う。
【０００３】
【発明が解決しようとする課題】
ところで、従来、ＤＳＰのプログラムカウンタは０番地スタートとなっており、この結果、ＤＳＰのプログラムは、命令が書き込まれたＲＯＭ（リードオンリメモリ）の０番地からスタートするようになっていた。このため、例えば、ＲＡＭ（ランダムアクセスメモリ）に新しいプログラムを記憶させ、そのプログラムから処理をスタートさせたい場合も、予め、ＲＯＭのプログラム中にＲＡＭブートのステップを書き込んでおき、そのステップへ処理が移った時にＲＡＭアドレスへジャンプするようにする必要があった。図７に、上述した従来の処理の過程を示す。
しかしながら、このような処理は自由度が低く、ＲＡＭのプログラムからスタートする処理が極めてやりにくい欠点があった。
【０００４】
この発明は、このような事情を考慮してなされたもので、その目的は、０番地以外の任意の番地からのスタートを、ＲＯＭのプログラム中にＲＡＭブートのステップを書き込んでおくことなく、簡単に実行することができるプログラムカウンタ回路を提供することにある。
【０００５】
【課題を解決するための手段】
この発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、クロックパルスのタイミングにおいて出力データを順次インクリメントするカウンタと、スタート番地として設定したデータまたはデータ「０」の一方を外部から供給される選択信号に基づいて選択する第１の選択手段と、前記第１の選択手段の出力データを、リセット信号のタイミングにおいて前記カウンタにプリセットするプリセット手段とを具備することを特徴とするプログラムカウンタ回路である。
【０００６】
また、請求項２に記載の発明は、請求項１に記載のプログラムカウンタ回路において、前記カウンタを、入力データに「１」を加算する加算手段と、リセット信号出力時に前記第１の選択手段の出力を選択し、リセット信号が出力されていない時は前記加算手段の出力を選択する第２の選択手段と、前記第２の選択手段の出力をクロックパルスのタイミングにおいて読み込み、前記加算手段へ出力するフリップフロップとから構成したことを特徴とする。
【０００７】
【発明の実施の形態】
以下、図面を参照し、この発明の一実施の形態について説明する。図１は同実施の形態によるプログラムカウンタ回路の構成を示すブロック図、図２は同プログラムカウンタ回路を用いたオーディオデコーダチップ（ＬＳＩ）の構成を示すブロック図である。図２において、１１はＣＰＵ（中央処理装置）、１２はマイクロコンピュータインターフェイス、１３はコントロールレジスタである。１４は外部から入力されるアナログオーディオ信号をディジタル信号に変換するＡＤＣ（アナログ／ディジタルコンバータ）、１５はシリアルデータをパラレルデータに変換するシリアルデータインターフェイス、１６はディテクタである。１７は外部メモリコントローラ、１８はＳＲＡＭ（スタティックＲＡＭ）、１９はパラレルデータをシリアルデータに変換するシリアルデータアウト回路、２０はシリアルデータアウト回路から出力されるシリアルデータをアナログオーディオ信号に変換して出力するＤＡＣ（ディジタル／アナログコンバータ）である。
【０００８】
また、２１は各種の演算係数等が記憶されたデータＲＯＭ、２２は内部メモリコントローラ、２３はデータの一時記憶に使用されるデータＲＡＭである。２４はＤＳＰ、２５、２６は各々ＤＳＰ２４のプログラムが記憶された命令ＲＯＭおよび命令ＲＡＭである。また、２７は命令バス、２８はデータ（Ｘ）バス、２９はデータ（Ｙ）バスである。
【０００９】
図３は、ＤＳＰ２４の詳細を示すブロック図である。この図において、３０は命令メモリ、３１はデータメモリＸ、３２はデータメモリＹである。３３はプログラムコントロールユニット、３４はデータメモリ３１，３２のアドレス制御を行うデータメモリコントロールユニット、３５はバスコントロールユニット、３６はプログラムコントロールユニット３３から出力される命令に従って演算を行う演算ユニット、３７は補助演算ユニットである。
【００１０】
図４はプログラムコントロールユニット３３の詳細を示すブロック図である。この図において、４０はプログラムカウンタ回路、４１はプログラムカウンタ回路４０から出力されるアドレスに従って内部の命令が読み出される命令メモリである。なお、この命令メモリ４１は、図２の命令ＲＯＭ２５および命令ＲＡＭ２６を示している。図５はこの命令メモリ４１のマッピングを示す図であり、この図に示すように、アドレス”０００００”（１６進数）からアドレス”０５７ＦＦ”までが命令ＲＯＭ２５に割り当てられ、アドレス”０８０００”からアドレス”０９７ＦＦ”までが命令ＲＡＭ２６に割り当てられている。なお、アドレス”０５８００”〜”０７ＦＦＦ”およびアドレス”０９８００”〜”ＦＦＦＦＦ”は現在使用していないアドレスである。
【００１１】
４２は命令メモリ４１から読み出された命令が一時記憶される命令フェッチレジスタ、４３は命令フェッチレジスタ４２の命令を解読する命令デコーダである。４４は命令デコーダ４３の指示を受けて分岐処理および割込処理を行うためのコントローラ、４５、４６は分岐処理に使用されるプログラムスタックポインタおよびプログラムスタック、４７は割込処理のためのインタラプトベクタである。また、４９は命令デコーダ４３の指示を受けてループ処理を行うためのコントローラ、６０はループスタックポインタ、６１はループ開始アドレスレジスタ、６２はループ終了アドレスレジスタ、６３はループカウンタである。
【００１２】
次に、図１を参照しプログラムカウンタ回路４０の詳細を説明する。同図において、５０は２０ビットのマルチプレクサであり、図２のＣＰＵ１１から出力される選択信号ＣＭＸが”０”の時は第１入力端のデータ”０００００”をプリセットデータＰＣＩＮとして出力し、選択信号ＣＭＸが”１”の時は第２入力端のデータ”０８０００”をプリセットデータＰＣＩＮとして出力する。５１−０〜５１−１９は各々２０ビットのカウンタユニットであり、ハーフアダー５３と、１ビットのマルチプレクサ５４とディレイフリップフロップ５５から構成されている。
【００１３】
この場合、カウンタユニット５１−０のハーフアダー５３のキャリーイン端子は正電源に接続され、キャリーアウト端子は次のカウンタユニット５１−１のハーフアダー５３のキャリーイン端子に接続され、出力端がマルチプレクサ５４の第２入力端に接続され、入力端がディレイフリップフロップ５５の出力端に接続されている。また、マルチプレクサ５４の第１入力端はマルチプレクサ５０の出力端に接続され、その出力端がディレイフリップフロップ５５のデータ端子に接続されている。そして、カウンタユニット５１−０〜５１−１９の出力がアドレスデータＡＤとして命令フェッチレジスタ４１（図４）に出力される。
【００１４】
５６は非同期のリセット信号ＲＳＴｎをクロックパルスＣＫに同期したリセット信号ＲＥＳＥＴｎに変換するディレイフリップフロップであり、その出力はマルチプレクサ５４の選択端子に供給されている。
【００１５】
図６は上述したプログラムカウンタ回路４０の各部の動作を示すタイミングチャートである。いま、時刻ｔ１においてリセット信号ＲＳＴｎが”Ｌｏｗ”に立ち下がると、同時に、リセット信号ＲＥＳＥＴｎも”Ｌｏｗ”に立ち下がる。リセット信号ＲＥＳＥＴｎが”Ｌｏｗ”に立ち下がると、マルチプレクサ５４がマルチプレクサ５０の出力データＰＣＩＮ（図６の（ニ））を選択し、ディレイフリップフロップ５５の入力端へ出力する。いま、選択信号ＣＭＸが”１”であったとすると、データ”０８０００”がマルチプレクサ５４を介してディレイフリップフロップ５５の入力端へ印加される。また、リセット信号ＲＳＴｎが”Ｌｏｗ”に立ち下がり、ディレイフリップフロップ５５がリセットされると、アドレスデータＡＤが「０」となる（図６の（ホ）参照）。
【００１６】
次に、時刻ｔ２においてリセット信号ＲＳＴｎが”Ｈｉｇｈ”に立ち上がると、次のクロックパルスＣＫの立ち上がり時刻ｔ３においてリセット信号ＲＥＳＥＴｎが”Ｈｉｇｈ”に立ち上がる。時刻ｔ３において、クロックパルスＣＫの立ち上がりで、マルチプレクサ５４の出力データ”０８０００”がディレイフリップフロップ５５に読み込まれ、アドレスデータＡＤとして出力される。また、リセット信号ＲＥＳＥＴｎが”Ｈｉｇｈ”に立ち上がると、マルチプレクサ５４がハーフアダー５３の出力を選択し、ディレイフリップフロップ５５へ出力する。これにより、以後、クロックパルスＣＫが立ち上がる毎にアドレスデータＡＤがインクリメントされ、この結果、アドレスデータＡＤが”０８０００”、”０８００１”、”０８００２”・・・と変化する（図６（ホ）参照）。これにより、図５に示すように、命令ＲＡＭ２６内の命令が順次読み出される。
【００１７】
また、プリセットデータＰＣＩＮが”０００００”の時、リセット信号ＲＥＳＥＴｎが立ち上がると、アドレスデータＡＤとして”０００００”が出力され、以後、そのアドレスデータＡＤをクロックパルスＣＫの立ち上がりタイミングにおいて順次インクリメントされる。これにより、命令ＲＯＭ２５内の命令が順次読み出される。
【００１８】
上述したように、上記プログラムカウンタ回路４０は、プリセットデータＰＣＩＮが”０８０００”の時、リセット信号ＲＥＳＥＴｎが立ち上がると、アドレスデータＡＤとして”０８０００”を出力し、以後、そのアドレスデータＡＤをクロックパルスＣＫの立ち上がりタイミングにおいて順次インクリメントする。すなわち、このプログラムカウンタ回路４０は、マルチプレクサ５０の第２入力端へ印加するデータからアドレスデータＡＤを開始することができ、したがって、マルチプレクサ５０の第２入力端へ印加するデータとして希望するアドレスを設定すれば、そのアドレスからプログラムを開始することができる。
なお、マルチプレクサ５０はＤＳＰ２４内ではなく、コントロールレジスタ１３内に設けてもよい。
【００１９】
【発明の効果】
以上説明したように、この発明によれば、クロックパルスのタイミングにおいて出力データを順次インクリメントするカウンタと、スタート番地として設定したデータまたはデータ「０」の一方を外部から供給される選択信号に基づいて選択する第１の選択手段と、前記第１の選択手段の出力データを、リセット信号のタイミングにおいて前記カウンタにプリセットするプリセット手段とを設けたので、０番地以外の任意の番地からのスタートを、ＲＯＭのプログラム中にＲＡＭブートのステップを書き込んでおくことなく、簡単に実行することができる効果が得られる。
【図面の簡単な説明】
【図１】この発明の一実施形態によるプログラムカウンタ回路の構成を示すブロック図である。
【図２】同プログラムカウンタ回路を用いたオーディオデコーダチップの構成を示すブロック図である。
【図３】図２におけるＤＳＰ２４の詳細を示すブロック図である。
【図４】図３におけるプログラムコントロールユニット３３の詳細を示すブロック図である。
【図５】図４における命令メモリ４１のメモリマッピングを示す図である。
【図６】図１に示すプログラムカウンタ回路の動作を説明するためのタイミングチャートである。
【図７】従来のプログラムカウンタ回路の一例を説明するためのフローチャートである。
【符号の説明】
２４…ＤＳＰ、３３…プログラムコントロールユニット、４０…プログラムカウンタ回路、４１…命令メモリ、５０…マルチプレクサ、５１−０〜５１−１９…カウンタユニット、５３…ハーフアダー、５４…マルチプレクサ、５５、５６…ディレイフリップフロップ。
【図１】
2004015698.tif 000003
【図２】
2004015698.tif 000004
【図３】
2004015698.tif 000005
【図４】
2004015698.tif 000006
【図５】
2004015698.tif 000007
【図６】
2004015698.tif 000008
【図７】
2004015698.tif 000009