
- •Глава 9 : Функциональная верификация
- •9.1 Введение
- •V диаграмма разработки, верификации, и интеграции.
- •9.2.1 Верификация ступени проектирования. Designer-level verification
- •9.2.2 Unit-level verification верификация уровня элементов
- •9.2.3 Core-level verification. Верификация уровня ядра.
- •9.2.4 Chip-level verification Верификация уровня ядра
- •9.2.5 System-/board-level verification верификация уровня системы/платы.
9.2.3 Core-level verification. Верификация уровня ядра.
В примере рисунка 9.4 элементы, такие как
ядро ARM процессора, ядро
DMA и ip-третьей
стороны первоначально разработаны для
общего использования и оснащены более
обобщёнными функциональностями. In
the example of Figure 9.4, units such as the ARM processor core, the
DMA core, and the third-party IPs are initially designed for general
purpose use and are equipped with more generalized functionalities.
FIGURE 9.4
AMBA bus-based SOC.
Они включены в SOC конструкцию,чтобы избежать необходимость в разработке выделенной логики, которая зачастую требует лишь часть оригинальных функциональностей.They are incorporated into an SOC design to avoid the need for developing dedicated logic, which often requires only a subset of the original functionalities.Такие многоразовые компонетны упоминаются как ядра и могут быть либо приобретены в других компаниях, либо разработаны внутри компании. Such reusable components are referred to as cores and can be either acquired from other companies or developed internally in a company.В современной SOC конструкции, ядро часто используется множество раз внутри системы или сквозь различные системы. In modern SOC designs, a core is often used multiple times within a system or across different systems.Для поставщиков ядер, необходимо тщательно верифицировать функциональность ядер до того, как они будут доставлены For core providers, it is necessary to thoroughly verify the functionality of the core before it is delivered to the core integrators.Ядра часто разработаны, как самостоятельные компоненты в первую очередь.Cores are often designed as a stand-alone component in the first place.
В дополнение к характерной для ядер функциональности, Стандартизированные протокол шины и/или стандарты физических интерфейсов соединяются, чтобы предложить повторное использование ядра.In addition to core-specific functionalities, standardized bus protocols and/or physical interface standards are then incorporated to offer core reusability.Соответствующие компоненты верификации, использующиеся для стимулирования и контроля стандартных шин и интерфейсов, могут, следовательно,быть использованы и разделены среди ядер используя тот же протокол шин или физические интерфейсы.The corresponding verification components used to stimulate and monitor these standard buses or interfaces can, therefore, be reused and shared among cores by use of the same bus protocols or physical interfaces.
Даже если ядро имеет свою самостоятельную спецификацию, эта спецификация может меняться, так как устранение ошибок или расширения функциональности, любой из которых может изменять оригинальную функциональность . Even if a core has its own stand-alone specification, this specification can change because of bug fixing or functionality enhancement, either of which may alter the original functionality.Следовательно, необходимо перепстраховаться, что операции ,определённые в предыдущих версиях ядра,будут до сих пор работать корректно в последующей версии Therefore, it is necessary to re-ensure that operations defined in a previous version of the core will still work correctly in a subsequent version.Эти потребности называются обратной совместимостью. This requirement is called backward compatibility.Для удовлетворения этих требований, часто используется регрессионный тест. To meet this requirement, a regression test suite is commonly used.Такой набор тестирования разработан коллекционированием интересных и полезных тестов из верификаций проведённых на предыдущих версиях проекта. Such a test suite is developed by collecting interesting and useful tests from verification conducted on previous versions of the design.Новая версия должна пройти эти тесты для гарантирования обратной совместимости. A new version must pass these tests to ensure backward compatibility. Обратите внимание, что если ошибка существует в старых версиях проекта, мы должны не ожидать, что регрессионные тесты найдут эту ошибку в новой версии, даже если исправление ошибки было внесено. Note that if a bug exists in old versions of the design, we should not expect regression tests to capture this bug in the new version even if a fix to the bug has been inserted.Для этих целей новым тестам необходимо верифицировать корректность вставленного исправления. For that purpose, new tests are required to verify the correctness of the inserted fix.