FC2カウンター FPGAの部屋 2014年03月10日
FC2ブログ

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

FPGAの部屋

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

FPGAエクストリーム・コンピューティング 第5回で発表しました

今日、FPGAエクストリーム・コンピューティング 第5回で発表してきました。(後日、履歴を取るために書いています)
題は、”ラプラシアンフィルタをZedBoardで実装(ソフトウェアからハードウェアにオフロード)”です。長いです。後で、資料を Slideshare にアップします。

内容は、ZedBoardが来てから、Linuxにカメラ表示回路を実装したこと。ラプラシアンフィルタをソフトウェアで実装して、チューニング、ハードへのオフロードしたことを説明しました。スライドは47枚でした。

FPGAエクストリーム・コンピューティング 第5回のビデオはこちらにあります

いろいろな方のやっていることが分かって、とっても面白い勉強会です。FPGAX。イー・ツリーズの船田さんは、FPGAのHDLを生成するのに、AWKを使っているとのことでした。私も限定的な用途ですが、書くと難しい演算のHDLを書くためにRubyを使っています。

時間の関係でピザを食べないで帰ってきました。残念です。

この勉強会で、大学関係の方にもお会いして、興味が有るようならば、Zynq勉強会をやりますよとお話したところ、2人の方が興味を示して下さいました。出張して1回位はやってみたいと思っています。少なくともISEは結構できる、XPSも少し触ったことが有りますくらいのスキルが必要だと思いますが。。。(今のところ、VivadoではなくISE、XPSを使用しています)あまりスキルが無いと、聞いていると眠くなってしまって、双方が幸福ではなくなります。
但し、飛行機は金属の塊なので、飛ぶはずがありませんw。よって、飛行機で行く必要があるところには、なるべく行かないようにしようと思っています。
  1. 2014年03月10日 23:08 |
  2. その他のFPGAの話題
  3. | トラックバック:0
  4. | コメント:0

ある constant の値で、他の constant の値を切り替える3(VHDL編2、XPSプロジェクト)

ある constant の値で、他の constant の値を切り替える2(VHDL編)”の続き。

VHDLの達人 hiyuh さんのVHDLコードのおかげで、"SVGA"と入力したら、800x600 に設定することができた。今度は、XPSプロジェクトに置いてAdd IPのダイアログの中で、VGA, SVGAなどの解像度を設定したら、640x480, 800x600 に設定することを目指す。

MPDファイルのサンプルを見ると、DT = STRING として、VALUESで選択する文字列の項目を列挙すれば、Add IPのダイアログでリストボックスで選択できるようだ。

PARAMETER RESOLUTION = "SVGA", DT = STRING, VALUES = (VGA=VGA, SVGA=SVGA, XGA=XGA, SXGA=SXGA, HD=HD)


なお、”Platform Specification Format Reference Manual Embedded Development Kit (EDK) 14.1 UG642 (v14.1) April 24, 2012”の47ページに載っている例文によると、ダイアログに表示する文字列は = の後のようだ。= の前にinteger 値を書けば、その値を入力することも出来るようだ。下に引用する。

PARAMETER C_ODD_PARITY=1, RANGE=(0:1), VALUES=(0=Even, 1=Odd)


VHDLの達人 hiyuh さんは、”VHDLでstringなgenericを使うのはあまり筋が良くない”とのことなのだが、文字列使ったほうがわかりやすいし、Xilinxのサンプルも使ってあるので、文字列を使ってみようと思う。何かまずいことがあったら integer に修正しようと思う。

constant_test2 IP を作って、XPSプロジェクトにAdd IPした所の画像を下に示す。
const2const_5_140310.png

constant_test2_0 をダブルクリックして、ダイアログを表示してみたところだ。RESOLUTIONを選択することが出来る。HDを選んだ。
const2const_6_140310.png

ISE14.7でインプリメントもOKだった。
const2const_7_140310.png

ISimのシミュレーションでも、HDの解像度が選択されているのがわかる。
const2const_8_140310.png

これで、この戦略は使えることがわかったので、これを使って、キャラクタ・ディスプレイ・コントローラ IP を使いやすいように書き換えることにする。

なお、VHDLコードは、”ある constant の値で、他の constant の値を切り替える2(VHDL編)”に貼ってある constant_test2.vhd そのままだ。

下にMPDファイルを貼っておく。

BEGIN constant_test2

## Peripheral Options
OPTION IPTYPE = PERIPHERAL
OPTION IMP_NETLIST = TRUE
OPTION STYLE = HDL
OPTION DESC = constant_test2
OPTION LONG_DESC = constant test IP
OPTION HDL = VHDL
OPTION RUN_NGCBUILD = FALSE

## Bus Interfaces

## Generics for VHDL or Parameters for Verilog
PARAMETER RESOLUTION = "SVGA", DT = STRING, VALUES = (VGA=VGA, SVGA=SVGA, XGA=XGA, SXGA=SXGA, HD=HD)

## Ports
PORT oH_ACTIVE_VIDEO = "", DIR = O, VEC=[10:0]
PORT oV_ACTIVE_VIDEO = "", DIR = O, VEC=[10:0]
END

  1. 2014年03月10日 04:03 |
  2. EDK
  3. | トラックバック:0
  4. | コメント:0