CD

 Реферат по теме выпускной работы магистра

   по-русски in english

Свеженцев
 
ДонНТУ>Портал магистров>Свеженцев Юрий



Автор: Свеженцев Юрий Владимирович
Руководитель: доктор технических наук, профессор Башков Е.А.
Тема магистерской работы: "Исследование и разработка эффективных методов построения генерации кода для выражений языка Verilog"

Содержание

  • Введение и актуальность
  • Научная новизна
  • Введение в язык описания аппаратуры Verilog
  • Выражения в языке Verilog
  • Таблица 1 Операторы в Verilog HDL
  • Устройство компилятора

    Введение и актуальность

    В наше время невозможно представить жизнь без различной техники. Человечество настолько привыкло к автоматизации, к таким средствам массовой информации и развлечениям, как телевизор, радио, компьютер и т.д., что невозможно существовать без подобных вещей. Все это - электротехника. Практически в любом даже бытовом предмете присутствуют элементы электроники. Даже современные стиральные машинки имеют электронное управление. Таким образом, очень актуальной задачей и проблемой является разработка и создание различного рода электрических схем. Для разработки существует множество компьютерных систем, которые имеют визуальный интерфейс и позволяют довольно легко, быстро, удобно и с большим количеством возможностей моделировать ту или иную идею. Но сам процесс создания микросхемы зачастую является сложным и дорогостоящим. Поэтому нецелесообразно производить деталь, если мы не убедились в ее полезности, работоспособности и т.д. Хорошим решением этой проблемы было создание симуляторов, которые позволяют без создания микросхемы, программно промоделировать её поведение, протестировать её и т.д. Аппаратура описывается на HDL (Hardware Description Language) - языке описания аппаратуры. Одной из основных задач симулятора является компиляция HDL-кода в машинный код. Компиляция - одна из самых старых и самых сложных задач в программировании. Тема моей магистерской работы - это исследование и разработка части компилятора языка Verilog. Компиляция состоит из нескольких этапов. Одним из этапов является генерация промежуточного кода из древовидного представления кода языка Verilog. Одной из подзадач этого этапа является генерация кода для выражения языка Verilog. Эта задача является одной сложных задач компиляции языка Verilog. Сложность заключается в том, что языки описания аппаратуры имеют множество нестандартных типов данных и различных операций, которые нельзя встретить ни в одном другом языке программирования. Поэтому, преобразование выражений языка описания аппаратуры в промежуточный код, легко поддающийся для генерации машинного кода, является сложной и объемной задачей, имеющей множество проблем и подзадач. Таким образом, задача генерации кода на сегодняшний день является очень актуальной и сложной.

    Научная новизна

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

    Введение в язык описания аппаратуры Verilog

    Язык описания аппаратных средств Verilog (HDL) стал стандартом IEEE в 1995 как IEEE Std 1364-1995. Он был разработан, чтобы быть простым, интуитивным и эффективным на многократных уровнях абстракции в стандартном текстовом формате для разнообразия инструментов проекта, включая моделирование проверки, рассчитывая анализ, испытательный анализ, и синтез. Именно из-за этих богатых особенностей Verilog стал выбором подавляющего числа проектировщиков интегральных схем (ИС). Verilog содержит богатый набор встроенных примитивов, включая логические ворота, пользовательские-определимые примитивы, выключатели, и связанную логику. Он также имеет pin-to-pin задержки устройства и рассчитывающие проверки. Смешивание абстрактных уровней по существу обеспечивается семантикой двух типов данных: сети и переменные. Продолжительные присваивания, в которых выражения переменных и сетей могут увеличиваться на сети, обеспечивают основную структурную конструкцию. Процедурные назначения, в которых результаты вычислений, вовлекающих переменные и чистые ценности могут быть сохранены в переменные, обеспечивают основную поведенческую конструкцию. Проект состоит из ряда модулей, каждый из которых имеет вход/выход (I/O) интерфейс, и описание его функции, которая может быть структурной, поведенческой, или соединение. Эти модули сформированы в иерархию и связаны с сетями. Язык Verilog расширяем через интерфейс языка программирования (PLI) и процедурный интерфейс Verilog (VPI). PLI/VPI - набор рутин, которое позволяет иностранным функциям получать доступ к информации, содержавшейся в описании проекта Verilog HDL и облегчает динамическое взаимодействие с моделированием. Приложения PLI/VPI включают соединение Verilog HDL симулятора с другой симуляцией и CAD-системами, настроенными на задачи отладки, расчетов, и комментаторы. Язык, который влиял на Verilog HDL больше всего - HILO 2, который был развит в Университете Brunel в Англии согласно контракту, чтобы произвести испытательную систему поколения для британского Министерства обороны. В 1990, Cadence Design Systems поместили Verilog HDL в общественную область, и независимый, Open Verilog International (OVI) был сформирован, чтобы управлять и продвигать Verilog HDL. В 1992, Совет директоров OVI начал попытку сделать Verilog HDL стандартом IEEE. В 1993, первая рабочая группа IEEE была сформирована; и после 18 месяцев сосредоточенных усилий, Verilog стал стандартом IEEE как Станд. IEEE 1364-1995. После того, как процесс стандартизации был закончен, IEEE, Рабочая группа P1364 начала искать обратную связь с пользователями IEEE 1364 во всем мире, таким образом стандарт мог быть увеличен и изменен соответственно. Пятилетние усилия привели к получению намного лучшего стандарта Verilog в Станд. IEEE 1364-2001. Вместе с завершением Станд. IEEE 1364-2001, работа велась с целью идентифицировать другие проблемы с языком, решив которые можно улучшить язык Verilog. Поскольку фирма Accellera начала воздействовать на стандартизацию SystemVerilog в 2001, возникли дополнительные проблемы, которые, возможно, привели бы к несовместимостям между Verilog 1364 и SystemVerilog. Рабочая группа IEEE P1364 была установлена как подкомитет рабочей группы SystemVerilog P1800, чтобы помочь гарантировать последовательное решение таких проблем. Результат этой совместной работы - этот стандарт, Станд. IEEE 1364-2005.

    Выражения в языке Verilog

    Эта глава описывает операторы и операнды, доступные в Verilog HDL и как их использовать, чтобы сформировать выражения. Выражение - конструкция, которая объединяет операнды с операторами, чтобы получить результат, который является функцией значений операндов и семантического значения оператора. Любой правильный операнд, например, сети bitselect, без любого оператора считают выражением. Везде, где требуется значение в конструкциях Verilog HDL может использоваться выражение. Некоторые конструкции требуют, чтобы выражение было константным выражением. Операнды константного выражения состоят из константных чисел, строк, параметров, константных бит-селекций и парт-селекций, константных вызовов функци, и константных системных вызовов функций, но они могут использовать любой из операторов, определенных в Таблице 1. Типы данных reg, integer, time, real, and realtime - все переменные типы данных. Описания, имеющие отношение к переменному использованию применяют ко всем из этих типов данных. Операнд может быть одним из следующего: - Константное число (включая real) или строка - Параметр (включая локальные и определенные параметры), - Параметр (не реальный) бит-селекция или парт-селекция (включая локальные и определенные параметры), - Сеть - Сетевая бит-селекция или парт-селекция - Регистр, целое число, или время - Регистр, целое число, или бит-селекция времени или парт-селекция времени - Действительное число или действительное время - Бит-селекция элемента массива - Вызов определенной пользователем функции или определенной системной функции, которая возвращает любой из вышеупомянутых типов Символы для операторов HDL Verilog подобны теиспользуемым в языке программирования C. В таблице 1 представлен список этих операторов.

    Таблица 1 Операторы в Verilog HDL

    {} {{}} Конкатенация, дублирование
    унарный + унарный - унарные операторы
    + - * / ** Арифметика
    % Модуль
    > >= < <= Отношения
    ! Логическое отрицание
    && Логическое И
    || Логическое ИЛИ
    == Логическое равенство
    != Логическое неравенство
    === Равенство случая
    !== неравенство Случая
    ~ Поразрядное отрицание
    & Поразрядный И
    | Поразрядный содержащий ИЛИ
    ^ Поразрядный исключительный ИЛИ
    ^ ~ или ~ ^ Поразрядная эквивалентность
    & Сокращение И
    ~& И-НЕ Сокращения
    | Сокращение ИЛИ
    ~ | Сокращение, НЕ
    ^ Сокращение исключающее ИЛИ
    ~ ^ или ^ ~ Сокращение XNOR
    << Логический левый сдвиг
    >> Логический правый сдвиг
    <<< Арифметический левый сдвиг
    >>> Арифметический правый сдвиг
    ?: Условное выражение

    Устройство компилятора

    Теория компиляции - одна из самых старых разделов программирования. Существует множество различных теорий. Одна из них предполагает наличие и порядок компонентов, представленных в анимации:
  • ДонНТУ>Портал магистров>Свеженцев Юрий



  • Автобиография

  • Реферат

  • Библиотека

  • Список ссылок

  • Отчет о поиске

  • Индивидуалное задание



  • флешка клавиатура