FC2カウンター FPGAの部屋 Vivado 2104.2でSystemVerilog をやってみた4(data_types_example3)
fc2ブログ

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

FPGAの部屋

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

Vivado 2104.2でSystemVerilog をやってみた4(data_types_example3)

今回は、”AR# 51327 Vivado 合成のデザイン アシスタント - SystemVerilog データ型のサポート”の data_types_example3.zip をやってみようと思う。

Vivado 2014.2 を立ち上げて data_t_ex3 プロジェクトを作成した。使用するボードを ZedBoard に設定した。今回のデータ型のサンプルはステートマシンだ。

インプリメントを行い成功した。
SystemVerilog_19_140810.png

どんな回路になっているか概略を見てみよう。Flow Navigator -> RTL Analysis -> Schematic をクリックした。
SystemVerilog_20_140810.png

うん。常識的なステートマシンの実装のようだ。

実際のマッピングを見るために、Flow Navigator -> Synthesis -> Schematic をクリックした。
SystemVerilog_21_140810.png

テストベンチ traffic_light_tb.sv を作成して、Vivado Simulator でシミュレーションを行った。今回はシミュレーションを行うことができた。
SystemVerilog_22_140810.png

ステートマシンのステートの表示が値ではなく、定義した名前で表示されていて、とっても見やすい。VHDLと同じになった。とても良いと思う。

最後に、テストベンチ traffic_light_tb.sv を貼っておく。

`timescale 1ns / 1ps

module traffic_light_tb;
    parameter DELAY    = 5;

    logic           sensor;
    logic [15:0]    green_cnt;
    logic [15:0]    yellow_cnt;
    logic           clk;
    logic           rst;
    logic           green_light;
    logic           yellow_light;
    logic           red_light;

    traffic_light traffic_light_i (.*);

    initial begin
        clk = 1'b0;
        forever begin
            clk = #10 ~clk;
        end
    end

    initial begin
        rst = 1'b1;
        #20 rst = 1'b0;
    end

    initial begin
        sensor = 1'b0;
        green_cnt = 5;
        yellow_cnt = 10;

        @(posedge clk);    // 次のクロックへ
        #DELAY;
        @(posedge clk);    // 次のクロックへ
        #DELAY;
        @(posedge clk);    // 次のクロックへ
        #DELAY;
        sensor = 1'b1;

        @(posedge clk);    // 次のクロックへ
        #DELAY;
        green_cnt = 0;

        @(posedge clk);    // 次のクロックへ
        #DELAY;
        yellow_cnt = 0;

    end

endmodule


  1. 2014年08月10日 05:09 |
  2. SystemVerilog
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック URL
https://marsee101.blog.fc2.com/tb.php/2897-aa38e26e
この記事にトラックバックする(FC2ブログユーザー)