Основы проектирования СнК на базе ядра RISC-V

Автономная отладка

Показывать лекцию целиком

Как правило, автономная отладка проводится в два этапа:

  • верификация на вентильном уровне - то же, что и в п. 5 (верификация поведенческая), но вместо исходных текстов описания используются синтезированное представление в виде списка связей и примитивов платформы (netlist);
  • подтверждение скоростных параметров (timing).
  • Для верификации на вентильном уровне используется то же самое тестовое окружение в среде Quartus Prime. Отличие состоит в том, что при верификации на вентильном уровне используется информация о времени распространения сигналов по кристаллу ПЛИС, что позволяет выявить возможные проблемы со скоростными параметрами проекта.

    Элементы сценария тестирования перечислены в таблице 7.1.

    Элементы сценария тестирования
    Элемент сценария Примечание
    1 Запись данных в регистр управления Запись произвольных данных, без контроля корректности управления устройством
    2 Запись управляющих параметров в регистр управления Запись управляющих данных, с контролем корректности управления устройством
    3 Чтение регистра управления
    4 Чтение регистра состояния
    5 Загрузка ключа Загружен ключ, определенный для тестов в [4]
    6 Загрузка IV Загружен IV, определенный для тестов в [4]
    7 Загрузка CTR Загружен CTR, определенный для тестов в [4]
    8 Установка режима простой замены
    9 Зашифрован набор данных, определенный в [4]
    10 Расшифрован набор данных, определенный в [4] Данные после расшифрования идентичны данным, зашифрованным в сценарии 9.
    11 Установка режима гаммирования
    12 Зашифрован набор данных, определенный в [4]
    13 Расшифрован набор данных, определенный в [4] Данные после расшифрования идентичны данным, зашифрованным в сценарии 12.
    14 Установка режима гаммирования с обратной связью по выходу
    15 Зашифрован набор данных, определенный в [4]
    16 Расшифрован набор данных, определенный в [4] Данные после расшифрования идентичны данным, зашифрованным в сценарии 15.
    17 Установка режима простой замены с зацеплением
    18 Зашифрован набор данных, определенный в [4]
    19 Расшифрован набор данных, определенный в [4] Данные после расшифрования идентичны данным, зашифрованным в сценарии 18.
    20 Установка режима гаммирования с обратной связью по шифртексту
    21 Зашифрован набор данных, определенный в [4]
    22 Расшифрован набор данных, определенный в [4] Данные после расшифрования идентичны данным, зашифрованным в сценарии 121.

    По результатам проведенного тестирования формируется файл отчета о покрытии кода следующего вида:

    Coverage Report Summary Data by file
    
    =================================================================================
    === File: E:/…/FIFO_wyuxb_ryuxb_sclk_behavior.vhd
    =================================================================================
    Enabled Coverage
    ----------------  Bins
    ----  Hits
    ----  Misses
    ------  Coverage
    --------
    Branches  23  21  2 91.30%
    Conditions  9 5 4 55.55%
    Statements  45  45  0 100.00%
    Toggles 1628  977 651 60.01%
    
    =================================================================================
    === File: E:/…/GstdR3432015_APBctr_AXIStrdflow_behavior.vhd
    =================================================================================
    Enabled Coverage
    ----------------  Bins
    ----  Hits
    ----  Misses
    ------  Coverage
    --------
    Branches  362 339 23  93.64%
    Conditions  145 115 30  79.31%
    Expressions 5 4 1 80.00%
    FSM States  11  11  0 100.00%
    FSM Transitions 18  11  7 61.11%
    Statements  330 315 15  95.45%
    Toggles 6919  2912  4007  42.08%
    
    =================================================================================
    === File: E:/…/Kuznechik_GstdR34132015_MMv01_behavior.vhd
    =================================================================================
    Enabled Coverage
    ----------------  Bins
    ----  Hits
    ----  Misses
    ------  Coverage
    --------
    Branches  275 266 9 96.72%
    Conditions  100 75  25  75.00%
    Expressions 15  9 6 60.00%
    Statements  250 241 9 96.40%
    Toggles 5444  3462  1982  63.59%
    =================================================================================
    === File: E:/…/gstdr3432015_apbctr_ahbdflow_tb_struct.vhd
    =================================================================================
    
    Enabled Coverage
    ----------------  Bins
    ----  Hits
    ----  Misses
    ------  Coverage
    --------
    Toggles 1256  1030  226 82.00%
    
    =================================================================================
    === File: E:/…/gstdr3432015_apbctr_ahbdflow_tester_flow.vhd
    =================================================================================
    Enabled Coverage
    ----------------  Bins
    ----  Hits
    ----  Misses
    ------  Coverage
    --------
    Branches  86  60  26  69.76%
    Conditions  6 2 4 33.33%
    Statements  647 613 34  94.74%
    Toggles 2516  2064  452 82.03%
    
    
    TOTAL ASSERTION COVERAGE: 100.00% ASSERTIONS: 6
    
    Total Coverage By File (code coverage only, filtered view): 78.29%
    

    По представленным отчетам легко видеть, что тесты закрывают существенную часть функциональной составляющей проекта.

    Вопросы для самостоятельной работы

    Обучающийся выполняет верификацию, подтверждает скоростные характеристики и готовит отчеты о покрытии кода тестами. При низком проценте покрытия (< 30%) рекомендуется расширить набор тестовых сценариев.

    Вернуться к учебному плану