Jump to content

    

Стопорится ModelSim

было у кого-нибудь такое?

 

может есть какие-то внутренние ограничения на длину симуляции или в настройках где-то что-то стоит а я не видел?

 

основной цикл в тестбенче у меня такой:

 

initial begin
$display ("###################################################");
clk = 0;
reset = 0;
chipselect = 0;
address = 0;
read = 0;
write = 0;
writedata = 0;                                         
$display("Running testbench"); 
    #1000 -> reset_enable;
    @ (reset_done);
    @(negedge clk) -> write_params;
    @(params_active);
    @(posedge clk) -> write_m1;
    @ (m1_gone);
    #32000; 
    @(posedge clk)-> write_m2;
    @ (m2_gone);
    #32000; 
    @(posedge clk)-> write_m5;
    @ (m5_gone);
    #32000;
    @(posedge clk) -> write_h1;
    @ (h1_gone);
    #32000;
    @(posedge clk) -> write_h2;
    @ (h2_gone); //---------------- отсюда выходит, если следующей строкой стоит -> terminate_sim; 
    #32000; //------------------------------------вот на этом месте зависает что бы сюда не поставить, даже те эвенты что уже проходили
    -> terminate_sim; 
end

 

пожалуйста, подскажите. Интересно же узнать что у меня там дальше произойдёт!

Share this post


Link to post
Share on other sites

Было и не такое. Увы этот убогий modelsim насквозь глючный. Лучше перейти на что-нибудь другое.

Share this post


Link to post
Share on other sites

99 % в теле того, что моделируете в этом интервале времени активизируется combinatorical loop и моделсим до посинения молотит дельтациклы.

 

Было и не такое. Увы этот убогий modelsim насквозь глючный. Лучше перейти на что-нибудь другое.

сказав а, говорите и б. куда именно вы направляете человека ?

Share this post


Link to post
Share on other sites
99 % в теле того, что моделируете в этом интервале времени активизируется combinatorical loop и моделсим до посинения молотит дельтациклы.

 

но даже если я заново запускаю уже успешно состоявшиеся ивенты, всё равно виснет!

правильно я понял, что combinatorical loop - это обратная связь в combinatorial statements'ах?

то есть когда я пишу assign a = a && b; так?

допустим, я прочешу свой код на наличие таких ошибок. но если у меня их не найдётся, то что делать?

Edited by Farsch

Share this post


Link to post
Share on other sites
combinatorical loop - это обратная связь в combinatorial statements'ах?

то есть когда я пишу assign a = a && b; так?

допустим, я прочешу свой код на наличие таких ошибок?

Вроде того. Проверьте еще всякие циклы типа for repeat (может у Вас запускается цикл в какой-то момент времени, который не имеет границы). Чесать код вручную не обязательно если он синтезируемый - попробуйте его отсинтезировать и прогнать через P&R - все защелки высветятся в предупреждениях, сообщения могут быть разными, но будут содержать слова combination loop.

Share this post


Link to post
Share on other sites
99 % в теле того, что моделируете в этом интервале времени активизируется combinatorical loop и моделсим до посинения молотит дельтациклы.

Попробовал в Альдеке следующий процесс:

process(t) begin
    t <= not t;
end process;

Альдек сказал - " KERNEL: stopped at delta: 5000 at time 0 ps.

# KERNEL: Delta count overflow - stopped. Try to increase the iterations limit in simulator preferences.

# Fatal error occurred during simulation."

Насчёт Моделсима не знаю, а вот Альдек так просто не убить.

Share this post


Link to post
Share on other sites

VCS или NCsim ради интереса не пробывали?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this