2015-04-27 3 views
2

Когда мы запускаем дизайн, мы получаем вопрос «Цикл нулевой задержки». Что значит «петли нулевой задержки» иПетля с нулевой задержкой

  1. Почему этот вопрос будет представлять.
  2. Каковы причины цикла нулевой задержки.

Симулятор постоянно работает, и он еще не закончен.

ответ

2
  1. Почему произошла петля нулевой задержки?

    Из-за состояние гонки или неоднозначного стиль кодирования нулевого цикла задержки может получить генерируемое что приводит к имитации завис или бесконечного моделирование времени

  2. Каковы причины нулевого цикла задержки?

    Одним из примеров общего поведения петли следующим образом:

    always @ (x) 
    begin 
        y = 1'b0; 
        ... 
        case (x) 
        ... 
        1'b1: y = 1'b1; 
        ... 
        endcase 
    end 
    
    always @ (y) 
    begin 
        x = 1'b0; 
        ... 
        case (y) 
        ... 
        1'b1: x = 1'b1; 
        ... 
        endcase 
    end 
    

Здесь, в этом есть возможность цикла, когда оба x и y устанавливается в 1, что вызывает новое событие и триггер операторы case называются нулевым циклом задержки из-за запуска события в одно и то же время, чтобы избежать использования задержки # 0, которая заставляет событие произойти в конце временного шага, но этот тип стиля кодирования не рекомендуется

  1. Для отладки этой проблемы

Из моего понимания VCS имеет переключатель под названием + VCS + loopreport, который будет генерировать подробный отчет о нулевом цикле задержки и genrerate текстового файла, из который вы можете устранить или отладки эти петли эффективно

Смежные вопросы