Автоматическая свертка структурного проекта цифровых систем в среде project-cad

УДК 621.382

Е.М.Пилипушко

АВТОМАТИЧЕСКАЯ СВЕРТКА СТРУКТУРНОГО ПРОЕКТА ЦИФРОВЫХ

СИСТЕМ В СРЕДЕ РЯО^СТ-САБ

В современном обществе высокоразвитой технологии приходится сталкиваться с громадными техническими сложностями и возникает риск легко утонуть в деталях. Чтобы избежать такой опасности, необходимо ограничивать количество информации, анализируемой и обрабатываемой в каждый конкретный момент. С такой ситуацией зачастую сталкиваются разработчики цифровых систем в эпоху сверхбольших интегральных схем (СБИС). В настоящее время одна ИС может содержать сотни тысяч логических вентилей, поэтому специалисту для оценки характеристики сложной системы, построенной на базе подобных ИС, очень важно правильно выбрать уровень представления подобной системы. Ключом к решению этой проблемы является работа на соответствующем уровне абстракции -уровне представлении, который дает всю информацию, необходимую в данный момент времени, но избавляет разработчика от необязательных деталей. Абстрактное представление может относиться к одной из двух областей [1]:

Структурная область - область, в которой компонент описывается как совокупность взаимосвязанных компонентов более примитивного уровня.

Поведенческая область - область, предусматривающая описание компонента по зависимостям вход/выход при помощи некоторой процедуры.

Можно представить шесть типичных уровней абстракции для цифровых систем: уровень процессоров-памяти-коммутаторов (ППК), микросхемный уровень (ИС), регистровый, вентильный, схемный и кремниевый.

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

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

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

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

Над регистровым уровнем находится уровень микросхем (ИС). В качестве структурных примитивов здесь выступают микропроцессоры, устройства основной памяти, последовательные и параллельные порты и контроллеры прерываний, а поведенческое описание модели строится на основе входной-выходной зависимости каждой конкретной ИС - алгоритма реализуемого данной ИС. Модель реализуется как последовательность микроопераций, закодированных на языке регистровых передач и содержит большой объем логики.

На верхнем уровне ППК структурные примитивы - процессор, память и коммутатор(шина), а поведенческое описание модели включает основные данные и харрактеристики используемых примитивов.

Такая иерархия абстракций имеет форму усеченной пирамиды, где на вершине уровень Процессоров-Памяти-Коммутаторов, а в основании кремниевый уровень. Расширение пирамиды книзу отображает увеличение степени детализации, т.е. количество деталей, которое должно обрабатываться при представлении СБИС-системы на этом уровне.

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

Структурная форма иерархии проекта цифровой системы - это декомпозиция или разбиение проекта на совокупность взаимосвязанных “примитивов”, определенных для данного уровня, которые формируются с использованием примитивов следующего более низкого уровня. Поэтому проект представляется в виде дерева, где различным уровням иерархии абстракций соответствуют свои уровни этого дерева. На уровне листьев дерева определяется поведение компонентов проекта самого низкого уровня. Поэтому поведенческая модель - это базавая примитивная модель, функционирование которой определено собственной процедурой. Поскольку поведенческая модель может существовать на любом уровне, то различные части проекта могут иметь поведенческое описание на разных уровнях. Подобная ситуация возникает потому, что разработчику необходимо строить и анализировать взаимосвязи между системными компонентами еще до завершения проектирования. А контроль проекта в целом на отсутствие ошибок не требует спецификации всех системных компонентов на уровне логических вентилей. Однако при разработке больших проектов часто ошибки выявляются уже на самом высоком уровне иерархии, хотя они вытекают из более низших уровней. И здесь возникает проблема возврата на более низкие уровни сбойных компонентов или проекта вцелом. Однако в структурной схеме примитив - это черный ящик с заложенными в нем функциями, а ошибка происходит в каком-то из его компонентов, недоступном на данном уровне описания. Поэтому, чтобы выявить ошибку проектировщику приходится вручную заменять данный структурный примитив его иерархической схемой более низкого уровня. И в этом случае, чем выше уровень иерархии исходного примитива (заменяемого) и ниже искомого (сбойного), тем больше рутинной ручной работы, которая всегда связана с риском внесения ошибок (человеку свойственно ошибаться) и с большой затратой времени.

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

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

Ну и наконец, существует еще одна проблема - это перевод уже разработанной цифровой системы из одного технологического базиса в другой. Эта работа соизмерима с разработкой совершенно нового проекта.

Для решения всех этих проблем предлагается автоматическая свертка проекта цифровых систем в среде PROJECT-CAD. Эта программа позволяет проектировщику, имеющему поведенческое описание примитивов на языке PML САПР PCAD для вентильного уровня и структурное описание разрабатываемого проекта на языке описания структурных схем (ЯОС) cреды PROJECT-CAD выполнить автоматический перевод любого компонента проекта или системы в целом на один уровень вниз или вплоть до вентильного уровня. После запуска программы, она начинает поиск всех необходимых структурных описаний примитивов данного уровня иерархии сначала в текущем файле на языке ЯОС, затем, если некоторые из них не найдены, поиск продолжается по текущему диску. После работы программы проектировщик иммет новый файл описания цифровой системы на языке ЯОС и полный отчет о свернутых примитивах.

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

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

1. Дж.Р.Армстронг “Моделирование цифровых систем на языке VHDL” М: Мир,1992г.