XilinxでFPGAからSDRAMなどの外部デバイスにクロックを供給する場合は、グローバルクロックからIOブロック(IOB)のDDRレジスタを叩いてクロックを生成した。データも同じグローバルクロックラインからクロックを供給されるクロックを使用するものは、IOBのレジスタ(DDR or SDR)を使用するとFPGAから供給するクロックと大体(スキューがあるときがあるから)同期できた。
Alteraではどうなんだろう?FPGAからSDRAMなどの外部デバイスにクロックを供給する場合のクロックの遅延は?出力するデータの同期はどうなるのか、IOブロックの中のFFを使用するにはどうするのか?実際にDE0のCyclone III (EP3C16F484C6)で、テストプロジェクトを作って調べてみることにした。
まずは、MegaWizard Plug-In Manager でALTPLLを作成して、50MHz入力、133.333MHz外部出力用のc0と内部で使用するためのc1を作成した。

これを使って、上のモジュール(CLK_DATA_test.v)を書いた。CLK_DATA_test.vを下に示す。
// CLK_DATA_test.v
`default_nettype none
module CLK_DATA_test (
input wire clk,
input wire reset,
input wire [7:0] din,
output wire clk_out,
output wire [7:0] dout
);
reg [7:0] d0, d1, d2;
wire c0_sig, c1_sig;
wire locked_sig;
wire reset_sig;
clk_data_test_pll clk_data_test_pll_inst (
.areset ( reset ),
.inclk0 ( clk ),
.c0 ( c0_sig ),
.c1 ( c1_sig ),
.locked ( locked_sig )
);
assign reset_sig = ~locked_sig;
always @(posedge c1_sig) begin
if (reset_sig) begin
d0 <= 8'd0;
d1 <= 8'd0;
d2 <= 8'd0;
end else begin
d0 <= din;
d1 <= d0;
d2 <= d1;
end
end
assign dout = d2;
assign clk_out = c0_sig;
endmodule
`default_nettype wire
これで、Quartus II 10.0SP1でコンパイルしてみた。制約ファイルは全く書いていない状態だ。

次にChip Plannerを起動して、内部を覗いてみた。
左下をほんの少し使ってある。どうやら、4つの隅にPLLが実装されているようだ。

使っている部分を拡大する。ピンクの四角や黒い四角で囲んだ部分が使用されている部分だ。

黒い四角で囲んだ部分がPLLなので、これをダブルクリックすると内部構造が見える。Resource Property Editorが開いてPLLのプロパティを見ることができた。

CLK0とCLK1がイネーブルされて、133.33MHzが出力されるように設定されている。
さて、一番見たかったのが、最後のFFのd2が何処に割り当てられているかだ。IOブロックのFF(Flip-Flop)かそれともLE(Logic Element)か?
LEの割り当てられていた。

PLLのC0の出力先IOピン(clk_out)を見てみる。

PLLからIOパッドまで行く配線は立ち上がりの遅延が1.764ns、立ち下がりの遅延が1.783nsだった。
次に、PLLでc0とc1の配線を反対にしてコンパイルしてみた。Chip Planner を立ち上げて、PLLからIOパッドまで行く配線を見てみたが、配線遅延は変化がなかった。
- 2010年10月21日 05:50 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:0
今日はQuartusII 10.0 SP1のWebインストールを試みたが、1%から進まない。そこで、個別にダウンロードしたらダウンロードできた。今からインストールする。今のところiTunesアップデートとiPhoneのOS4.1のインストールをしているので、終了したら、やってみようと思っている。
さて、だいぶ間があいてしまったが、”
Cyclone III のお勉強1”の続き。
さて、M9Kメモリ・ブロックはXilinxで言うとBlock RAMか?Spartan3用のブロックRAMは18Kビットなので、半分の粒度だな。256X36ビットまでいけるらしい。ROM、RAMはあたりまえだが、FIFOとしてもコンフィギュレーションできるのか?
エンベデッド・マルチプライヤも持っているみたい。9X9、2個か18X18、1個として使えるようだ。
I/O機能はLVTTLやLVCMOS,SSTL,LVDSなどなどを選ぶことができるみたいだ。
クロック・ネットワークおよびPLL、20個のグローバル・ネットワークを持っている。これは、Xilinxみたいにリージョンはないのだろうか?PLLは4個持っている。AlteraはDLLは無しで、PLLのみ。
DDR2 SDRAM メモリ・インタフェースは、最大400 Mbps のデータ・レートをサポートするそうだ。これはSpartan-3Aよりも転送レートが高い。(333Mbps)
QuartusII 10.0 SP1とModelSim AE, Nios2もインストールできた。
- 2010年09月09日 05:57 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:0
SDR SDRAMコントローラは、単体で作るか、SOPC Builderベースで全体を構築してIPを使うか?もう少し検討することにした。
さて、DE0に使用されているFPGAのCyclone3について、何も知らないので、マニュアルで勉強することにした。
Cyclone III デバイス・ハンドブックの
Chapter 1. Cyclone III デバイス・ファミリの概要を読んで勉強する。
・ロー・パワー65 nm FPGA(XilinxではVirtex-5が65nmのようだ。廉価版ではSpartan-3シリーズが90nm、Spartan-6シリーズが45nmなので、Xilinxの廉価版は65nmがないみたい)
・PLLのみ、DCMは入っていない
・DDR2 SDRAMとか最大400Mbpsのメモリインターフェイスに対応する
・I/OはXilinx同様に色々設定できる。
DE0のFPGAの型番は、EP3C16F484C6Nだったので、EP3C16というCyclone III シリーズ。
Chapter 1. Cyclone III デバイス・ファミリの概要の表1–1. Cyclone III FPGA デバイス・ファミリの特長を下に引用させていただく。

