23. タイマ

23. タイマ
11? 2012?
cv_54023-1.2
cv_54023-1.2
ハード・プロセッサ・システム(HPS)は、レベル 4(L4)のペリフェラル・バスに
接続された 4 つの 32 ビットの汎用タイマを提供しています。必要に応じて、タイマ
は、32 ビットのバイナリ・カウントダウン・タイマがゼロになると割り込みを生成
します。タイマは Synopsys® DesignWare® APB Timers (DW_apb_timers) ペリフェラルの
インスタンスです。
1
マイクロプロセッサ・ユニット(MPU)サブシステムでは追加のタイマを提供しま
す。MPU のタイマについて詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の
「Cortex-A9 MPU System」の章を参照してください。
© 2012? Altera Corporation. All rights reserved. ALTERA, ARRIA, CYCLONE, HARDCOPY, MAX, MEGACORE, NIOS, QUARTUS and STRATIX words and logos
are trademarks of Altera Corporation and registered in the U.S. Patent and Trademark Office and in other countries. All other words and logos identified as
trademarks or service marks are the property of their respective holders as described at www.altera.com/common/legal.html. Altera warrants performance of its
semiconductor products to current specifications in accordance with Altera's standard warranty, but reserves the right to make changes to any products and
services at any time without notice. Altera assumes no responsibility or liability arising out of the application or use of any information, product, or service
described herein except as expressly agreed to in writing by Altera. Altera customers are advised to obtain the latest version of device specifications before relying
on any published information and before placing orders for products or services.
Portions © 2011 Synopsys, Inc. Used with permission. All rights reserved. Synopsys & DesignWare are registered trademarks of Synopsys, Inc. All documentation
is provided "as is" and without any warranty. Synopsys expressly disclaims any and all warranties, express, implied, or otherwise, including the implied warranties
of merchantability, fitness for a particular purpose, and non-infringement, and any warranties arising out of a course of dealing or usage of trade.
ISO
9001:2008
Registered
†Paragraphs marked with the dagger (†) symbol are Synopsys Proprietary. Used with permission.
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Subscribe
第 23 章 : タイマ
タイマの機能
23–2
タイマの機能
■
割り込みの生成をサポートする。
■
フリーランニング・モードをサポートする。
■
ユーザー定義のカウント・モードをサポートする。
タイマのブロック図およびシステム統合
図 23–1 に、タイマのブロック図を示します。各タイマには、スレーブ・インタ
フェース用のコントロールおよびステータス・レジスタ(CSR)アクセス、レジス
タ・ブロック、およびゼロに到達する割り込みを生成するプログラム可能な 32 ビッ
ト・ダウン・カウンタが含まれています。タイマは、クロック・マネージャによっ
て駆動される単一のクロック・ドメインで動作します。
図 23‒1. タイマのブロック図
Timer
Reset
Manager
Interrupt and
System Reset Control
Clock
Manager
Register Block
Interrupt
MPU
Slave Interface
L4 Peripheral Bus (osc1_clk)
タイマの機能の説明
32 ビット・タイマは、プログラムされた値からカウント・ダウンを行い、カウント
がゼロになると割り込みが発生します。タイマには、システム・クロック信号、ま
たは外部クロック・ソースに接続された独立したクロック入力があります。†
タイマは、次の動作モードをサポートしています。
■
フリーランニング・モード — 最大値(0xFFFFFFFF)からデクリメントします。ゼ
ロ到達時に最大値をリロードします。
■
ユーザー定義カウント・モード — 周期割り込みを生成します。Timer1 ロード・カ
ウント・レジスタ(timer1loadcount)からのロードされたユーザー定義カウン
トの値からデクリメントします。ゼロに到達時にユーザー定義カウントをリロー
ドします。
タイマの初期値(つまり、それがカウント・ダウンする値である)が
timer1loadcount レジスタによってタイマにロードされます。次のイベントは、
timer1loadcount レジスタからの初期カウントをロードするためのタイマを引き起こ
す可能性があります。†
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 23 章 : タイマ
タイマの機能の説明
23–3
■
タイマはリセットされた後、またはディセーブルされた後、イネーブルになりま
す。
■
タイマが 0 までカウント・ダウンします。
クロック
表 23–1 に、クロック信号、およびタイマに関連付けられている接続を示します。
表 23‒1. タイマのクロック特性
タイマ
OSC1 タイマ 0
OSC1 タイマ 1
SP タイマ 0
SP タイマ 1
システム・ク
ロック
注意事項
osc1_clk
—
l4_sp_clk
クロック周波数が変更すると、タイマをディ
セーブルする必要があります。
l4_sp_clk が別の周波数に変更される前に、
SP タイマ 0 と SP タイマ 1 をディセーブル
する必要があります。クロック周波数の変更をイネーブルすると、タイマをイネー
ブルできます。OSC1 タイマ 0 と OSC1 タイマ 1 の周波数を変更することはできませ
ん。
f クロック性能について詳しくは、Cyclone V デバイス・ハンドブック Volume 3 の「Clock
Manager」の章を参照してください。
リセット
タイマはコールド・リセットまたはウォーム・リセットによってリセットされます。
タイマをリセットすると、次の結果が発生ます。
1. タイマがディセーブルされる。
2. 割り込みがイネーブルされる。
3. タイマがフリーランニング・モードに入る。
4. タイマ・カウント・ロード・レジスタの値がゼロに設定される。
割り込み
Timer1 の割り込みステータス(timer1intstat)と割り込みの Timer1 終了
(timer1eoi)レジスタは割り込みを処理します。timer1intstat レジスタは、割り
込みステータスを読み出すことができます。timer1eoi レジスタから読み出すと、値
0 を返し、割り込みをクリアします。†
Timer1 コントロール・レジスタ(timer1controlreg)は、割り込みをマスクするた
めの Timer1 の割り込みマスク・ビット(timer1_interrupt_mask)が含まれていま
す。フリーランニング・モードおよびユーザー定義のカウント・モードの両方では、
タイマのカウントがゼロに達するとき、およびコントロール・レジスタの割り込み
マスク・ビットが High のとき、タイマは割り込み信号を生成します。タイマ割り込
みが設定されている場合は、タイマがディセーブルされているとき、それはクリア
されます。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
第 23 章 : タイマ
タイマのプログラミング・モデル
23–4
タイマのプログラミング・モデル
この項では、タイマのプログラミング・モデルについて説明します。
初期化
タイマを初期化するには、次の手順を実行します。†
1. timer1controlreg レジスタを介してタイマを初期化します。†
a. timer1controlreg レジスタの Timer1 イネーブル・ビット(timer1_enable)
に 0 を書き込むことでタイマをディセーブルします。†
1
Timer1 のロード・カウントレジスタ(timer1loadcount)に書き込む前に、
潜在的な同期の問題を回避するために timer1controlreg レジスタの
timer1_enable ビットに 0 を書き込むことによって、タイマをディセーブル
する必要があります。
b. timer1controlreg レジスタの Timer1 モード・ビット(timer1_mode)に 0 ま
たは 1 を書き込むことによって、それぞれユーザー定義カウントまたはフ
リーランニングのタイマ・モードをプログラムします。†
c. timer1controlreg レジスタの timer1_interrupt_mask ビットに、1 または 0
を書き込むことによって、それぞれマスクされる、またはマスクされないの
どちらか一方として割り込みマスクを設定します。†
2. timer1loadcount レジスタにタイマ・カウンタ値をロードします。†
3. timer1controlreg レジスタの timer1_enable ビットに 1 を書き込むことによっ
て、タイマをイネーブルします。†
タイマのイネーブルまたはディセーブル
タイマをイネーブルするには、timer1controlreg レジスタの timer1_enable ビット
に 1 を書き込みます。タイマをディセーブルするには、timer1_enable ビットに 0 を
書き込みます。†
イネーブルされたステータスにタイマを遷移すると、timer1loadcount レジスタの現
在の値がタイマ・カウンタにロードされます。†
タイマ・イネーブル・ビットが 0 にクリアされる場合、タイマ・カウンタとタイマ・
クロック・ドメイン内の任意の関連するレジスタは、非同期的にリセットされます。
タイマ・カウントダウン値のロード
リセット後またはディセーブル後にタイマ・カウンタがイネーブルされている場合、
カウント値は timer1loadcount レジスタからロードされます。これは、フリーラン
ニング・モードとユーザー定義カウント・モードの両方で発生します。†
タイマが 0 までカウント・ダウンするとき、タイマの動作モードに応じて、次の 2
つのいずれかの値をロードします。†
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation
第 23 章 : タイマ
タイマのアドレス・マップおよびレジスタの定義
23–5
■
ユーザー定義カウント・モード — タイマは timer1loadcount レジスタの現在の値
をロードします。固定の時限割り込みが必要な場合は、このモードを使用しま
す。timer1controlreg レジスタの timer1_mode ビットに 1 を書き込むことによっ
て、このモードを指定します。†
■
フリーランニング・モード — タイマは最大値(0xFFFFFFFF)をロードします。タ
イマの最大カウント値は、別の割り込みが発生する前にタイマを再プログラムま
たはディセーブルする時間の最大量を可能にします。単一の時限割り込みが必要
な場合は、このモードを使用します。timer1controlreg レジスタの timer1_mode
ビットに 0 を書き込むことによって、このモードをイネーブルします。†
割り込みの処理
この項では、さまざまな割り込みケースと、それらをどのようにサービスするがに
ついて説明します。
割り込みのクリア
timer1eoi レジスタを読み出すこと、またはタイマをディセーブルすることによっ
て、アクティブ・タイマ割り込みをクリアすることができます。タイマがイネーブ
ルされている場合、その割り込みは、それが timer1eoi レジスタを読み出すことに
よりクリアされるまでアサートされたままになります。†
タイマが 0 になると同時に割り込みをクリアする場合、割り込みはアサートされた
ままになります。これは、タイマ割り込みを設定すると、割り込みをクリアするよ
りも優先されるためです。†
割り込みステータスのチェック
タイマの割り込みをクリアせずにタイマの割り込みステータスを照会することがで
きます。割り込みステータスを確認するには、timer1intstat レジスタを読み出しま
す。†
割り込みのマスク
タイマ割り込みは timer1controlreg レジスタを使用してマスクすることができま
す。割り込みをマスクするには、timer1controlreg レジスタの
timer1_interrupt_mask ビットに 1 を書き込みます。†
タイマのアドレス・マップおよびレジスタの定義
f アドレス・マップとレジスタ定義は、このハンドブックのボリュームに付属の
hps.html ファイルにあります。ファイルを開くには、リンクをクリックします。
モジュールの説明とベース・アドレスを表示するには、以下のモジュールのインス
タンスのいずれかをスクロールして、リンクをクリックします。
2012 年 11 月
Altera Corporation
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
第 23 章 : タイマ
改訂履歴
23–6
■
osc1timer0
■
osc1timer1
■
sptimer0
■
sptimer1
次に、レジスタとフィールドの説明を表示するには、レジスタ名をスクロールして、
クリックします。レジスタのアドレスは、各モジュール・インスタンスのベース・
アドレスからの相対的なオフセットです。
f すべてのモジュールのベース・アドレスは、Cyclone V デバイス・ハンドブック
Volume 3 の 「Introduction to the Hard Processor System」の章に記載されています。
改訂履歴
表 23–2 に、このドキュメントの改訂履歴を示します。
表 23‒2. 改訂履歴
日付
バー
ジョン
変更内容
2012 年 11 月
1.2
マイナーな更新。
2012 年 5 月
1.1
プログラミング・モデル、アドレス・マップおよびレジスタの定義の項を追加。
2012 年 1 月
1.0
初版。
Cyclone V デバイス・ハンドブック
Volume 3: ハード・プロセッサ・システムのテクニカル・リファレンス・マニュアル
2012 年 11 月
Altera Corporation