FC2カウンター FPGAの部屋 2018年08月14日
FC2ブログ

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

FPGAの部屋

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

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