DE0の基板上のクロックは50MHz。搭載されているSDRAMは100MHzか133MHz動作なのでこれなんか必要だよなあPLLがあるはずだがどうやって使うんだろうと悩んでいたが解決した。
これはメーカー/デバイスごと固有の設定であり、Verilog-HDLの記述でどうこうできる話ではない。 QuartusII(12.1sp1)では[Tools]→[MegaWizard Plug-in Manager]で呼び出す。

新規作成を選んで次へ。

ここでは出力する言語をverilog HDL、ファイル名はapll、使用するmegafunctionはI/O→ALTPLLを選択。

ここからALTPLLの詳細設定画面。入力クロックは50MHzにする。

resetやlock信号は今回使わないのでチェックを外す。後はいくつか飛ばして以下の画面へ。

c0~c4まで出力を設定できるが、ここではc0だけ。100MHzに設定。あとは飛ばす。

最終確認。[Finish]
メインの画面に戻って[File]→[Open...]でapll.bb.vを開く。以下の内容のダミーモジュールができる。
apll apll_0(clk_50,clk);
とすればよい。なおトップモジュールでクロック入力の名前を変えるとピンの対応付けが再度必要になるのでPinPlannerで定義する。これでチカチカ表示するのが二倍速になるのを確認した。
参考:
http://www.emb4fun.de/fpga/nutos1/
昔話:
昔はのう、クロック入力を分周してデューティ50%で使ってたんじゃ。例えば内部50MHz動作だと100MHzの発振器が必要で、当時CMOSでそんな出力のはなかったんでECLレベルの発振器を使っておったんじゃ……
これはメーカー/デバイスごと固有の設定であり、Verilog-HDLの記述でどうこうできる話ではない。 QuartusII(12.1sp1)では[Tools]→[MegaWizard Plug-in Manager]で呼び出す。

新規作成を選んで次へ。

ここでは出力する言語をverilog HDL、ファイル名はapll、使用するmegafunctionはI/O→ALTPLLを選択。

ここからALTPLLの詳細設定画面。入力クロックは50MHzにする。

resetやlock信号は今回使わないのでチェックを外す。後はいくつか飛ばして以下の画面へ。

c0~c4まで出力を設定できるが、ここではc0だけ。100MHzに設定。あとは飛ばす。

最終確認。[Finish]
メインの画面に戻って[File]→[Open...]でapll.bb.vを開く。以下の内容のダミーモジュールができる。
module apll ( inclk0, c0); input inclk0; output c0; endmoduleこれをつないでやれば良い。トップモジュールで定義したクロック入力をclk_50、PLLの出力をclkで分配すると
apll apll_0(clk_50,clk);
とすればよい。なおトップモジュールでクロック入力の名前を変えるとピンの対応付けが再度必要になるのでPinPlannerで定義する。これでチカチカ表示するのが二倍速になるのを確認した。
参考:
http://www.emb4fun.de/fpga/nutos1/
昔話:
昔はのう、クロック入力を分周してデューティ50%で使ってたんじゃ。例えば内部50MHz動作だと100MHzの発振器が必要で、当時CMOSでそんな出力のはなかったんでECLレベルの発振器を使っておったんじゃ……



