動的にクロック周波数の変更が可能なpllの使い方134...

1
134 動的にクロック周波数の変更が可能な PLL の使い方 Altera PLL Reconfig 機能の生成手順から実機での 動作波形観測まで 動的にクロック周波数の変更が可能な PLL の使い方 田坂 光成 Mitsushige Tasaka ここでは Altera 社(現在は Intel 社の FPGA 部門)の FPGA を使って,PLL(Phase Locked Loop)の出力周波数を動的に切り替える 方法について解説します.IP コアの生成手順から制御レジスタの概要,任意の周波数を出力させるための設定値の計算方法について 解説します.最後に実際にCyclone V GXにPLLテスト回路を実装し,動的にクロック周波数を切り替えて出力波形を観測してみます. 平たく言えば「FPGAは動作状態のまま周波数の変更 が可能なPLL」のことです. 今回紹介するAltera PLL Reconfigは,出力周波数 を動的に切り替えられるPLL機能です.Altera PLL Reconfig と,それを制御するユーザ・ロジックを実装 することで,FPGAは動作状態のままPLLの出力周 波数を自由に変更できるようになります.もちろんコ ンフィグレーション・データは 1 つで,どの周波数に も対応することができます(図2). PLL 制御 IP コアの生成手順 2 図2 に示したように,PLL ReconfigはPLLとセッ トで使う構成となります.ここでは「Altera PLL」と 「Altera PLL Reconfig」の生成方法について説明しま す. Altera PLL の生成手順 ま ず はAltera PLLのIPコ ア を 生 成 し ま す. Quartusのメニューの「Tools」→「IP Catalog」を選択 します[ 図3 a)].するとIP Catalog が 開 く の で, 図3 b)のように「Altera PLL」を選択します.Altera PLL の各種設定ウィンドウが開くので,まずファイル 名とファイル・タイプ(VHDL or Verilog HDL)を設 定します.次に図3 c)のように「Settings」タブをク 動的に周波数の変更が可能な PLL とは 1 動作状態でクロック周波数を切り替えたい! FPGA を用いてクロック同期回路を設計していると き,そのクロック周波数を変更または切り替える機能 が欲しくなることがあります.例えば,「性能を上げ るために高速で動作するモード」と,「消費電力低減 のために低速で動作するモード」といったように,動 作周波数を動的に切り替えたい場合や,接続相手が存 在するシステムで相手側に合わせて動作周波数を変更 する必要がある場合などです. このような場合に,「動的に周波数の変更が可能な PLL」が 必 要 に な り ま す. こ れ を 実 現 す る た め に Altera社のFPGAでは,「Altera PLL Reconfig」とい う IP コアが提供されています. 普通に設計すると PLL 出力周波数は固定 通常のPLLのみでFPGAを構築すると,PLLが出 力する周波数は設計段階で固定することになります 図1).もちろん,例えばPLLの設定を50MHzとし て設計したFPGAコンフィグレーション・データと, 80MHzとしたFPGAコンフィグレーション・データ の2種類を用意して,コンフィグレーションROMを 切り替えてFPGAを起動させる方法もありますが, FPGAを動作させつつPLL出力周波数を切り替える ことはできません. 出力周波数を動的に切り替えられる PLL 機能 「動的に周波数の変更が可能なPLL」というのは, Altera デバイス 使いこなし術 FPGA ユーザ・ ロジック (50MHz同期) PLL 外部 I/O 外部 I/O 水晶発振器 など 10MHz 10MHz 50MHz 50MHz 固定周波数 固定周波数 50MHzも100MHzも動的に切り替え可能 (コンフィグレーション・データも1つ) FPGA 制御 実装 ユーザ・ ロジック (50MHzまたは 100MHz 同期) ユーザ・ ロジック (10MHz同期) PLL PLL Reconfig 外部 I/O 外部 I/O 水晶発振器 など 10MHz 10MHz 50MHz 50MHz または 100MHz または 100MHz 制御 図 1 PLL のみを使用した FPGA のブロック図 図 2 PLL と PLL Reconfig を使用した FPGA のブロック図

