BUFGCE_DIV は、クロック入力 (I)、クロック出力 (O)、クリア入力 (CLR)、クロック イネーブル (CE) 入力を 1 つずつ持つクロック バッファーです。このクロック バッファーはゲーテッド入力とリセットを 1 つずつ持ち、配線および分配リソースを直接駆動できます。CLR が High (アクティブ) の場合、その出力 O は 0 です。CE が High の場合、入力 I がそのまま出力 O となります。CE はクロックに対して非同期で、グリッチのない動作が可能です。CLR は、このバッファーに対する非同期リセット アサートおよび同期リセット ディアサートです。BUFGCE_DIV には、入力クロックを 1 ~ 8 分周する機能もあります。
CLR (リセット) をディアサートすると、出力クロックは分周値にかかわらず、CLR がディアサートされた後の最初のエッジで Low から High に遷移します。したがって、BUFGCE_DIV 出力クロックは、分周値にかかわらず常にアラインされた状態となります。出力クロックは、分周後の周波数でトグルします。CLR をアサートすると、Clock-to-Out 時間の経過後にクロックはトグルを停止します。分周値が奇数の場合、クロックが High の期間が Low の期間よりも 1 サイクル少ないため、デューティ サイクルは 50% になりません。たとえば分周値が 7 の場合、クロックは 3 サイクル間 High となり、4 サイクル間 Low となります。
CE をディアサートすると、出力は現在の状態のまま High または Low で停止します。CE を再びアサートすると、内部カウンターは停止したところから再開します。たとえば分周値が 8 で、出力が最後に High に遷移してから入力クロックの 2 サイクル後に CE をディアサートすると、出力は High のままとなります。次に CE をアサートすると、出力は入力クロックの 2 サイクル経過後、Low に遷移します。リセット入力を使用する場合、アサートすると出力は現在の状態が High なら直ちに Low に遷移し、Low ならそのままの状態を維持します。
リセットはクロックに同期してディアサートされるため、上記の例でリセットをディアサートすると、出力は次の入力クロック エッジで High に遷移し、そこから入力クロックの 4 サイクル後に Low に遷移します。
次の表に BUFGCE_DIV のピンを示します。
ピン名 | タイプ | 反転可能 | 説明 |
---|---|---|---|
I | 入力 | FALSE | クロック入力 |
CLR | 入力 | TRUE | リセット |
CE | 入力 | TRUE | クロック イネーブル |
O | 出力 | FALSE | クロック出力 |
次の表に BUFGCE_DIV の属性を示します。
属性名 | 値 | デフォルト | タイプ | 説明 |
---|---|---|---|---|
BUFGCE_DIVIDE | 1、2、3、4、5、6、7、8 | 1 | 整数 | 入力クロックを分周する値を指定。 |
CE_TYPE | SYNC、HARDSYNC | SYNC | 文字列 | クロック イネーブルの動作を設定します。SYNC に設定するとグリッチのない遷移となります。SYNC に設定すると Vivado ツールで CE ピンのタイミングが考慮されます。HARDSYNC に設定すると内部の 3 段シンクロナイザー回路が有効になり、性能が最大になります。ただしその場合、3 または 4 クロック サイクルのレイテンシが発生します。 |
HARDSYNC_CLR | FALSE、TRUE | FALSE | 文字列 | BUFDIV_LEAF 上の CLR_B 信号を制御するための非同期クリア ポート |
STARTUP_SYNC | FALSE、TRUE | FALSE | 文字列 | ロジックから CE へ入力されているかどうかを定義します。 |
次の図に、BUFGCE_DIV のタイミング図を示します。