В SystemVerilog, виртуальный класс такой же, как абстрактный класс?

Пожалуйста, помогите мне понять необходимость виртуального класса в SystemVerilog.

  • Для абстрактного класса мы можем использовать интерфейс в SystemVerilog. Каковы различия между этими двумя?

1 ответ

Решение

Да, абстрактный класс в SystemVerilog такой же, как виртуальный класс. В Java используется ключевое слово abstract, но в других языках, таких как C++, нет определенного ключевого слова. SystemVerilog повторно использовал ключевое слово virtual чтобы не зарезервировать другое ключевое слово. Абстрактный класс - это просто класс, в котором конструктор защищен, и вы не можете создать его напрямую, сначала вы должны расширить класс, и вы можете создать производный объект. Абстрактные классы допускают еще одну концепцию с чисто виртуальным методом. Это методы, которые должны быть переопределены в расширенном классе. Библиотеки базовых классов, такие как UVM, полны абстрактных классов и имеют методы, которые вы должны переопределить, например, метод копирования или печати. Абстрактный класс, который содержит только чисто виртуальные методы, называется interface class и вы можете определить интерфейсный класс, который реализует несколько интерфейсных классов. В этом году у DVCon было много работ на эту тему.

Другие вопросы по тегам