Upload: others

Post on 10-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 動的にクロック周波数の変更が可能なPLLの使い方134 動的にクロック周波数の変更が可能なPLLの使い方 Altera PLL Reconfig機能の生成手順から実機での

134 動的にクロック周波数の変更が可能なPLLの使い方

Altera PLL Reconfig機能の生成手順から実機での動作波形観測まで

動的にクロック周波数の変更が可能なPLLの使い方田坂 光成 Mitsushige Tasaka

 ここではAltera社(現在はIntel社のFPGA部門)のFPGAを使って,PLL(Phase Locked Loop)の出力周波数を動的に切り替える方法について解説します.IPコアの生成手順から制御レジスタの概要,任意の周波数を出力させるための設定値の計算方法について解説します.最後に実際にCyclone V GXにPLLテスト回路を実装し,動的にクロック周波数を切り替えて出力波形を観測してみます.

平たく言えば「FPGAは動作状態のまま周波数の変更が可能なPLL」のことです. 今回紹介するAltera PLL Reconfigは,出力周波数を動的に切り替えられるPLL機能です.Altera PLL Reconfigと,それを制御するユーザ・ロジックを実装することで,FPGAは動作状態のままPLLの出力周波数を自由に変更できるようになります.もちろんコンフィグレーション・データは1つで,どの周波数にも対応することができます(図2).

PLL制御IPコアの生成手順2

 図2に示したように,PLL ReconfigはPLLとセットで使う構成となります.ここでは「Altera PLL」と

「Altera PLL Reconfig」の生成方法について説明します.● Altera PLLの生成手順  ま ず はAltera PLLのIPコ ア を 生 成 し ま す.Quartusのメニューの「Tools」→「IP Catalog」を選択します[図3(a)].するとIP Catalogが開くので,図3(b)のように「Altera PLL」を選択します.Altera PLLの各種設定ウィンドウが開くので,まずファイル名とファイル・タイプ(VHDL or Verilog HDL)を設定します.次に図3(c)のように「Settings」タブをク

動的に周波数の変更が可能なPLLとは1

● 動作状態でクロック周波数を切り替えたい! FPGAを用いてクロック同期回路を設計しているとき,そのクロック周波数を変更または切り替える機能が欲しくなることがあります.例えば,「性能を上げるために高速で動作するモード」と,「消費電力低減のために低速で動作するモード」といったように,動作周波数を動的に切り替えたい場合や,接続相手が存在するシステムで相手側に合わせて動作周波数を変更する必要がある場合などです. このような場合に,「動的に周波数の変更が可能なPLL」が必要になります.これを実現するためにAltera社のFPGAでは,「Altera PLL Reconfig」というIPコアが提供されています.● 普通に設計するとPLL出力周波数は固定 通常のPLLのみでFPGAを構築すると,PLLが出力する周波数は設計段階で固定することになります

(図1).もちろん,例えばPLLの設定を50MHzとして設計したFPGAコンフィグレーション・データと,80MHzとしたFPGAコンフィグレーション・データの2種類を用意して,コンフィグレーションROMを切り替えてFPGAを起動させる方法もありますが,FPGAを動作させつつPLL出力周波数を切り替えることはできません.● 出力周波数を動的に切り替えられるPLL機能 「動的に周波数の変更が可能なPLL」というのは,

Alteraデバイス使いこなし術

FPGA

ユーザ・ロジック

(50MHz同期)PLL

外部I/O外部I/O

水晶発振器など

10MHz10MHz 50MHz50MHz

固定周波数固定周波数50MHzも100MHzも動的に切り替え可能(コンフィグレーション・データも1つ)

FPGA

制御

実装

ユーザ・ロジック

(50MHzまたは100MHz 同期)

ユーザ・ロジック

(10MHz同期)

PLL

PLLReconfig

外部I/O外部I/O

水晶発振器など

10MHz10MHz 50MHz50MHzまたは

100MHzまたは

100MHz制御

図1 PLLのみを使用したFPGAのブロック図 図2 PLLとPLL Reconfigを使用したFPGAのブロック図