(57)【要約】【課題】  データバスと同一データ幅のレジスタを有するＩＰマクロのテストパターンを流用して、データバスより大きいデータ幅のレジスタを有するＩＰマクロをテストする。【解決手段】  ＣＰＵは、タイマにおけるカウンタの上位側及び下位側の双方へのライトアクセスが必要な場合に下位側を最後にアクセスし、上位側及び下位側の双方へのリードアクセスが必要な場合に下位側を最初にアクセスする。タイマは、上位側ライトアクセス時にデータバスのデータをライトバッファに格納し、下位側ライトアクセス時にデータバスのデータを下位側にライトすると共にライトバッファのデータを上位側にライトする。タイマは、下位側リードアクセス時に下位側データをリードしてデータバスに出力すると共に上位側データをリードしてリードバッファに格納し、上位側リードアクセス時にリードバッファのデータをデータバスに出力する。【選択図】    図１
2006277025.tif 000002
【特許請求の範囲】
【請求項１】
データバスと、
前記データバスと同一のデータ幅でアクセス動作するバスマスタと、
前記データバスより大きいデータ幅を有し、下位側が前記データバスに接続されるレジスタと、前記レジスタの上位側へのライトデータを格納するライトバッファと、前記レジスタの上位側からのリードデータを格納するリードバッファとを有するマクロブロックとを備え、
前記バスマスタは、前記レジスタの上位側および下位側の双方へのライトアクセスが必要である場合に前記レジスタの下位側を最後にアクセスし、前記レジスタの上位側および下位側の双方へのリードアクセスが必要である場合に前記レジスタの下位側を最初にアクセスし、
前記マクロブロックは、
前記バスマスタによる前記レジスタの上位側へのライトアクセスに応答して前記データバスのデータを前記ライトバッファに格納し、前記バスマスタによる前記レジスタの下位側へのライトアクセスに応答して、前記データバスのデータを前記レジスタの下位側にライトするとともに、前記ライトバッファのデータを前記レジスタの上位側にライトし、
前記バスマスタによる前記レジスタの下位側へのリードアクセスに応答して、前記レジスタの下位側のデータをリードして前記データバスに出力するとともに、前記レジスタの上位側のデータをリードして前記リードバッファに格納し、前記レジスタの上位側へのリードアクセスに応答して前記リードバッファのデータを前記データバスに出力することを特徴とする半導体集積回路。
【請求項２】
請求項１記載の半導体集積回路において、
前記マクロブロックは、前記ライトバッファおよび前記リードバッファの双方として機能する兼用バッファを備えていることを特徴とする半導体集積回路。
【請求項３】
請求項１記載の半導体集積回路において、
前記マクロブロックは、
複数の前記レジスタと、
前記複数のレジスタに共通してそれぞれ設けられる前記ライトバッファおよび前記リードバッファとを備えていることを特徴とする半導体集積回路。
【請求項４】
請求項３記載の半導体集積回路において、
前記マクロブロックは、前記ライトバッファおよび前記リードバッファの双方として機能する兼用バッファを備えていることを特徴とする半導体集積回路。
【請求項５】
請求項１記載の半導体集積回路において、
前記マクロブロックは、
前記バスマスタによる前記レジスタの上位側へのライトアクセスの有無を示す第１記憶回路と、
論理１または論理０のいずれかを示す第２記憶回路と、
前記第１記憶回路がライトアクセス有りを示す場合、前記ライトバッファのデータを選択して出力し、前記第１記憶回路がライトアクセス無しを示す場合、前記第２記憶回路が示す論理に応じて全ビットが論理１を示す第１予約データまたは全ビットが論理０を示す第２予約データのいずれかを選択して前記ライトバッファのデータとして出力する選択回路とを備えていることを特徴とする半導体集積回路。
【請求項６】
請求項５記載の半導体集積回路において、
前記第２記憶回路は、前記バスマスタによりアクセスされるレジスタであることを特徴とする半導体集積回路。
【請求項７】
請求項１記載の半導体集積回路において、
前記マクロブロックは、
カウンタとして機能する前記レジスタと、
前記バスマスタによる前記レジスタの上位側へのライトアクセスの有無を示す第１記憶回路と、
前記レジスタのカウント方向を示す第２記憶回路と、
前記第１記憶回路がライトアクセス有りを示す場合、前記ライトバッファのデータを選択して出力し、前記第１記憶回路がライトアクセス無しを示す場合、前記第２記憶回路が示すカウント方向に応じて全ビットが論理１を示す第１予約データまたは全ビットが論理０を示す第２予約データのいずれかを選択して前記ライトバッファのデータとして出力する選択回路とを備えていることを特徴とする半導体集積回路。
【請求項８】
請求項７記載の半導体集積回路において、
前記選択回路は、前記第１記憶回路がライトアクセス無しを示す場合、第２記憶回路がアップカウントを示すときに前記第１予約データを選択し、第２記憶回路がダウンカウントを示すときに前記第２予約データを選択することを特徴とする半導体集積回路。
【請求項９】
請求項５または請求項７記載の半導体集積回路において、
前記第１記憶回路は、前記バスマスタによる前記レジスタの上位側へのアクセス時にライトアクセス有りを示す状態に遷移し、前記バスマスタによる前記レジスタの下位側へのアクセス時にライトアクセス無しを示す状態に遷移することを特徴とする半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路に関し、特に、システムＬＳＩ等の設計効率を向上させるために再利用されるＩＰマクロ（ＩＰ：Intellectual Property）に関する。
【背景技術】
【０００２】
近時、システムＬＳＩの高速化および高性能化に対応するために、ＣＰＵの多ビット化が進んでいる。例えば、ＣＰＵのデータ入出力を８ビットから１６ビットに拡張する場合には、データバスも８ビットから１６ビットに変更される。一方、内部レジスタを８ビットから１６ビットに拡張したＩＰマクロに対しては、再利用性を高めるために、１６ビットデータバスのみならず８ビットデータバスにも接続可能であることが要求される。
【０００３】
例えば、ＩＰマクロ（タイマなど）内のカウンタを８ビットから１６ビットに拡張する場合について説明する。８ビットＣＰＵが８ビットデータバスを介して１６ビットカウンタのカウンタ値を取得するためには、８ビットＣＰＵが１６ビットカウンタの上位側および下位側の双方にアクセスする必要があるが、１６ビットカウンタの上位側および下位側のデータ（共に８ビット）が別々のタイミングでリードされると、８ビットＣＰＵは１６ビットカウンタのカウンタ値を正しく取得できない。この問題を解決するために、ＩＰマクロ内に１６ビットバッファを設け、カウント動作中の１６ビットカウンタにおける上位側および下位側の双方のデータを同時に１６ビットバッファへ一旦格納し、１６ビットバッファから８ビットずつデータをリードする手法が一般的に適用されている。８ビットＣＰＵが８ビットデータバスを介して１６ビットカウンタのカウンタ値を設定する場合についても、同様の手法が適用されている。
【０００４】
また、特許文献１には、ＣＰＵのデータバスより大きいデータ幅を有するメモリに対して、テストサイクル数を増大させることなくテストできるメモリテスト回路が開示されている。
【特許文献１】特開２００４−２８０９２４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
前述の手法では、１６ビットカウンタからのリードデータあるいは１６ビットカウンタへのライトデータが１６ビットバッファに一旦格納されるため、動作タイミングが１６ビット拡張前のＩＰマクロ（すなわち、８ビットカウンタを有するＩＰマクロ）と同一にならない場合がある。このため、１６ビット拡張前のＩＰマクロに対するテストパターンを、１６ビット拡張後のＩＰマクロに対して流用することができない。この結果、１６ビット拡張後のＩＰマクロ用にテストパターンを再作成しなければならない。また、前述の手法では、１６ビットカウンタの下位側へのアクセスのみが必要である場合にも、必ず１６ビットカウンタの上位側および下位側の双方にアクセスしなければならないため、時間的な無駄が生じてしまう。
【０００６】
本発明の目的は、データバスと同一データ幅の内部レジスタを有するＩＰマクロのテストパターンを変更することなく流用して、データバスより大きいデータ幅の内部レジスタを有するＩＰマクロをテストすることにある。
【課題を解決するための手段】
【０００７】
本発明の半導体集積回路の一形態では、バスマスタは、データバスと同一のデータ幅でアクセス動作する。マクロブロックのレジスタは、データバスのデータ幅より大きいデータ幅を有する。レジスタの下位側は、データバスに接続される。マクロブロックのライトバッファは、レジスタの上位側へのライトデータを格納する。マクロブロックのリードバッファは、レジスタの下位側からのリードデータを格納する。バスマスタは、レジスタの上位側および下位側の双方へのライトアクセスが必要である場合にレジスタの下位側を最後にアクセスし、レジスタの上位側および下位側の双方へのリードアクセスが必要である場合にレジスタの下位側を最初にアクセスする。マクロブロックは、バスマスタによるレジスタの上位側へのライトアクセスに応答してデータバスのデータをライトバッファに格納する。マクロブロックは、バスマスタによるレジスタの下位側へのライトアクセスに応答して、データバスのデータをレジスタの下位側にライトするとともに、ライトバッファのデータをレジスタの上位側にライトする。バスマスタは、レジスタの上位側および下位側の双方へのライトアクセスが必要である場合、レジスタの上位側にアクセスした後に下位側にアクセスするため、データバスのデータ幅より大きいデータをレジスタに同一タイミングでライトできる。また、マクロブロックは、バスマスタによるレジスタの下位側へのリードアクセスに応答して、レジスタの下位側のデータをリードしてデータバスに出力するとともに、レジスタの上位側のデータをリードしてリードバッファに格納する。マクロブロックは、レジスタの上位側へのリードアクセスに応答してリードバッファのデータをデータバスに出力する。バスマスタは、レジスタの上位側および下位側の双方へのリードアクセスが必要である場合、レジスタの下位側にアクセスした後に上位側にアクセスするため、レジスタから同一タイミングでリードされたデータ（データバスのデータ幅より大きい）を取得できる。
【０００８】
以上のような構成の半導体集積回路では、レジスタの下位側がデータバスに直接接続されているため、バスマスタによるレジスタの下位側のみへのアクセスを、データバスと同一データ幅のレジスタを有するマクロブロックと同一のタイミングで実施できる。従って、データバスと同一データ幅のレジスタを有するマクロブロックに対する既存のテストパターンをそのまま流用して、データバスより大きいデータ幅のレジスタを有するマクロブロックをテストできる。すなわち、データバスと同一データ幅のレジスタを有するマクロブロックと、データバスより大きいデータ幅のレジスタを有するマクロブロックとでテストパターンを共通化できる。また、レジスタの下位側のみへのアクセスが必要な場合に、レジスタの上位側および下位側の双方にアクセスする必要はないため、時間的な無駄を省くことができる。
【０００９】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックの兼用バッファは、ライトバッファおよびリードバッファの双方として機能する。すなわち、兼用バッファは、バスマスタによるレジスタへのライトアクセス時にライトバッファとして機能し、バスマスタによるレジスタへのリードアクセス時にリードバッファとして機能する。このため、ライトバッファおよびリードバッファをそれぞれ設ける場合に比べて、マクロブロックの回路規模を低減できる。なお、バスマスタによるライトアクセスとリードアクセスとが同時に発生することはないため、ライトバッファおよびリードバッファに代えて兼用バッファを設けても、バスマスタによるレジスタへのアクセス動作に影響はない。
【００１０】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックは、複数のレジスタを有する。マクロブロックのライトバッファは、複数のレジスタに共通して設けられる。同様に、マクロブロックのリードバッファは、複数のレジスタに共通して設けられる。例えば、マクロブロックが２本のレジスタＡ、Ｂを有する場合、ライトバッファは、バスマスタによるレジスタＡへのライトアクセス時にレジスタＡに対応するライトバッファとして機能し、バスマスタによるレジスタＢへのライトアクセス時にレジスタＢに対応するライトバッファとして機能する。同様に、リードバッファは、バスマスタによるレジスタＡへのリードアクセス時にレジスタＡに対応するリードバッファとして機能し、バスマスタによるレジスタＢへのリードアクセス時にレジスタＢに対応するリードバッファとして機能する。このため、レジスタＡ、Ｂ毎にライトバッファおよびリードバッファをそれぞれ設ける場合に比べて、マクロブロックの回路規模を低減できる。なお、バスマスタによるレジスタＡへのアクセスとレジスタＢへのアクセスとが同時に発生することはないため、２本のレジスタＡ、Ｂに共通してライトバッファおよびリードバッファをそれぞれ設けても、バスマスタによる各レジスタＡ、Ｂへのアクセス動作に影響はない。
【００１１】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックの兼用バッファは、複数のレジスタに共通してそれぞれ設けられるライトバッファおよびリードバッファの双方として機能する。すなわち、兼用バッファは、バスマスタによる複数のレジスタのいずれかへのライトアクセス時にアクセス対象のレジスタに対応するライトバッファとして機能し、バスマスタによる複数のレジスタのいずれかへのリードアクセス時にアクセス対象のレジスタに対応するリードバッファとして機能する。このため、複数のレジスタに共通してライトバッファおよびリードバッファをそれぞれ設ける場合に比べて、マクロブロックの回路規模を低減できる。なお、バスマスタによるライトアクセスとリードアクセスとが同時に発生することはないため、複数のレジスタに共通してそれぞれ設けられるライトバッファおよびリードバッファに代えて兼用バッファを設けても、バスマスタによる各レジスタへのアクセス動作に影響はない。
【００１２】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックの第１記憶回路は、バスマスタによるレジスタの上位側へのライトアクセスの有無を示す。マクロブロックの第２記憶回路は、論理１または論理０のいずれかを示す。マクロブロックの選択回路は、第１記憶回路がライトアクセス有りを示す場合、ライトバッファのデータを選択して出力する。選択回路は、第１記憶回路がライトアクセス無しを示す場合、第２記憶回路が示す論理に応じて全ビットが論理１を示す第１予約データまたは全ビットが論理０を示す第２予約データのいずれかを選択してライトバッファのデータとして出力する。このため、バスマスタがレジスタの上位側にはライトアクセスせず、レジスタの下位側のみにライトアクセスする場合に、レジスタの上位側にライトされるデータを確定させることができる。従って、マクロブロックに所望の動作を実施させるテストにおいて、テストの実施毎にレジスタの上位側にライトされるデータが異なることを回避でき、マクロブロックに所望の動作を確実に毎回実施させることができる。
【００１３】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックの第２記憶回路は、バスマスタによりアクセスされるレジスタである。このため、第２記憶回路が示す論理をバスマスタのライトアクセスにより設定できる。従って、バスマスタがレジスタの上位側にはライトアクセスせず、レジスタの下位側のみにライトアクセスする場合にレジスタの上位側にライトされるデータを、レジスタの種別や用途に合わせて変更できる。
【００１４】
本発明の半導体集積回路の前記一形態における好ましい例では、マクロブロックのレジスタは、カウンタとして機能する。マクロブロックの第１記憶回路は、バスマスタによるレジスタの上位側へのライトアクセスの有無を示す。マクロブロックの第２記憶回路は、レジスタ（すなわち、カウンタ）のカウント方向を示す。マクロブロックの選択回路は、第１記憶回路がライトアクセス有りを示す場合、ライトバッファのデータを選択して出力する。選択回路は、第１記憶回路がライトアクセス無しを示す場合、第２記憶回路が示すカウント方向に応じて全ビットが論理１を示す第１予約データまたは全ビットが論理０を示す第２予約データのいずれかを選択してライトバッファのデータとして出力する。例えば、マクロブロックの選択回路は、第１記憶回路がライトアクセス無しを示す場合、第２記憶回路がアップカウントを示すときに第１予約データを選択し、第２記憶回路がダウンカウントを示すときに第２予約データを選択する。
【００１５】
このため、バスマスタがカウンタの上位側にはライトアクセスせず、カウンタの下位側のみにライトアクセスする場合、カウンタのアップカウント時に第１予約データがカウンタの上位側にライトされ、カウンタのダウンカウント時に第２予約データがカウンタの上位側にライトされる。これにより、データバスより大きいデータ幅のカウンタを、データバスと同一のデータ幅のカウンタと等価に動作させることができる。従って、レジスタがカウンタとして機能する場合にも、既存のテストパターンを変更することなく流用できる。
【００１６】
本発明の半導体集積回路の前記一形態における好ましい例では、第１記憶回路は、バスマスタによるレジスタの上位側へのアクセス時にライトアクセス有りを示す状態に遷移し、バスマスタによるレジスタの下位側へのアクセス時にライトアクセス無しを示す状態に遷移する。これにより、バスマスタがレジスタの上位側にはライトアクセスせず、レジスタの下位側のみにライトアクセスする場合に、ライトバッファのデータがレジスタの上位側に誤ってライトされることを確実に防止できる。
【発明の効果】
【００１７】
本発明の半導体集積回路では、データバスのデータ幅より大きいデータ幅のレジスタを有するマクロブロックを、データバスと同一のデータ幅のレジスタを有するマクロブロックのテストパターンを変更することなく流用してテストできる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を用いて本発明の実施形態を説明する。図１は、本発明の第１実施形態を示している。システムＬＳＩ１０（半導体集積回路）は、８ビットのデータ入出力を有するＣＰＵ１２（バスマスタ）、タイマ１４（マクロブロック）および８ビットデータバスＤＢを有している。データバスＤＢは、ＣＰＵ１２およびタイマ１４を相互に接続し、これらの間でのデータ授受を可能にする。
【００１９】
ＣＰＵ１２は、タイマ１４の１６ビットアップダウンカウンタＣＮＴｎ（ｎ＝１、２）の上位側（８ビット）にライトアクセスするときに、アドレス信号ＡＤをカウンタＣＮＴｎの上位側に割り当てられたアドレスを示すレベルに設定するとともに、ライト信号ＷＲＨを活性化させる。また、ＣＰＵ１２は、タイマ１４のカウンタＣＮＴｎの下位側（８ビット）にライトアクセスするときに、アドレス信号ＡＤをカウンタＣＮＴｎの下位側に割り当てられたアドレスを示すレベルに設定するとともに、ライト信号ＷＲＬを活性化させる。ＣＰＵ１２は、ライト信号ＷＲＨまたはライト信号ＷＲＬの活性化中、所望のライトデータをデータバスＤＢに出力する。
【００２０】
ＣＰＵ１２は、タイマ１４のカウンタＣＮＴｎの上位側にリードアクセスするときに、アドレス信号ＡＤをカウンタＣＮＴｎの上位側のアドレスを示すレベルに設定するとともに、リード信号ＲＤＨを活性化させる。また、ＣＰＵ１２は、タイマ１４のカウンタＣＮＴｎの下位側にリードアクセスするときに、アドレス信号ＡＤをカウンタＣＮＴｎの下位側のアドレスを示すレベルに設定するとともに、リード信号ＲＤＬを活性化させる。ＣＰＵ１２は、リード信号ＲＤＨまたはリード信号ＲＤＬの活性化中、データバスＤＢのデータ（すなわち、タイマ１４から出力されたリードデータ）を取り込む。
【００２１】
ＣＰＵ１２は、タイマ１４のカウンタＣＮＴｎの上位側および下位側の双方にライトアクセスする必要がある場合（すなわち、カウンタＣＮＴｎへの１６ビットライトアクセスが必要である場合）、上位側にアクセスした後に下位側にアクセスする。また、ＣＰＵ１２は、タイマ１４のカウンタＣＮＴｎの上位側および下位側の双方にリードアクセスする必要がある場合（すなわち、カウンタＣＮＴｎへの１６ビットリードアクセスが必要である場合）、下位側にアクセスした後に上位側にアクセスする。
【００２２】
タイマ１４は、ライトバッファＷＢｎ、バッファステータスフラグＢＳＦｎ（第１記憶回路）、カウント方向フラグＣＤＦｎ（第２記憶回路）、セレクタ回路ＳＥＬｎ（選択回路）、１６ビットアップダウンカウンタＣＮＴｎおよびリードバッファＲＢｎを有している。ライトバッファＷＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの上位側のアドレスを示し、かつライト信号ＷＲＨが活性化されているときに、データバスＤＢのデータ（すなわち、ＣＰＵ１２から出力されたライトデータ）を取り込み、取り込んだデータをセレクタ回路ＳＥＬｎに出力する。
【００２３】
バッファステータスフラグＢＳＦｎは、アドレス信号ＡＤがカウンタＣＮＴｎの上位側のアドレスを示し、かつライト信号ＷＲＨが活性化されているときに、セットされる。換言すれば、バッファステータスフラグＢＳＦｎは、ＣＰＵ１２によるカウンタＣＮＴｎの上位側へのライトアクセス（ライトバッファＷＢｎによるデータ取り込み）に応答してセットされる。また、バッファステータスフラグＢＳＦｎは、アドレス信号ＡＤがカウンタＣＮＴｎの下位側のアドレスを示し、かつライト信号ＷＲＬが活性化されているときに、リセットされる。換言すれば、バッファステータスフラグＢＳＦｎは、ＣＰＵ１２によるカウンタＣＮＴｎの下位側へのライトアクセス（カウンタＣＮＴｎのデータ取り込み）に応答してリセットされる。従って、バッファステータスフラグＢＳＦｎは、ＣＰＵ１２によるカウンタＣＮＴｎの上位側へのライトアクセスの有無を示す。
【００２４】
カウント方向フラグＣＤＦｎは、カウンタＣＮＴｎのアップカウント時にセットされる。また、カウント方向フラグＣＤＦｎは、カウンタＣＮＴｎのダウンカウント時にリセットされる。従って、カウント方向フラグＣＤＦｎは、カウンタＣＮＴｎのカウント方向を示す。セレクタ回路ＳＥＬｎは、バッファステータスフラグＢＳＦｎおよびカウント方向フラグＣＤＦｎのセット・リセット状態に応じて、カウンタＣＮＴｎ（上位側）に出力すべきデータを選択する。セレクタ回路ＳＥＬｎの詳細については、図２で説明する。
【００２５】
カウンタＣＮＴｎは、内部ライト信号ＷＲｎの活性化中に、セレクタ回路ＳＥＬｎから出力されるデータを上位側に取り込むとともに、データバスＤＢのデータ（すなわち、ＣＰＵ１２から出力されたライトデータ）を下位側に取り込む。なお、内部ライト信号ＷＲｎは、アドレス信号ＡＤがカウンタＣＮＴｎの下位側のアドレスを示し、かつライト信号ＷＲＬが活性化されているときに、活性化される。また、カウンタＣＮＴｎは、内部リード信号ＲＤｎの活性化中に、上位側のデータをリードバッファＲＤｎに出力するとともに、下位側のデータをデータバスＤＢに出力する。なお、内部リード信号ＲＤｎは、アドレス信号ＡＤがカウンタＣＮＴｎの下位側のアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、活性化される。
【００２６】
リードバッファＲＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの下位側のアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、カウンタＣＮＴｎの下位側から出力されるデータを取り込む。リードバッファＲＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの上位側のアドレスを示し、かつリード信号ＲＤＨが活性化されているときに、取り込んだデータをデータバスＤＢに出力する。
【００２７】
図２は、第１実施形態におけるセレクタ回路ＳＥＬｎの詳細を示している。セレクタ回路ＳＥＬｎは、セレクタＳ１、Ｓ２を有している。セレクタＳ１は、カウント方向フラグＣＤＦｎがセットされているとき（すなわち、カウンタＣＮＴｎのカウント方向がアップカウントであるとき）、８ビットデータＡＬＬ１（第１予約データ）を選択して出力する。データＡＬＬ１は、全ビットが”論理１”を示すデータである。また、セレクタＳ１は、カウント方向フラグＣＤＦ１がリセットされているとき（すなわち、カウンタＣＮＴｎのカウント方向がダウンカウントであるとき）、８ビットデータＡＬＬ０（第２予約データ）を選択して出力する。データＡＬＬ０は、全ビットが”論理０”を示すデータである。セレクタＳ２は、バッファステータスフラグＢＳＦｎがセットされているとき、ライトバッファＷＢｎの出力データを選択してカウンタＣＮＴｎに出力する。セレクタＳ２は、バッファステータスフラグＢＳＦｎがリセットされているとき、セレクタＳ１の出力データ（データＡＬＬ１、ＡＬＬ０のいずれか）を選択してカウンタＣＮＴｎに出力する。
【００２８】
図３は、第１実施形態におけるアクセス動作の一例を示している。図中、クロックＣＫは、システムＬＳＩ１０の動作クロックを示している。すなわち、ＣＰＵ１２およびタイマ１４は、クロックＣＫに同期して動作する。なお、この例は、ＣＰＵ１２によるカウンタＣＮＴ１へのアクセス動作を示しているが、ＣＰＵ１２によるカウンタＣＮＴ２へのアクセス動作もカウンタＣＮＴ１へのアクセス動作と同様である。
【００２９】
ＣＰＵ１２は、カウンタＣＮＴ１に１６ビットライトアクセスするために、まず、アドレス信号ＡＤをカウンタＣＮＴ１の上位側のアドレスＡ１を示すレベルに設定するとともにライト信号ＷＲＨを活性化させ、さらにライトデータＤ１をデータバスＤＢに出力する（図３（ａ）、（ｂ）、（ｃ））。これにより、ライトバッファＷＢ１は、データバスＤＢのデータＤ１を取り込む（図３（ｄ））。このとき、バッファステータスフラグＢＳＦ１がセットされる。すなわち、セレクタ回路ＳＥＬ１は、ライトバッファＷＢ１から出力されるデータＤ１を選択してカウンタＣＮＴ１の上位側に出力する。
【００３０】
そして、ＣＰＵ１２は、アドレス信号ＡＤをカウンタＣＮＴ１の下位側のアドレスＡ０を示すレベルに設定するとともにライト信号ＷＲＬを活性化させ、さらにライトデータＤ０をデータバスＤＢに出力する（図３（ｅ）、（ｆ）、（ｇ））。このとき、内部ライト信号ＷＲ１が活性化される（図３（ｈ））。従って、カウンタＣＮＴ１は、セレクタ回路ＳＥＬ１から出力されるデータＤ１を上位側に取り込むとともに、データバスＤＢのデータＤ０を下位側に取り込む（図３（ｉ）、（ｊ））。このように、８ビットデータＤ０、Ｄ１からなる１６ビットデータをカウンタＣＮＴ１に同一タイミングでライトさせることができる。
【００３１】
次に、ＣＰＵ１２は、カウンタＣＮＴ１に１６ビットリードアクセスするために、アドレス信号ＡＤをカウンタＣＮＴ１の下位側のアドレスＡ０を示すレベルに設定するとともにリード信号ＲＤＬを活性化させる（図３（ｋ）、（ｌ））。このとき、内部リード信号ＲＤ１が活性化される（図３（ｍ））。従って、カウンタＣＮＴ１は、下位側のデータＤ０をリードデータとしてデータバスＤＢに出力する（図３（ｎ））。これと同時に、カウンタＣＮＴ１は上位側のデータＤ１をリードバッファＲＢ１に出力し、リードバッファＲＢ１はカウンタＣＮＴ１の上位側のデータＤ１を取り込む（図３（ｏ））。
【００３２】
そして、ＣＰＵ１２は、アドレス信号ＡＤをカウンタＣＮＴ１の上位側のアドレスＡ１を示すレベルに設定するとともに、リード信号ＲＤＨを活性化させる（図３（ｐ）、（ｑ））。これにより、リードバッファＲＢ１は、取り込んだデータＤ１をリードデータとしてデータバスＤＢに出力する（図３（ｒ））。ＣＰＵ１２は、データバスＤＢから８ビットデータＤ０、Ｄ１を順次取得することで、カウンタＣＮＴ１から同一タイミングでリードされた１６ビットデータを取得できる。
【００３３】
以上のような第１実施形態では、カウンタＣＮＴｎの下位側がデータバスＤＢに直接接続されているため、ＣＰＵ１２によるカウンタＣＮＴｎの下位側のみへのアクセスを、データバスＤＢと同一データ幅のカウンタ（すなわち、８ビットカウンタ）を有するタイマと同一のタイミングで実施できる。また、ＣＰＵ１２がカウンタＣＮＴｎの下位側のみにライトアクセスする場合、カウンタＣＮＴｎのアップカウント時にデータＡＬＬ１がカウンタＣＮＴｎの上位側にライトされ、カウンタＣＮＴｎのダウンカウント時にデータＡＬＬ０がカウンタＣＮＴｎの上位側にライトされるため、１６ビットカウンタＣＮＴｎを８ビットカウンタと等価に動作させることができる。従って、８ビットカウンタを有するタイマに対する既存のテストパターンを変更することなく流用してタイマ１４をテストできる。また、カウンタＣＮＴｎの下位側のみへのアクセスが必要である場合に、カウンタＣＮＴｎの上位側および下位側の双方にアクセスする必要はないため、アクセス時間の無駄な増加を回避できる。
【００３４】
図４は、本発明の第２実施形態を示している。第２実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明を省略する。システムＬＳＩ２０は、第１実施形態（図１）のタイマ１４に代えてタイマ２４を有していることを除いて、第１実施形態のシステムＬＳＩ１０と同一である。タイマ２４は、第１実施形態のライトバッファＷＢｎおよびリードバッファＲＢｎに代えてリードライトバッファＲＷＢｎ（兼用バッファ）を有していることを除いて、タイマ１４と同一である。
【００３５】
リードライトバッファＲＷＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの上位側のアドレスを示し、かつライト信号ＷＲＨが活性化されているときに、データバスＤＢのデータを取り込み、取り込んだデータをセレクタ回路ＳＥＬｎに出力する。リードライトバッファＲＷＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの下位側のアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、カウンタＣＮＴｎの下位側から出力されるデータを取り込む。リードライトバッファＲＷＢｎは、アドレス信号ＡＤがカウンタＣＮＴｎの上位側のアドレスを示し、かつリード信号ＲＤＨが活性化されているときに、取り込んだデータをデータバスＤＢに出力する。すなわち、リードライトバッファＲＷＢｎは、第１実施形態のライトバッファＷＢｎおよびリードバッファの双方の機能を実現している。
【００３６】
ＣＰＵ１２によるライトアクセスとリードアクセスとが競合することはないため、第１実施形態のライトバッファＷＢｎおよびリードバッファＲＢｎに代えてリードライトバッファＲＷＢｎを設けても、ＣＰＵ１２によるカウンタＣＮＴｎへのアクセスの正常性が失われることはない。以上のような第２実施形態でも、第１実施形態と同様の効果が得られる。さらに、リードライトバッファＲＷＢｎで第１実施形態のライトバッファＷＢｎおよびリードバッファＲＢｎの双方の機能を実現しているため、第１実施形態のタイマ１４に比べて、タイマ２４の回路規模を低減できる。
【００３７】
図５は、本発明の第３実施形態を示している。第３実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明を省略する。システムＬＳＩ３０は、第１実施形態（図１）のタイマ１４に代えてタイマ３４を有していることを除いて、第１実施形態のシステムＬＳＩ１０と同一である。タイマ３４は、第１実施形態のライトバッファＷＢｎおよびリードバッファＲＢｎに代えて共通ライトバッファＷＢＣおよび共通リードバッファＲＢＣを有していることを除いて、タイマ１４と同一である。
【００３８】
共通ライトバッファＷＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１またはカウンタＣＮＴ２のいずれかの上位側のアドレスを示し、かつライト信号ＷＲＨが活性化されているときにデータバスＤＢのデータを取り込み、取り込んだデータをセレクタ回路ＳＥＬ１、ＳＥＬ２に出力する。すなわち、共通ライトバッファＷＢＣは、第１実施形態のライトバッファＷＢ１、ＷＢ２の双方の機能を実現し、カウンタＣＮＴ１、ＣＮＴ２に共通して設けられている。
【００３９】
共通リードバッファＲＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１（またはカウンタＣＮＴ２）の下位側のアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、カウンタＣＮＴ１（またはカウンタＣＮＴ２）の下位側から出力されるデータを取り込む。共通リードバッファＲＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１（またはカウンタＣＮＴ２）の上位側のアドレスを示し、かつリード信号ＲＤＨが活性化されているときに、取り込んだデータをデータバスＤＢに出力する。すなわち、共通リードバッファＲＢＣは、第１実施形態のリードバッファＲＢ１、ＲＢ２の双方の機能を実現し、カウンタＣＮＴ１、ＣＮＴ２に共通して設けられている。
【００４０】
ＣＰＵ１２によるカウンタＣＮＴ１へのアクセスとカウンタＣＮＴ２へのアクセスとが競合することはないため、第１実施形態のライトバッファＷＢｎおよびリードバッファＲＢｎに代えて共通ライトバッファＷＢＣおよび共通リードバッファＲＢＣを設けても、ＣＰＵ１２によるカウンタＣＮＴｎへのアクセスの正常性が失われることはない。以上のような第３実施形態でも、第１実施形態と同様の効果が得られる。さらに、共通ライトバッファＷＢＣで第１実施形態のライトバッファＷＢ１、ＷＢ２の双方の機能を実現するとともに、共通リードバッファＲＢＣで第１実施形態のリードバッファＲＢ１、ＲＢ２の双方の機能を実現しているため、第１実施形態のタイマ１４と比べて、タイマ３４の回路規模を低減できる。
【００４１】
図６は、本発明の第４実施形態を示している。第４実施形態を説明するにあたって、第１および第３実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明を省略する。システムＬＳＩ４０は、第３実施形態（図５）のタイマ３４に代えタイマ４４を有していることを除いて、第３実施形態のシステムＬＳＩ３０と同一である。タイマ４４は、第３実施形態の共通ライトバッファＷＢＣおよび共通リードバッファＲＢＣに代えて共通リードライトバッファＲＷＢＣ（兼用バッファ）を有していることを除いて、第３実施形態のタイマ３４と同一である。
【００４２】
共通リードライトバッファＲＷＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１またはカウンタＣＮＴ２のいずれかの上位側のアドレスを示し、かつライト信号ＷＲＨが活性化されているときにデータバスＤＢのデータを取り込み、取り込んだデータをセレクタ回路ＳＥＬ１、ＳＥＬ２に出力する。共通リードライトバッファＲＷＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１（またはカウンタＣＮＴ２）の下位側のアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、カウンタＣＮＴ１（またはカウンタＣＮＴ２）の下位側から出力されるデータを取り込む。共通リードライトバッファＲＷＢＣは、アドレス信号ＡＤがカウンタＣＮＴ１（またはカウンタＣＮＴ２）の上位側のアドレスを示し、かつリード信号ＲＤＨが活性化されているときに、取り込んだデータをデータバスＤＢに出力する。すなわち、共通リードライトバッファＲＷＢＣは、第３実施形態の共通ライトバッファＷＢＣおよび共通リードバッファＲＢＣの双方の機能を具現している。換言すれば、共通リードライトバッファＲＷＢＣは、第１実施形態のライトバッファＷＢ１、ＷＢ２およびリードバッファＲＢ１、ＲＢ２の全ての機能を実現している。
【００４３】
ＣＰＵ１２によるカウンタＣＮＴ１へのアクセスとカウンタＣＮＴ２へのアクセスとが競合することはないうえに、ＣＰＵ１２によるライトアクセスとリードアクセスとが競合することもないため、第３実施形態の共通ライトバッファＷＢＣおよび共通リードバッファＲＢＣに代えて共通リードライトバッファＲＷＢＣを設けても、ＣＰＵ１２のカウンタＣＮＴｎへのアクセスの正常性が失われることはない。以上のような第４実施形態でも、第１実施形態と同様の効果が得られる。さらに、共通リードライトバッファＲＷＢＣで第１実施形態のライトバッファＷＢ１、ＷＢ２およびリードバッファＲＢ１、ＲＢ２の全ての機能を実現しているため、第３実施形態のタイマ３４に比べて、タイマ４４の回路規模を更に低減できる。
【００４４】
図７は、本発明の第５実施形態を示している。第５実施形態を説明するにあたって、第１実施形態で説明した要素と同一の要素については、同一の符号を付し、詳細な説明を省略する。システムＬＳＩ５０は、第１実施形態（図１）のタイマ１４に代えてリソース５４を有していることを除いて、第１実施形態のシステムＬＳＩ１０と同一である。
リソース５４は、ライトバッファＷＢｎ、バッファステータスフラグＢＳＦｎ、論理レベルフラグＬＬＦｎ（第２記憶回路）、セレクタ回路ＳＥＬｎ、１６ビットレジスタＲＥＧｎおよびリードバッファＲＢｎを有している。論理レベルフラグＬＬＦｎは、例えば１本のレジスタとして構成され、アドレス信号ＡＤがそのレジスタに割り当てられたアドレスを示し、かつライト信号ＷＲＬが活性化されているときに、データバスＤＢにおける対応するビットのデータを取り込む。論理レベルフラグＬＬＦｎは、アドレス信号ＡＤがそのレジスタに割り当てられたアドレスを示し、かつリード信号ＲＤＬが活性化されているときに、データをデータバスＤＢにおける対応するビットに出力する。論理レベルフラグＬＬＦｎは、ＣＰＵ１２がデータバスＤＢを介してデータ”１”をライトすることでセットされ、ＣＰＵ１２がデータバスＤＢを介してデータ”０”をライトすることでリセットされる。従って、論理レベルフラグＬＬＦｎは、”論理１”または”論理０”のいずれかを示す。レジスタＲＥＧｎは、カウンタ機能を有していないことを除いて、第１実施形態のカウンタＣＮＴｎと同一である。
【００４５】
以上のような第５実施形態でも、第１実施形態と同様の効果が得られる。さらに、ＣＰＵ１２がレジスタＲＥＧｎの下位側のみにライトアクセスする場合に、レジスタＲＥＧｎの上位側にライトされるデータを確定させることができる。従って、リソース５４に所望の動作を実施させるテストにおいて、テストの実施毎にレジスタＲＥＧｎの上位側にライトされるデータが異なることを回避でき、リソース５４に所望の動作を確実に毎回実施させることができる。また、論理レベルフラグＬＬＦｎのセット・リセット状態をＣＰＵ１２のライトアクセスにより設定できるため、ＣＰＵ１２がレジスタＲＥＧｎの下位側のみにライトアクセスする場合にレジスタＲＥＧｎの上位側にライトされるデータを、レジスタＲＥＧｎの種別や用途に合わせて変更できる。
【００４６】
なお、第１〜第５実施形態では、ＣＰＵのアクセス動作に本発明を適用した例について述べたが、本発明はかかる実施形態に限定されるものではない。例えば、ＤＭＡコントローラ（ＤＭＡ：Direct Memory Access）のアクセス動作（メモリおよびレジスタ間でのデータ転送動作）に本発明を適用してもよい。
第１〜第５実施形態では、ＣＰＵ１２が、カウンタＣＮＴｎ（またはレジスタＲＥＧｎ）の上位側にアクセスするときにリード信号ＲＤＨを活性化させ、カウンタＣＮＴｎ（またはレジスタＲＥＧｎ）の下位側にアクセスするときにリード信号ＲＤＬを活性化させる例について述べたが、本発明はかかる実施形態に限定されるものではない。例えば、ＣＰＵ１２が、カウンタＣＮＴｎ（またはレジスタＲＥＧｎ）の上位側にアクセスするとき、またはカウンタＣＮＴｎ（またはレジスタＲＥＧｎ）の下位側にアクセスするときのいずれの場合にも、一本のリード信号を活性化させるようにしてもよい。
【００４７】
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００４８】
【図１】本発明の第１実施形態を示すブロック図である。
【図２】第１実施形態におけるセレクタ回路の詳細を示すブロック図である。
【図３】第１実施形態におけるアクセス動作の一例を示すタイミング図である。
【図４】本発明の第２実施形態を示すブロック図である。
【図５】本発明の第３実施形態を示すブロック図である。
【図６】本発明の第４実施形態を示すブロック図である。
【図７】本発明の第５実施形態を示すブロック図である。
【符号の説明】
【００４９】
１０、２０、３０、４０、５０  システムＬＳＩ
１２  ＣＰＵ
１４、２４、３４、４４  タイマ
５４  リソース
ＡＤ  アドレス信号
ＡＬＬ０、ＡＬＬ１  データ
ＢＳＦ１、ＢＳＦ２  バッファステータスフラグ
ＣＤＦ１、ＣＤＦ２  カウント方向フラグ
ＣＮＴ１、ＣＮＴ２  カウンタ
ＤＢ  データバス
ＬＬＦ１、ＬＬＦ２  論理レベルフラグ
ＲＢ１、ＲＢ２  リードバッファ
ＲＢＣ  共通リードバッファ
ＲＤ１、ＲＤ２  内部リード信号
ＲＤＨ、ＲＤＬ  リード信号
ＲＥＧ１、ＲＥＧ２  レジスタ
ＲＷＢ１、ＲＷＢ２、リードライトバッファ
ＲＷＢＣ  共通リードライトバッファ
Ｓ１、Ｓ２  セレクタ
ＳＥＬ１、ＳＥＬ２  セレクタ回路
ＷＢ１、ＷＢ２  ライトバッファ
ＷＢＣ  共通ライトバッファ
ＷＲ１、ＷＲ２  内部ライト信号
ＷＲＨ、ＷＲＬ  ライト信号
【図１】
2006277025.tif 000003
【図２】
2006277025.tif 000004
【図３】
2006277025.tif 000005
【図４】
2006277025.tif 000006
【図５】
2006277025.tif 000007
【図６】
2006277025.tif 000008
【図７】
2006277025.tif 000009