プリミティブ : Global Clock MUX Buffer
概要
BUFGCTRL は、2 つのクロック入力を持つ同期/非同期のグリッチのない 2:1 マルチプレクサーとして機能する 7 シリー ズのグローバル クロック バッファーです。 これまでの FPGA に含まれるグローバル クロック バッファーに比べ、さまざ まな機能や優れた入力スイッチを提供する制御ピンが追加されています。 BUFGCTRL は、クロック供給以外の用途 にも使用できます。
ポートの説明
ポート名 タイプ 幅 機能
CE0 入力 1 I0 クロック入力のクロック イネーブル入力。 入力をイネーブルするた
めに CE0 ピンを使用する場合は、セットアップ/ホールド タイムを満た す必要があります。 要件を満たさない場合、クロックでグリッチが発 生する可能性があります。
CE1 入力 1 I1 クロック入力のクロック イネーブル入力。 入力をイネーブルするた
めに CE1 ピンを使用する場合は、セットアップ/ホールド タイムを満た す必要があります。 要件を満たさない場合、クロックでグリッチが発 生する可能性があります。
IGNORE0 入力 1 I0 入力のクロック IGNORE 入力。 IGNORE ピンをアサートすると、
BUFGCTRL がバイパスされ、2 つのクロック入力間の切り替え条件の検 出時に無視されます。 つまり、IGNORE ピンのアサート時は、セレクト ピ ンが変更されると直ちにマルチプレクサーにより入力が切り替わります。
セレクト ピンが変更されると、IGNORE0 ピンは出力を I0 入力から切り替 え、IGNORE1 ピンは I1 入力から切り替えます。
IGNORE1 入力 1 I1 入力のクロック IGNORE 入力。 IGNORE ピンをアサートすると、
BUFGCTRL がバイパスされ、2 つのクロック入力間の切り替え条件の検 出時に無視されます。 つまり、IGNORE ピンのアサート時は、セレクト ピ ンが変更されると直ちにマルチプレクサーにより入力が切り替わります。
セレクト ピンが変更されると、IGNORE0 ピンは出力を I0 入力から切り替 え、IGNORE1 ピンは I1 入力から切り替えます。
I0 入力 1 CE0 入力でイネーブルされ、S0 入力で選択される BUFGCTRL へ
の主要クロック入力
ポート名 タイプ 幅 機能
I1 入力 1 CE1 入力でイネーブルされ、S1 入力で選択される BUFGCTRL へ
のセカンダリ クロック入力
O 出力 1 クロック出力ピン
S0 入力 1 I0 のクロック セレクト入力。 S ピンは、各クロック入力ピンのクロック セ
レクト入力です。 S ピンをクロック セレクト入力として使用する場合は、
セットアップおよびホールド タイム要件を満たす必要があります。 CE ピンとは異なり、要件を満たさなくてもクロック グリッチが発生すること はありませんが、 出力クロックがピンに現れるのが 1 クロック サイクル 後になる場合があります。
S1 入力 1 I1 のクロック セレクト入力。 S ピンは、各クロック入力ピンのクロック セ
レクト入力です。 S ピンをクロック セレクト入力として使用する場合は、
セットアップおよびホールド タイム要件を満たす必要があります。 CE ピンとは異なり、要件を満たさなくてもクロック グリッチが発生すること はありませんが、 出力クロックがピンに現れるのが 1 クロック サイクル 後になる場合があります。
デザインの入力方法
インスタンシエーション 推奨
推論 不可
CORE Generator™ およびウィザード 不可
マクロのサポート 不可
使用可能な属性
属性 タイプ 値 デフォルト 説明
INIT_OUT 10 進数 0、1 0 コンフィギュレーション後の BUFGCTRL 出力の初期
値を指定
PRESELECT_I0 ブール代数 FALSE、TRUE FALSE TRUE に設定すると、コンフィギュレーション後に I0 入 力が出力されます。
PRESELECT_I1 ブール代数 FALSE、TRUE FALSE TRUE に設定すると、コンフィギュレーション後に I1 入 力が出力されます。
メモ :
2 つの PRESELECT 属性を同時に TRUE にすることはできません。
VHDL 記述 (インスタンシエーション)
次の 2 つの文が存在しない場合は、コピーしてエンティティ宣言の前に貼り付けます。
Library UNISIM;
use UNISIM.vcomponents.all;
-- BUFGCTRL: Global Clock MUX Buffer
-- 7 Series
-- Xilinx HDL Libraries Guide, version 13.1 BUFGCTRL_inst : BUFGCTRL
generic map (
INIT_OUT => 0, -- Initial value of BUFGCTRL output (0/1) PRESELECT_I0 => FALSE, -- BUFGCTRL output uses I0 input (TRUE/FALSE) PRESELECT_I1 => FALSE -- BUFGCTRL output uses I1 input (TRUE/FALSE) )
port map (
O => O, -- 1-bit output: Clock Output pin
CE0 => CE0, -- 1-bit input: Clock enable input for I0 input CE1 => CE1, -- 1-bit input: Clock enable input for I1 input I0 => I0, -- 1-bit input: Primary clock input
I1 => I1, -- 1-bit input: Secondary clock input IGNORE0 => IGNORE0, -- 1-bit input: Clock ignore input for I0 IGNORE1 => IGNORE1, -- 1-bit input: Clock ignore input for I1 S0 => S0, -- 1-bit input: Clock select input for I0 S1 => S1 -- 1-bit input: Clock select input for I1 );
-- End of BUFGCTRL_inst instantiation
Verilog 記述 (インスタンシエーション)
// BUFGCTRL: Global Clock MUX Buffer
// 7 Series
// Xilinx HDL Libraries Guide, version 13.1 BUFGCTRL #(
.INIT_OUT(0), // Initial value of BUFGCTRL output (0/1) .PRESELECT_I0("FALSE"), // BUFGCTRL output uses I0 input (TRUE/FALSE) .PRESELECT_I1("FALSE") // BUFGCTRL output uses I1 input (TRUE/FALSE) )
BUFGCTRL_inst (
.O(O), // 1-bit output: Clock Output pin
.CE0(CE0), // 1-bit input: Clock enable input for I0 input .CE1(CE1), // 1-bit input: Clock enable input for I1 input .I0(I0), // 1-bit input: Primary clock input
.I1(I1), // 1-bit input: Secondary clock input .IGNORE0(IGNORE0), // 1-bit input: Clock ignore input for I0 .IGNORE1(IGNORE1), // 1-bit input: Clock ignore input for I1 .S0(S0), // 1-bit input: Clock select input for I0 .S1(S1) // 1-bit input: Clock select input for I1 );
// End of BUFGCTRL_inst instantiation
詳細情報
7 シリーズ FPGA の資料 (ユーザー ガイドおよびデータシート)