Скоропад Александр Сергеевич Скоропад Александр Сергеевич
тема магистрской работы: "Разработка подсистемы САПР и верификации автомата Мура на ПЛИС"

Библиотека Каталог ссылок

Автореферат

Разработка подсистемы САПР и верификации автомата Мура на ПЛИС

1. Элементная база и языки описания устройств

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

Программируемые логические интегральные схемы делятся на ряд классов, наиболее часто используются два из них: CPLD и FPGA.

В сложных программируемых логических схемах CPLD (Complex Programmable Logic Devices) несколько блоков объединяются средствами программируемой коммутационной матрицы. В CPLD могут входить сотни блоков и десятки тысяч эквивалентных вентилей. Архитектуры CPLD разрабатываются фирмами Altera, Atmel, Lattice Semiconductor, Cypress Semiconductor, Xilinx и другими. Воздействуя на программируемые соединения коммутационной матрицы ПМЛ, входящих в состав CPLD, можно реализовать требуемую схему.

Микросхемы программируемых пользователями вентильных матриц FPGA (Field Programmable Gate Arrays) в своей основе состоят из большого числа конфигурируемых логических блоков, расположенных по строкам и столбцам в виде матрицы, и трассировочных ресурсов, обеспечивающих их межсоединения. Получение конкретного проекта на базе FPGA, как и на основе других ПЛИС, реализуется воздействием на программируемые межсоединения, в ходе которого обеспечивается замкнутое состояние одних участков и разомкнутое – других. Обращаться к изготовителю FPGA при этом не требуется.

В течение первых лет развития ПЛИС они были представлены архитектурами CPLD и FPGA в "чистом" виде. Каждая из этих архитектур имеет свои достоинства и недостатки. Стремление к сочетанию достоинств CPLD и FPGA и рост уровня интеграции БИС/СБИС привели к появлению ПЛИС с комбинированной архитектурой. Класс ПЛИС с комбинированной архитектурой не имеет таких четких границ, как классы CPLD и FPGA, отличается большим разнообразием вариантов и различной степенью близости к тому или иному классическому классу ПЛИС.

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

На данный момент существует несколько языков описания устройств – VHDL, Verilog, Altera HDL.

В данной работе используется язык VHDL. Проект в системе проектирования VHDL представлен совокупностью иерархически связанных текстовых фрагментов, называемых проектными модулями.

Различают первичные и вторичные проектные модули, при этом:
<первичный модуль> ::= <декларация ENTITY> | <декларация проекта> | <декларация конфигурации>
<вторичный модуль> ::= <архитектурное тело> | <тело пакета>

Декларация Entity – определяет имя проекта и, необязательно, его интерфейс, то есть порты и параметры настройки. Подчиненное Entity архитектурное тело описывает тем или иным способом функционирование устройства и (или) его структуру.

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

Каждому Entity сопоставляется одно или несколько архитектурных тел. Декларация пакета не требует обязательного присутствия тела пакета. Несколько вторичных модулей, соответствующих одному первичному, составляют набор возможных альтернативных реализаций объекта, представленного первичным модулем. Например, одному Entity может соответствовать несколько архитектурных тел, отличающихся степенью детализации описания и даже алгоритмом преобразования данных, определенных в Entity.

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

2. Структура программы

Программа состоит из следующих модулей:

  • модуль ввода алгоритма;
  • анализатор параметров;
  • модуль формирования классов операторных вершин и кодирования классов;
  • модуль замены переменных X на P;
  • модуль преобразования ПСТ;
  • модуль формирования классов совместимых микроопераций и кодирования этих классов;
  • синтез схемы;
  • тестирование схемы на VHDL.

2.1. Ввод алгоритма

Основные характеристики логической схемы УА определяются граф-схемой реализуемого алгоритма управления. Для упрощения процесса ввода ГСА в систему, она представляется в виде абстрактного описания на специализированном языке, описывающем как связи между вершинами, так и содержимое вершин.

Для пояснения синтаксических конструкций языка описания ГСА используются так называемые формы Бэкуса-Науэра, служащие для описания грамматик формальных языков. Язык включает следующие конструкции:

  1. Начальная вершина ГСА:
    <начальная вершина>::=<номер вершины>S:<номер вершины перехода>.
    Например: 1S:2.
  2. Операторная вершина:
    <операторная вершина>::=<номер вершины>O:Y<номер набора микроопераций>, <номер вершины перехода>.
    Например: 15O:Y4,16.
  3. Условная вершина:
    <условная вершина>::=<номер вершины>X:<логическое условие>,<номер перехода если истинно>, <номер перехода если ложно>.
    Например: 9X:X3,20,4.
  4. Конечная вершина:
    <конечная вершина>::=<номер вершины>:E.
    Например: 50:E.
  5. Набор микроопераций:
    Y<номер набора микроопераций>:[<микрооперация>{,микрооперация}].
    Например:
    Y5:y1,y4,y5,y7,y9,y0.
    Y12:.
  6. Комментарий (действует от символа ";" до конца строки):
    ;[текст_комментария]
    Например: 7X:x11,19,23. ;Проверка возникновения переполнения

Структура файла с описанием ГСА имеет следующий вид:
<начальная_вершина>
<операторная_вершина>|<условная_вершина>
{<операторная_вершина>|<условная_вершина>}
<конечная_вершина>
<набор_микроопераций>
{<набор_микроопераций>}

Предлагаемый язык описания ГСА имеет следующие особенности:

  1. Порядок следования вершин может быть произвольным, поскольку произвольной может быть их нумерация в пределах ГСА.
  2. В каждой строке допускается описание только одной вершины или набора микроопераций.
  3. Если в нескольких операторных вершинах содержатся одинаковые наборы микроопераций, они могут быть описаны либо одним набором, либо несколькими наборами с одинаковым содержимым.
  4. Регистр буквенных обозначений не различается.
  5. Содержимое строки после символа "." игнорируется.
  6. Пустые строки игнорируются.
  7. Допускается использование только латинских букв (не распространяется на комментарии).

2.2. Формирование классов

В один класс bk включается одно или несколько состояний am автомата Мура, соответствующих одному состоянию эквивалентного автомата Мили, т. е. состояния имеющие переходы в одну и ту же вершину графа. Это приводит к сокращению числа строк прямой структурной таблицы ПСТ.

2.3. Замена переменных X на P

Для сокращения количества анализируемых величин необходимо произвести замену переменных X на PgОP, где разрядность G кода P(Pg) определяется максимальным количеством логических условий X, которые задают переходы из одного состояния.

4. Формирование классов совместимых микроопераций

Совместимыми называются микрооперации, принадлежащие различным наборам микроопераций.


Литература:

  1. Зеленёва Ирина Яковлевна "Методы синтеза многоуровневых структур управляющих автоматов на программируемых логических устройствах"
  2. Р. Грушвицкий, А. Мурсаев, Е. Угрюмов "Проектирование систем на микросхемах программируемой логики"

Автобиография | Индивидуальное задание | Результаты поиска


Created by Scar (Scar@smtp.ru)