JP2656394B2 - 集積回路装置 - Google Patents

集積回路装置

Info

Publication number
JP2656394B2
JP2656394B2 JP3067158A JP6715891A JP2656394B2 JP 2656394 B2 JP2656394 B2 JP 2656394B2 JP 3067158 A JP3067158 A JP 3067158A JP 6715891 A JP6715891 A JP 6715891A JP 2656394 B2 JP2656394 B2 JP 2656394B2
Authority
JP
Japan
Prior art keywords
operation mode
circuit
mode setting
signal
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP3067158A
Other languages
English (en)
Other versions
JPH04302464A (ja
Inventor
潤次郎 山田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Consejo Superior de Investigaciones Cientificas CSIC
Original Assignee
Consejo Superior de Investigaciones Cientificas CSIC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Consejo Superior de Investigaciones Cientificas CSIC filed Critical Consejo Superior de Investigaciones Cientificas CSIC
Priority to JP3067158A priority Critical patent/JP2656394B2/ja
Publication of JPH04302464A publication Critical patent/JPH04302464A/ja
Application granted granted Critical
Publication of JP2656394B2 publication Critical patent/JP2656394B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Semiconductor Integrated Circuits (AREA)
  • Design And Manufacture Of Integrated Circuits (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、CPU(中央演算処理
装置)ブロック、CPU周辺機能ブロック、ユーザ設計
のランダムロジック回路ブロックなどの、それぞれ異な
る機能を有する複数の独立した回路ブロックを同一チッ
プ上に配置して構成される集積回路装置に関する。
【0002】
【従来の技術】一般に、CPUを含む回路装置の開発に
あたっては、主にインサーキット・エミュレータ(IC
E)と称され、CPU機能を代行するデバッグ・ツール
を、開発対象である回路装置に設けられるCPUソケッ
トに接続することによって行われている。
【0003】しかしながら、CPUを含む複数の回路ブ
ロックを同一チップ上に集積配置したLSI(Large Sc
ale Integrated circuit;大規模集積回路)では、CP
UそのものがLSI内部に組込まれているために、前記
ICEを用いるデバッグ方法は使用できない。
【0004】そこで従来、LSIの開発・デバッグにあ
たっては、専用のエミュレーションチップをシステム実
装用チップとは別個に開発して対応している。すなわ
ち、エミュレーションチップとは、内部にCPUを含ま
ず、CPUとの間で授受されるチップ内部の信号は、端
子信号として取出し、外付けのCPUと接続する。同様
にROM(リードオンリメモリ)を内蔵するLSIの場
合には、エミュレーションチップにおいてはROMを内
蔵せず、ROMとの間で授受される信号を端子信号とし
て取出し、外付けのROMと接続する。
【0005】
【発明が解決しようとする課題】上述の開発・デバッグ
専用のエミュレーションチップを使用する場合、実装用
チップとは別個にエミュレーションチップ自身の開発が
必要である。そのため、エミュレーションチップの開発
に要する負担や、エミュレーションチップの開発と実装
用チップの開発とのタイムラグ(ずれ)が、開発目標で
あるシステム全体の開発に及ぼす影響を考慮すると、特
に短納期、小量多品種、特定ユーザ向け、特定用途を特
徴とするASIC(特定用途向け集積回路装置)では、
負担とリスクとが大きいという問題がある。
【0006】本発明の目的は、開発・デバッグ専用のエ
ミュレーションチップを開発することなく、単一のチッ
プで実装用チップ機能とエミュレーションチップ機能と
を実現することができる集積回路装置を提供することで
ある。
【0007】
【課題を解決するための手段】本発明は、それぞれ異な
る機能を有する複数の独立した回路ブロックを同一チッ
プ上に配置してなり、各回路ブロック毎に接続される端
子を有する集積回路装置において、複数の動作モード設
定用端子であって、各動作モード設定用端子には、複数
種類の動作モード指示信号が与えられ、各動作モード指
示信号は、複数の動作モード設定用端子に同時に与えら
れる2値信号の組合せによって構成される動作モード設
定用端子と、複数の論理ゲートを有し、動作モード設定
用端子から動作モード指示信号が与えられ、各回路ブロ
ックをそれぞれ単独で動作状態に設定するための動作モ
ード設定信号を個別的に導出する複数のラインを有する
動作モード設定回路と、複数の論理ゲートを有し、前記
各ラインからの動作モード設定信号と回路ブロックの内
部信号とが与えられ、動作モード設定信号によって動作
される回路ブロックの内部信号を導出する切換え回路
と、切換え回路から出力される内部信号が入力され、動
作モード設定信号を受信して、その受信した予め定める
動作モード設定信号によって動作状態に設定される回路
ブロックからの入力された内部信号を、その受信された
動作モード設定信号によっては動作していない他の回路
ブロックに対応する接続端子に導出し、受信した予め定
める他の動作モード設定信号によって動作状態に設定さ
れる回路ブロックからの入力された内部信号を、動作状
態に設定される回路ブロックに対応する接続端子に導出
するバッファとを含むことを特徴とする集積回路装置で
ある。
【0008】
【作用】本発明に従えば、動作モード設定用端子D1,
D2に外部から動作モード指示信号が与えられると、動
作モード設定回路6は、回路ブロックをそれぞれ単独で
動作状態に設定するための動作モード設定信号REA
L,CPUM,PERI,USRMを個別的に各ライン
に、後述の図3に明らかなように、導出する。動作モー
ド設定用端子D1,D2には、後述の表1に示されるよ
うに、同時に与えられる2値信号の組合せによって構成
される各動作モード指示信号が与えられる。切換え回路
18は、複数の論理ゲートを有し、前記各ラインからの
動作モード設定信号REAL,CPUM,USRMと、
回路ブロックの内部信号SA,SCとが与えられ、動作
モード設定信号CPUMによって動作される回路ブロッ
クの内部信号SA,SCを導出する。バッファ27に
は、切換え回路18から出力される内部信号SA,SC
が入力される。このバッファ27は、動作モード設定信
号CPUM,REAL,USRMを受信して、その受信
した予め定める動作モード設定信号CPUMによって動
作状態に設定される回路ブロック3からの内部信号SA
を、その受信された動作モード設定信号CPUMによっ
ては動作していない他の回路ブロック5に対応する接続
端子30(U1)に導出する。さらにバッファ27はま
た、受信した予め定める他の動作モード設定信号REA
L,USRMによって動作状態に設定される回路ブロッ
ク5からの内部信号SCを、動作状態に設定される回路
ブロック5に対応する接続端子30(U1)に導出す
る。こうして外部のデバッグ装置との間で授受する必要
のある信号を予め定める回路ブロックの端子を介して授
受させる。
【0009】これによって、集積回路装置を構成する複
数の回路ブロックはそれぞれ単独で動作状態に設定さ
れ、各回路ブロックに対するエミュレーションを容易に
行うことができる。また外部との間で授受される信号
は、予め定める回路ブロックの端子を介して授受させる
ことができるので、エミュレーションのために新たな端
子を設ける必要はない。
【0010】
【実施例】図1は、本発明の一実施例である集積回路1
の基本的構成を示す回路図である。集積回路1は、シリ
コンウエハなどの基板(チップ)2上に、複数の回路ブ
ロックを集積配置して構成される。
【0011】本実施例では、複数の回路ブロックとし
て、CPU(Central ProcessingUnit;中央演算処理装
置)ブロック3と、CPU周辺機能ブロック4と、ユー
ザ設計回路ブロック5とが配置されている。また、これ
らの回路ブロック3,4,5以外に、後述するエミュレ
ーション機能を実現するための動作モード設定回路6と
分離回路7とが配置される。
【0012】CPUブロック3には、出力端子C1と、
入力端子C2と、入出力端子C3とが接続される。CP
U周辺機能ブロック4は、DMA(Direct Memory Acce
sscontroler)8と、CTC(Counter Timer Controle
r)9と、INTC(Interrupt Controler)10と、そ
の他のコントローラとで構成され、出力端子P1と、入
力端子P2と、入出力端子P3とが接続される。またユ
ーザ設計回路ブロック5は、ユーザが独自に設計するラ
ンダムロジック回路部分であり、出力端子U1と、入力
端子U2と、入出力端子U3とが接続される。
【0013】動作モード設定回路6には、外部から与え
られる動作モード指示信号が与えられる動作モード設定
用端子D1,D2が接続される。この端子D1,D2に
与えられる動作モード指示信号の態様によって、集積回
路1ではエミュレーション機能を実現することができ
る。
【0014】すなわち図2に示すように、基板(ボー
ド)38上で集積回路1内部の各回路ブロックを分離・
分割した動作モードに設定した集積回路1を装着し、各
集積回路1間を図1に示す各ブロック間の接続と同等に
配線すれば、集積回路1の各ブロックを分離・分割しな
い、すなわち集積回路1をターゲットシステムに実装し
たときのモード(実装モード)を実現(エミュレーショ
ン)することができる。ただし、ICEで使用できるC
PUソケット形状の制約から開発対象であるシステムの
開発・デバッグに、集積回路1が内蔵するCPUブロッ
ク3を直接利用することはなく、後述するCPUブロッ
ク3のみを動作モードに設定するCPUモードは、便宜
的なものとする。
【0015】図3は、動作モード設定回路6の構成を示
す回路図である。動作モード設定回路6は、NOR(論
理和否定)回路11,12,13,14と、NOT(反
転)回路15,16とで構成される。また動作モード設
定回路6には、デバッグ装置17から動作モード指示信
号MODE0,MODE1が与えられる動作モード設定
用端子D1,D2が接続される。
【0016】NOR回路11は、動作モード指示信号M
ODE0が一方入力とされ、動作モード指示信号MOD
E1が他方入力とされ、出力は動作モード設定信号RE
ALとされる。動作モード設定信号REALは、実装仕
様モード時にアクティブ(ハイレベル)とされる信号で
ある。
【0017】NOR回路12は、NOT回路15からの
出力、すなわち動作モード指示信号MODE0の反転信
号が一方入力とされ、動作モード指示信号MODE1が
他方入力とされ、出力は動作モード設定信号CPUMと
される。動作モード設定信号CPUMは、CPUモード
時にアクティブ(ハイレベル)とされる信号である。
【0018】NOR回路13は、動作モード指示信号M
ODE0が一方入力とされ、NOT回路16からの出
力、すなわち動作モード指示信号MODE1の反転信号
が他方入力とされ、出力は動作モード設定信号PERI
とされる。動作モード設定信号PERIは、CPU周辺
機能ブロックモード時にアクティブ(ハイレベル)とさ
れる信号である。
【0019】NOR回路14は、NOT回路15からの
出力、すなわち動作モード指示信号MODE0の反転信
号が一方入力とされ、NOT回路16からの出力、すな
わち動作モード指示信号MODE1の反転信号が他方入
力とされ、出力は動作モード設定信号USRMとされ
る。動作モード設定信号USRMは、ユーザ設計回路ブ
ロックモード時にアクティブ(ハイレベル)とされる信
号である。
【0020】下記の表1に、動作モード指示信号MOD
E0,MODE1と、動作モード設定信号REAL,C
PUM,PERI,USRMとの対応関係が示されてい
る。
【0021】
【表1】
【0022】図4は、分離回路7の構成を示す回路図で
ある。分離回路7は、第1切換回路18と、第2切換回
路19と、バッファ回路20とを含んで構成される。
【0023】第1切換回路18は、AND(論理積)回
路21,22と、OR(論理和)回路23とで構成され
る。AND回路21は、動作モード設定信号REALが
一方入力とされ、CPUブロック3からの内部信号SA
が他方入力とされ、出力はOR回路23の一方入力とさ
れる。AND回路22は、ユーザ設計回路ブロック5か
らの内部信号SCが一方入力とされ、動作モード設定信
号REAL,USRMが他方入力とされ、出力はOR回
路23の他方入力とされる。OR回路23の出力は、バ
ッファ回路20に与えられる。
【0024】第2切換回路19は、AND回路24,2
5と、OR回路26とで構成される。AND回路24
は、動作モード設定信号PERIが一方入力とされ、バ
ッファ回路20からの出力が他方入力とされ、出力はO
R回路26の一方入力とされる。AND回路25は、C
PUブロック3からの内部信号SAが一方入力とされ、
動作モード設定信号REALが他方入力とされ、出力は
OR回路26の他方入力とされる。OR回路26の出力
は、CPU周辺機能ブロック4に与えられる内部信号S
Bとされる。
【0025】バッファ回路20は、出力バッファ27と
入力バッファ28とで構成される。出力バッファ27
は、第1切換回路18からの出力を出力バッファ制御信
号OCとして動作モード設定信号CPUMを用いて、入
出力端子30に出力/遮断する。すなわち、ハイレベル
の制御信号が与えられると入力信号を端子30に出力
し、ローレベルの信号が与えられると入力される信号を
端子30に出力しない。
【0026】入力バッファ28は、端子30からの信号
を、入力バッファ制御信号ICとしてモード設定信号P
ERIを用いて、出力/遮断する。すなわち入力バッフ
ァ制御信号ICがハイレベルのときは端子30から与え
られる信号を出力し、ローレベルの入力バッファ制御信
号ICが与えられたときは入力される信号を出力しな
い。
【0027】図1〜図4を参照して、集積回路1におけ
る各動作モードを実現するための手順を説明する。
【0028】各回路ブロックにおける専有端子の扱い 各回路ブロック3,4,5がその端子を専有し、動作モ
ード設定による端子のマルチプレクスに使用されない端
子は回路的に特に考慮されない。たとえば、CPUモー
ドにおいてCPU周辺機能ブロック4の出力端子P1は
オープン状態とされ、入力端子P2はハイレベルまたは
ローレベルの一方レベルに固定され、入出力端子P3は
動作モード設定時の入出力状態に従ってオープン状態ま
たはハイレベルおよびローレベルのうちいずれか一方の
レベルに設定すればよい。
【0029】各回路ブロック共有のバスの扱い 各回路ブロック3,4,5で共有されるバスは、バスマ
スタをバス開放状態に設定することによって、機能上分
離することができる。たとえば、CPUブロック3のア
ドレス、データバス、メモリやI/O(入出力)の制御
信号などは、CPUブロック3に対してバス要求信号を
アクティブにし、バスを開放させることによってCPU
周辺機能ブロックモードやユーザ設計回路ブロックモー
ドにおいても使用することが可能となる。
【0030】内部接続信号の分離およびマルチプレク
ス 図1に示す内部CPU信号SAと内部周辺機能ブロック
信号SBとの間の接続のように、実装仕様ではチップ内
部で閉じており、直接外部端子に出力されない信号は、
図4に示す分離回路7を用いて分離およびマルチプレク
スすることができる。図4に示す分離回路7は、信号S
A,SBを分離し、CPUモード時ではSAをユーザ設
計回路ブロック信号SCの出力端子U1にマルチプレク
スする。
【0031】図5は、分離回路7の動作を示すタイミン
グチャートである。動作モード設定信号REALのみが
アクティブとされる実装仕様モードでは、内部信号SC
は第1切換回路18を介して端子30(出力端子U1)
に出力され、内部信号SA,SBは第2切換回路19を
介して相互に接続され、集積回路1の実装時の仕様を満
たす。
【0032】動作モード設定信号CPUMのみがアクテ
ィブとされるCPUモードでは、第2切換回路19によ
って内部信号SA,SBの接続は分離され、第1切換回
路18によって内部信号SAが端子30に出力される。
【0033】動作モード設定信号PERIのみがアクテ
ィブとされるCPU周辺機能ブロックモードでは、第2
切換回路19によって内部信号SA,SBの接続は分離
され、出力バッファ制御信号OCである動作モード設定
信号CPUMによって端子30は入力状態となり、内部
信号SBは端子30から入力される。
【0034】動作モード設定信号USRMのみがアクテ
ィブとされるユーザ設計回路ブロックモードでは、前述
の実装仕様モード時と同様に、第1切換回路18を介し
て内部信号SCが端子30を介して出力される。
【0035】以上のように本実施例によれば、開発対象
であるシステムの開発に必要な各回路ブロックのエミュ
レーションモードを実装仕様と同一チップ上で実現する
ことができる。これによって、特にASICで要求され
る短納期とシステム開発に伴うリスクを回避することが
できる。
【0036】
【発明の効果】以上のように本発明によれば、集積回路
装置を構成する複数の回路ブロックはそれぞれ単独で動
作状態に設定され、各回路ブロックに対するエミュレー
ションを容易に行うことができる。また外部との間で授
受される信号は、指定された回路ブロックの端子を介し
て授受させることができるので、エミュレーションのた
めに新たな端子を設ける必要はない。したがって、実装
用チップであっても、該チップにおいてエミュレーショ
ン機能を実行することができ、専用のエミュレーション
チップの開発のための負担、費用、時間を削減すること
ができる。このことは、短納期、小量多品種、特定ユー
ザ向け、特定用途を特徴とするASICにおいて特に有
効である。さらに本発明によれば、動作モード設定回路
6は、複数の動作モード設定端子D1,D2に与えられ
る動作モード指示信号によって、動作モード設定信号R
EAL,CPUM,PERI,USRMを、複数のライ
ンに個別的に導出し、各回路ブロックをそれぞれ単独で
動作状態に設定する。切換え回路18には、前記各ライ
ンからの動作モード設定信号REAL,CPUM,US
RMと回路ブロックの内部信号SA,SCとが与えら
れ、動作モード設定信号CPUMによって動作される回
路ブロック3,5の内部信号SA,SCを導出する。こ
れによってバッファ27には、切換え回路18から出力
される内部信号SA,SCが入力され、受信した予め定
める動作モード設定信号CPUMによって動作状態に設
定される回路ブロック3からの内部信号SAを、動作し
ていない他の回路ブロック5に対応する接続端子30に
導出し、これによってその内部信号SAのエミュレーシ
ョン機能を、端子数を増やすことなく、実行することが
できる。しかも受信した予め定める他の動作モード設定
信号REAL,USRMによって動作状態に設定される
回路ブロック5からの内部信号SCは、その回路ブロッ
ク5に対応する接続端子30(U1)に導出して、その
動作状態に設定される回路ブロック5のエミュレーショ
ン機能の実行をすることができる。
【図面の簡単な説明】
【図1】本発明の一実施例である集積回路1の基本的構
成を示す回路図である。
【図2】本発明の基本的動作を説明するための図であ
る。
【図3】動作モード設定回路6の構成を示す回路図であ
る。
【図4】分離回路7の構成を示す回路図である。
【図5】分離回路7の動作を示すタイミングチャートで
ある。
【符号の説明】
1 集積回路 2 基板 3 CPUブロック 4 CPU周辺機能ブロック 5 ユーザ設計回路ブロック 6 動作モード設定回路 7 分離回路 D1,D2 動作モード設定用端子

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 それぞれ異なる機能を有する複数の独立
    した回路ブロックを同一チップ上に配置してなり、各回
    路ブロック毎に接続される端子を有する集積回路装置に
    おいて、 複数の動作モード設定用端子であって、各動作モード設
    定用端子には、複数種類の動作モード指示信号が与えら
    れ、各動作モード指示信号は、複数の動作モード設定用
    端子に同時に与えられる2値信号の組合せによって構成
    される動作モード設定用端子と、 複数の論理ゲートを有し、動作モード設定用端子から動
    作モード指示信号が与えられ、各回路ブロックをそれぞ
    れ単独で動作状態に設定するための動作モード設定信号
    を個別的に導出する複数のラインを有する動作モード設
    定回路と、 複数の論理ゲートを有し、前記各ラインからの動作モー
    ド設定信号と回路ブロックの内部信号とが与えられ、動
    作モード設定信号によって動作される回路ブロックの内
    部信号を導出する切換え回路と、 切換え回路から出力される内部信号が入力され、動作モ
    ード設定信号を受信して、その受信した予め定める動作
    モード設定信号によって動作状態に設定される回路ブロ
    ックからの入力された内部信号を、その受信された動作
    モード設定信号によっては動作していない他の回路ブロ
    ックに対応する接続端子に導出し、受信した予め定める
    他の動作モード設定信号によって動作状態に設定される
    回路ブロックからの入力された内部信号を、動作状態に
    設定される回路ブロックに対応する接続端子に導出する
    バッファとを含むことを特徴とする集積回路装置。
JP3067158A 1991-03-29 1991-03-29 集積回路装置 Expired - Fee Related JP2656394B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3067158A JP2656394B2 (ja) 1991-03-29 1991-03-29 集積回路装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3067158A JP2656394B2 (ja) 1991-03-29 1991-03-29 集積回路装置

Publications (2)

Publication Number Publication Date
JPH04302464A JPH04302464A (ja) 1992-10-26
JP2656394B2 true JP2656394B2 (ja) 1997-09-24

Family

ID=13336811

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3067158A Expired - Fee Related JP2656394B2 (ja) 1991-03-29 1991-03-29 集積回路装置

Country Status (1)

Country Link
JP (1) JP2656394B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1070243A (ja) * 1996-05-30 1998-03-10 Toshiba Corp 半導体集積回路装置およびその検査方法およびその検査装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6385378A (ja) * 1986-09-30 1988-04-15 Toshiba Corp 集積回路
JP2582295B2 (ja) * 1989-07-04 1997-02-19 三菱電機株式会社 半導体集積回路装置
JPH0346350A (ja) * 1989-07-14 1991-02-27 Mitsubishi Electric Corp 半導体集積回路装置

Also Published As

Publication number Publication date
JPH04302464A (ja) 1992-10-26

Similar Documents

Publication Publication Date Title
US6593771B2 (en) Method and system for use of a field programmable interconnect within an ASIC for configuring the ASIC
US5761516A (en) Single chip multiprocessor architecture with internal task switching synchronization bus
US5832248A (en) Semiconductor integrated circuit having CPU and multiplier
US4271466A (en) Direct memory access control system with byte/word control of data bus
JP4749556B2 (ja) 割込強制レジスタを含む柔軟な割込コントローラ
US6260162B1 (en) Test mode programmable reset for a watchdog timer
US5101498A (en) Pin selectable multi-mode processor
JPS61241841A (ja) エミユレ−タ
WO2001061497A1 (en) Configuration bits layout
WO1998048356A1 (en) A single chip microcontroller having down-loadable memory organization supporting 'shadow' personality, optimized for bi-directional data transfers over a communication channel
US6928586B1 (en) Method and apparatus for saving peripheral device states of a microcontroller
KR900002438B1 (ko) 프로세서간 결합방식
JPH0574862B2 (ja)
KR970012168A (ko) 외부 장치를 액세스시키는 데이타 처리 시스템 및 외부 장치를 액세스시키는 방법
JP2656394B2 (ja) 集積回路装置
EP0457115A2 (en) Data processing device with test control circuit
US6954879B1 (en) Method and apparatus for communicating configuration data for a peripheral device of a microcontroller via a scan path
US6081861A (en) PCI migration support of ISA adapters
CA1091359A (en) Unidirectional looped busses microprocessor
US4827408A (en) Multi-purpose reconfigurable computer system having detachable circuit for memory address map and I/O address map
JP2793540B2 (ja) エミュレーション装置
US7451074B2 (en) Embedded microprocessor emulation method
EP0378242B1 (en) Integrated circuit with a debug environment
KR970007762B1 (ko) 반도체 집적회로 장치
JPH05314062A (ja) 計算装置における使用のための集積ディジタル装置

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080530

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090530

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees