Материальный мир склонен к иерархии. Это значит, что любой объект можно представить как совокупность взаимодействующих частей, которые, в свою очередь, состоят из более мелких деталей. Например, сложные объекты вычислительной техники состоят из устройств, те — из узлов, узлы — из элементов, элементы — из компонентов (радиодеталей).
В связи с усложнением создаваемых объектов иерархическое проектирование становится самым мощным и, вероятно, единственным методологическим инструментом процесса проектирования.
Человек не в состоянии воспринимать слишком большой объем данных. Если деталей очень много, он может легко «утонуть» в них, и успешное завершение проекта станет проблематичным. При иерархическом проектировании в поле зрения необходимо держать лишь один фрагмент объекта. Остальные фрагменты представлены в виде «черных ящиков» и присутствуют в проекте только для того, чтобы имитировать «окружение», то есть взаимодействие проектируемого фрагмента с другими частями объекта. Благодаря иерархическому проектированию удается ограничить текущую сложность проекта на приемлемом уровне.
Процесс иерархического проектирования может развиваться в двух противоположных направлениях — «сверхувниз» (нисходящее проектирование) и «снизувверх» (восходящее проектирование).
САПР DesignLab 8 поддерживает обе стратегии иерархического проектирования, предоставляя в распоряжение пользователя такие инструменты, как блоки, иерархические символы и макромодели.
Без сомнения, куда привлекательнее выглядит нисходящее проектирование, при котором работа начинается с определения функции будущего объекта, а заканчивается трансляцией функционального описания в структурное (принципиальную схему). С него мы и начнем.
Блоки
Для функционального описания объекта в пакете DesignLab 8 рекомендуется использовать так называемые DSL-блоки (от англ. Design Synthesis Language — язык синтеза проекта).
Предположим, целью нашего проекта является разработка мультиплексора на два входа. Информация с одного из них D0 или D1 передается на выход Q в зависимости от состояния селекторного входа A. Работа устройства может быть описана функцией: Q=(not A)ґD0+Aґ*D1.
Построим DSL-блок, реализующий данную функцию. С этой целью запустим графический редактор Schematics и активизируем команду Block в меню Draw (в дальнейшем Draw > Block). На экране появится прямоугольный контур будущего блока, который можно поместить в любое место чертежа. Нажав левую кнопку мыши, мы зафиксируем его положение на схеме. По умолчанию блок получит имя HB1. Можно продолжить ввод блоков, но нам достаточно одного. Поэтому нажмем клавишу Esc или правую кнопку мыши. В углах блока появятся небольшие квадратики — узелки, которые можно буксировать мышью, изменяя первоначальные размеры блока.
Установим желаемые размеры и активизируем команду Draw > Wire — рисовать проводники. Подведем к левой стороне блока три входных проводника D0, D1 и A, а к правой — один выходной провод- ник Q. В точках, где проводники соприкасаются с блоком, редактор создаст интерфейсные контакты и присвоит им имена по шаблону P1…P4. Двойным щелчком на имени контакта вызовем диалоговую панель Change Pin и переименуем их в D0, D1, A и Q .
Мы создали внешнее описание блока и теперь запрограммируем его функцию. Выделим блок и активизируем команду Navigate > Push, чтобы понизить иерархию проекта на один уровень. Редактору придется закрыть текущий уровень иерархии, поэтому он запросит имя файла, в котором надо сохранить проектируемую схему
Мои статьи |
Просмотров: 1914 |
Author: Александр Шалагинов, |
Добавил: enginee-ru |
Дата: 17.08.2008
|
|