FC2カウンター FPGAの部屋 2015年01月17日
FC2ブログ

FPGAやCPLDの話題やFPGA用のツールの話題などです。 マニアックです。 日記も書きます。

FPGAの部屋

FPGAの部屋の有用と思われるコンテンツのまとめサイトを作りました。Xilinx ISEの初心者の方には、FPGAリテラシーおよびチュートリアルのページをお勧めいたします。

高位合成友の会に参加、そしてPyCoRAMは広大な無駄のLチカの夢が見られるのか?

昨日、高位合成友の会に行ってきました。

3種類の高位合成ツールのご紹介がありました。感想を書いてみたいと思います。

たばたさんの 「neon light compiler」は、スプリクト言語処理系で、最適化エンジンが3つの中にで一番進んでいるのが分かりました。でも、FPGAに実装できないので、やってみる気になれません。今後に期待したいと思います。

みよしさんの「Synthesijer」は、私も使ったことがあります。一番始めやすいと思います。
まずはLチカのサンプルアプリがあるのが良いですし、ハードのHello World はなんといってもLチカですよね。演算のチェイニングなどのツールの改良ロードマップもあるし、これからにも期待したいです。
ただ、Synthesijer.scala で書くのだったら、HDLの方が私は書きやすそうです。VHDL2008 やSystemVerilog もありますし。(X社のツールで使えるのかどうか?は別問題かもしれませんが。。。)
高位合成友の会での「Synthesijer」の発表スライドがあります(Synthesijer@高位合成友の会

高前田さんの「PyCoRAM」は、初めて話を聞いたんですが、とってもリッチな構成の高位合成ツールでした。Python記述部分の最適化エンジンは、まだ搭載されていないようです。良くPyCoRAMを知っている人が使えば性能は相当出そうです。構成については、スライドを参照下さい。

メモリ抽象化フレームワークPyCoRAMを用いたソフトプロセッサ混載FPGAアクセラレータの開発
PyCoRAM: Python-Verilog高位合成とメモリ抽象化によるFPGAアクセラレータ向けIPコア開発フレームワーク (FPGAX #05)
PyCoRAMを用いたグラフ処理FPGAアクセラレータ

しかし、このリッチな構成でハードのHello World のLチカはできるのでしょうか?質問してみたところ、Verilog 部でやって下さいとのことでした。質問したのは、構成がリッチすぎて、ツールを使いはじめるための初心者用チュートリアルが思いつかなかったからです。
高位合成友の会で質問した趣旨とは正反対になりますが、今日お風呂に入りながらPyCoRAM のリソースを使い切った、とてもリッチなLチカ を考えてみました。DMA の機能をフルに使ったLチカでなければ意味ありません。Lチカをするためにダブル・バッファにします。

・User Logic は、カウンタを作ってLチカ用にクロックをカウントし、その1, 0 の出力をCoRAM Memory か CoRAM Stream でDRAM にWrite します。これがDMA Write 側です。
・カウンタのカウント値は変えられるようにして、最初は0.5秒間隔、次は、1秒間間隔とか、Lチカの点滅の間隔を変更します。
・次の間隔のLチカ点滅データは、前のLチカ点滅データとは別のメモリ領域にDMA します。前のLチカ点滅データのメモリ領域は現在のLチカのためにDMA Readされて使っているからです。(ダブル・バッファ)
・前にDMA Write されたLチカ点滅データのメモリ領域からDMA Read してLチカのLED出力とします。
・Pythonで書かれた制御部はダブル・バッファの管理やDMAの制御などの全体の制御を行います。


こんな感じのAXIバスの帯域を使い切ったリッチなLチカをやってみたいですね。。。
  1. 2015年01月17日 21:16 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0