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

大中 庸生

module glcd( cd, wr, di, rdy, d, a0, cs, e, rw, clk, nreset );
parameter   T1 = 1 ;←アクセス時間の確保用の遅延時間
parameter   T2 = 2 ;
parameter   T3 = 1 ;
parameter   T4 = 200 ;

    input         cd, wr ;
    input   [7:0] di ;
    output        rdy ;
    
    output  [7:0] d ;
    output        a0,cs, e,rw ;
    
    input         clk ;
    input         nreset ;

    reg     [2:0] stat ;
    reg     [7:0] timer ;
    reg           rdy ;
    reg     [7:0] d ;
    reg           a0, cs, e, rw ;
    always @( posedge clk or negedge nreset )
    begin
        if( !nreset ) begin←※10
            stat  <= 4 ;
            timer <= T4 ;
            rdy   <= 0 ;
            d     <= 0 ;
            a0    <= 0 ;
            cs    <= 0 ;
            e     <= 0 ;
            rw    <= 1 ;
        end
        else begin
            if ( timer != 0) timer <= timer -1 ;
            else
                case( stat )
                 0: begin
                     if ( wr == 1 ) ←書き込み要求待ち
                          stat <= 1 ;
                      else
                          rdy <= 1 ;
                 end
                 1: begin
                     rw    <= 0 ;←※11
                     cs    <= 1 ;
                     a0    <= cd ;
                     rdy   <= 0 ;
                     stat  <= 2 ;
                     timer <= T1 ;
                 end
                 2: begin←※12
                     e     <= 1 ;
                     d     <= di ;
                     stat  <= 3 ;
                     timer <= T2 ;
                end
                3: begin←※13
                    e     <= 0 ;
                    stat  <= 4 ;
                    timer <= T3 ;
                    
               end
                4: begin←※14
                    rw    <= 1 ;
                    cs    <= 0 ;
                    stat  <= 0 ;
                    timer <= T4 ;
               end
               default: stat <= 0 ;
            endcase
        end
    end
endmodule

リスト4-1 FPGAから液晶ディスプレイ・モジュールにアクセスするためのVerilog HDL記述



注10;リセット時の各レジスタの初期化.リセット直後はstat4からスタートすることでLCDの初期化時間を確保する

注11;rw,cs,a0,を設定する.タイマをT1にセットしてこれらの信号のセットアップ時間を確保する

注12;Eを'1'にする.データ・ラインにデータを設定するタイマをT2にセットしてEの最小パルス幅を確保する

注13;Eを'0'にする.タイマをT3にセットしてrw,cs,a0,d0-d7のホールドを確保する

注14;csをネゲートする.タイマをT4にセットして最小アクセス・サイクルを確保する

組み込みキャッチアップ

お知らせ 一覧を見る

電子書籍の最新刊! 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日