Sim's blog

電子工作はじめてみました

LatticeXP2で内蔵クロックを使う

2009-04-20 09:57:40 | FPGA
ispLEVERのHELPを見ていて使い方が分かりました。OSCEという内蔵クロック発生モジュールをインスタンス化します。クロック周波数はdefparamで設定します。指定できる周波数は2.5, 3.1, 4.3, 5.4, 6.9, 8.1, 9.2, 10.0, 13.0, 15.0, 20.0, 26.0, 32.0, 40.0, 54.0, 80.0, 163.0 (全部MHz)です。最高で163MHzってすごいですね。精度はどうなんでしょう。
以下のように書きます。

OSCE clkgen(clk);
defparam clkgen.NOM_FREQ = "2.5";

clkgenはインスタンス名なので、好きな名前にできます。defparamの名前と一致させる必要があります。

前回のLEDチカチカの内蔵クロック版です。
`default_nettype none
module main(LED);
    output reg [1:0] LED = 2'b00;

    wire clk;

    OSCE clkgen(clk);
    defparam clkgen.NOM_FREQ = "40.0";

    reg [22:0] ctr;
    wire ctr_en = ctr == 0;

    always @(posedge clk)
        ctr <= ctr + 1;

    always @(posedge clk)
        if(ctr_en) LED <= LED + 1;

endmodule

internal oscillatorで検索すると「How to Use the Internal Oscillator」というトピックが見つかりました。LatticeXP2に搭載されているのはOSCEなので、OSCEで検索して、試した結果が今回の話になります。

最新の画像もっと見る

15 コメント

コメント日が  古い順  |   新しい順
40MHzでLEDチカチカ (のりたん)
2009-04-20 19:19:15
すごい
返信する
Unknown (nsx)
2009-04-21 00:40:23
こんばんは
内蔵クロックは便利そうですね。私はx社fpgaですが、内蔵クロックのあるのは知らないですね。CLK系列に24Mはないですが私はUSBで使うので需要は高いと思うのだけど。更にPLLを経由して24M作れるのかもしれませんが。このCLK系列は疑問ですね。
メモリIFは、DDR2-400Mまでサポートしているらしいことがデータシートにありましたが(-7グレード)、だとすると質的にも良いみたいですね。価格的にはX社よりやすいかもしれません。
返信する
今日はソケット取りつけ失敗 (ノンノ)
2009-04-22 00:23:09
例のソケットを横着して付けました。
後から樹脂をとろうと引っ張ったら、
金属が薄いので破れて外れました。
しかもGND側だったので幾ら鏝を当てても抜けずに
結局ドリルで揉みました。
表から着けるとチップが付けられない。
parallaxのような埋め込み型ソケットはどこかで見ませんでしたか?
返信する
チョットは触ってみようと (ノンノ)
2009-04-23 20:08:15
基板を弄っています。
紙面の方を見て感じたのは、枚数を増やすためか
とっても判りにくく、2点ほど判らないままです。

そこで、手ほどきをお願いしたいのですが、
まずクロックは回路図では33MHzに成っていますが
それ以外の可能性もあるのでしょうか?
(後のFMデジタルチューナでは、73.728MHzに成っています)
それと3.3Vのレギュレータは317Tをお勧めのようですが、
手持ちはAZ1117-ADJなので差し込むと反対側のタブが浮いてしまい、
放熱不足のようです、実際にはどれくらいの電流なのか?
或いは抵抗類を取ってしまって、AZ1086-3.3Vを付けるかなんですが、
AZ1086-Dと有るのが3.3Vなのか確認できません。
このシリーズはADJの方が精度安定度が良いようです。
返信する
re:40MHzでLEDチカチカ (Sim)
2009-04-24 08:47:33
こんにちは、のりたんさん
内蔵クロックでも、こんなにでるものなんですね。たいしたものです。
返信する
re:Unknown (Sim)
2009-04-24 08:55:18
こんにちは、nsxさん
ええ、私も基本はザイリンクスで、いつものごとく色々浮気してます。
ザイリンクスのDCMみたいな機能もあったりするのかな。後で余裕ができたら調べてみます。DD誌自体には、あまり精度がよくないみたいなことも書いてあるので、正確なクロックが必要なときは、やはり外部クロックなのだと思います。
正確な周波数カウンタがあれば調べられるのでしょうが、ないのでどうしようか思案中です。

返信する
re:今日はソケット取りつけ失敗 (Sim)
2009-04-24 09:03:16
こんにちは、ノンノさん
例のコネクタというとP-329ですね。下にもささるし、上からも線を挿せるしという使い方ですね。よさげな感じですね。
Parallaxというと、BASIC StampとかPropellerの、あのParallaxですよね?どんなソケットなんでしょう。
返信する
re:チョットは触ってみようと (Sim)
2009-04-24 09:13:03
こんにちは、ノンノさん
一つ目です。FPGAはクロックはかなり自由です。回路遅延が間に合えば何MHzでも平気です。私はつけはずしできるようにソケットをつけましたが、実際にはCN1のB25ピンから入力できるので、基板表面にはつけない方がいいかもしれません。また内蔵クロックもあるので、クロックをつけなくても遊ぶことはできます。

二つ目です。LEDチカチカを動かす程度で70mA近く流れています。もっと回路規模が大きくなると100mAとかを超えることが考えられます。私は基板上で3.3Vを作らず外部から直接3.3Vを流し込んでいます。

返信する
お返事有り難う (ノンノ)
2009-04-24 13:27:14
今回は書き込みや電源ヘッダを付けることにします。
クロックは後から、REGも後から、にします。

信号ヘッダピンをどうしようか考えています。
1,何も無し
2,ピンを上向きに付ける(基板固定が無いので?固定が難しい)
3,ピンをした向きに付ける(背が高くなる、マザーが要る)
4,ソケットを上向きに付ける(単一ピンが刺しにくい)
5,ソケットを下向きに付ける(マザーが要る、使わないともったいない)

長いヘッダピンは何かの時、もう外せなくなるので、
2pinごとに切り離して、ソケットに差して、かためて
半田付けしています、これなら途中抜きも簡単です。
どこかで買った基板部分が少し細くなったヘッダが抜けたりせず、
使いやすいです。(もっと買っておけば良かった)
返信する
parallaxのソケット (ノンノ)
2009-04-24 14:15:33
次ぎにUPしました。
http://den-nekonoko.blog.so-net.ne.jp/
返信する

コメントを投稿