Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 74
Текст из файла (страница 74)
316 Глава 4. Принципы проектирования комбинационных логических схем этапы апаш«его ( плана этапы г анутреннего ~ плана Рис. 4.50. Этапы входе выполнения проекта на основе языка ЧНОЬ или любого другого языка описания схем Действия так нтываемого «внешнего планан ('*угол!-епгГ) начинаются с осознания основного подхода и функций отдельных блоюв на уровне блок-схемы, Большие логические проекты типа программного обеспечения обычно являются иерархическими, и язык ЧНРЬ служит хорошей основой как для определения модулей и их интерфейсов, так и для детализации в дальнейшем. ЯЗЫКИ ЧЕЙ!ЬОО И УНЮЬ Примерно в то же время, когда разрабатывался язык ЧНРЬ, на сцене появился другой язык описания схем. Язык ~ егт!од ИМ, или просто Уегт!од, был предложен в 1984 году фирмой багет«ау Регй8п Ашотайоп в качестве собственного языка описания схем и средства моделирования. Когда в 1988 году появились программные средства синтеза на основе языка Чег!!о8, выпущенньте только-только оперившейся фирмой Бупорзуз, а фирма ба!ее«ау была в 1989 году приобретена фирмой Сат!енсе Рез!8п Буметз, таюе сочетание стало решающим фактором, приведшим к повсеместному распространению этого языка.
Сегодня оба языка — ЧНРЬ и Чеб!ой — широко применяются и делят рынок логического синтеза примерно поровну. Синтаксис языка Чеп!о8 берет свое начало в языке С и, в некотором отношении, ему легче научиться и им легче пользоваться, тогда как язык ЧНРЬ больше похож на язык Ат)а (язык программирования, поддерживаемый Министерством обороны США) и в большей степени пригоден для больших проектов.
Рассматривая вопрос о том, с изучения какого из этих языков следует начинать, и сравнивая с этой точки зрения их относительные достоинства и недостатки, лучше всего, по-видимому, положиться на заключение Дэвида Пепл ерина (Рву 1т) Рейебп) и Дугласа Тейлора (Роц81аз Тау 1 от), сделанное ими в их книге С ЧНОЕ ш«перь нсе простот ЯНИ. Май Еазу. Ргепбсе На11, 1997): Оба языка легко выучить и обоими языками трудно овладеть. После того как вы изучили один из этих языков, у вас не будет затруднений при переходе к другому. 4.7.
язык описании схем ЧНРЬ 317 Следующий шаг состоит в фактическом описании на языке ЧНРЬ модулей, их интерфейсов и деталей их внутреннего устройства. В этой части проекта вы можете, в принципе, воспользоваться любым текстовым редактором, поскольку на языке ЧНРЬ пишется текст. Однако в большинстве случаев среда, в которой осуществляется проектирование„включает специализированный текстовый редактор (гНРЕ (ЖАНРЕ гек! ей!ос), который облегчает работу.
Такие редакторы обычно содержат автоматическое высвечивание ключевых слов языка ЧНРЬ, автоматический отступ от начала строки, встроенные шаблоны часто используемыхх программных структур, встроенную проверку синтаксиса и упрощенный доступ к компилятору. Написав некоторую программу, вы, безусловно, захотите ее оттранслировать.
Компилятор языка !гНРЕ ((гНРЕ сотрйег) проанализирует ваш текст на отсутствие в ием синтаксических ошибок и проверит совместимость вашей программы с другими модулями, на которые имеются ссылки. Компилятор подготавливает также внутреннюю информацию, которая понадобится моделирующей программе на следующем этапе вашего проекта. При программировании часто бывает так, что вам хочется приступить к компиляции еще до того, как программа будет написана до конца. Компилирование по частям, поможет предотвратить размножение синтаксических ошибок, появление несовместимых имен и так далее, и„ наверняка, позволит вам испытать столь необходимое чувство движения вперед на стадии, когда конца проекта еще не видно! Самым впечатляющим этапом, по-видимому, является моделирование.
Моделируюи!ая программа (гНРЕ (лНИ. л(ти!а!ог) позволяет задавать входные сигналы и подавать их на входы разрабатываемой конструкции, а также наблюдать выходные сигналы, не собирая схему физически. При выполнении небольших проектов типа домашнего задания по курсу цифровой электроники входные сигналы можно задать вручную и визуально наблюдать выходные сигналы.
Но в случае больших проектов язык ЧНР!. дает возможность осуществлять тестирование, создавая программные средства тестирования ( «испытательные стенды», "гел! Ьепсйел"), в которых входные сигналы подаются автоматически, а выходные сигналы сравниваются с ожидаемыми. На самом деле, моделирование является одной из ступеней более крупного этапа верификации (лег!)) сал!оп), Наблюдение того, как на выходах моделируемой схемы возникают сигналы, действительно доставляет большое удовлетворение, но цель моделирования шире: она состоит в том, чтобы проверить схему и убелиться, что она работает так, как хочется.
В типичном большом проекте существенные усилия затрачиваются как на стадии написания программы, так и после этого, когда бывает необходимо задать достаточно широкий диапазон ус- 318 Глава 4. Принципы проектирования комбинационных логических охая« ловий тестирования схемы для проверки правильности реализуемых ею логических действий. Обнаружение ошибок в проекте на этой стадии очень ценно; если ошибки обнаружатся позднее, то чаше всего все так называемые этапы «внут ренн«го плана» ("Ьасй-ела) придется повторить.
Заметьте, что существует, по крайней мере, два аспекта верификации, При функциональной верификации (~ипсйапа! гегфсагГоп) логика работы схемы изучается независимо от временных соображений; задержки в вентилях и другие временные параметры считаются равными нулю. При проверке вреигннйх са отношений (йттй гегфсайап) работа схемы исследуется с учетом предполагаемых задержек; мы проверяем при этом, в частности, удовлетворяются ли требования по времени установления сигналов и нх удержания в случае последовательностных устройств типа триггеров. Принято осуществлять функцианальнунз верификацию до перехода к выполнению этапов внутреннего плана. Что касается проведения проверки временных соотношений, то на этой стадии наши возможности ограничены, так как требуемые временные соотношения в очень сильной степени зависят от результатов синтеза и подгонки.
Можно выполнить предварительную проверку временных соотношений, чтобы приобрести большую уверенность в правильности самого подхода к проекту в целом, но проведение детальной проверки временных соотношений необходимо отложить до самого конца. После верификации мы готовы перейти к стадии «внутреннего плана». Характер действий на этом этапе и используемые средства довольно сильно зависят от технологии, по которой выполнен кристалл, выбранный для данного проекта, но существуют три основных этапа. Первый из них — это синтез (ьупгйгзл), то есть преобразование описания на языке УНьп'. в набор примитивов или компонентов, которые можно будет образовать в выбранном кристалле. Например, в случае ПЛУ или ИС типа СР).П программа синтеза может выдать равенства, ориентированные на реализацию двухуровневыми схемами выражений вида «сумма произведений».
В случае специализированных ИС результатом действия программы синтеза могут быть список вентилей и список соединений (пег(иг), которым определяются необходимые соединения вентилей между собой. Разработчик может «помочь» программе синтеза, задав ограничения (сопзггагпгз), характерные для выбранной технологии, такие как максимальное число логических уровней илн нагрузочная способностьлогическихбуферов. На этапе каипановки фггтй) программа каипоновки фпег) отображает синтезированные примитивы и компоненты на имеющиеся в микросхеме ресурсы В случае ПЛУ и ИС типа СРАНО это может означать приписывание равенств тем или иным элементам И-ИЛИ.
В случае специализированных ИС на этом этапе происходит раскладка отдельных вентилей в нужной конфигурации и нахождение путей для их соединения с учетом физических ограничений в кристалле данной ИС; этУ процедуру называют разиеигениеи и разводкой (раас« апй гонге). На этой стадии разработчик, как правило, имеет возможность ввести дополнительные ограничения, такие как размещение модулей в кристалле или назначение выводов Лдя внешних входов и выходов. «Последний» этап заключается в проверке временных соотношений в схем~ с учетом ее размещения в кристалле. Только на этой стадии можно с разумной 4.7.
Язык описания схем ЧНОЬ 319 точностью найти реальные задержки в схеме, обусловленные лл иной соединений, величиной нагрузки и другимн факторами. Обычно на этом этапе используются те же самые условия тестирования, что и при функциональной верификации, только на данном шаге в эти условия помещается схема, которая в действительности будет построена.
Как и в любом другом творческом процессе может случиться так, что после продвижения на два шага вперед вам приходится делать шаг назад (если не хуже! ). Как отмечено на рисунке, при написании программы могут встретиться проблемы, которые заставят вернуться назад и пересмотреть иерархию, и почти наверняка в процессе компиляции и моделирования обнаружатся ошибки, из-за котоРых вам придется переписать часть программы. Самыми болезненными в ходе выполнения проекта бывают те проблемы, с которыми вы сталкиваетесь при выполнении этапов внутреннего плана. Если, например, результат синтеза не влезает в имеющийся кристалл РРОА или не удовлетворяет временным требованиям, может случиться так, что вы должны будете вернуться назад и пересмотреть сам подход к проекту в целом. Стоит напомнить, что прекрасные программные средства не заменяют все же тщательного продумывания проекта в самом начале. 4.7.2.
Структура программы При создании языка ЧНОЬ имелось в вцау воплотить в нем принципы структурного программирования с заимствованием идей у языков программирования Паскаль и Ада. Ключевая идея состояла в том, чтобы задать интерфейс схемного модуля, а его внутреннее устройство скрыть. Таким образом, объект (елг1гу) в языке ЧНПЬ вЂ” это просто обьявление входов и выходов модуля, а архитектура (агсЫесш«е) — подробное описание внутренней структуры модуля или его поведения. РАБОТАЕТ! 7 Как разработчик и системщик с многолетним опытом, я всегда думая, что знаю, чтб имеется в виду, когда ктото говорит о своей схеме: «Она работает!». На мой взгляд, это означает„что вы можете пойти в лабораторию, подать питание на макет (н при этом не пойдет дым), нажать кнопку «Пуск» и с помощью осциллографа или логического анализатора наблюдать, как ваш макет последовательно выполняет необходимые действия.
Но с годами значение слов «она работает» изменилось, по крайней мере, лля некоторых людей. Когда несколько лег назад я перешел на новую Работу, я порадовался, услышав, что несколько основных специализированных ИС для нового важного продукта «работают». Но позднее (спустя совсем немного времени) я понял, что эти ИС работают только при моделировании и что коллективу, занятому в этом проекте, предстоит еще не раз возвращаться назад и понадобится несколько месяцев напряженного труда лля синтеза, подгонки и проверки временных соотношений, прежде чем они смогут заказать опытные образцы.