Какой блок программы verilog не является синтезируемым

Целью данного этапа является освоение и приобретение навыков разработки моделе- и синтезопригодных описаний цифровых устройств на языке Verilog. Изучение материала проводится в рамках дисциплины ЛС САПР.

4.1. Основные сведения о синтезируемых описаниях

устройств на языке Verilog

Язык Verilog располагает средствами для описания устройств различными способами, которые позволяют компилировать, моделировать и синтезировать объект. Однако, необходимо владеть дополнительными теоретическими сведениями и практическими навыками, чтобы получить более эффективную и простую конструкцию заданного устройства.

Первыми этапами проектирования цифровых устройств на основе библиотечных элементов средствами САПР являются:

  1. Разработка Verilog – описания;
  2. Верификация, включающая моделирование, анализ и проверку результатов на соответствие ТЗ;
  3. Синтез устройства в базисе библиотеки;
  4. Верификация проекта после синтеза.
  • конструкции assign и always;
  • операторы Verilog;
  • оператор цикла for.
  1. Конструкции assign (явное и неявное применение):
  1. Блока always. При использовании блока always в списке чувствительности следует перечислить все входные порты, используемые в блоке, например:
  1. Блокирующее присваивание ( = );
  2. Неблокирующее присваивание (
    1. Лабораторная работаОсвоение разработки моделе — и синтезопригодныхVerilog-описаний цифровых устройств.
    1. Получить у преподавателя варианты:
    1. Выполнить пункты 5 и 6 для несинтезопригодных проектов.
    2. Сравнить и проанализировать результаты моделирования синтезопригодного и несинтезопригодных вариантов. Выявить сходства и различия.
    3. Составить отчёт по работе. Представить результаты преподавателю; ответить на вопросы по изучаемой теме и выполненной работе.
    • название и цель работы;
    • вариант функции, ее таблицу истинности;
    • моделе- и синтезо- пригодное Verilog-описание базового модуля;
    • несинтезопригодные Verilog-описания базового модуля;
    • временные диаграммы входных воздействий;
    • временные диаграммы результатов моделирования;
    • сравнение синтезируемого и несинтезируемого описаний;
    • перечень созданных в процессе работы файлов и модулей;
    1. Что такое синтезируемое подмножество языка Verilog?
    2. Что входит в синтезируемое подмножество?
    3. Какие ограничения существуют при разработке синтезопригодных описаний устройств?
    4. Что такое блокирующее присваивание?
    5. В чём, с точки зрения синтеза, разница между применением блокирующего и неблокирующего присваивания?
    6. В чём особенности синтеза конструкции case c неполным перебором?
    7. Что такое список чувствительности?
    8. Как следует описывать последовательностные устройства с синхронным и асинхронным сбросом?
    9. Приведите примеры немоделепригодных Verilog-описаний.
    Читайте также:
    Как запустить программу 2 раза

    Источник: studfile.net

    Модули в языке Verilog

    System Verilog event regions.Как разобраться? // Данил Бычков

    Verilog — инструмент разработки цифровых электронных схем

    При описании цифровых схем возникает необходимость задания констант, определяющих какие-либо фиксированные параметры. Эти константы могут описывать характерные задержки, ширину шин или любой другой параметр, не изменяющийся во время симулирования модели и известный на момент компиляции. Но в то же время при использовании модели одного и того же модуля в различных технологических условиях или включении его различным образом в модули высшего уровня данные константы должны иметь возможность изменяться. В языке VHDL данную функцию решают с помощью конструкции generic. В Verilog для этого используются параметры, то есть в описании модуля наряду с описанием переменных и сигналов могут описываться и параметры:

    module parity (bus, out);
    parameter width=8, typ_delay=1, modul_delay=typ_delay*2;
    wire [width-1:0] bus;
    wire out;
    assign #modul_delay out=^bus;
    endmodule

    Введение в язык Verilog

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

    Можно описать простой триггер, показанный на рисунке выше, и можно описать сложное устройство, содержащее миллион логических элементов. Verilog – это один из языков, используемых в промышленности для описания аппаратуры. Он позволяет нам проектировать цифровые системы на уровнях: поведения, передачи данных между регистрами (RTL), логики, и уровне переключателей (транзисторов). Verilog позволяет разработчикам описывать поведение устройства, откладывая детали его выполнения на будущее.

    Многие инженеры, желающие изучить Verilog часто интересуются: – сколько времени займет его изучение? Ответ автора будет следующим: – не больше недели, если вы уже знакомы хотя бы с одним из языков программирования.

    Читайте также:
    Установка всех программ adobe

    Методы проектирования

    Verilog, подобно другим языкам описания аппаратуры, позволяет вести проектирование как восходящим, так и нисходящим методом.

    Восходящий метод проектирования

    Это традиционный метод проектирования в электронике. Каждый проект выполняется снизу, начиная с использования стандартной логики (См. подробности в Digital Section). С увеличением сложности проекта такой метод становится использовать все труднее, вплоть до невозможности. Современные разработки содержат специализированные интегральные схемы (ASIC) или микропроцессоры, содержащие тысячи транзисторов. Поэтому традиционный восходящий метод разработки уступает дорогу новому, структурному, иерархическому методу, дающему возможность справиться со сложностью новых устройств.

    Нисходящий метод проектирования

    Предпочтительный способ для всех разработчиков – нисходящий. Он обеспечивает возможность раннего тестирования, легкого изменения технологий, структурирования системы и еще множество других преимуществ. Однако такой метод, если строго его придерживаться, связан со значительными трудностями. По этой причине, большинство разработчиков используют комбинацию восходящего и нисходящего методов, используя их преимущества по обстоятельствам.

    Пример нисходящего проектирования

    Уровни абстракции Verilog

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

    • Уровень поведения
    • Уровень межрегистровых передач (УМП),
    • Уровень логических элементов

    Уровень поведения

    Этот уровень описывает систему при помощи конкурирующих алгоритмов (поведения). Каждый алгоритм последователен, что означает его представление в виде набора инструкций, выполняющихся одна за другой. Функции, задачи и постоянные блоки являются основными элементами. Структурная реализация на этом уровне не учитывается.

    Уровень межрегистровых передач (УМП)

    На данном уровне разработка выполняется путем описания операций и передачи данных между регистрами. При этом используется тактовый сигнал. Уровень RTL требует привязки всех операций ко времени и учета тактовых сигналов (тайминг). Современное определение RTL кода таково: любой код, поддающийся синтезу, можно считать RTL-кодом.

    Читайте также:
    В функции системных программ не входит обработка графических изображений

    Уровень логических элементов

    На уровне логики характеристики системы описываются связями между логическими элементами и их временными свойствами (задержкой распространения сигналов). Все сигналы считаются дискретными. Они должны иметь только стандартные логические уровни: 0, 1, X, Z. Используемые операции являются стандартными логическими примитивами: И, ИЛИ, НЕ и т.д. Нужно учесть, что использование уровня логики не является хорошей идеей. Такой уровень автоматически синтезируется соответствующими программами, и полученный список узлов используется симулятором и для дальнейших целей.

    Источник: v2020e.ru

    Рейтинг
    ( Пока оценок нет )
    Загрузка ...
    EFT-Soft.ru