Организация систем логического проектирования дискретных устройств

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

Задачи логического проектирования дискретных устройств

Дискретными называются устройства, функционирующие в дискретном времени и осуществляющие преобразование дискретной информации. Дискретная информация чаще всего представляется в цифровой 0, 1 (двоичной) форме, поэтому часто дискретные устройства называют также цифровыми. Объектами логического проектирования являются функционально-структурные схемы дискретных устройств, а основной задачей - синтез, т. е. получение по функционально-структурному (функциональному, структурному) описанию соответствующей логической схемы в заданном технологическом базисе (см., например, [4, 10, 33, 41]). Другими задачами логического проектирования являются задачи верификации описаний (установления эквивалентности описаний после проведения проектных действий), анализа и моделирования описаний и построения тестов для уже имеющихся логических схем.

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

Технологическим базисом синтеза могут служить элементы, каждый из которых реализуется одним корпусом (микросхемой), либо элементы библиотеки интегральной технологии, когда схема реализуется в одном корпусе, например в составе заказной, полузаказной, программируем-мой СБИС. В зависимости от технологического базиса критерии оптимизации схем довольно сильно различаются. Это может быть число корпусов, число плат, стоимость и т. д. Когда схема реализуется в составе СБИС, в качестве критериев оптимизации чаще всего выступают площадь кристалла, быстродействие, энергопотребление, тестопри-годность и т. д.

Элементы, входящие в базис проектирования, образуют библиотеку. В качестве элементов библиотек могут быть как простые вентили типа И, ИЛИ, НЕ, триггеры, так и функциональные узлы типа дешифраторов, мультиплексоров, сумматоров, регистров и других элементов, параметризуемых по разрядности. Примерами параметрически описываемых базисов выступают универсальные логические модули (УЛМ), постоянные запоминающие устройства (ПЗУ), программируемые логические интегральные схемы (ПЛИС), например типа программируемых логических матриц (ПЛМ), программируемых матриц логики (ПМЛ) и т. д.

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

Обычно выделяются две основные фазы логического синтеза:

  • 1) технологически независимая оптимизация;
  • 2) технологическое отображение.

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

На практике нужны не просто логические схемы, обеспечивающие нужное поведение, эквивалентное поведению исходного описания проектируемой цифровой системы, а схемы, оптимизированные по тем или иным критериям. Задачи получения оптимальной по сложности схемы даже в классе комбинационных логических схем, математическими моделями которых являются системы булевых функций, характеризуются комбинаторным ростом сложности вычислений. Часто говорят также о «комбинаторном взрыве» сложности вычислений [33], а задачи характеризуют как NP-трудные [26]. Кроме логико-комбинаторной природы задач логического синтеза их отличительными особенностями также являются сравнительно небольшой объем памяти под исходные и результирующие данные, значительный объем памяти под промежуточные вычисления и большой набор формальных методов проектирования, базирующихся на различных языках представления данных.

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

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

Задачами моделирования являются: вычисление реакции схемы на заданное входное воздействие (тест), поиск входного сигнала, вызывающего заданную реакцию и др. Для синтезированных логических схем основная задача анализа - вычисление реакций схемы на заданные входные воздействия - решается в системах моделирования, например в системе ModelSim с входным языком VHDL [5]. Заметим, что при решении задач моделирования исходное описание схемы не изменяется: моделируемая схема является «статичной».

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

Задача верификации логических схем формулируется следующим образом. Даны две логические схемы. Требуется проверить, являются ли они функционально эквивалентными. В настоящее время разработка средств формальной верификации алгоритмических описаний логических схем представляет собой одну из важнейших проблем в проектировании [5, 111].

Далее основное внимание будет уделяться задачам синтеза, анализа и верификации. Задачи моделирования, тестирования и диагностики неисправностей дискретных устройств рассматриваться не будут, существующие в настоящее время подходы к решению этих задач изложены, например, в [66, 74, 83, 84, 88].

 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >