2016-04-26 11 views
1

すべてに、 VHDLを初めて使用しています。私は実際のデザインを持っていますが、シミュレーションをキャンセルするまで私のシミュレーションは永遠に動き続けます。テストベンチでは、xクロックサイクル後にシミュレーションを停止するにはどうすればよいですか?これは時計プロセスで行われますか?設定したクロックサイクル数でシミュレーションを実行する方法

clk_process :process 
    begin 
    clk <= '0'; 
    wait for clk_period/2; 
    clk <= '1'; 
    wait for clk_period/2; 
end process; 

ありがとうございました! VHDL-2008では

答えて

0

:以前のリビジョンで

if now >= clk_period * x then 
    std.env.stop; 
end if; 

(まだかかわらず、2008年に動作します!):

assert now < clk_period * x report 
    "Stopping simulation : this is not a failure!" severity failure; 

この後者の好奇心(アサートを乱用)が実際にジャニック・バージェロンの本で推奨されます"テストベンチを書く"!

クロックプロセスは、それらと同じくらい良い場所ですが、シミュレーション制御のための別のプロセス(おそらくクロックに敏感です)は、ややクリーンなデザインになる可能性があります。

+0

1000クロックサイクル後にシミュレーションを停止します。 VHDL-2008コードをクロックプロセスに統合する方法を教えてください。単純にclk> = clk_period * 1000ならばstd.env.stop;終了する。 – Craig3832

+0

私はすでにやりました。 Xを1000に設定するだけです。 'clk'は' time'型ではないので、あなたのコメントは機能しません。 –

関連する問題