Джон Ф.Уэйкерли Проектирование цифровых устройств. Том I (2002) (1095889), страница 88
Текст из файла (страница 88)
В некоторых компаниях сетевая документация настолько важна и авторитетна, что в подстрочных примечаниях на каждой странице любых технических данных они предупреждают о том, что «печатная версия этого документа является неконтролируемой копией», то есть печатная копия вполне может быть устаревшей. 372 Глава 5. Практическая рааработкаохамкомбииациониойлогмкм НЕ ЗАБЫВАЙТЕ ЗАПИСЫВАТЬ! При разработке новых изделий проектировщикам логических устройств приходится развивать свой собственный язык и вырабатывать подходящие навыки письма, особенно при изложении основных логических идей и описании логической структуры устройства. Самыми удачливыми разработчиками логических устройств (а затем руководителями проектов, главными идеологами и предпринимателями) становятся те, кто доходчиво для других излагает свои идеи, предложения и решения, Очень важным с практической точки зрения является последний раздел документации — описание схемы.
Так же, как опьпный программист перед написанием программы в кодах так или иначе описывает ее, опытный разработчик логических устройств начинает не с рисования схемы, ас ее описания. К сожалению, иногда описание схемы создается последним, а иногда вообще не бывает написано. Без описания схемы ее трудно отлаживать, изготавливать, тестировать, эксплуатировать, изменять и улучшать.
5.1.1. Блок-схемы На блок-схеме (о1оск йайгат) изображаются входы, выходы, функциональные модули, внутренние пути данных и основные управляющие сигналы системы. Вообще говоря, блок-схема ие должна быть настолько подробной, чтобы занимать больше одной страницы, но тем не менее она ие должна быть слишком неконкретной. Небольшая блок-схема может иметь от трех до шести блоков, в то время как большая, в зависимости от сложности системы, может содержать от 10 до 15 блоков. В любом случае на блок-схеме должны быть показаны наиболее важные элементы системы и то, как они взаимодействуют.
Для большой системы могут потребоваться до полни- тельные блок-схемы отдельных подсистем, но должна всегда присутствовать блоксхема «верхнего уровня», показывающая систему в целом. Пример блок-схемы приведен на рис. 5.1. В каждом блоке указана реализуемая им функция, а не отдельные микросхемы, входящие в его состав. В качестве другого примера на рис. 5.2(а) показано условное обозначение 32-разрядного регистра. Если регистр должен быть построен на основе четырех 8-разрядных регистров 74Ь3377 и эти сведения важны для кого-то, кому предстоит воспользоваться этой блок-схемой (например, из соображений стоимости), то эту информацию можно указать, как это сделано на рис. 5.2(Ъ).
Однако неправильно разбивать блок на части, чтобы показать отдельные микросхемы [рис. 5.2(с)[. Шина (Ьил) — это совокупность двух или большего числа родственных по своему назначению сигнальных линий. На блок-схеме шины изображаются двойной линией или линией большей толщины. Косая черта с числом, если таковая имеется, указывает количество отдельных сигнальных линий в шине.
Размер шины может быть также указан в ее названии (например, 1 Ч В 03 [31 ..01 или ПЧ ВОЗ [31:О[). Активные уровни (определяемые ниже) и кружки инверсии могут быть или не бьггь указаны на блок-схеме; в большинстве случаев на таком уровне детализации это несущественно. Однако главные управляющие сигналы и шины должны быль названы, как правило, теми же самыми именами, под которыми они появляются в более полробной схеме. б.т.
Стандартыдокументации 373 СБРОС ЗАГРУЗКА ПУСК ИНДИКАЦИЯ ВЫХОДНАЯ ШИНА Рис. 5.1. Блок-схема цифрового устройства (а) Рис. 5.2, условное обозначение 32-разрядного регистра: (а) реализация не уточнена; (Ь) задан тип микРосхем; (с) слишком подробнс З74 Глава б. Г1рвктическвв разработка схем комбинационной логики В блок-схеме поток управляющих сигналов и данных должен быть ясно представлен. Принципиальные схемы обычно рисуются так, чтобы сигналы проходили слева направо, но в блок-схемах постичь этого идеала труднее. Входы и выходы могут располагаться ва любой стороне блока, а направление потока сигналов может быть произвольным.
Чтобы устранить неопределенность, на шинах и обыч ных сигнальных линиях рисуют стрелки-указатели. 5.1.2. Условные обозначения логических схем На рис. 5.3(а) представлены условные обозначения логических схем И и ИЛИ, а также буферов. (Вспомните из главы 3, что буфер — это схема, которая просто преобразует «слабые» логические сигналы в «сильные».) Условное обозначение вентилей И и ИЛИ с большим числом входов приведено на рис. 5.3(Ь). Небольшая окружность, называемая кружков инверсии (тгегзюп ЬиЬЬ1е), обозначает логическую инверсию нли взятие дополнения и применяется в условных обозначениях схем И-НЕ, ИЛИ- НЕ и инверторов, как показано на рис.
5 3(с). В случае схем с инверсией на выходе логические выражения можно преобразовывать, используя обобщенную теорему Де Моргана. Если, например, Х и У вЂ” сигналы на входах схемы И- НЕ, а 2 — сигнал на ее выходе, то можно записать; г=(Х У)'=Х'+У'. Это приводит к двум различным, но одинаково правильным условным обозначениям схемы И-НЕ, что было продемонстрировано на рис.4.3. Фактически аналогичные преобразования можно применять также к схемам с неинвертированными выходами. Рассмотрим, например, следующие соотношения для схемы И: 2 = Х У = ((Х У) ' ) ' = (Х ' +У') ' . Отсюда следует, что схему И можно изобразить в виде схемы ИЛИ с инверсией на входах и на выходе. СТАНДАРТ! ЕЕЕ ДЛЯ ОБОЗНАЧЕНИЯ ЛОГИЧЕСКИХ СХЕМ Вместе с Американским национальным институтом стандартов (АН51) Институт инженеров по электротехнике и электронике (1ЕЕЕ) разработал стандартный набор условных обозначений логических схем.
Последняя редакция этого стандарта — АНЕИЕЕЕ Егд91 — 1984. Стандарт 1ЕЕЕ на графическое условное изображен ие логических функций (1ЕЕЕ бгапг1агг1 ОгарЬк БутЬо1з 1ог (огас рипсбопз) допускает изображение логических вентилей как в виде прямоугольников, так и с помощью специальных для каждой из схем графических символов. В этой книге мы пользовались и будем продолжать пользоваться условными обозначениями вентилей в виде различных графических символов, а в Интернете на сайте вин.
с1 5рр. сот имеется справочник по условным обозначениям вентилей в виде прямоугольников согласно стандарту 1ЕЕЕ. 376 Глава 5. Практическая разработка схем комбинационной логики менных в программе. Имя сигнала определяет действие, которым он управляет (ОО, РАЦЯЕ), условие, которое он обнаруживает (ВЕАОт', ЕВВОВ), или выражаемые им данные (1ЙВ08 (31:О)). С каждым именем сигнала связывают актиеныйуроеень (асг!те )ете!). Сигнал является активным сигналом высокого уровня (асиге )иф~), если он вызывает исполнение названного действия или означает выполнение названного условия при высоком уровне (Н)ОН), то есть при значении, равном логической 1. (Согласно определению позитивной логики, повсюду используемой в этой книге, понятия «высокий уровень» и «!» эквивалентны.) Сигнал является активным сигналом низ~ого уровня (асг!те !ож), если он вызывает исполнение названного действия или означает выполнение названного условия при низком уровне (ЬОФ), то есть при значении, равном логическому О.
Считается„что сигнал подан или присутствует (аглетгеХ], когда он имеет активный уровень. Говорят также, что сигнал не подан или отсутствует (пеяагес)или, иногда, йеаллетгес!), когда он имеет неактн вный уровень. Значение активного уровня сигнала обычно входит в состав его имени согласно принятому соглашению. В табл. 5.1 приведены примеры различных соглаисений об именах сигналов с' активным уровнем (астЬе-!ете! пат(пд сопгепг(опл).
Иногда выбор того или другого варианта имени сигнала всего лишь дело личных предпочтений, но чаще выбор определяется средствамн разработки проекта. Так как значение активного уровня является частью имени сигнала, оно должно быть совместимо с требованиями автоматизированных средств проектирования, обрабатывающих имена сигналов, таких как схемные редакторы, компиляторы языков описания схем и моделирующие программы. В нашей книге мы будем использовать последний из вариантов, приведенных в таблице: к имени сигнала с низким активным уровнем в конце добавляется суффикс Ь ( Ь лифх), а имя сигнала с высоким активным уровнем не имеет никакого суффикса. Суффикс Ь можно читать как приставку «не».
Табл. 5.1. В каждой строке указаны при- нятые обозначения активных уровней Активный высокии уровень Активный низкий уровень Н ЕАОУЕНВОН Ь А00Н15(Ь) ВЕЗЕТ* Е)ЧАВЬЕ- -00 1ВЕСЕ1ЧЕ ВЕАОУ+ ЕВВОВ.Н АООН15(Н) ВЕЗЕТ Е1ЧАВЬЕ 60 ВЕСЕ!«Е ТНА)ЧВМ)Т 1. ТВА!ЧВМ)Т Крайне важно понять разницу между именами сигналов, выражениями и равенствами. Или сигнала — это только название, буквенно-цифровая метка. Логическое выражение объединяет имена сигналов с помощью операторов булевой алгебры типа И, ИЛИ и НЕ, как мы объясняли и делали это в главе 4. Логическое равенство приписывает логическому выражению имя сигнала, оно описывает действие одного сигнала в терминах других сигналов. б.т. Ста«азарты документации 377 Различие между именами сигналов и логическими выражениями можно связать с концепцией, принятой в языках программирования: левая часть оператора присваивания содержит имя переменной а правая — выражение, значение которого будет дано названной переменной (например, Е = — (Х+У) в языке С].
В языке программирования вы не можете поместить выражение в левую часть оператора присваивания. При цифровом проектировании нельзя использовать логическое выражение в качестве имени сигнала. Логические сигналы могут иметь такие имена как Х, ЯЕАОУи ОО 1.. В ОО Е суффикс « ~» как раз является частью имени сигнала, подобно символу подчеркивания в имени переменной в программе на языке С. Не сушествует сигнала с именем ЯЕАОУ', эта запись представляет собой выражение, поскольку символ ' является оператором. Однако могут быть два сигнала с именами ЯЕАОУ и ЯЕАОУ 1 такими что при нормальной работе схемы ЯЕАОУ 1 = ЯЕАОУ'. В этой книге особое внимание обращено на различие между именами сигналов, которые всегда набраны черным шрифтом, и логическими выражениями, которые всегда напечатаны синим цветом, когда они приведены на схеме вблизи соответствующих сигнальных линий.
5.1.4. Акгивные уровни на выводах схем Когда мы рисуем условные обозначения вентилей И и ИЛИ или прямоугольник, изображающий большую логическую схему, мы считаем, что внутри этого символического изображения находится схема, реализующая данную логическую функцию. На рис. 5.5(а), приведены условные обозначения вентилей И и ИЛИ и большого логического элемента с входом Ег)АВ~Е. В отношении вентилей И и ИЛИ предполагается, что их входные сигналы имеют высокий активный уровень: требуется наличие логических единиц на входе, чтобы сигнал на выходе принял соответствующее значение. Аналогично для большой схемы: сигнал на входе Е)чАВЕЕ имеет высокий активный уровень: то есть он должен быть равен 1, чтобы дать возможность схеме выполнить свою операцию.
На рис. 55(Ь) показаны те же самые логические элементы с низкими активными уровнями сигналов на входах и выходах. Внутри символических изображений реализуются те же самые логические функции, но кружки инверсии указывают на то, что теперь для реализации соответствующих логических функций сигналы на входах должны принимать значения О, и на выходах нули появляются только в том случае, когда схемы надлежащим образом «делают свое дело». (Ь) (а) рис. 6.5. Условные обозначения (а) схемы И и ИЛИ и большой логический элемент, (Ь) те же самые элементы с низкими активными уровнями сигналов на входах и выходах 378 Глава б.