ロジック・エレメントが15,406、メモリ504Kビット、マルチプライヤも56個、PLL4個、グローバル・クロック/ネットワーク20個のかなり大きなFGPAだ。
パッケージは484 ピン FineLineボール・グリッド・アレイ(FBGA)で、346個のIOポートが使える。
- 2010年08月19日 05:44 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:3
DE0で、自作ソフトからAvalonバス上のJTAG-UARTとやり取りできないかと思っている。それの覚書。
ネットで検索していたら、
niosforum.comの記事がヒット。
それによると、nios2-terminalのstdin/stdoutを自作ソフトにリダイレクトするようだ。リダイレクトするソフトウェアは、
Redirecting an arbitrary Console's Input/Outputにあるそうだ。
まだ、確かめていない。そのうちに試してみよう。
まずは、nios2-terminalはeclipseからしか起動したことが無いので、これを起動するところから始めないと。。。
- 2009年12月08日 05:47 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:0
とりあえず、購入したAlteraのFPGAボードとUSB Blasterもどきのテストをすることにした。
日昇テクノロジーのサンプルのページからサンプルをダウンロードして、一番簡単そうなled_testをやってみることにした。(Quartusのやり方はいろいろなサイトで説明されているので省略する)
まずはQuartusⅡ9.0sp1を立ち上げて、プロジェクトをオープンする。

確か、紫の三角のStart Compilation をクリックすればコンパイルできるはず。。。
コンパイルできた。

これでProgrammerを立ち上げればよかったのでは?
Programmerを立ち上げた。
USB-Blasterが見えました。良かった。少し心配していたので。。。

Startしたら成功してLEDがついた。


左下のほうの互い違いについているLEDだ。これで、買ったボードとダウンロード・ケーブルは一応動いているのが確認できた。
2009/05/28 : 追加
7セグメントLEDと圧電スピーカーのデモも動かしてみたが、OKだった。案外使えるかも?
Verilog ソースのコメントが中国語?なので読めないのが難点か?できれば日本語とは言わないが英語で書いてあるとうれしい。
- 2009年05月27日 21:26 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:2
昨日、
日昇テクノロジーから
FPGA/Cyclone II EP2C5Q208ボード と
CPLD/FPGA用のインタフェース・ボードと
CPLD/FPGA用ダウンロード・ケーブルを購入しました。
合計、送料込みで16,950円ととてもお買い得でした。コネクタの割り方などに雑なところが見かけられましたし、ダウンロード・ケーブルはフラットケーブルがコネクタではなく、直接出ていたので、価格なりという感じはしましたが、値段を見ると本当に安いので、動けば文句ないです。
これで、Alteraのボードが手に入ったので、Xilinxとの比較をしてみたいと思います。特にNiosⅡとSOPC Builderを使ってみたいですね。
これからQuartusⅡの9をダウンロードして、インストールしようと思います。ですが、今はSpartan3A Starter KitのDDR2 SDRAMコントローラを作っているので、それが終わったらにします。臨時収入が入ったので、なくならないうちに欲しかったボードを買ってしまいました。
マニュアルは全く同梱されていなかったです。すべてWebページからダウンロードということみたいです。電源用DCジャックの仕様をメールで問い合わせたのですが、夜にメールを送って、いくらもたたないうちに返事が来たのにはびっくりしました。電源はセンター+極性の5Vなので、手持ちの電源が使えそうです。
そういえば、品物を注文してから送ってくるのも早いです。日曜日に注文して、次の日(月曜日)に届きました。

仕事の関係もあって、私の軸足はXilinxなのですが、Alteraも勉強してみたくなりました。XilinxのFPGAやツールもまだまだ勉強し足りないところがたくさんあります。
- 2009年05月26日 06:06 |
- AlteraのFPGA
-
| トラックバック:0
-
| コメント:0