FPGA活用回路&サンプル記述集(3) ―― ビデオ信号処理回路

大中 庸生

module NTSC( cSync, hCount, vCount, sc, oe, clk, nReset ) ;
    input         clk ;
    input         nReset ;
    
    output        cSync ;
    output  [8:0] hCount ;
    output  [9:0] vCount ;
    output        sc ;
    output        oe ;
    
    reg     [1:0] div1 ;
    reg           sc ;
    reg     [8:0] div2 ;
    reg     [9:0] div3 ;
    reg           oe ;
    reg           cSync ;
    assign hCount = div2 ;
    assign vCount =div3 ;

    always @( posedge clk or negedge nReset ) begin
        if( !nReset ) begin
            div1 <= 0 ;←リセット時の各レジスタの初期化
            div2 <= 0 ;
            div3 <= 0 ;
            cSync <= 0 ;
            oe <= 0 ;
        end 
        else begin
            div1 <= div1 + 1 ;
            sc <= div1[1] ; ←(1) クロックを4分周してサブキャリアを生成
            
            div2 <= (div2 == 454 )? 0: div2 + 1 ;  ←※15
            if( div2 == 454 )begin
                div3 <= (div3 == 524 )? 0 : div3 + 1 ; ←※16
            end
           oe <=( div1 == 1 && div2 == 0 && div3 ==0 )? ~oe : oe ;
           case (div3[9:1])
               0,1,2,6,7,8: ←(4) 等価パルスの生成
                   cSync <= div2 > 16 ;
               3,4,5:            ←垂直同期パルスの生成
                   cSync <= div2 > 422 ;
               default           ←水平同期パルスの生成
                   cSync <= div2 > 32 | ( div3[0]^oe ) ;
          endcase 
      end
    end
endmodule

リスト5-1 水平,垂直,等価パルスを生成するVerilog HDL記述

注15;(2) クロックを455分周して水平同期周期数の2倍を生成
注16;(3) 水平同期周期数の2倍を525分周して垂直同期周期数生成

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! FPGAマガジン No.12『ARMコアFPGA×Linux初体験』好評発売中

FPGAマガジン No.11『性能UP! アルゴリズム×手仕上げHDL』好評発売中! PDF版もあります

PICK UP用語

EV(電気自動車)

関連記事

EnOcean

関連記事

Android

関連記事

ニュース 一覧を見る
Tech Villageブログ

渡辺のぼるのロボコン・プロモータ日記

2年ぶりのブログ更新w

2016年10月 9日

Hamana Project

Hamana-8最終打ち上げ報告(その2)

2012年6月26日