FC2カウンター FPGAの部屋 ISE14.7のISimの不具合?
FC2ブログ

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

FPGAの部屋

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

ISE14.7のISimの不具合?

現在、かなり大きな回路をISE14.7のISimでシミュレーションしています。その時にクロックが止まってしまうという現象が出てしまったので、ブログに書いておきます。

まずは、下記のいつもブログでも使っているクロック発生モジュールを使用してクロックを生成していました。

.............

    wire ACLK;
    wire hdmir_clk;

    // clk_gen (ACLK)
    clk_gen #(
        .CLK_PERIOD(50),    // 10nsec, 100MHz
        .CLK_DUTY_CYCLE(0.5),
        .CLK_OFFSET(0),
        .START_STATE(1'b0)
    ) ACLKi (
        .clk_out(ACLK)
    );

    // clk_gen (hdmir_clk)
    clk_gen #(
        .CLK_PERIOD(68),    // 6.8nsec, 147.6MHz(HD 148.5MHz)
        .CLK_DUTY_CYCLE(0.5),
        .CLK_OFFSET(0),
        .START_STATE(1'b0)
    ) WRITE_CLKi (
        .clk_out(hdmir_clk)
    );

endmodule

module clk_gen #(
    parameter         CLK_PERIOD = 100,
    parameter real    CLK_DUTY_CYCLE = 0.5,
    parameter        CLK_OFFSET = 0,
    parameter        START_STATE    = 1'b0 )
(
    output    reg        clk_out
);
    begin
        initial begin
            #CLK_OFFSET;
            forever
            begin
                clk_out = START_STATE;
                #(CLK_PERIOD-(CLK_PERIOD*CLK_DUTY_CYCLE)) clk_out = ~START_STATE;
                #(CLK_PERIOD*CLK_DUTY_CYCLE);
            end
        end
    end
endmodule


これでシミュレーションすると 1.5msec 過ぎでクロックが停止するという不可解な現象が出てしまいました。
ISim_4_131204.png

クロック発生ロジックがおかしいのかと、always 文を使用する方法に修正してやってみました。

.................

    reg ACLK = 1'b0;
    reg hdmir_clk = 1'b0;

    always #(50)
        ACLK = ~ACLK;

    always #(34)
        hdmir_clk = ~hdmir_clk;


こうしてもやはりクロックが止まってしまいました。しかも出たり、出なかったり。。。
ISim_5_131204.png

クロックが止まってはシミュレーションができません。困ってしまいました。。。
そこで、Questaがあったので、これでシミュレーションを行うことにしました。下にシミュレーション波形を示します。17msec まで問題なくシミュレーションすることができました。vsync も出ています。
ISim_6_131204.png

やはり、ISE14.7のISim に不具合があるようです。
それにQuestaの方が桁が違うくらい速いです。
  1. 2013年12月06日 04:26 |
  2. ISim
  3. | トラックバック:0
  4. | コメント:0

コメント

コメントの投稿


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

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