Рис.3. ГСА ННОД Рис.4. Закодированная ГСА ННОД
Для МСА можно сформировать условия корректности:
1) в МСА не должно быть строки Yk;
2) в МСА не должно быть столбца Y0;
3) должны быть столбец Yk и строка Y0;
4) не должно быть пустых строк и столбцов;
5) на строке не должно быть одинаковых функций перехода;
6) на строке не должно быть сочетаний 1 и функций перехода через логические переменные;
7) в столбце могут быть одинаковые функции перехода;
8) на строке может быть только одна 1;
9) дизъюнкция всех функций переходов на строке должна быть равна единице;
10) разные строки с одинаковыми функциями переходов разрешается оформлять в одной строке с указанием всех индексов вершин старта.
По МСА можно упрощать алгоритмы и, следовательно, автоматы.
Все переходы, соответствующие строке МСА, можно отразить в формуле переходов. Формул будет столько, сколько имеется строк в МСА. Получается система формул перехода (СФП).
Каждая формула переходов начинается с вершины, из которой рассматриваются переходы, в правой части формулы пишется дизъюнкция логических произведений вершин захода с соответствующими функциями перехода.
Между левой и правой частями формулы ставиться стрелка ®, которая отражает переходы от вершины левой части к одной из вершин правой части.
Переход совершается к той вершине, соответствующая функция перехода которой становится равной единице.
Для рассматриваемого алгоритма СФП включает в себя:
Y0,4® Х1Х2Y1+Х1Х2Y4+Х1Y5;
Y1®Y2;
Y2 ®Y3;
Y3®Y4;
Y5 ®YK.
Применительно к СФП можно сформулировать условия корректности:
1) не должно быть формулы перехода для Yк;
2) в правой части любой формулы не должно быть вершины Y0;
3) логическая сумма всех функций перехода любой формулы должна быть равна единице;
4) конъюнкция любой пары функций перехода формулы должна быть равна нулю;
5) в формуле не может быть одинаковых функций перехода;
6) у данной операторной вершины формул переходов может быть одинаковая функция перехода.
СФП позволяет производить формальные преобразования, упрощать алгоритм, следовательно, и автомат.
Функциональная микропрограмма операции представляет собой программу в терминах микроопераций и осведомительных сигналов.
Применительно к Ф - языку [1] ФМП имеет следующую структуру:
1) заголовок с ключевым словом “АЛГОРИТМ”;
2) совокупность описаний с ключевыми словами “ВХОДНЫЕ”, ”ВНУТРЕННИЕ”, ”ВЫХОДНЫЕ”;
3) НАЧАЛО;
4) тело;
5) окончание с ключевым словом “КОНЕЦ”.
ФМП алгоритма ННОД можно представить в следующем виде:
АЛГОРИТМ ННОД;
ВХОДНЫЕ А(1:32),С(1:32);
ВНУТРЕННИЕ: А(1:32),С(1:32),НОД(1:32);
ВЫХОДНЫЕ: НОД(1:32);
НАЧАЛО
М3: ПЕРЕЙТИ ЕСЛИ Х1 ТО М1;
ПЕРЕЙТИ ЕСЛИ Х2 ТО М2;
Y1;
Y2;
Y3;
М2: Y4;
ПЕРЕЙТИ М3;
М1: Y5;
КОНЕЦ.
Для ФМП существуют и условия корректности:
1) должен быть заголовок;
2) данной меткой может быть помечен только один оператор (одна строка);
3) в операторах перехода могут использоваться одинаковые метки;
4) строка после оператора безусловного перехода должна иметь метку;
5) на строке может быть записана только одна микрокоманда или один оператор перехода.
С начала 70-х годов стала актуальной проблема создания стандартного средства документации схем и алгоритмов цифровой аппаратуры (ЦА), одинаково пригодного как для восприятия человеком, так и для обработки в ЭВМ.
Этим средством явился язык VHDL [5,6,7]. Он был разработан в рамках программы создания суперскоростных интегральных схем (VHSIC) в 1970-х -1980-х годах.
Первоначально язык разрабатывался в качестве стандарта для обеспечения возможности передачи документации, описывающей сложную систему, разработанную одним подрядчиком другим подрядчикам. Этот язык был также предназначен для использования в качестве языка моделирования.
Концепция стандартного языка описания аппаратуры для проектирования в электронике была определена на семинаре по языкам описания аппаратуры, который проходил в июне 1981 года. На этом семинаре примерно 20 человек из промышленности и академических кругов собрались вместе, чтобы разработать требования к языку описания аппаратуры для использования в программе по сверхбольшим и высокоскоростным БИС министерства обороны США.
После рассмотрения различных существующих языков, включая Аdа, группа специалистов пришла к выводу, что ни один из существующих языков описания аппаратуры или языков программирования не подходит для этой программы, потому что ни один из них не удовлетворяет всем предъявленным требованиям.
Вместо этого группа рекомендовала создать новый язык. В течение 1981 года требования были объединены с требованиями документа Аdа Steelman, полученный в результате документ получил название "Требования министерства обороны к языкам описания аппаратуры". Этот документ с требованиями стал основой для первоначальной разработки языка VHDL.
Разработка первоначальной версии языка заняла почти год и началась с октября 1983 года. В августе 1984 года первоначальная разработка была представлена на смотре проектов в г. Ороно, штат Мэн.
Представители промышленности, академических кругов и министерства обороны сделали много замечаний команде разработчиков, для доработки версии с учетом этих замечаний потребовалось дополнительных 4 месяца работы, после окончания которых была разработана версия VHDL 7.2.
Для доказательства правильности определения языка были разработаны инструментальные средства, чтобы обеспечить анализ и моделирование описаний на языке VHDL. Был также создан набор тестов, чтобы помочь оценить возможности языка для документирования аппаратуры.
Кроме того, министерство потребовало использовать VHDL7.2 для документирования нескольких проектов, разработанных в рамках программы VHSIС.
Второй цикл в разработке VHDL начался в 1986 году с создания группы анализа и стандартизации VHDL (VASC) в рамках подкомитета по стандартам САПР технического комитета IЕЕЕ по автоматизации проектирования.
Эта группа отвечала за разработку языка VHDL7.2, определенного в такой форме, которая была бы приемлема для промышленности, коммерческих приложений, а также для использования в военных заказах.
И снова работа с приложениями VHDL7.2 выявила ряд дополнительных требований, и его доработка с их учетом заняла примерно год.
Исправленное описание языка было выпущено в нескольких черновых вариантах и рассматривалось в качестве стандарта IЕЕЕ летом 1987 года.
Окончательное признание как стандартного языка пришло с положительным голосованием на коллегии по стандартам 10 декабря 1987 года. Таким образом, был создан стандарт IЕЕЕ VHDL1076-1987.
В 1993-м году стандарт IЕЕЕ 1076 модифицировался и был принят дополнительный стандарт IЕЕЕ 1164.
В 1996-м году принят VHDL стандарт синтеза IЕЕЕ 1076.3.
Работу над усовершенствованием стандарта ведет группа VASC. Срок регулярного пересмотра стандарта - пять лет.
Ведутся также работы по расширению языка VHDL в область описания аналоговой аппаратуры - VHDL -А, стандартизации внутренней формы представления VHDL - описаний в ЭВМ и формы задания тестов для VHDL –моделей.
В нашей стране создана Российская ассоциация пользователей (РАЯПС) языка VHDL, призванная координировать работы в области стандартизации САПР на его базе, разработки VHDL - анализаторов, верификаторов, систем синтеза, систем моделирования, библиотек моделей интегральных микросхем, учебных курсов, пособий и т.п.
Разработчик цифровой аппаратуры может уточнить в VHDL-описаниях интересующие его детали поведения используемых микросхем или, имея их на машинном носителе, приложенном к справочнику по электро-радиоэлементам, проверить модель на ЭВМ и изучить ее работу.
Проектировщик БИС может составить формализованное задание на проектирование кристалла, включив в него описание алгоритма и внешних характеристик БИС с тем, чтобы конструкторы и технологи могли использовать верифицированное VHDL-описание для получения масок и фотошаблонов.
Эксплуатанционщик радиоэлектронной аппаратуры, имея в комплекте документации VHDL-описание устройства, на его базе может осуществлять модернизацию схем, может использовать VHDL-модели при поиске неисправностей в схеме и доработке контрольных тестов.
С помощью VHDL - приложений к учебникам и автоматизированным обучающим курсам более эффективно решаются задачи обучения и тренинга в сфере проектирования и эксплуатации радиоэлектронной аппаратуры.
Стандартизация входных языков и внутренних интерфейсов подсистем САПР, в том числе и на базе VHDL, создает общую коммуникационную среду для САПР, позволяет упростить стыковку продуктов различных фирм, обмен библиотеками моделей компонент и проектов, модернизацию отдельных подсистем САПР.