DVIエンコーダモジュールの作成


75MHz毎に出力されるRGB各8bit計24bitをHDMI形式の高速シリアル通信として出力する必要があるが,その際にDVIエンコーダモジュールを使用する.
今回は,実験ボードであるNEXYS Videoのリファレンスデザインとして提供されている rgb2dvi モジュールをそのまま利用する.
rgb2dvi モジュール構成は下図のようになっている.



動作は以下の通りである.
  1. RBGの各8bitのパラレル信号をDataEncoderモジュールによりDVI信号のルールに従って10bitにエンコードする.

  2. 得られたRGBの各10ビットDataSerializerモジュールによりパラレル-シリアル変換する. シリアル化の際には75MHzの5倍の周波数である375MHzを使用し,前半周期と 後半周期のそれぞれにデータを乗せる(Double Data Rate)ことで750bpsの速 度で送り出す.

  3. 出力はOBUFDSプリミティブを使用しLVDSの差動信号として出力する.

  4. DVI用のクロックは別途同様に作成しRGBのシリアル信号と共に出力する.

  5. 5倍の周波数である375MHzはrgb2dviモジュール内から呼び出すPLLモジュールにより作成している.
rgb2dviモジュールの関連ファイルは,ここから入手し,作業ディレクトリ内に解凍しておく.

kite_top.v からは,以下の記述により rgb2dvi モジュールを読み出す.
なお、parameter の設定 "#( .kClkRange(2) )" は rgb2dvi において 75MHz を使用する際は kClkRange を 2 に設定しておく必要があるためである。
   //
   // DVI encoder
   //
   rgb2dvi #( .kClkRange(2) ) dviout (
       .aRst(RST),
       .PixelClk(CLK75),          // pixel clock
       .vid_pData(pDATA),         // pixel data in
       .vid_pHSync(HS),           // horizontal sync.
       .vid_pVSync(VS),           // vertical sync.
       .vid_pVDE(DE),             // data enable
       .TMDS_Clk_p(hdmi_tx_clk_p),
       .TMDS_Clk_n(hdmi_tx_clk_n),
       .TMDS_Data_p(hdmi_tx_p),
       .TMDS_Data_n(hdmi_tx_n)
   );



参考文献
漆谷正義:“第5章 画像入力・表示系のバス/インターフェース規格,”インタフェース2009年9月号,pp.76-84,CQ出版社.

次は、KITEマイクロプロセッサ用LIFEゲームプログラムの作成を行います。


| Back |