2016年6月19日日曜日

FPGAでLチカ 2 (iCE40の場合)

前々回のブログで、水晶発振器やCR等の外付け部品を使わずFPGAのみを使ってLチカを実現する方法を考え、FPGAのSLICEでリングオシレータを作ってそれをクロック源としてLチカを実現した。その時使用したFPGAはLatticeのXO2だったが、世界最小クラスかも知れないFPGAボード搭載のiCE40でも同様の実験をやってみた。

以下のようにリングオシレータを3506段のトランスペアラレントラッチとして記述した。



XO2の場合はSLICE内のレジスタがラッチモードで使用されていたが、iCE40ではLUTが使われていた。iCE40のレジスタはラッチとしての動作モードを持っていないのかも知れない。トランスペアレントラッチ記述でリングオシレータを作成するという方法自体は旨く行った。

出力信号の周波数は118.5KHzだったが、RTLを見て判るとおりリングオシレータで生成した信号をクロックとして出力用F/Fをトグルさせているので発振周波数はこの2倍の237KHzとなる。

段数が最小の場合も見てみた。

発振周波数は155.3MHzの倍なので310.6MHzだった。



0 件のコメント:

コメントを投稿

ERROR: Failed to spawn fakeroot worker to run ...

なにかと忙しくてなかなか趣味の時間を確保できない。 ...orz  家の開発機のOSはLinux Mintなのだが、最近バージョンを22に更新したところ、myCNC用のpetalinuxをビルドできなくなってしまった。ビルドの途中で ERROR: Failed to spawn ...