Skip to content

Latest commit

 

History

History
37 lines (19 loc) · 6.25 KB

06. RTL Analysis.md

File metadata and controls

37 lines (19 loc) · 6.25 KB

Анализ RTL

RTL (register transfer levelуровень межрегистровых передач) — это один из уровней абстракции при проектировании цифровой схемы, когда та описывается в виде регистров и логики передачи данных между этими регистрами.

Vivado предоставляет средства по анализу RTL-кода, позволяя обнаруживать и исправлять ошибки на раннем этапе, до выполнения моделирования и попытки синтезировать проект. Для того чтобы провести анализ, необходимо выполнить предобработку проекта (Open Elaborated Design, см. рис. 1).

../.pic/Vivado%20Basics/06.%20RTL%20Analysis/fig_1.png

Рисунок 1. Инструменты анализа RTL в окне Flow Navigator.

Итогом предобработки станет отображение графической схемы (подробнее рассказано в документе "Этапы реализации проекта в ПЛИС"). Если схема не отобразилось, можно нажать на кнопку Schematic.

../.pic/Vivado%20Basics/06.%20RTL%20Analysis/fig_2.png

Рисунок 2. Пример построения схемы для схемы, описанной в документе "Менеджер проекта".

Допустим нашли ошибку, изменили код модуля и хотите увидеть обновленную схему. Вы нажимаете на кнопку Schematic у вас появляется новая вкладка, но схема на ней осталась без изменений. Дело в том, что открытие новой схемы требует повторной предобработки проекта. Для этого необходимо либо закрыть окно Elaborated Design, и открыть его заново, либо нажать на кнопку Reload Design вверху окна Vivado, которая появляется в информационном сообщении при обновлении кода модуля (см. рис. 3).

../.pic/Vivado%20Basics/06.%20RTL%20Analysis/fig_3.png

Рисунок 3. Информационное сообщение о том, что предобработанный проект устарел в виду изменения исходников. Кнопка Reload позволяет выполнить повторную предобработку для обновленного кода.

Помимо построения схемы, Vivado выполнит её анализ, а обнаруженные проблемы будут отображены во вкладке Messages, которая расположена внизу окна Vivado (рис. 4).

../.pic/Vivado%20Basics/06.%20RTL%20Analysis/fig_4.png

Рисунок 4. Окно с сообщениями о результатах выполненных операциях. Для удобства отображения, информационные сообщения скрыты, оставлены только предупреждения.

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

Начиная с версии 2023.1 в Vivado появился специальный инструмент — линтер, который анализирует код и сообщает о проблемах в отдельном окне. Проблемы группируются по типам и список проблем очищается и генерируется повторно каждый раз, когда запускается линтер.

Если вы уже прочли документ "Руководство по поиску функциональных ошибок", вы можете заметить, что предупреждения, которые Vivado вывел в окно сообщений напрямую связаны с ошибками, которые мы обнаружили в процессе симуляции. Разница заключается в том, что Vivado вывел сообщения об этих ошибках практически мгновенно, в то время как нам для этого потребовалось проводить целое расследование. Именно в этом и заключается мощь данного инструмента — он позволяет найти большинство простых ошибок, давая возможность сосредоточиться на более сложных.

Дополнительные материалы

Подробнее о взаимодействии с окном схемы можно прочитать в руководстве пользователя Vivado: "Vivado Design Suite User Guide: Using the Vivado IDE (UG893)" (раздел "Using the Schematic Window").