2009年4月16日木曜日

内蔵オシレータの精度は?

相変わらずLatticeで遊んでみる。内蔵のオシレータがあるので、それで、クロックを生成してみる。水晶発振器を実装するパターンはあるけど、3.3V用で適当な周波数の物はなかなか見つからないので、実験には発振してくれる物があれば十分(笑)



が、しかし、精度は、、、、。データシートには-30〜+30%の誤差があるとしている。これは使い物にならないような。でとりあえず、オシロを使って波形を見ると。



結果は2356442Hzで誤差は-5.7%、まあ、誤差範囲ではあるけど、、、、(汗)。しかし、基板にはTP(テストポイント)があって、非常にチェックし易い。出来ればプローブのGNDのためのTPも欲しかった(笑)。



もっとFPGAの様々な機能を試してみたい。ちなみに、コードは

library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity top_io is

port(
SW0: in std_logic ;
LED0: out std_logic ;
LED1: out std_logic );
end;

architecture behavioral of top_io is
COMPONENT OSCE
PORT (OSC:OUT std_logic);
END COMPONENT;
begin
LED1 <= SW0; OSCInst0: OSCE PORT MAP ( OSC => LED0);
end behavioral;

こんな感じで、ピンの設定は適当に基板にあわせる。LEDが二つとスイッチが一つあるので、いろんな動作が出来そう。

仕様基板:『ディジタル・デザイン・テクノロジ』CQ出版社 2009.spring号付録基板
FPGA:LatticeXP2 LFXP2-5E 144pinTFQP

0 コメント: