Menu
Coddy logo textTech

Уровни абстракции проектирования

Часть раздела Основы путешествия по Verilog на Coddy — урок 3 из 90.

В цифровом проектировании мы можем описывать одну и ту же схему на разных уровнях детализации. Verilog — это язык, который может описывать схемы на любом из этих уровней абстракции. Именно это делает его мощным!

Вот эти уровни:

Уровень 1: Поведенческий

Этот уровень описывает, что делает схема, а не то, как она это делает. Он фокусируется на функции или поведении, например, «счет в прямом направлении» или «сложение двух чисел».

Внутренние детали того, как происходит подсчет или сложение, не отображаются. Этот уровень наиболее близок к человеческому мышлению, и на нем легче писать.

Уровень 2: RTL

Этот уровень показывает, как данные перемещаются между регистрами и какие операции происходят с этими данными. Вы можете увидеть путь данных: данные поступают из регистра в сумматор, а затем обратно в регистр.

Это уровень, на котором работает большинство разработчиков цифровых схем, так как он обеспечивает оптимальный баланс между простотой понимания и достаточной детализацией для проектирования аппаратного обеспечения.

Уровень 3: Уровень вентилей

Этот уровень описывает схему, используя базовые логические вентили, такие как AND, OR и XOR. Каждое соединение показано явно.

Этот уровень очень детализирован, и его сложно писать вручную. Обычно он генерируется инструментами на основе описаний более высокого уровня, а не создается вручную.
 

Почему это важно

- **Высокий уровень** = Проще писать, меньше контроля
- **Низкий уровень** = Сложнее писать, больше контроля
- **RTL** — это «золотая середина» для большинства задач проектирования

challenge icon

Задание

Что нужно сделать:

  1. Запустите этот код и посмотрите, как одна и та же операция описывается на трех разных уровнях:

Шпаргалка

Verilog может описывать схемы на различных уровнях абстракции:

  • Поведенческий (Behavioral) – описывает, что делает схема (например, «сложить два числа»). Проще всего в написании, но дает минимум контроля.
  • RTL (Register Transfer Level) – уровень регистровых передач. Описывает, как данные перемещаются между регистрами и какие операции при этом происходят. Стандартный уровень для большинства задач по проектированию цифровых устройств.
  • Вентильный уровень (Gate Level) – описывает схему с использованием явных логических вентилей (AND, OR, XOR). Наиболее детализированный, сложнее всего писать вручную; обычно генерируется инструментами автоматизации.

Компромисс: выше уровень = проще писать, меньше контроля. Ниже уровень = сложнее писать, больше контроля. RTL — это «золотая середина».

Попробуйте сами

module abstraction_demo;
  
  initial begin
    $display("=== Design Abstraction Levels ===");
    $display("");
    
    $display("Level 1 (Behavioral):");
    $display("  'Add a and b' - no details how");
    $display("");
    
    $display("Level 2 (RTL):");
    $display("  'On clock edge, result <= a + b' - shows data flow");
    $display("");
    
    $display("Level 3 (Gate Level):");
    $display("  'XOR gates for sum, AND gates for carry' - actual gates");
    $display("");
    
    $finish;
  end
  
endmodule
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы