Начало работы с Power Aware
Результаты Test 2 (power_down_no_iso)

        Теперь переместимся немного далее во времени до следующего теста, начинающегося с 167 мс. Это тест снова выключает электропитание проекта, но сейчас уже без изоляции. Обратите внимание, что в тесте адресные входы моделей SRAM не переключаются в нуль. Неопределённые значения из контроллера памяти транслируются в SRAM – это проблема.
        Решением будет использование встроенных назначений, чтобы захватить их. В этом случае, они определяются аргументом -pa_checks=i в команде vopt.

        1. Откройте окно Transcript, выбрав следующее в основном меню:
        View > Transcript
        Вы увидите сообщение от встроенных назначений, описывающее проблему:
        ** Error: MSPA_ISO_EN_PSO: Isolation control (0) is not enabled when power is switched OFF for the following: Port: /interleaver_tester/dut/mc0/addr.
        (**Ошибка: MSPA_ISO_EN_PSO: контроль изоляции (0) не разрешён, когда электропитание переключено в OFF для: Port: /interleaver_tester/dut/mc0/addr.)
       
Чтобы дополнить назначения, собираемые в ModelSim, вы должны написать свои собственные назначения.

        2. Откройте окно Assertions, выбрав View > Coverage > Assertions. Все назначение, которые быль выполнены, выделены красным. Непосредственно назначение, которое генерирует сообщение, показано под меткой:
        /mspa_top/blk6/MSPA_ISO_EN_PSO_1
        Это внутреннее назначение. Оно также немного отменяет пользовательские назначения.

        3. Открепите окно Assertions и посмотрите на назначение
        /interleaver_tester_a_addr_m2_iso
        Это пользовательское назначение. В окне Assertions, вы можете видеть сигналы, которые являются частью назначения, выражением назначения и различными счётчиками, ассоциированными с назначением. Это показано на рис. 16-3.

        4. Выберите это назначение и сделайте правый клик для появления всплывающего меню.

        5. Выберите Add Wave > Selected Objects. Добавляется группа назначений в панель pathname слева в окне Wave.

        6. В окне Wave уменьшите вид, чтобы видеть все три теста. Зелёные и красные треугольники соответственно описывают прошедшие и не прошедшие назначения.
        Во время Test 1, который симулирует нормальный цикл выключения питания, вы можете увидеть изменения назначений с неактивного (голубая линия) в активное (зелёная линия) при выключении питания. При включении питания, назначения проходят, что отображается зелёным треугольником. Затем назначения становятся неактивными до следующего теста.
        Во время Test 2, изоляция не разрешена должным образом. Назначения стартуют при выключении питания. Однако, они теряются на следующем такте, когда адресный вход SRAM не переключается в корректное значение. Это отображается красным треугольником, как показано на рис. 16-4.

        7. Наведите курсор на красный треугольник в 167727 нс.

        8. В меню main выберите Wave > Assertion Debug. Откроется панель отладки внизу окна Wave, как показано на рис. 16-5. Когда курсор находится над потерянным назначением, на этой панели отображается информация об интересующем сигнале. В это случае, сообщение о причине потери назначения следующее:
        /interleaver_tester/dut/m1/A_i=xxxxxxxx

<< Назад     Оглавление     Далее >>
Хостинг от uCoz