Jump to content

    
Sign in to follow this  
dextrometh

Стопорится ModelSim

Recommended Posts

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

 

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

 

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

 

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

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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this