Опубликован: 04.08.2025 | Доступ: свободный | Студентов: 12 / 0 | Длительность: 02:58:00
Лекция 2:

Разработка цифровых ИС на примере микроконтроллерного ядра SCR1 - HDL описание

< Лекция 1 || Лекция 2: 1234 || Лекция 3 >

Что такое HDL HDL

(Hardware Description Language) - язык описания аппаратуры, использующийся для описания структуры и поведения цифровой интегральной схемы.

Основное отличие от языков программирования - описание параллелизмов процессов в цифровой ИС.

Наиболее популярные языки


Основные конструкции SystemVerilog


Модули в SystemVerilog

  • Основной строительный блок в Verilog.
  • Содержит HDL-описание (на любом из 4-х уровней абстракции) устройства, а также т.н. "инстансы" (экземпляры других модулей).
  • Взаимодействует с внешней средой моделирования/реализации только через порты; внутренности модуля скрыты от окружающей среды.

Уровень потока данных

На уровне потока данных устройство описывается в терминах обработки данных и математических/логических операций.

Основная конструкция - постоянное присваивание (ключевое слово "assign").

Пример мультиплексора 2-в-1:

assign out = sel ? in1 : in2;

Поведенческий уровень

  • Высокий уровень абстракции -> проще сконцентрироваться на архитектуре проекта.
  • Схож с программированием на языке высокого уровня (возможно использование конструкций if/else, for, case и т.д.).
  • Гибкие лексические конструкции.
  • Могут быть ошибки вследствие гибкости синтаксических конструкций.

Основные синтезируемые поведенческие конструкции - процедурные блоки:

  • always_ff (последовательностная логика с управлением перепадом).
  • always_latch (последовательностная логика с потенциальным управлением).
  • always_comb (комбинационная логика).

Пример описания мультиплексора 2-в-1:

always_comb
        case(sel)
        1'b0: in1;
        1'b1: in2;
         endcase

Логический синтез



Обзор микропроцессорного ядра SCR1

Микропроцессорное ядро "Syntacore "SCR1" - открытое микропроцессорное ядро на базе открытой архитектуры RISC-V.

Поддерживаемые базовые расширения:

  • RV32I - 32 целочисленных регистра, 47 целочисленных инструкций.
  • RV32E - 16 целочисленных регистров, 47 целочисленных инструкций.

Поддерживаемые расширения:

  • RVM - инструкции целочисленного умножения и деления.
  • RVC - сжатые 16-ти битные инструкции.

Кластер SCR1


Кластер SCR1 содержит:

  • Микропроцессорное ядро (SCR1 core);
  • Маршрутизаторы памяти данных (DMEM router) и памяти инструкций (IMEM router);
  • Тесно-связанную память (Tightly-Coupled Memory);
  • Машинный таймер (Timer);
  • Мосты для внешних AXI/AHB интерфейсов памяти инструкций и данных (IMEM/DMEM AXI/AHB bridge).

Конвейер обработки инструкций

SCR1 содержит простой конвейер, обрабатывающий инструкции строго по порядку и состоящий из следующих фаз:

  • Запрос инструкции;
  • Получение инструкции;
  • Декодирование инструкции;
  • Выборка операндов;
  • Арифметические и логические операции;
  • Операции загрузки/сохранения в память данных;
  • Управление потоком инструкций (расчёт следующего значение счетчика команд);
  • Запись результатов;
< Лекция 1 || Лекция 2: 1234 || Лекция 3 >