FC2カウンター FPGAの部屋
FC2ブログ

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

FPGAの部屋

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

ZYBOtを製作した

昨日、家用ZYBOtを製作した。
まだ、「SODIAL(R)5ペア EC5バナナプラグ ブレットコネクタメス+オスRC ESC LIPOバッテリー/モータ」が来ていないので、モーターをドライブする+12V 用のコネクタが来ていないので、+12V 系は接続できていない。
あと、「Pmod HB5: H-bridge Driver with Feedback Inputs」の拡張ケーブルの接続は適当に接続してしまったので、コネクタの向きが違っているかもしれない?後で確認する。
ZYBOt_1_180816.jpg

ZYBOt_2_180816.jpg

ZYBOt_3_180816.jpg

サイドパーツ付きジョイントマット 32枚セット」が届いているので、これを床に引いて、「ヤマト ビニールテープ 38mm幅 5巻 NO200-38-5-5PR 白」で白線を引く予定だ。
  1. 2018年08月16日 07:05 |
  2. ZYBOt
  3. | トラックバック:0
  4. | コメント:0

インクレディブル・ファミリー(映画)を見てきました

本当に久しぶりに下の娘とインクレディブル・ファミリー(映画)を見てきました。今回も楽しめました。
  1. 2018年08月15日 20:40 |
  2. 日記
  3. | トラックバック:0
  4. | コメント:0

Ultra96 ボードのDisplayPort について

Ultra96 ボードのDisplayPort を使いたいと思っているがなかなか難しい。

Zynq UltraScale+ MPSoC テクニカル リファレンス マニュアル UG1085 (v1.4) 2017 年 2 月 2 日」の 772 ページ「DisplayPort コ ン ト ローラーの概要」を見ると、DPDMA で PS だけでメモリから画像データをDMA して表示する方法と、Live Video Interface を使用してPL からビデオ信号を入力する方法がある。
Zynq UltraScale+ MPSoC テクニカル リファレンス マニュアル UG1085 (v1.4) 2017 年 2 月 2 日」の 775 ページの「図 33‐1: DisplayPort コ ン ト ローラー内のデー タ フロー」と 776 ページの「図 33‐2: DisplayPort コ ン ト ローラーのビデオ レンダリング パイプラインのブロ ッ ク図」を引用する。
Ultra96_DP_8_180815.jpg

Ultra96_DP_9_180815.jpg

そのうちの、DPDMA のサンプルを「DPDMA の examples をやってみる」でやってみたのだが、うまく行っていない。。。

もう1つのLive Video Interface だが、これは、下表のような信号をPL から入力する。「Zynq UltraScale+ MPSoC テクニカル リファレンス マニュアル UG1085 (v1.4) 2017 年 2 月 2 日」の 780 ページの「 33‐2: ライブ イン ターフ ェ イスの PS‐PL イ ン ターフ ェ イス信号」を引用する。
Ultra96_DP_10_180815.jpg

これらの信号のブロックデザイン中のZynq Ultrascale+ MPSoC に表示する方法を書いておく。
ブロックデザイン中のZYNQ Ultrascale+ MPSoC をダブルクリックして設定ダイアログを開く。
Page Navigator のPS-PL Configuration をクリックしてGeneral -> Ohters を開き、Live Video を 0 から 1 に変更する。
Ultra96_DP_11_180815.jpg

ブロックデザインの Zynq Ultrascale+ MPSoC を見ると dp_live_video の信号が追加されている。
Ultra96_DP_12_180815.jpg
  1. 2018年08月15日 06:47 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

SDKでstdin, stdout に割り当てられるデバイスを変更

SDK でstdin, stdout に割り当てられるデバイスを変更する方法を書いておく。

SDK で xxx_bsp フォルダの system.mss をダブルクリックして、system.mss を開く。
Modify this BSP's Settings ボタンをクリックする。
SDK_stdin_out_1_180815.jpg

Board Support Package Settings ダイアログが開く。
左のOverview -> standalone をクリックする。
SDK_stdin_out_2_180815.jpg

standalone 画面で、stdin のValue をクリックすると、stdin にできるデバイスがプルダウン・メニューで選択できる。
SDK_stdin_out_3_180815.jpg

stdin, stdout 共に psu_uart_1 に設定変更した。
SDK_stdin_out_4_180815.jpg

これで、OK ボタンをクリックすると、リビルドした。

Ultra96 の uart_0 はブルートゥースに接続されて、端子に出ているのは、uart_1 ということで、端子からUART出力する場合には設定変更が必要となる。
まだ、UARTアダプタをはんだ付けしてないので、はんだ付けして試してみよう。
  1. 2018年08月15日 05:30 |
  2. SDK
  3. | トラックバック:0
  4. | コメント:0

DPDMA の examples をやってみる

