Цель проекта - разработать систему, автоматически синтезирующую электронное цифровое устройство по алгоритму его функционирования. В основу синтеза положена технология микропрограммных автоматов.
Наиболее перспективная область применения системы - разработка специализированных процессоров для встроенных систем. Существует довольно широкий класс задач для которых использование специально разработанных для конкретной задачи схемных решений имеет преимущество перед использованием серийных моделей микроконтроллеров. Прежде всего это те задачи, алгоритмы решения которых допускают параллелизм.
В виде микропрограммного автомата можно реализовать практически любую схему: различные контроллеры, процессоры, арифметико-логические устройства, схемы быстрого преобразования Фурье и т.д. Разработан язык описания микропрограммных автоматов - MicroProgram Description Language и программные средства для его поддержки, пользуясь которыми описывается и отлаживается алгоритм цифрового устройства. На базе этого алгоритма автоматически формируется цифровая электронная схема в среде IEESD, которая по построенной схеме позволяет получить VHDL. Поскольку проектирование на уровне топологии схемы хорошо разработано и наработано большое программное обеспечение, здесь не должно возникать проблем. Таким образом осуществляется сквозной цикл проектных работ и их полная автоматизация.
Основной проблемой при разработке все более сложных и объемных цифровых схем является повышение эффективности работы разработчиков. Другая (и не менее важная) проблема разработчиков - это выбор наиболее подходящей архитектуры проекта, которая обеспечивала бы наивысшую надежность работы микросхемы, приемлемую стоимость и легкость модификации проекта в будущем.
Большинство современных подходов к проектированию цифровых уcтройств можно представить в виде следующей схемы.
Вначале приходится придумывать алгоритм функционирования разрабатываемого устройства. Придумав алгоритм, необходимо как-то проверить его работоспособность. Не имеет смысла по 'сырому' алгоритму выполнять проектирование и тестируя готовый проект обнаруживать ошибки в этом алгоритме. На это уйдет слишком много времени и денег и нет никакой гарантии, что в конечном итоге получится то, что нужно. Многие системы проектирования предлагают средства ранней проверки корректности проекта в целом, но и в этом случае, имея доказательства работоспособности, далее приходится выполнять 'настоящее' проектирование, работая в основном на уровне логических вентилей. Причем очень часто разработчики сначала описывают алгоритм проектируемого устройства на языке программирования высокого уровня - обычно на С или С++ - что и не удивительно, так как запрограммировать алгоритм гораздо легче, чем спроектировать схему, этот алгоритм реализующую.
Таким образом, проектирование осуществляется в четыре этапа:
Используя же технологию микропрограммных автоматов возможно существенно сократить время разработки ровно настолько, сколько занимает собственно само проектирование, и весь процесс заключает в себе всего два этапа:
Уровень абстракции при таком подходе поднимается на новый - алгоритмический уровень.
Сущность принципиально нового подхода заключается в том, что мы предлагаем автоматическую генерацию корректных функциональных схем по отлаженным микропрограммам, что приводит к ликвидации многих недостатков процесса проектирования цифровых устройств на базе программируемых микросхем и соответственно к резкому сокращению сроков их проектирования и изготовления (как минимум в 10 раз). Более того, при использовании такого подхода удается совместить быстроту проектирования устройств по их алгоритмам функционирования со сверхпроизводительностью спроектированных устройств, поскольку соответствующие управляющие автоматы реализуются в жесткой логике и с максимальным распараллеливанием исполнения микроопераций алгоритма.
Ниже описываются основные возможности инструментальной системы поддерживающей предлагаемый подход к проектированию устройств на программируемых микросхемах.
Прежде всего разработчику предлагается язык для описания алгоритма функционирования устройства (а не функциональной схемы этого устройства!). Язык по синтаксису близок к языку ассемблера микропроцессора i8086. Множество инструкций включает арифметические, логические и сдвиговые инструкции, а также инструкции пересылки данных, условной и безусловной передачи управления, вызова и возврата из подпрограмм. Более того, система позволяет эффективно добавлять новые инструкции с целью наиболее удобной записи алгоритмов устройств. Например, для разработки устройств цифровой обработки звуковых сигналов могут быть полезными инструкции выполняющие те или иные стандартные преобразования над входным звуковым сигналом. Для возможности описания алгоритмов, позволяющих параллельное исполнение, в язык были добавлены инструкции создания, завершения и ожидания завершения потока. Следует иметь в виду, что инструкции, независимые по операндам, распараллеливаются автоматически.
Для обеспечения корректности введенных микропрограмм предоставляется мощная современная интерактивная среда отладки WInter. Эта среда отладки обладает стандартным интерфейсом и полным набором средств отладки сопоставимым с лучшими из современных отладчиков для языков программирования высокого уровня. Более того, среда отладки обладает целым спектром нетрадиционных возможностей, существенно повышающим производительность разработчика в поиске и устранении ошибок в микропрограммах для проектируемых устройств.
Система синтеза микропрограммных автоматов состоит из следующих компонент:
Таким образом основными преимуществами данного подхода являются автоматическая генерация схемы и возможность максимально параллельного исполнения микроинструкций. Разработанная система внедрена в учебный процесс в Гомельском государственном университете.