Ultra96 の DisplayPort を使えるようにしようとして奮闘しているが、”ZynqMP Standalone DisplayPort Driver”のドライバがXilinx\SDK\2018.2\data\embeddedsw\XilinxProcessorIPLib\drivers フォルダにあるということで、dpdma_v1_1/examples を確かめてみることにした。
Ultra96_DP_7_180814.jpg

Xilinx\SDK\2018.2\data\embeddedsw\XilinxProcessorIPLib\drivers フォルダをインクルード・パスに追加する必要があるが、それは”SDKでインクルード・パスを追加する方法”で解決済みだ。

Vivado 2018.2 の DP_test プロジェクトを示す。
Ultra96_DP_1_180814.jpg

DP_test ブロックデザインを示す。
Ultra96_DP_2_180814.jpg

インプリメンテーション結果を示す。
Ultra96_DP_3_180814.jpg
Ultra96_DP_4_180814.jpg

ハードウェアをエクスポートし、SDK を起動した。

空のアプリケーション・プロジェクトを作成し、dpdma_v1_1/examples のファイルを追加した。
ビルドが通ったので、FPGA をコンフィギュレーションし、elf ファイルを起動した。
Ultra96_DP_6_180814.jpg

Ultra96 のMini DisplayPort にMini DisplayPort - VGA変換器をかませて、ディスプレイに接続したところ、信号は出ているようだが、画面は真っ暗だった。ディスプレイの同期範囲から外れているのかな?
xdpdma_video_example.c の一部を引用する。

void InitRunConfig(Run_Config *RunCfgPtr)
{
    /* Initial configuration parameters. */
        RunCfgPtr->DpPsuPtr   = &DpPsu;
        RunCfgPtr->IntrPtr   = &Intr;
        RunCfgPtr->AVBufPtr  = &AVBuf;
        RunCfgPtr->DpDmaPtr  = &DpDma;
        RunCfgPtr->VideoMode = XVIDC_VM_1920x1080_60_P;
        RunCfgPtr->Bpc         = XVIDC_BPC_8;
        RunCfgPtr->ColorEncode            = XDPPSU_CENC_RGB;
        RunCfgPtr->UseMaxCfgCaps        = 1;
        RunCfgPtr->LaneCount            = LANE_COUNT_2;
        RunCfgPtr->LinkRate                = LINK_RATE_540GBPS;
        RunCfgPtr->EnSynchClkMode        = 0;
        RunCfgPtr->UseMaxLaneCount        = 1;
        RunCfgPtr->UseMaxLinkRate        = 1;
}


HD 解像度のはずなんだが、ストリームを送り込む必要があるのかな?
  1. 2018年08月14日 07:54 |
  2. Ultra96
  3. | トラックバック:0
  4. | コメント:0

SDKでインクルード・パスを追加する方法

SDK でベアメタルのドライバをインクルードできずに困っていた。
SDK で検索しても全くヒットしなかったが Eclipse で検索すると、「Eclipse のビルドとインクルードの設定」がヒットした。

Eclipse のビルドとインクルードの設定」によると、プロジェクトを右クリックして、右クリックメニューから一番下のProperties を選択する。

Properties ダイアログのC/C++ General を開いて、Paths and Symbols をクリックする。

Includes タブで Add... ボタンをクリックして、インクルード・パスを追加したいパスを追加する。

F:\Xilinx\SDK\2018.2\data\embeddedsw\XilinxProcessorIPLib\drivers フォルダへのパスを追加した。これで各種ドライバへのインクルード・パスが設定できた。
Ultra96_DP_5_180814.jpg

これで、SDK でアプリケーション・プロジェクトを作り直さなくても、ドライバへのインクルード・パスが設定できた。
  1. 2018年08月14日 05:20 |
  2. SDK
  3. | トラックバック:0
  4. | コメント:0

「Keras Tutorial : Using pre-trained Imagenet models」を試してみる

Keras Tutorial : Using pre-trained Imagenet models」を試してみようと思う。このページでは、ImagNet で事前に学習させた各ネットワークの重みやバイアスを使用して、vgg_model、inception_model、resnet_model、mobilenet_model の実力を探る企画のようだ。

Jupyter Notebook で試してみたので、それを貼っておく。
imagenet_models_1_180813.png
imagenet_models_2_180813.png
imagenet_models_3_180813.png
imagenet_models_4_180813.png
imagenet_models_5_180813.png
imagenet_models_6_180813.png
imagenet_models_7_180813.png
imagenet_models_8_180813.png
imagenet_models_9_180813.png
imagenet_models_10_180813.png
imagenet_models_11_180813.png
imagenet_models_12_180813.png
  1. 2018年08月13日 07:05 |
  2. TensorFlow, Keras
  3. | トラックバック:0
  4. | コメント:0
»