Автор: Бибило П.Н.  

Теги: программирование   информатика  

ISBN: 978-5-382-01095-3

Год: 2010

Текст
                    ЗАДАЧИ
ПО ПРОЕКТИРОВАНИЮ
ЛОГИЧЕСКИХ СХЕМ
С ИСПОЛЬЗОВАНИЕМ
ЯЗЫКА 17
н °1
о
о
URSS


П. Н. Бибило ЗАДАЧИ ПО ПРОЕКТИРОВАНИЮ ЛОГИЧЕСКИХ СХЕМ С ИСПОЛЬЗОВАНИЕМ языка VHDL Допущено Министерством образования Республики Беларусь в качестве учебного пособия для студентов высших учебных заведений, обучающихся по специальности «Электронные вычислительные средства» URSS МОСКВА
ББК 32.973-018.1 32.973-02 Бибило Петр Николаевич Задачи по проектированию логических схем с использованием языка VHDL: Учебное пособие. — М.: Издательство ЛКИ, 2010. — 328 с. Предлагаемая книга представляет собой сборник задач, вопросов и упражне- ний по проектированию логических схем, который ориентирован на ликвидацию разрыва между теоретическими и практическими учебными курсами по автомати- зированному проектированию. Сборник содержит задачи как по теоретическим основам проектирования — анализу, синтезу, моделированию и верификации логических схем, так и по разработке алгоритмических и структурных специфика- ций логических схем на языке VHDL, являющемся стандартным языком описания проектов цифровых интегральных схем в современных системах автоматизиро- ванного проектирования (САПР). Сборник задач рассчитан на студентов и аспирантов соответствующих спе- циальностей. Рецензенты: зав. кафедрой вычислительных методов и программирования Белорусского государственного университета информатики и радиоэлектроники, канд. техн, наук, доц. А. А. Иванюк; доц. кафедры уравнений математической физики механико-математического факультета Белорусского государственного университета, канд. техн, наук В. П, Супрун Издательство ЛКИ. 117312, Москва, пр-т Шестидесятилетия Октября, 9. Формат 60x90/16. Печ. л. 20,5. Зак. № 3336. Отпечатано в ООО «ЛЕНАНД». 117312, Москва, пр-т Шестидесятилетия Октября, 11А, стр. 11. ISBN 978-5-382-01095-3 © Издательство ЛКИ, 2010 НАУЧНАЯ И УЧЕБНАЯ ЛИТЕРАТУРА E-mail: URSS@URSS.ru Каталог изданий в Интернете: http://URSS.ru Тел./факс: 7 (499) 135-42-16 URSS Тел./факс: 7 (499) 135-42-46 Все права защищены. Никакая часть настоящей книги не может быть воспроизведена или передана в какой бы то ни было форме и какими бы то ни было средствами, будь то элек- тронные или механические, включая фотокопирование и запись на магнитный носитель, а также размещение в Интернете, если на то нет письменного разрешения владельца.
ОГЛАВЛЕНИЕ Предисловие............................................... 4 Список условных сокращений................................ 6 ЧАСТЬ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОЕКТИРОВАНИЯ ЛОГИЧЕСКИХ СХЕМ 7 1. Булева алгебра. Булевы функции....................... 7 2. Логические формулы и схемы......................... 21 3. Равенство формул и функций......................... 28 4. Функциональная полнота............................. 33 5. Минимизация булевых функций........................ 36 6. Оптимизация многоуровневых представлений булевых функций. Синтез каскадных схем................................. 49 7. Синтез схем на основе факторизации и декомпозиции.. 62 8. Моделирование логических схем...................... 70 9. Анализ логических схем............................. 77 10. Верификация логических схем......................... 83 11. Типовые комбинационные схемы. ПЛМ и ПЗУ................ 103 12. Триггеры. Синтез автоматов............................. 116 13. Типовые схемы с памятью............................ 131 14. Обнаружение неисправностей логических схем......... 133 ЧАСТЬ 2. ПРОЕКТИРОВАНИЕ ЛОГИЧЕСКИХ СХЕМ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА VHDL......... 137 15. Язык VHDL.......................................... 137 16. VHDL-модели логических элементов................... 156 17. VHDL-модели булевых функций........................ 167 18. Структурные описания логических схем................... 173 19. Функционально-структурные описания логических схем. 192 20. Описание регулярных схем........................... 195 21. Алгоритмические описания........................... 210 22. VHDL-модели типовых комбинационных схем, ПЛМ и ПЗУ..... 221 23. VHDL-модели схем с памятью......................... 223 24. Нахождение задержек комбинационных схем............ 231 25. RTL-описания схем.................................. 236 26. Автоматизированный синтез логических схем. VHDL-пакеты. 245 27. Тестирование и верификация VHDL-моделей............ 289 28. Ответы, указания, решения.......................... 295 29. Приложение......................................... 321 Литература.............................................. 324
ПРЕДИСЛОВИЕ Применение булевой алгебры поставило проектирование логических (цифровых) схем на прочную теоретическую основу. С появлением элек- тронной вычислительной техники формальные методы проектирования были алгоритмизированы и доведены до программ. Сначала были созданы про- граммы, обеспечивающие решение наиболее трудоемких оптимизационных логико-комбинаторных задач. Затем появились экспериментальные и про- мышленные системы автоматизированного проектирования (САПР) цифро- вой аппаратуры и цифровых интегральных схем. Изучение огромного по объему материала по проектированию в университетах и вузах потребовало целого ряда учебных курсов и дисциплин. В отдельных курсах стали изу- чаться булева алгебра, цифровые автоматы, схемотехника логических эле- ментов, проектирование с использованием САПР и т. д. В преподавании на- метился разрыв между теоретическими и практическими курсами по автома- тизированному проектированию. Тем не менее, работая с современными САПР цифровой аппаратуры и цифровых интегральных схем, важно уметь применять знания из теоретических курсов; с другой стороны, изучение тео- ретических основ желательно вести с учетом подготовки специалистов к ра- боте с промышленными САПР. Предлагаемый сборник задач, вопросов и упражнений по проектирова- нию логических схем ориентирован на ликвидацию разрыва между теорети- ческими и практическими учебными курсами. Выбраны основные задачи, ко- торые связывают теоретические и практические аспекты проектирования, — это задачи анализа, синтеза, моделирования и верификации логических схем. В первой, теоретической, части центральное место занимает задача логиче- ского синтеза, предлагаются задачи по нахождению и оптимизации различ- ных форм представления булевых функций и автоматов. Вопросы и задачи по представлению функций, схем, алгоритмов даются также и во второй час- ти сборника, посвященной использованию языка VHDL для описания проек- тов цифровых схем. Язык VHDL, наряду с языком Verilog, является основ- ным языком описания проектируемых цифровых схем и систем. Это мощный современный язык проектирования. Практически все промышленные САПР цифровых интегральных схем имеют в своем составе средства работы с VHDL-проектами. Эффективность проектирования предполагает знание язы- ка VHDL, поэтому наряду с задачами по разработке VHDL-спецификаций во второй части сборника предлагаются вопросы и упражнения непосредствен- но по языку VHDL. Заметим, что языку VHDL полностью посвящен русскоя- зычный интернет-сайт (www.bsuir.by/vhdl/), содержащий много мето- дических материалов, в том числе список интернет-ресурсов по VHDL. Большинство задач, в которых требуется описать структуру или пове- дение проектируемой логической схемы, не привязано к языку VHDL, созда- ние спецификаций может быть выполнено и на языке Verilog. Для удобства сборник имеет сквозную нумерацию разделов. Нумера- ция задач, рисунков, таблиц и формул привязывается к номеру раздела. Зада-
Предисловие чи повышенной трудности помечены символом «*». Перед некоторыми из разделов даются необходимые сведения, касающиеся используемой в задачах юрминологии. В качестве однотипных (имеющих одинаковую постановку и различные исходные данные) выбраны базовые задачи, которые могут быть использованы для проверочных и самостоятельных работ. В книгах из при- веденного списка литературы можно найти все теоретические сведения, тре- бующиеся для решения задач. В ответах содержатся примеры решений, указания, методические ре- комендации, ссылки на литературу. Автор выражает благодарность рецензентам В. П. Супруну и А. А. Ива- нюку за полезные замечания, способствовавшие улучшению содержания книги, а также О. В. Клачко за помощь в подготовке иллюстраций.
СПИСОК УСЛОВНЫХ СОКРАЩЕНИЙ БИС Большая Интегральная Схема БМК Базовый Матричный Кристалл ГСА Граф-Схема Алгоритма ДНФ Дизъюнктивная Нормальная Форма КНФ Конъюнктивная Нормальная Форма ПЗУ Постоянное Запоминающее Устройство плм Программируемая Логическая Матрица САПР Система Автоматизированного Проектирования СБИС Сверхбольшая Интегральная Схема СДНФ Совершенная ДНФ СКИФ Совершенная КНФ УЛМ Универсальный Логический Модуль BDD Binary Decision Diagram (диаграмма двоичного выбора) DC(<) Дешифратор, имеющий i входов CLB Configurable Logic Block (конфигурируемый логический блок) FPGA Field-Programmable Gate Array (программируемая пользовате- лем вентильная матрица) LUT Look-Up Table (таблица, реализующая логическую функ- цию, — настраиваемый элемент, входящий в состав CLB) MS(i) Мультиплексор, имеющий / управляющих входов RTL Register Transfer Level (уровень регистровых передач) VHDL Very high speed integrated circuits Hardware Description Lan- guage (язык описания аппаратуры сверхскоростных интеграль- ных схем)
ЧАСТЬ 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПРОЕКТИРОВАНИЯ ЛОГИЧЕСКИХ СХЕМ 1. Булева алгебра. Булевы функции 1.1. Определить математическое понятие 1) группа; 2) кольцо; 3) поле; 4) алгебра. 1.2. Какая переменная называется булевой? 1.3. Какие логические операции называются булевыми? 1.4. Как определяется булева алгебра? 1.5. В честь какого ученого появился термин «булева алгебра» ? 1.6. Записать законы де Моргана. 1.7. Записать булевы операции с константами 0, 1. 1.8. Записать закон булевой алгебры 1) закон ассоциативности; 2) закон дистрибутивности; 3) закон коммутативности. 1.9. Записать все законы булевой алгебры. 1.10. Записать таблицу истинности логической операции 1) дизъюнкции; 2) конъюнкции; 3) отрицания (инверсии). 1.11. Выразить операции -> (импликация), ~ (эквиваленция) через операции дизъюнкции, конъюнкции и отрицания. 1.12. Какие операции входят в алгебру логики? 1.13. Как определяется формула алгебры логики? 1.14. Как определяется булев вектор? 1.15. Какие натуральные числа представляют булевы векторы (000101), (0011), (1001), (0101), (11111), (1101000)? 1.16. Какими булевыми векторами представляются числа 5, 7, 21,32, 40, 2002? 1.17. Какие из булевых векторов , ..., а % являются соседними а! =(00000011); а2 =(00000111); а3=(10100001; а4 =(01010101); «5=(11111100); а6=( 10000001); а7=(01010100); а8=(01111110). 1.18. Сколько соседних векторов имеет «-компонентный булев вектор? 1.19. Как определяется булево пространство размерности п 1 1.20. Нарисовать «-мерный гиперкуб 1)и=1; 2)«=2; 3) «=3; 4) «=4; 5) «=5.
8 Часть 1. Теоретические основы проектирования логических схем 1.21. Указать литералы булевой переменной х, у, w, a, b, с, X], Хд, у\, z^5. 1.22. Как определяется элементарная конъюнкция? 1.23. Как определяется полная элементарная конъюнкция? 1.24. Как определяется элементарная дизъюнкция? 1.25. Как определяется полная элементарная дизъюнкция? 1.26. Как представляется элементарная конъюнкция троичным вектором? 1.27. Представить элементарные конъюнкции К булевых переменных Х|, X2.X3.X4, х5 х6 троичными векторами 1) К = х1х2хзх5х6; 2) К = Х]Х2ХЗХ4Х5Х6 3) К = хзх5; 4) К = Х2; 1.28. Что такое интервал булева пространства? 1.29. Найти множество булевых векторов, которое задает троичный вектор X 1) х=(1—01); 2) х=(0-); 3) х=(---)• 1.30. Можно ли представить множество А булевых векторов одним троич- ным вектором: 1) А = {(0010), (0011), (0001), (10000}; 2) А = {(010), (011), (001)}; 3) А = {(000), (001), (010), (011), (100), (101), (110), (111)}? 1.31. Какие пары троичных векторов являются соседними 1)(01 —),(11 —) ; 2) (01—), (10---); 3)(01-----), (0-1). 1.32. Какие результаты склеивания соседних троичных векторов 1) (0-0-1), (0-1-1); 2) (10-0), (10-10); 3)(00), (01); 4)(0), (1)? 1.33. Являются ли следующие множества А булевых векторов интервалами и какими троичными векторами эти интервалы представляются 1) А={(01100), (01101), (00000), (00001), (00100), (00101), (01000), (01101)}; 2) А={(0101), (1011), (1101), (0001)}; 3) А={(0001), (0101)}.
1. Булева алгебра. Булевы функции 9 1.34. Найти все интервалы, соседние интервалу w 1) vv=(01-l-); 2) w =(0—11); 3) w =(1—). 1.35. Проверить, в каких отношениях (соседства, поглощения, склеивания, ортогональности, равенства) находятся интервалы у, w 1) У=(0—1-), w=(10-10); 2) у=(о—11), w=(01-ll); 3) У=(01-1), w=(-l—); 4) у=(1100), w=(oi-i); 5) У =(01-0), w=(ll-0); 6) у=(0011), w=(0011); 7) v=(—11), w=(—Ц); 8) у=(000), w=(100)? 1.36. Указать, какие из пар интервалов у, w принадлежат одному и тому же булеву пространству 1) У=(0 — 1), w=(10-10); 2) у=(0 —11), vv=(01-ll); 3) У=(01-1), vv=(—); 4) у=(1100), w=(01-l); 5) У=(01-0), W=(ll-0); 6) У=(01), w=(-01-) ; 7) У=(—11), w=(—11); 8) у=(“00), зу=(1-0)? 1.37. Как определяется булева функция? 1.38. Записать мажоритарную булеву функцию (функцию голосования) от । рех переменных. 1.39. Сколько существует различных булевых функций, зависящих от двух переменных? 1.40. Сколько существует различных булевых функций, зависящих от трех переменных? 1.41. Сколько существует различных булевых функций, зависящих от п пе- ременных? 1.42. Можно ли представить всю область единичных значений мажоритар- ной функции от трех переменных тремя интервалами (11-), (1-1), (-11) ? 1.43. Выполнить логические операции (табл. 1.1) над булевыми функциями rl г2
10 Часть 1. Теоретические основы проектирования логических схем Таблица 1.1 x,x2x3 / /2 /&/2 f'®f2 f'^f2 f'~f2 f' ООО 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1 1 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 1 1 1 1.44. Как определяется неполностью определенная (частичная) булева функ- ция? 1.45. Сколько существует различных неполностью определенных булевых функций, зависящих от двух переменных? 1.46. Сколько существует различных неполностью определенных булевых функций, зависящих от трех переменных? 1.47. Сколько существует различных неполностью определенных булевых функций, зависящих от п переменных? 1.48. Дать определение отношения «^» реализации частичных булевых функций. 1.49. Дать определение отношения «=» равенства частичных булевых функ- ций. 1.50. Указать, в каком из отношений 1)/^/; 2) 3) /=/; 4) находятся функции f , /*, 6, (табл. 1.2). Таблица 1.2 Х\Х2ХЪ f г г г /6 ООО 1 - 1 0 1 1 1 0 0 1 - - - - и - 0 1 0 0 0 0 1 0 0 0 0 1 1 1 1 1 - 1 1 1 1 0 0 - - - 0 1 1 - 1 0 1 0 - 0 1 0 0 0 1 1 0 0 0 0 1 0 0 1 1 1 1 - - - 1 0 1 -
1. Булева алгебра. Булевы функции 11 1.51. Может ли частичная булева функция /(jq ,х2>*3’х4)’ имеющая зна- чение «-» на наборе (0101), реализовать полностью определенную функцию <^(х1,Х2,Хз,Х4), такую, что g(0101)=l? 1.52. Выполнить логические операции (табл. 1.3) над частичными булевыми функциями Таблица 1.3 х,х2х3 /2 /'V/2 /&/2 У1©/2 f'^f2 f'~f2 f' 0 0 0 1 - 0 0 1 - - 0 1 0 0 0 0 1 1 1 1 1 0 0 1 - 1 0 1 0 - 1 1 0 о 1 1 1 1 1 1.53. Указать, выполняется ли для отношения «-<» реализации частичных булевых функций свойство 1) рефлексивности; 2) симметричности; 3) транзитивности? 1.54* . Для заданной системы F = {/’ } (табл. 1.2) найти минималь- ную по мощности подсистему Н cz F функций, таких, что каждая из функ- ций исходной системы F реализуется хотя бы одной из функций из подсис- темы Н. Разработать алгоритм решения этой задачи в общем случае (для произвольной системы F частичных функций). 1.55. Как определяются логические операции (дизъюнкция, конъюнкция, от- рицание, эквиваленция, импликация) над 1) булевыми векторами; 2) троичными векторами? 1.56. Выполнить логические операции (дизъюнкция, конъюнкция, отрица- ние, эквиваленция, импликация) над троичными векторами у, w 1) у=(01—10-), jy=(l 101-0-); 2) у =(-0-10-), w=(-ll-0-) 1.57. Как определяется ДНФ булевой функции? 1.58. Как определяется КНФ булевой функции? 1.59. Как определяется СДНФ булевой функции? 1.60. Как определяется СКНФ булевой функции?
12 Часть 1. Теоретические основы проектирования логических схем 1.61. Записать СДНФ и СКНФ булевой функции по таблице истинности (табл. 1.4) Таблица 1.4 *1*2*3 /' /2 /’ /4 /5 /6 /’ /8 ООО 1 0 0 1 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 1 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1 0 1.62. Что такое характеристическое множество булевой функции? 1.63. Найти характеристическое множество функции fl, /=1,8 (табл. 1.4). 1.64. Найти характеристическое множество функции f 1) f = Х\ ®х2-, 2) f = х\ vx2. 3) f = xjx2. 1.65. Найти характеристическое множество и построить таблицу истинности по СДНФ функции h = XjX2X3 v XjX2X3 v XiX2x3. 1.66. Построить таблицу истинности по СДНФ функции /1(х1,х2,х3) = Х!Х2Х3 V^X2X3 VXjX2X3 VXjX2X3 VXJX2X3. 1.67. Построить таблицу истинности по ДНФ функции g =Х2ХЗ VXjX3 V XjX2 . 1.68. Нарисовать гиперкуб размерности л=7 и дать геометрическое пред- ставление булевой функции f 1) f = х-, 2) / = х. 1.69. Нарисовать гиперкуб размерности п-2 и дать геометрическое пред- ставление булевой функции f
1. Булева алгебра. Булевы функции 13 1) / = Х] ®х2; 2) f = Xi V хг. 1.70. Нарисовать гиперкуб размерности л=3 и дать геометрическое пред- < гавление булевой функции /=1,5, заданной в табл. 1.5. Таблица 1.5 ХМ /' /2 /’ /4 /’ 0 0 0 1 0 1 1 0 0 0 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 I (J 1 1 0 1 1 1 0 0 0 1 0 0 1 1 1 1 0 0 1 1.71. Нарисовать гиперкуб размерности л=3 и дать геометрическое пред- с гавление булевой функции f = Xj ® х2 ® хз • 1.72. Нарисовать гиперкуб размерности п=4 и дать геометрическое пред- с гавление ДНФ булевой функции А = х2 хз v Xj хз V Х|Х4. 1.73. Представить ДНФ h = х2хз v Х| хз v XjX4 троичной матрицей. 1.74. Записать ДНФ по троичной матрице D Х1 х2 х3 х4 х5 х6 о - - 1 о 1 1 о - 1 - К2 1 1 - о 1 о 1.75. Записать ДНФ по троичной матрице Т. Указать, в каких отношениях находятся интервалы, представляющие элементарные конъюнкции а,Ь<с, d. е, q Xi х2 х3 х4 х5 х6 0-0-10 - 10 0- 0 о - - 110 0-0 - - о 0 11 0 1- 0-1 - - о а b с d е <1
14 Часть 1. Теоретические основы проектирования логических схем 1.76. Задана троичная матрица Т. Записать ДНФ, СДНФ и таблицу истинно- сти булевой функции, заданной троичной матрицей Т %! х2 Х3 0-1 0 11 -00 а Ь с 1.77. Система ДНФ булевых функций /1(х)» /2(х) парой матриц Г, В (табл. 1.6). Записать ДНФ каждой из функций /!(х), /2(х) в виде СДНФ. Таблица 1.6 т В х2 х3 х4 f' р 0 - - 1 1 - 0 - 1-10 1 0 0 1 1 1 1.78. Система ДНФ булевых функций h\9 h2 парой матриц Т, В (табл. 1.7). Записать ДНФ каждой из функций Л|, h2 в виде формулы. 1.79. Заданы ДНФ Dl = X2X3 VXjX2X4 VXIX2X3X4; Z)2=X1X2X3X4 VX,X2X3X4 VX|X2X3X4 VX1X2X3X4 VX2X3. системы, состоящей из двух булевых функций. Представить систему ДНФ парой матриц - троичной и булевой.
1. Булева алгебра. Булевы функции 15 1.80. Преобразовать формулу F = -i(x1X2 VX1X2)VX]X2, в ДНФ и записать ДНФ функции /(х15х2,Хз) в виде троичной матрицы. 1.81. Преобразовать формулу F в ДНФ, затем по ДНФ построить таблицу истинности F = (х —> у) —> z. 1.82. Построить таблицу истинности и записать СДНФ функции F = (х у) -> ((х v z) (х v z) —> (у v z)). 1.83. Построить ДНФ функции g(x,j^,z) по формуле G=((x®y)~z)(jc->^z). Справедливо ли равенство g(x,y,z)=l? 1.84. Можно ли преобразовать формулу 1) F1 = (x®>,)®z в формулу F~ = (x~j)~z; 2) F1 = х © у в формулу F2 = х~у ? 1.85. Преобразовать в ДНФ и в КНФ следующую формулу F = —i(x v z)(x —> у) 1.86. Какая формула называется тождественно истинной? 1.87. Какая формула называется тождественно ложной? 1.88. Какие формулы являются равными (равносильными, эквивалентными)? 1.89. Проверить, являются ли формула F тождественно истинной либо тож- дественно ложной 1) F = (х -> yz) v у v z; 2) F = (x©z)((xj;~z)-> у). 1.90. Найти несущественные переменные булевой функции /, заданной табл. 1.8
16 Часть 1. Теоретические основы проектирования логических схем Таблица 1.8 *1*2*3 f ООО 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 0 1.91. Найти и удалить несущественные (фиктивные) переменные булевых функций /8 (табл. 1.9) Таблица 1.9 Х|Х2Х3 /' f /’ f* fs /6 f /’ ООО 0 0 1 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 0 1 0 1 1 0 0 0 0 1 0 0 1 1 1 0 1 1 0 1 1 1 1 0 0 1 0 1 0 0 1 0 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 1 1 1 1 0 0 1 1 1 1 0 0 1.92. Каким свойством обладает переменная xz булевой функции /(xls..., х/5...,х„), если эта функция имеет ДНФ (КНФ), в записи которой отсутствуют литералы xz, X/? 1.93. Справедливо ли утверждение: если xz- - несущественная переменная булевой функции /(х^,..., xz-,..., хл ), то в записи СДНФ (СКНФ) функции /(X|,...,xz-,...,xw) литералы xz«, х/ отсутствуют? 1.94. Записать формулу, которая является одновременно как КНФ, так и ДНФ. 1.95. Какие из булевых функций являются двойственными по отношению с самим себе: 1) F' = х; 2) F2 -xyv ху, 3) Fi = w(x Ф у Ф z) v w(x Ф у Ф z). 1.96. Найти двойственную функцию для функции f (табл. 1.10)
1. Булева алгебра. Булевы функции 17 Таблица 1.10 *1*2*3 f 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 1.97. Сколько существует различных булевых функций двойственных себе? 1.98. Пусть f - булева функция, двойственная к функции f. Докажите, ЧТО любая булева функция /(х15х2,...,хя), которую можно записать в виде /(x1,x2,...,xn)=x1g(x2)...,xzj) v X\g (x2,...,xw), является двойственной себе. 1.99. Построить формулу F для функции f , двойственной функции f 1) f = xyv yzv xtv zt\ 2) f = (x®l)v y(ztv xtv 0)v xyz двумя различными способами: определением двойственной функции и прин- ципом двойственности. Сравнить таблицы истинности, построенные по по- лученным формулам. 1.100. Составить таблицу истинности системы частичных булевых функций, реализующих сумматор для сложения пары чисел, выбираемых из множества {0,1,2}, т. е. неполный сумматор (если хотя бы одно из слагаемых представ- ляет собой число 3, то значения выходов сумматора не определены). 1.101. Составить таблицу истинности системы частичных булевых функций, реализующих устройство для умножения пары чисел, выбираемых из множе- ства {0,1,2}, т. е. неполный умножитель. 1.102. Задана булева сеть (рис. 1.1). Записать функции yif у2 формулами. Рис. 1.1.
18 Часть 1. Теоретические основы проектирования логических схем 1.103. Построить полином Жегалкина для функции, заданной таблицей ис- тинности (табл. 1.11) Таблица 1.11 Х|Х2Х3 / 0 0 0 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 0 1 1 1 1 1.104. Найти инверсию функции /(%!, Х2, Х3) = —i(X]Х2 V XIХ2 ) V XIХ2, используя принцип двойственности. Построить таблицу истинности, затем полином Жегалкина, изобразить логическую схему по формуле полинома Жегалкина. 1.105. По булевой функции, заданной таблицей истинности (табл. 1.12), по- строить СДНФ, затем по СДНФ построить полином Жегалкина Таблица 1.12 х,х2х3 /' /’ /’ /4 /5 /б /’ /* 0 0 0 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 1 0 0 0 0 1 0 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 0 0 1 0 0 1 1 0 1 0 1 1 1 0 1 1 1 1 1 1 0 0 1 1 0 0 0 1.106* . Сформулировать критерий несущественности переменной xz- непол- ностью определенной булевой функции f(x{, х2,..., хп ). 1.107* . Для неполностью определенной булевой функции f (табл. 1.13) указать, какое из соотношений 1) - 8) является правильным 2) /(х,,х2,х3)чх2;
1. Булева алгебра. Булевы функции 19 3) f{xx,X2,X3)<X3-, 4) /(Х],Х2,Х3) 4 0; 5) /(Xj,X2,X3)41; 6) /(x],x2,x3)^xix2 VX|X2; 7) /(х],х2,х3) ^xix3 VX|X3; 8) /(ХЬХ2,Х3) 4X2X3 vx2x3. Можно ли утверждать, что каждая из переменных Xj, х2, х3 этой функции (габл. 1.13) является несущественной? Таблица 1.13 ХМ f 0 0 0 1 0 0 1 - 0 1 0 - 0 1 1 - 1 0 0 - 1 0 1 - 1 1 0 - 1 1 1 0 1.108. Пусть О] = vtw3 v w, W3 v w2w4 v w2 W4; D-, = И’| VV5 V Wj VV5 V И’2И’6 V W2 W6; D3 = VV3H’5 V W3 W5 V W4VP6 V W4 И’б Представить в виде КНФ. 1.109 *. Ортогонализованной называется ДНФ, у которой все конъюнкции попарно ортогональны. 1) сформулировать алгоритм преобразования произвольной ДНФ в ор- гогонализованную ДНФ; 2) получить ортогонализованную ДНФ по исходной ДНФ, заданной троичной матрицей Х1 х2 х3 х4 х5 х6 0-0-10 - 10 0-0 0 - - 0 1 1 110 0 1- 0 - 0 0-1 0 - - 0 а Ь с d е
20 Часть 1. Теоретические основы проектирования логических схем 3) для конъюнкции q указать те конъюнкции ортогонализованной ДНФ, дизъюнкция которых позволяет получить q. 1.110 *. Представить в виде ДНФ общие части (множества наборов) интер- валов (элементарных конъюнкций) а, 6, с, используя операции инверсирова- ния и перемножения ДНФ
2. Логические формулы и схемы 2.1. Какая логическая схема называется комбинационной (комбинационным ннтоматом)? 2.2. Дать определение понятия суперпозиции (композиции) функций? 2.3. Дать определение понятия суперпозиции (композиции) булевых функ- ций? 2.4. Как изображается логическая схема по формуле? 2.5. Как записывается суперпозиция булевых функций по комбинационной логической схеме? 2.6. Даны функции f = xyv zx, г = х^х2, у = х1®х3, x = Xj©X3. 11рсдставить функцию f в виде суперпозиции функций х, у, z. 2.7. Задана суперпозиция f = z’Z^(x))) • Нарисовать логическую схему, реализующую функцию f. 2.8. Записать формулы и построить таблицы истинности функций g2(y ,z), g](X,y), £1(£з» z), f ~ё(ё\>ё1)> суперпозиция которых соответствует формуле f = (хФ y)zv yz. 2.9. Нарисовать логическую схему, соответствующую формуле / = (x©y)zvyz. 2.10. Для заданной логической схемы (рис. 2.1) 1) записать в виде формул функции ф\ ср2; 2) записать в виде формул все подфункции функции f; 3) записать функцию f в виде одной формулы.
22 Часть 1. Теоретические основы проектирования логических схем Рис. 2.1 2.11. В виде какой формулы записывается функция f(x}, х2, х3, х4, х5), реа- лизуемая логической схемой (рис. 2.2)? Рис. 2.2 2.12. Нарисовать логическую схему, реализующую функцию /(Х|,х2,Хз), заданную следующими взаимосвязанными формулами Wj = xix2 vxjX2; w2 =X3Wj vx3wi; w3 = W2; и’4 = w3X|; W5 = w2x3; f = w4 v w5.
2. Логические формулы и схемы 23 2.13. Задана логическая схема, описываемая следующим взаимосвязанными формулами, описывающими функции элементов: hx = Х2; zx = Z4; w4 = hxzx; w5 = Z3; y^ = w4 v w5; z3 = хз; z4 = xi; z2 = X2; z6 = z4 v z2; z7 = хз; w8 = z4z7; yt = z6 v w8. Нарисовать логическую схему, подписать входные, выходные полюсы и внутренние связи. 2.14. Задана логическая схема, описываемая следующим взаимосвязанными уравнениями, описывающими функции элементов: w9 = W2; w4 = Х2; р4 = w9w4; р5 = xi; /?8 = w9p5; У2 = ^4 v Ps ’ w2 = х3 \ W5 = W2 ; Wj = X2; vv6 = H'5 Wj; w7 = из; w8 = vv5 vv7; y} = w6 v vv8; vv3 = xj. Нарисовать логическую схему, подписать входные, выходные полюсы и внутренние связи. 2.15. На рис. 2.3 показан процесс разложения (декомпозиции) функции f на подфункции. Записать полученную суперпозицию функций в виде формулы. f Рис. 2.3 2.16. В виде какой формулы записывается функция , х2, х3, х4, х5, х6 ), реализуемая логической схемой (рис. 2.4) ?
24 Часть 1. Теоретические основы проектирования логических схем f Рис. 2.4 2.17. Реализовать элементарную конъюнкцию К логической схемой из ин- верторов и 4-входовых элементов И 1) К = Х]Х2Х3Х4; 2) К = xix3; 3) К = Х2- 2.18. Реализовать элементарную дизъюнкцию d логической схемой из ин- верторов и 4-входовых элементов ИЛИ 1) d = х} vx3 VX4; 2) d = х\ vx4; 3) d = Х4. 2.19. Реализовать элементарную конъюнкцию К логической схемой из двухвходовых элементов И, минимизировав число уровней схемы 1) К = XjX2x3x4; 2) К = XjX3x4; 3) К =Х!Х2Х3Х4Х5Х6. 2.20. Реализовать элементарную дизъюнкцию d логической схемой из двухвходовых элементов ИЛИ, минимизировав число уровней схемы 1) d = х{ vx3 vx4; 2) d = Xj v x2 v x4 v x5; 3) d = x} v x2 v x3 v x4 v x5 v x6. 2.21. Перепроектировать схему (рис. 2.5) с целью уменьшения числа уров- ней.
2. Логические формулы и схемы 25 2.22. Записать функции F\ F\ реализуемые логическими схемами (рис. 2.6), не вычисляя суперпозицию. б)х Рис. 2.6 2.23. Задана логическая схема (рис. 2.7). На входы jq, А, В допускается по- давать булевы переменные, инверсии булевых переменных, константы 0,1. Реализовать на этой схеме следующие функции 1) /(х1,х2) = х1Фх22 2) /(xbx2)=_xix2 vx2; 3) f(a,b) = ab®ab\ 4) /(хьх2) = 0;
26 Часть 1. Теоретические основы проектирования логических схем 5) /(xbx2)=d; 6) /(xbx2) = xi ®х2; 7) /(х1,х2) = х1 vx2; 8) /(^1,л2) = х1х2. 2.24. Можно ли (и как) реализовать на логической схеме (рис. 2.7) функцию /(х15Х2,Хз) = X1X2 VXjX3? 2.25. Можно ли на схеме (рис. 2.7) реализовать любую булеву функцию 1) от двух переменных; 2) от трех переменных? 2.26. Записать формулу, соответствующую булевой сети (рис. 2.8). Рис. 2.8 2.27. Какая булева функция является симметрической? 2.28. Являются ли симметрическими функции логических элементов из табл. 29.1. 2.29. Проверить, является ли симметрической функция f
2. Логические формулы и схемы 27 1) f(x,y,z) = x®y®z-, 2) f2(x,y,z) = xv у vz; 3) f(x,y,z) = x&y&z. 2.30. Проверить, какая из функций (табл. 4.2) является симметрической Таблица 4.2 х,х2х3 /' /2 /’ /4 /’ ООО 0 0 1 1 0 0 0 1 1 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 1 1 0 1 1 0 0 1 0 0 0 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 1 1 0 2.31. Для каждой из функций (табл. 4.3) найти подмножество аргументов, относительно которых функция является симметрической Таблица 4.3 х,х2х3 /' f2 /’ г ООО 1 0 1 0 1 0 0 1 0 1 1 1 0 0 1 0 0 1 1 0 0 0 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 1 0 1 чГ” 0 0 1 0 1 1 0 1 0 0 0 0 1 1 1 1 0 0 и 1 2.32. Являются ли симметрическими функции элементов NOA3, NOA22 (табл. 29.2) ? 2.33. Являются ли симметрическими функции элементов NOR 2, MOD 3, EQUAL 3 6 (табл. 29.3) ?
3. Равенство формул и функций 3.1. Какие булевым функции называются равными? 3.2. Как определяется формула алгебры логики? 3.3. Какие формулы алгебры логики называются равносильными (эквива- лентными)? 1 2 3.3. Проверить, являются ли эквивалентными формулы F , F F} = abc v acd v abc v bed, F2 = abv bed v acd ? 3.4. Проверить, являются ли функции J 1, /2 равными /1(х1,Х2,Х3) = XjX2X3 VXjX2X3 VX|X2X3 VXjX2X3 VX1X2X3J /2(Х1,Х2,Х3) = Х1 VX2X3. 3.5. Проверить, являются ли функции /', /2 равными /'(х15х2,хз) = (х, ®х2)хз; /2(Х|,Х2,Х3) = Х1Х2Х3 VX,X2X3. 3.6. Проверить на равносильность формулы F и G F=(x—>y) —►( (х v z) —>(у vz)); G= ху v xz v у v z. 3.7. Проверить, равносильны ли формулы F, G F=(x~y)&(y~z); (7=(x~z)&(y~z);. 3.8. Проверить, равносильны ли формулы F, G F=(x~y)v(y~z); G=(x~z) v(y~z);. 3.9. Проверить, равносильны ли формулы F, G F=(x—>у) —>z; G=x —>(у—>z). 3.10. Проверить, равносильны ли формулы F, G F=(x—>у) —>z; G=(x —»z)—>у.
3. Равенство формул и функций 29 3.11. Проверить на равносильность формулы F и G F=—>( (х—>у) v (х—>z)y); G= (ху)(у -» xz). 3.12. Проверить на равносильность формулы FnG F=(x->y)~>((xvz)->(yvz)); (7=1. 3.13. Проверить, равны ли функции /*(xj,х2,Хз,х4), /2(Х],х2,Хз,х4). Функция /1(х1,х2,Хз,х4) задана ДНФ D = Х1Х2ХЗ VX1X2X4 VX1X2X3 v Х2Х3 V Х|. Функция f2(Х|,Х2,Хз,х4) задана троичной матрицей х2 х3 х4 0 1-1 -01- 1 - - - о - о - 3.14. Проверить, равны ли функции /1(х1,х2,х3), /2(х1?х2,Хз) . Функция /2 (Xj, х2, х3) задана двумя формулами: 2 — — — f (х15Х2,Хз)=Л1Х2 v Aix2; ^=х{®х3. Функция /1(х1,х2,Хз) задана таблицей истинности (табл. 3.1). Что можно сказать о переменной х2 ? Таблица 3.1 х,х2х3 /' ООО 1 0 0 1 Го~ 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 0 1 1 1 1
30 Часть 1. Теоретические основы проектирования логических схем 3.15. Проверить на равенство функции /2. Функция /1(Х1,х2?хз) за- дана таблицей истинности (табл. 3.2), функция /2(Х1,Х2,Хз) задана фор- мулой /2 = Х2*з v х2хз. Что можно сказать о переменных Х\. х2 функций Таблица 3.2 XjX2X3 /' ООО 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 1 1 1 3.16. Проверить на равенство формулы /1= —)(Х1ХЗ%4 VXIX3X4 VX]X3X4)X2; /2 = XIХ2 Х4 v XjX2хз v X] Х2Х3Х4 . 3.17. Проверить, задает ли троичная матрица Т булеву функцию, заданную в табл. 3.2. Xi х2 х3 о - - 1-1 110 3.18. Проверить, задают ли матрицы Г1, Т2 одну и ту же функцию Л(Х!,Х2,Хз) Xi х2 х3 0-0 -11 ООО - 0 1
3. Равенство формул и функций 31 Т1 = X! Х2 Х3 0-0 - - 1 - о о 3.19. Проверить, равна ли функция g = х2 © х3 функции w (табл. 3.3) Таблица 3.3 х,х2х3 W 0 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 0 0 0 1 0 1 1 1 1 0 1 1 1 1 0 3.20. Проверить, равны ли системы функций F=(f\x), /2(х)) и G = =(g\x), g2(x)). Система булевых функций F задана парой матриц Т, В (табл. 3.4). Система булевых функций G задана таблицей истинности (табл. 3.5). Таблица 3.4 т В х, х2 х3 х4 /' /2 0 - - 1 1 - 0 - 1-10 1 0 0 1 1 1 Таблица 3.5 х, х2 х3 х4 /’ /2 0 0 0 0 0 0 0 0 0 1 1 0 0 0 10 0 0 0 0 11 1 0 0 10 0 0 0 0 10 1 1 0 0 110 0 0 0 111 1 0 10 0 0 0 1 10 0 1 0 1 10 10 1 1 10 11 1 1 110 0 0 1 110 1 0 1 1110 0 0 1111 0 0
32 Часть 1. Теоретические основы проектирования логических схем 3.21. Проверить, равны ли системы функций (с2, $2> 5/), заданные двумя спо- собами. Способ 1. Функции заданы парой матриц Т, В (табл. 3.6); Таблица 3.6 т в 6, Ь2 «2 с2 5] - - 1 1 1 0 0 1 1 1 - 1 0 0 1 1 - 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 - 1 0 0 1 0 0 - 0 1 0 1 0 - 0 1 0 0 1 0 - 0 0 1 0 1 0 1 0 - - 0 0 1 0 1 - - 0 0 1 Способ 2. Функции системы заданы булевыми выражениями С\ = Ь\ лЬ2=Ь\Ь2‘, ^1 = vb\b2-, s2 = с\а\а2 v с\а}а2 v С\а\а2 v с^а}а2; с2 =С[а}а2 \/ сха\а2 у с{аха2 v схаха2. 3.22. Показать с помощью таблиц истинности, что (w® х)~(у ® z)=(w~x)~(>y~z)=((w~^)~.y)~z).
4. Функциональная полнота 4.1. Дать определение булевой функции, сохраняющей константу 0. 4.2. Дать определение булевой функции, сохраняющей константу 1. 4.3. Указать, какие из перечисленных ниже булевых функций сохраняют константу 0, какие - константу 1: /'(х) = 0; /2(х) = 1; /3(х) = х; /4(х) = х, f5(x,y) = xy, f6(x,y) = xvу, f(x,y) = x®y. 4.4. Какая булева функция является монотонной? Указать, какие из перечис- ленных ниже булевых функций являются монотонными: /'(х) = х; f\x,y) = xvyf\x,y) = xy, /4(х) = х; /5(х,^) = х&^; f\x,y) = хФу. 4.5. Указать, какие из булевых функций (табл. 4.1) являются монотонными: Таблица 4.1 /' /2 /’ /4 f* ООО 0 1 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 1 0 1 0 0 1 0 0 0 0 1 0 1 чГ” 0 0 0 ib- 1 1 0 1 0 1 1 1 1 1 1 1 0 0 1 П- 4.6. Какая булева функция называется линейной? Указать, какие из перечис- ленных ниже булевых функций являются линейными: /,(х) = 0;/2(х) = 1;/3(х) = х;/4(х) = х; /5(х,у) = лу; /6(x,y) = xvy; f\x,y) = x®y. 4.7. Какая булева функция называется самодвойственной? Указать, какие из перечисленных ниже булевых функций являются самодвойственными: /'(х) = х; /2(х) = х; /3(х,7) = ху;
34 Часть 1. Теоретические основы проектирования логических схем f\x,y) = x\/ у, f\x,y) = x®y. 4.8. Является ли функция /(Xj, х2, х3) = х,х2 V х,х3 V х2х3 самодвойственной? 4.9. Правильно ли то, что булева функция, не сохраняющая хотя бы одну константу (0,1), является либо немонотонной, либо несамодвойственной? 4.10. Сформулировать теорему (необходимые и достаточные условия) о функциональной полноте. 4.11. Какая система функций является базисом? 4.12. Является ли базисом система функций ^ = {/'»/2./3}.где /' = xvy, /2 = ху, Р=х. 4.13. Является ли базисом система функций F = {/',/2},где/'=хvy,/2 =х. 4.14. Является ли базисом система функций F = {/',/2}, где/'= ху,/2 = х. 4.15. Является ли базисом система функций F = /1=0;/2=1;/3=ху;/4=хФ^. 4.16. Является ли базисом система функций F = {f'j\f3},raef'=\,f2=xy,f3 = x®y. 4.17. Является ли базисом система функций F = {f',f2,f3},r№ f' =Q-, f2 =ху, f3 =х®у. 4.18. Является ли базисом система функций Г = {/'},где /'(x,y) = xvy.
4. Функциональная полнота 35 4.19. Является ли базисом система функций F = {/'}, где f\x,y) = xy. 4.20. Является ли базисом система функций Г = {/,,/2,/3},где /*(x,j,z) = ^vxz;/2=0;/3 = l. 4.21. Доказать, что система функций G является базисом 1) G = {х~ yz, 0}; 2) G = {х—> у,0}. 4.22. Пусть базис состоит из трех элементов: 3-входовый элемент ИЛИ, 2-вхо- довый элемент И, 2-входовый элемент «сложение по модулю 2». Можно ли (и как) с помощью этих элементов реализовать инвертор?
5. Минимизация булевых функций 5.1. Проверить, поглощается ли булев вектор к троичным вектором к 1) £*=(0100), £=(0—0); 2) £*=(11001), £=(10—); 3) £*=(011), £=(—). 5.2. Проверить, поглощается ли булев вектор £ троичной матрицей Т 1) £*=(01010), Xi х2 х3 х4 х5 0 - 1 - - 0 10 0 0 - - 1 о о 2) £*=(01010), Xj х2 х3 х4 х5 - - о - о 0 1-1- 1 0 1 - - о - - - - 3) £*=(0010), Xj х2 х3 х4 0 0 10 10 0- 5.3. Проверить, поглощается ли троичный вектор £ троичной матрицей Т 1) £*=(0-1-0), Xi х2 х3 х4 х5 0-100 0 1--- 1110 1 - - 0 1 1
5. Минимизация булевых функций 37 2) Л* =(0Ю-), X] х2 х3 х4 -110 о - - о 1 - о о - - 5.4. Проверить, является ли полная элементарная конъюнкция К импликан- той функции /' (функции ), заданной в табл. 5.1 1) X'=xiX2X3x4; 2) Х'=х1х2^зх4. Таблица 5.1 Х{Х2ХУХ, / /2 0 0 0 0 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1 0 110 0 111 10 0 0 10 0 1 10 10 10 11 110 0 110 1 1110 1111 1 1 0 1 1 0 1 0 1 1 0 1 1 1 0 0 1 0 1 0 1 1 1 0 0 1 0 1 1 1 1 0 5.5. Проверить, является ли элементарная конъюнкция К простой импли- кантой функции /'(функции /2), заданной в табл. 5.1 1) /C=xix3; 2) А>Х]Х2; 3) £=xix2X3; 4) А>Х1Х2Х3.
38 Часть 1. Теоретические основы проектирования логических схем 5.6. Проверить, является ли элементарная конъюнкция К простой импли- кантой отрицания функции (отрицания функции f \ заданной в табл. 5.1 1) /С=х1х2х3; 2) К=х}х2\ 3) ЛГ = Х1Х2ХзХ4. 5.7. Найти все простые импликанты функций J 1, У 2 (табл. 5.2). Таблица 5.2 /' f2 ООО 0 0 0 0 1 0 1 0 1 0 1 1 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 1 1 0 5.8. Найти все простые импликанты функций /1, У 2 (табл. 5.1). 5.9. Определить, являются ли конъюнкции К\, К2 импликантами булевых функций /2 непосредственно по определению импликанты (тождест- венную истинность формул К\ —> у1, К2 —> проверять построением таблиц истинности) 1) Кх=хххгх3, f' =(Х](х2®х3)фх4) ->х5; 2) Х’2=х1х3х4; /2=Х]Х5 v Х]Х2х3 v ххх3 v х2х4х5. 5.10. Какая ДНФ называется 1)тупиковой; 2) сокращенной; 3) кратчайшей; 4) минимальной? 5.11. Найти сокращенную ДНФ булевой функцииУ (табл. 5.3). По сокра- щенной ДНФ построить логическую схему из элементов булева базиса.
5. Минимизация булевых функций 39 Таблица 5.3 Х]Х2Х3 f ООО 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 5.12. Записать СДНФ булевой функции f (табл. 5.4) и минимизировать ее, используя операции склеивания и поглощения, по минимизированной ДНФ нарисовать логическую схему, используя инверторы, двух- и трехвходовые элементы ИЛИ и элементы И. Таблица 5.4 х,х2х3 f ООО 1 0 0 1 1 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 0 1 1 1 1 0 5.13. Сформулировать задачу нахождения кратчайшей ДНФ заданной буле- вой функции. 5.14. Сформулировать задачу нахождения минимальной ДНФ заданной бу- левой функции. 5.15. Сформулировать задачу нахождения кратчайшего строчного покрытия булевой матрицы. 5.16. Сформулировать задачу нахождения кратчайшего столбцового покры- тия булевой матрицы. 5.17. Минимизировать функцию f (табл. 5.5) методом Квайна.
40 Часть 1. Теоретические основы проектирования логических схем Таблица 5.5 хм / ООО 1 0 0 1 1 0 1 0 0 0 1 1 1 1 0 0 1 1 0 1 0 1 1 0 0 1 1 1 1 5.18. Задана булева матрица (таблица) R (в пустых клетках находятся нули). 1) Является ли множество строк {9, 10, 11, 12, 13} строчным покрытием матрицы 7?? 2) Какие строки должны обязательно войти в любое строчное покрытие матрицы 7?? 3) Найти кратчайшее строчное покрытие булевой матрицы R. 4) Найти кратчайшее столбцовое покрытие булевой матрицы 7?. 5.19. Найти кратчайшее строчное и кратчайшее столбцовое покрытие буле- вой матрицы R
5. Минимизация булевых функций 41 1 2 Матрица R 3 4 5 6 1 0 1 0 0 0 А 0 1 0 1 1 0 В 0 1 1 0 1 0 с 1 0 0 1 1 1 D 0 1 1 0 0 0 Е 1 1 0 1 0 1 F 1 1 0 0 0 1 G 1 0 1 0 1 0 Н 5.20. Задана булева матрица (таблица) R (в пустых клетках находятся нули). Матрица R 12 3 4 5 6 7 8 9 10 1 1 I 1 1 1 1 1 1 1 1 1 1 1 1 J 1 1 1 1 1 1 1 1 1 1 1 1 1 1 А В С D Е F G Н J К 1) Является ли множество строк {А, В, С} строчным покрытием матри- цы 7?? 2) Является ли множество строк {Н, К, D} строчным покрытием матри- цы/?? 3) Является ли множество столбцов {7, 8, 9} столбцовым покрытием матрицы R? 4) Является ли множество столбцов {5, 6, 7} столбцовым покрытием матрицы R? 5) Какие строки должны обязательно войти в любое строчное покрытие матрицы R1? 6) Какие столбцы должны обязательно войти в любое столбцовое покры- тие матрицы R? 7) Найти какое-либо кратчайшее строчное покрытие матрицы R. 8) Найти какое-либо кратчайшее столбцовое покрытие матрицы R. 5.21. Найти все кратчайшие строчные покрытия булевой матрицы R.
42 Часть 1. Теоретические основы проектирования логических схем 1) Х1Х2Х3; 2) х2х3; 3) хз. 5.23. На карте Карно для четырех переменных построить интервалы, соот- ветствующие конъюнкциям 1) XIX2X3X4; 2) Х2Х4; 3) Х1Х3Х4; З)х3; 4) х2х3х4. 5.24. На карте Карно для пяти переменных построить интервалы, соответст- вующие конъюнкциям 1) Х]Х3х5; 2) х2х4; 3) Х1£ 4) Х| Х4. 5.25. Записать конъюнкции, заданные интервалами ,..., /6 (рис. 5.1). Рис. 5.1
5. Минимизация булевых функций 43 5.26. Записать конъюнкции, заданные интервалами /2> Л (Рис- 5-2) 5.27. Минимизировать функцию / , заданную на карте Карно (рис. 5.3). Рис. 5.3 5.28. Минимизировать функции (жирные точки соответствуют единичным значениям соответствующей функции) методом Квайна.
44 Часть 1. Теоретические основы проектирования логических схем 8) 9) -------------------с Ю) Рис. 5.4
5. Минимизация булевых функций 45 5.29. Задать функцию (табл. 5.6) на карте Карно и найти кратчайшую ДНФ этой функции. Таблица 5.6 XxX2XyX4 /' /’ f* 0000 1 1 0 1 000 1 1 0 1 0 00 1 0 0 0 1 1 00 1 1 1 1 0 0 0 100 1 0 1 0 0 10 1 0 1 0 1 0 110 1 1 0 0 0 111 0 0 1 0 1000 0 0 1 1 100 1 1 1 0 0 10 10 0 0 0 1 10 11 1 0 1 0 1 100 1 1 0 0 110 1 1 0 1 1 1110 0 0 1 0 1111 0 1 0 1 5.30. Построить карты Карно и минимизировать функции 1) f = abed v abc v abd v acd v abed v bed v abed; 2) f = abc v acd v bed v abed v acd v abed v abed; 3) f = abed v acd v acd v abd v abed v abed v adc; 4) f = abed v abc v acd v abed v abc v acd v abed; 5) f = acd v acd \/ bed v abed v ahed v abed v Ъcd; 6) f = abed v abed v abed v abd v abc v acd v acd; 7) f = acd v abd v acd v abed v abed v abed v abc; 8) f = abc v abed v abc v abed v abed v acd v abed v acd; 9) f = acd v abed v acd v abd v abed v abed v aЪd; 10) f = abed v abc v bed v bed v abd v abed v abed; 11)/ = acd v abed v abc v bed v abd v abed v abed; 12) f = abc v acd v abed v abed v abed v abc v acd \ 13) / = abc v acd v bed v abc v abed v abed v abed; 14) / = acd v abc v abc v abed v acd v abed v abed;
46 Часть 1. Теоретические основы проектирования логических схем 15) f = acd v acd v abed v abed v abc v abc v abd; 16)/ = bed v abed v abd v acd v abc v abed v bed; 17)/ = acd v bed v abc v abd v abed v abed v abed; 18)/ = acd v abc v acd v ahed v abed v abed; 19)/ = abc v abed v acd v abc v abed v abd v acd; 20) / = acd v abd v bed v abc v abed v abed v abed; 21) / = abed v abed v abc \/ edv abc v abed v acd. 5.31. Минимизировать каждую из функций (табл. 5.7) методом Квайна- МакКласки. Таблица 5.7 Х|Х2Х3Х4 /' /2 /3 /4 0000 1 1 0 1 000 1 1 0 1 0 00 10 0 0 1 1 00 1 1 1 1 0 0 0 100 1 0 1 0 0 10 1 0 1 0 1 0 110 1 1 0 0 0 111 0 0 1 1 1000 1 0 1 1 100 1 1 1 0 0 10 10 0 1 0 1 10 11 1 0 1 0 1100 1 1 0 0 110 1 1 0 1 1 1110 0 0 1 0 1111 0 1 0 1 5.32. Построить СДНФ и минимизировать функцию /(*!, х2, Х3 ) = ~<*1*2 V XIХ2 ) v XIХ2 методом Квайна-МакКласки. 5.33. Минимизировать функцию / = —i((xi V Х2 v Хз)(Х1 V х2 v х3)) V Х1Х2Х3 V Х2Х3 с помощью карты Карно.
5. Минимизация булевых функций 47 5.34. Найти сокращенную ДНФ и все кратчайшие ДНФ следующих булевых функций, заданных картами Карно Рис. 5.5 5.35. Провести совместную минимизацию системы булевых функций (табл. 5.8) Таблица 5.8 х, х2 х3 х4 /' /2/’ 0 0 0 0 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1 0 110 0 111 10 0 0 10 0 1 10 10 10 11 110 0 110 1 1110 1111 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 5.36. Провести совместную минимизацию системы булевых функций (табл. 5.9)
48 Часть 1. Теоретические основы проектирования логических схем Таблица 5.9 X, х2 х3 х4 /' /2/3 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 10 0 0 0 0 0 11 - - - 0 10 0 0 0 0 0 10 1 0 0 1 0 110 0 1 0 0 111 - - - 10 0 0 0 0 0 10 0 1 0 1 0 10 10 1 0 0 10 11 - - - 110 0 - - _ 110 1 - - - 1110 - - - 1111 - - - 5.37. Найти кратчайшую ДНФ функции f = © х2 ® х3 • 5.38. Сколько элементарных конъюнкций будет иметь кратчайшая ДНФ функции f = %! ®х2 ® — ® хп^ 5.39. Кратчайшая ДНФ какой функции имеет максимальную длину, т.е. мак- симальное число элементарных конъюнкций? 5.40. Может ли булева функция иметь несколько минимальных ДНФ или только одну минимальную ДНФ? 5.41. Может ли булева функция иметь несколько кратчайших ДНФ или только одну кратчайшую ДНФ? 5.42. Может ли булева функция иметь несколько сокращенных ДНФ или только одну сокращенную ДНФ?
6. Оптимизация многоуровневых представлений булевых функций. Синтез каскадных схем Многоуровневые представления булевых функций, получаемые в ре- зультате многократного применения разложения Шеннона, называются диа- граммами двоичного выбора либо BDD (Binary Decision Diagrams). На рис. 6.1, а на диаграмме показаны функции, получаемые в результате разложения Шеннона. На рис. 6.1, б показана принятая в литературе форма изображения той же диаграммы двоичного выбора (рис. 6.1, а). а) б) Рис. 6.1
50 Часть 1. Теоретические основы проектирования логических схем 6.1. Сформулировать задачу синтеза комбинационной логической схемы в заданном базисе логических элементов. 6.2. Какая задача является двойственной к задаче синтеза? 6.3. Записать формулу разложения Шеннона функции /'(x1,X2,.--5^w) 1) по одной переменной Х;; 2) по двум переменным X/, Ху; 3) по г переменным xlv..,xr, г<п\ 4) по п переменным Х|,...,ХЛ. 6.4. Найти коэффициенты разложения Шеннона функции /(x,y,z) = (y~xz)->yz по подмножеству переменных {х, у}. 6.5. Найти коэффициенты разложения Шеннона функции f(x,y,z) = (y~xz)-+yz по всем переменным. 6.6. Построить разложение Шеннона функции f\x[,x2,x3') = х2х2 V Х]Х2ХЗ V X,Х2Х3 V X] Х2ХЗ v XIХ2Х3 по переменной х2. 6.7. Построить диаграмму двоичного выбора по функции J\b,d,e) = ev bd для перестановки (6, е, d) переменных. 6.8. Сколько различных перестановок переменных существует для функции, зависящей от трех переменных? Выписать все перестановки.
6. Оптимизация многоуровневых представлений булевых функций 51 6.9. Сколько перестановок переменных существует для булевой функции зависящей от л аргументов? 6.10. Построить диаграмму двоичного выбора по функции f(x,y,z) = (y~xz)^>yz 1) для перестановки (у, z, х) переменных; 2) для перестановки (z, х, у) переменных. 6.11. Каким свойством обладает переменная Ху булевой функции /(Х|,...,Ху,...,хЛ/), если в диаграмме двоичного выбора такая переменная не встречается? 6.12. Записать многоуровневое представление функции по диаграмме дво- ичного выбора (рис. 6.1, а, б). 6.13. Ввести внутренние переменные и записать многоуровневое представ- ление функции по диаграмме двоичного выбора (рис. 6.2). Рис. 6.2 6.14. Записать СДНФ или ДНФ булевой функции /(Х|,х2,Хз) по диаграм- ме двоичного выбора, заданной 1) рис. 6.1; 2) рис. 6.2; 3) рис. 6.3.
52 Часть 1. Теоретические основы проектирования логических схем 6.15. Записать СДНФ или ДНФ булевой функции f(x^x29x^) по диаграм ме двоичного выбора, заданной 1) рис. 6.1; 2) рис. 6.2: 3) рис. 6.3. 6.16. Упростить диаграмму двоичного выбора (рис. 6.4, а, б) и записать по упрощенной диаграмме ДНФ булевой функции.
6. Оптимизация многоуровневых представлений булевых функций 53 б) f Рис. 6.4 6.17. По многоуровневому представлению F = X2W] vx2w2; W] =X3W3 VX3W4; = xi v XjW5; w4 = x2; =X2. булевой функции F нарисовать диаграмму двоичного выбора. 6.18. По диаграмме двоичного выбора, изображенной на рис. 6.3, построить диаграмму двоичного выбора функции по перестановке переменных 1)(Х], х2, х3); 2)(х3, хь х2). 6.19. Построить диаграмму двоичного выбора для булевой функции, задан- ной ДНФ £)=Х1Х4Х5Х6 V Х2ХзХ5 V Х]Х2Х4Х5Хб, и по построенной диаграмме записать многоуровневое представление функ- ции.
54 Часть 1. Теоретические основы проектирования логических схем 6.20. Построить диаграмму двоичного выбора по функции /(Х|,х2,Хз), за- данной следующими формулами: И?! =X1X2 VXjX2i w2 =X3Wj VX3W1; W3=W2; w4 = w3X|; w5 = w2x3; f = w4 v vv5. Эквивалентны ли две формы (исходная и соответствующая BDD) много- уровневого представления функции? 6.21. Минимизировать число переменных функции, заданной диаграммой двоичного выбора (рис. 6.4, б). 6.22. Записать в виде ДНФ коэффициенты разложения Шеннона по подмно- жеству переменных Y = {хз, Х3} булевой функции f, заданной диаграммой двоичного выбора (рис. 6.5). 6.23. Показать, что функция f, заданная диаграммой двоичного выбор (рис. 6.6), может быть представлена в виде каждая из функций g, h зависит от двух переменных.
6. Оптимизация многоуровневых представлений булевых функций 55 6.24. На рис. 6.7 задана диаграмма двоичного выбора для системы функций у1./2./3. 1) Записать ДНФ функций f\ f\ и их инверсий; 2) Установить, какие переменные являются несущественными для каж- дой из функций fX 9 f\ ; 3) Записать многоуровневые представления функций f\ f\ f3. Рис. 6.7
56 Часть 1. Теоретические основы проектирования логических схем 6.25. Построить диаграмму двоичного выбора для системы ДНФ булевых функций, заданных в табл. 6.1 Таблица 6.1 тх Bf Х| х2 х3 х4 х5 х6 f' f2f3 11-010 1 0 0 0 - - 1 0 1 1 0 0 0 - - 0 1 0 0 1 0 0-0-1- 0 1 0 111-10 0 1 0 10-101 0 1 0 1 0 0 - - 1 0 0 1 10-1-1 0 0 1 1-01-1 0 0 1 0 1-010 0 0 1 10--1- 0 0 1 - 1 0 - 1 - 1 0 1 и по построенной диаграмме записать многоуровневое представление функ- ций системы. 6.26. По диаграмме двоичного выбора (рис. 6.8) построить логическую схе- му в базисе двухвходовых элементов И, ИЛИ и инверторов. Сколько уровней имеет схема? Рис. 6.8
6. Оптимизация многоуровневых представлений булевых функций 57 6.27. По диаграмме двоичного выбора (рис. 6.1) построить логическую схе- му в базисе двухвходовых элементов И, ИЛИ и инверторов. Сколько уровней имеет схема? 6.28. По диаграмме двоичного выбора (рис. 6.2) построить логическую схе- му в базисе двухвходовых элементов И, ИЛИ и инверторов. Сколько уровней имеет схема? 6.29. По диаграмме двоичного выбора (рис. 6.3) построить логическую схе- му в базисе двухвходовых элементов И, ИЛИ и инверторов. Сколько уровней имеет схема? 6.30. Записать функцию f, реализуемую 1) мультиплексором MS(1) (рис. 6.9); 2) мультиплексором MS(2) (рис. 6.10); 3) мультиплексором MS(3) (рис. 6.11); Рис. 6.11
58 Часть 1. Теоретические основы проектирования логических схем 6.31. Записать функцию F, реализуемую 1) мультиплексором MS(1) (рис. 6.12); 2) мультиплексором MS(2) (рис. 6.13); 3) мультиплексором MS(3) (рис. 6.14); 6.32. Построить схемы, реализующие функции /(xi,x2,x3) = x1x2x3; /2(Х1,Х2,Х3)-Х1 vx2 vx3; /3(хьх2,х3) = X] Фх2 ®х3 в базисе мультиплексоров
6. Оптимизация многоуровневых представлений булевых функций 59 1) MS(l)c одним управляющим входом 2) MS(2)c двумя управляющими входами. 6.33. Синтезировать в базисе мультиплексоров MS(3) схему, реализующую те же функции, что и схема, представленная на рис. 1.1. 6.34. Для заданной булевой функции /z(x19x2,x3), /-1, ..., 8, (табл. 6.2) построить логическую схему методом каскадов Шеннона-Поварова, порядок разложения {х3, Xj, х2 }. В качестве базисных элементов использовать: 1) инверторы, «-входовые элементы ИЛИ, «-входовые элементы И («=2, 3); 2) мультиплексоры MS(1) с одним управляющим входом. Таблица 6.2 х(х2х3 ./' /2 /’ /4 /’ ./’ г ООО 0 1 0 0 0 1 0 1 0 0 1 0 0 1 0 1 0 0 0 0 1 0 1 0 0 1 1 0 1 1 0 1 1 1 1 1 1 0 0 0 0 1 0 0 1 0 1 0 0 1 1 0 1 0 1 0 1 0 0 0 1 0 1 1 1 0 1 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 6.35. Для заданной булевой функции /(Х|,х2,х3) (табл. 6.2) построить ло- гическую схему методом каскадов Шеннона-Поварова, порядок разложения порядок разложения {х1? х2, х3}. В качестве базисных элементов использо- вать 1) мультиплексоры MS(1) с одним управляющим входом; 2) мультиплексоры MS(2) с двумя управляющими входами. 6.36. Для заданной булевой функции /z(x15x2,x3,x4), z=l, ..., 8, (табл. 6.3) построить логическую схему методом каскадов Шеннона-Поварова, порядок разложения {х2, х3, Xj, х4}. В качестве базисных элементов использовать инверторы, «-входовые элементы ИЛИ, «-входовые элементы И («=2, 3);
60 Часть 1. Теоретические основы проектирования логических схем Таблица 6.3 *1 х2 X, х4 /' /2 /’ /4 /5 /6 /’ г 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 1 1 1 0 0 0 10 0 0 0 0 0 0 1 0 0 0 11 1 1 0 1 1 1 0 1 0 10 0 0 0 1 0 0 1 0 0 0 10 1 1 1 0 1 1 1 1 1 0 110 1 1 1 1 1 1 1 1 0 111 0 0 0 0 0 0 0 1 10 0 0 0 0 0 0 0 0 0 1 10 0 1 1 1 1 1 1 0 0 1 10 10 1 0 0 0 0 1 0 0 10 11 0 0 1 1 0 0 0 0 110 0 1 0 0 0 1 1 0 0 110 1 0 0 0 1 1 1 0 1 1110 0 0 0 0 1 0 0 0 1111 1 1 0 1 1 1 0 1 6.37. Для заданной булевой функции f' (xi,x2,x3,x4), г=1, 8, (табл. 6.3) построить логическую схему методом каскадов Шеннона-Поварова, порядок разложения {х3, X], х4, х2 }. В качестве базисных элементов использовать 1) мультиплексоры MS(1) с одним управляющим входом; 2) мультиплексоры MS(2) с двумя управляющими входами. 6.38. Сколько уровней имеет схема, реализующая функцию /(Х|,х2,...,хи) в базисе инверторов, двухвходовых элементов ИЛИ, двухвходовых элемен- тов И, построенная методом каскадов Шеннона-Поварова? 6.39. Сколько уровней имеет схема, реализующая функцию /(X|,x2,...,xw) в базисе мультиплексоров MS(1) с одним управляющим входом, построенная методом каскадов Шеннона-Поварова? 6.40. Сколько уровней имеет схема, реализующая функцию /(X|,x2,...,xw) в базисе мультиплексоров MS(2) с двумя управляющими входами, построен- ная методом каскадов Шеннона-Поварова? 6.41. Применив аппарат диаграмм двоичного выбора, получить ортогонали- зованную ДНФ по исходной ДНФ, заданной троичной матрицей X! Х2 Х3 Х4 Х5 111-1 11-1- 1 1 - - 1 1-1-1 1 - - 1 1 -111- а b с d е <7
6. Оптимизация многоуровневых представлений булевых функций 61 6.42. На рис. 6.15 задана диаграмма двоичного выбора для системы функций {51,. 1) Записать ДНФ функций s1 и их инверсий; 2) Установить, какие переменные являются несущественными для каж- дой из функций 3) Записать многоуровневые представления функций Рис. 6.15.
1. Синтез схем на основе факторизации и декомпозиции 7.1. Построить из 4-входовых элементов ИЛИ и 4-входовых элементов И ло- гическую схему, реализующую функцию f = Х,Х3Х5Х7 V Х3Х5 V XjX3X5X6X8 V Х2Х3Х6Х8 V х3х4х5х6х7х8. 7.2. Построить логическую схему из 3-входовых элементов ИЛИ и 3-вхо- довых элементов И логическую схему, реализующую функцию f = XjX3X5X7 V Х3Х5 V XjX3X5X6X8 V Х2Х3Х6Х8 V х3х4х5х6х7х8. Сравнить полученный результат с результатом решения задачи 7.1. 7.3. Дать определение понятия «фактор» для множества элементарных конъюнкций. 7.4. Как формулируется задача выделения общих частей конъюнкций (задача факторизации) при задании ДНФ булевой функции троичной матрицей? 7.5. Как формулируется задача выделения общих частей дизъюнкций (задача факторизации) при задании системы ДНФ булевых функций парой матриц (Т,В): троичной матрицей Т, представляющей конъюнкции, и булевой мат- рицей В, задающей дизъюнкции конъюнкций? 7.6. На рис. 7.1 задана булева сеть, представляющая собой результат факто- ризации Рис. 7.1.
7. Синтез схем на основе факторизации и декомпозиции 63 Записать многоуровневое и двухуровневое представление функций у^, у2. 7.7. Заданы факторизованные выражения У| = Xi х2 v x2z v х} х4; У2 = xi х2 v x3z; с фактором z = Х|Х4*5. Записать троичную матрицу, задающую конъюнк- ции, принадлежащие ДНФ функций у\, у2. 7.8. ДНФ булевой функции задана троичной матрицей X] х2 х3 х4 х5 *6 а - 0 1-1 - 1 - 0 1 - Ь 1 0 1-1 1 с 1 0 10 1 0 d 0 1 - - 0 - е Выделить общие части элементарных конъюнкций, построить логическую схему в базисе инверторов, двухвходовых и трехвходовых элементов И, ИЛИ. 7.9. Система ДНФ булевых функций задана парой матриц (табл. 7.1). Про- вести факторизацию конъюнкций и дизъюнкций и построить логическую схему в базисе инверторов, двухвходовых и трехвходовых элементов И, ИЛИ. Таблица 7.1 Т в f'j г2/3 - 1 0 - 1 - 1 0 1 0 - 1 0 - 1 0 1 1 - 1 0 - 1 1 1 0 1 1 1 1 0 0 - 0 1 0 0 1 0 - 1 - 1 1 0 - 0 1 0 - 1 1 0 1 7.10. По заданной системе функций
64 Часть I. Теоретические основы проектирования логических схем /’ = Х| Х2 V Х,Х2Х3Х4 V Х\ Х4 /2 = Х1Х2 V Хб /3 =Х1Х2 VXjX5X6X7 синтезировать схему в базисе 2-входовых и 3-входовых элементов И-НЕ. Ко- эффициент разветвления выходов элементов равен 2. 7.11. Сформулировать задачу декомпозиции одной булевой функции. 7.12. Сформулировать задачу декомпозиции системы булевых функций. 7.13. Записать формулу простого (с одной промежуточной переменной) функционального разложения булевой функции. 7.14. Сформулировать критерий (необходимые и достаточные условия) су- ществования простого функционального разложения f(x)= gWy),z) полностью определенной булевой функции /(х) по двухблочному разбие- нию компонент вектора X на векторы у, z. Сформулировать критерий для частичной функции /(х). 7.15. Для заданной функции /(х15х2,Хз,х4) (табл. 7.2) построить декомпо- зиционную таблицу и провести декомпозицию /'(Х1,Х2,Хз,х4) = g(AI(x1,x2), х3,х4). Изобразить логическую схему по построенному разложению функ- ции на подфункции. Таблица 7.2 xtx2x3x4 /' f f3 f* 0000 1 0 0 1 000 1 0 1 1 0 00 10 0 0 1 1 00 11 1 1 0 0 0 100 0 1 1 0 0 10 1 1 0 0 1 0 110 1 1 0 0 0 111 0 0 1 1 1000 0 0 1 1 1001 1 1 0 0 10 10 1 0 0 1 10 11 0 1 1 0 1 1 00 1 1 0 0 110 1 0 0 1 1 1110 0 1 1 0 1111 1 0 0 1
7. Синтез схем на основе факторизации и декомпозиции 65 7.16. Найти разбиение переменных на блоки Y = {х(, ,х^ }, Z — {х,- }, для которого функция /(Х],х2,Хз) (табл. 7.3) имеет разложение вида /(xt, х2, х3, х4 ) = g(h1 (х,- , х,-г), х,-з) Таблица 7.3 /' г /’ г /’ /6 ООО 1 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 1 0 0 0 1 0 1 0 1 1 0 1 1 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 0 7.17. Проверить, имеет ли функция /(х|,х2,х3,х4) (табл. 7.4) разложение /(xbx2,x3,x4)=g(A1(x1,x3,x4),x2). Таблица 7.4 /’ /2 0000 1 0 000 1 0 1 00 1 0 1 0 00 1 1 0 1 0 100 0 1 0 10 1 0 1 0 110 0 1 0 111 0 1 1000 1 0 1 00 1 1 0 10 10 0 1 10 11 1 0 1100 0 1 110 1 0 1 1110 0 1 1111 0 1 7.18. Используя в качестве исходного задания булевой функции 1/(Х1,Х2,%з,Х4) диаграмму двоичного выбора (рис. 7.2), провести простое функциональное разложение
66 Часть 1. Теоретические основы проектирования логических схем /(АГ1,Х2,Х3,Х4)= g(/71(x2,x3),x1,x4). 7.19. Используя в качестве исходного задания булевой функции /(Х1,х2,Хз,х4) диаграмму двоичного выбора (рис. 7.3), провести простое функциональное разложение /(xi,X2>*3>*4)= • Рис. 7.3
7. Синтез схем на основе факторизации и декомпозиции 67 7.20. Используя в качестве исходного задания булевой функции /(х15х25хЗ’х4) диаграмму двоичного выбора (рис. 7.3), проверить, можно ли провести простое функциональное разложение /(xbx2,x3,x4)= g(A1(x1,x2),x3,x4). 7.21* . Подсчитать вероятность того, что полностью определенная булева функция /(х) будет иметь разложение /(*)= g(A(y),z) по двухблочному разбиению компонент вектора х на векторы у, z, где х = (х1,...,х„), У = (Ух,...,Уг), Z = (z),...,Z„_r), 2<г<п-\, п>3. 7.22* . Подсчитать А) вероятность несущественности произвольно выбранного подмноже- ства } cz X переменных полностью определенной булевой функ- ции /(х1,...,х„), X = {х1,...,хи}; Б) вероятность несущественности всех переменных полностью опреде- ленной булевой функции /(X|,...,xw); В) вероятность существенности всех переменных полностью опреде- ленной булевой функции /(Х|,...,хп); Проверить, являются ли формулы, полученные для случаев Б), В), ча- стными случаями формулы, выведенной для случая А). 7.23* . Вывести формулу, по которой можно определить число полностью определенных булевых функций, у которых все переменные являются суще- ственными. 7.24* . Сформулировать критерий существования многократного (р-кратного) разложения (декомпозиции) f (*) = Ду,г) = g(h^y),...,hp(y),z), полностью определенной булевой функции f (х) по двухблочному разбие- нию компонент вектора х на векторы у, z. 7.25* . Определить минимальное значение числа р промежуточных функций Л] (у),.hp (у) в разложении f № = /(bz) = g(h}(y),...,hp(y),z'),
68 Часть 1. Теоретические основы проектирования логических схем функции f (*!, х2, х3, х4, х5, х6) =/(х) (табл. 7.5), у = (х,, х2,х3), z = (х4,х5,х6). Провести декомпозицию, т.е. построить функции h^y),...,hp(y) и функцию g{h^y),...,hp{y),z). Таблица 7.5 X f X f 000000 0 100000 1 000001 1 100001 1 000010 0 100010 0 000011 1 100011 0 000100 1 100100 0 000101 1 100101 0 000110 0 100110 1 000111 0 100111 1 001000 0 101000 0 001001 1 101001 1 001010 0 101010 0 001011 1 101011 1 001100 1 101100 1 001101 1 101101 1 001110 0 101110 0 001111 0 101111 0 010000 0 110000 1 010001 0 110001 1 010010 1 110010 0 010011 0 110011 0 010100 0 110100 0 010101 1 110101 0 010110 0 110110 1 010111 0 110111 1 011000 0 111000 0 011001 0 111001 0 011010 1 111010 1 011011 0 111011 0 011100 0 111100 0 011101 1 111101 1 011110 0 111110 0 011111 0 НИИ 0 7.26* . Сформулировать критерий (необходимое и достаточное условия) су- ществования функционального разложения /(*)= g(h\y\h\z>))
7. Синтез схем на основе факторизации и декомпозиции 69 полностью определенной булевой функции f (х) по двухблочному разбие- нию компонент вектора х на векторы у, z 7.27* . Обобщенным функциональным разложением полностью определен- ной булевой функции f (х) по заданному (А:+1)-блочному покрытию У1 Yk, Z множества аргументов X называется представление f (х) в виде / a) = g(A1(yI),...,Ai (/),£), гдей/(У) = (й/(/)>-.^(У))’/=1.......к. Сформулировать критерий существования обобщенного функциональ- ного разложения (декомпозиции) полностью определенной булевой функции.
8. Моделирование логических схем 8.1. Что такое набор (вектор) входных воздействий? 8.2. Что такое реакция схемы на заданный набор входных воздействий? 8.3. Сформулировать задачу моделирования комбинационной логической схемы? — — * 8.4. Найти значение функции g = х2хз vхххз vххх2 на наборе х = = (Х]*,%2’хз) значений аргументов 1) х*=(1Ю); 2) /=(000); 3) /=(Ю1). 8.5. Найти значение функции g, ДНФ которой задана троичной матрицей х, х2 х3 х4 х5 х6 0 - 0 *> 1 0 а - 1 0 0 - 0 Ь 0 ч - 0 0 1 с 1 1 0 0 1 - d 0 - 1 0 - 1 е - - 0 - - 0 Я на наборе / = (х^х^х^х^х^х^) значений аргументов 1) /=(000000); 2) /=(111000); 3) /=(110010). 8.6. Найти значение функции f, заданной формулой f (v)=f(x, у, z)=((х Ф у) ~z)(x -> yz), ♦ ♦ ♦ ♦ на наборе у = (х ,у , z ) значении аргументов 1) /=(П0); 2) /=(000); 3) /=(001).
8. Моделирование логических схем 7 ] 8.7. Найти значение функции F, заданной формулой F (v)=f(x,y,z)=-n(xvz)&(x->y), * * * ♦ на наборе у ,у ,z ) значений аргументов О /=(110); 2) /=(000); 3) /=(011). 8.8. Найти значение функции F, заданной многоуровневым представлением F = X2Wj vx2w2; Wj = хзи>3 vx3w4; w3 =x\ vxjW5; w4=x2; w5 = X2, ♦ * * * на наборе x = (Xj, x2, x3) значений аргументов 1) /=(110); 2) /=(100); 3) /=(101). 8.9. Найти значение функции f, заданной диаграммой двоичного выбора * ♦ ♦ ♦ (рис. 6.3), на наборе х = (Xj ,х2,х3) значений аргументов 1) /=(000); 2) /=(011); 3) /=(Ю1). 8.10. Найти значение функции системы функций (с2, s2, Si), заданной парой матриц Т, В (табл. 3.6), на наборе х = (^ , 62, Я], а2 ) множества аргумен- тов
72 Часть 1. Теоретические основы проектирования логических схем 1) /=(0011); 2) /=(0111); 3) /=(0000). ♦ 1 у* / <1 г2 8.11. Найти вектор f (х ) значений функции системы функции у =(j , J , /3), заданной формулами /1 = —^и^хз); /2=wj; /3=-1(w1x3vx2X3), — — » ♦ » ♦ U\ =—i(xjX2 vxix2), на наборе х = (Xj ,х2,х3) значений аргументов 1) х*=(Н0); 2) х*=(000); 3) х*=(Ю1). 8.12. Провести моделирование логической схемы (рис. 8.1) для трех наборов значений входных переменных. Функции логических элементов приведены в табл. 29.1. Рис. 8.1. Первый набор: х1=0, х2=0; хЗ=0. Второй набор: х1=0, х2=0; хЗ=1. Третий набор: х!=1, х2=1; хЗ=1. Для схемы (рис. 8.1) найти тестовые векторы, для которых у2=1. 8.13. Провести моделирование логической схемы (рис. 8.2) для трех наборов х * значений входных переменных. 1) х*=(010); 2) х*=(011); 3) х*=(100). Функции элементов схемы (рис. 8.2) заданы в табл. 29.2.
8. Моделирование логических схем 73 Рис. 8.2. 8.14. Провести моделирование логической схемы (рис. 8.3) для трех наборов X* значений входных переменных. 1) х*=(000); 2) х*=(100); 3) х*=(110). Функции элементов схемы (рис. 8.3) заданы в табл. 29.2. Рис. 8.3 8.15. Провести моделирование логической схемы (рис. 8.4) для трех набо- ров х* значений входных переменных. 1) х*=(001); 2)х*=(101); 3) х*=(110). Функции элементов схемы (рис. 8.4) заданы в табл. 29.2.
Часть 1. Теоретические основы проектирования логических схем Рис. 8.4 8.16. Провести моделирование логической схемы (рис. 8.5) для трех наборов х* значений входных переменных. 1) х*=(001); 2) х*=(010); 3) х*=(100). Функции элементов схемы (рис. 8.5) заданы в табл. 29.2. Рис. 8.5 8.17. Провести моделирование логической схемы (рис. 8.6) для трех наборов X* значений входных переменных. 1) х*=(101); 2) Х*=(110); 3) Г КПП- Функции элементов схемы (рис. 8.6) заданы в табл. 29.2.
8. Моделирование логических схем 75 Рис. 8.6 8.18. Провести моделирование логической схемы в базисе мультиплексоров MS(1) (рис. 8.7) для трех наборов х* значений входных переменных Х|, х2, х3, х4, х5 1) х* =(10100); 2) х* =(11010); 3) х*=(11111). Рис. 8.7.
76 Часть 1. Теоретические основы проектирования логических схем 8.19. Провести моделирование логической схемы в базисе мультиплексоров MS(2) (рис. 8.8) для трех наборов х* значений входных переменных х1; х2, х3> Х4 1) х‘=(1000); 2) х»=(1110); 3) х‘=(1111). Рис. 8.8
9. Анализ логических схем 9.1. Сформулировать задачу анализа комбинационной логической схемы. 9.2. Какая задача является двойственной к задаче анализа комбинационной логической схемы? 9.3. Найти все корни логического уравнения ((W1®W3)V(W2®W4))((W|@W5)V(W2®W6))(W1 ~ w3) =1. (9.1) 9.4. Изобразить логическую схему, соответствующую уравнению (9.1) и найти все наборы значений входных переменных, на которых схема прини- мает значение 1. 9.5. Изобразить логическую схему, соответствующую уравнению (9.1) и найти все наборы значений входных переменных, на которых схема прини- мает значение 0. К решению какого уравнения сводится эта задача? 9.6. По логической схеме (рис. 2.1) записать логическое уравнение, позво- ляющее найти все наборы значений входных переменных, на которых функ- ция, реализуемая схемой, равна единице. 9.7. По логической схеме (рис. 2.1) записать логическое уравнение, позво- ляющее найти все наборы значений входных переменных, на которых функ- ция, реализуемая схемой, равна нулю. 9.8. По логической схеме (рис. 8.1) записать логическое уравнение, позво- ляющее найти все наборы значений входных переменных, на которых функ- ция, реализуемая схемой, равна единице. 9.9. По логической схеме (рис. 8.1) записать логическое уравнение, позво- ляющее найти все наборы значений входных переменных, на которых функ- ция, реализуемая схемой, равна нулю. 9.10. Записать логические уравнения, решение которых позволяет найти все наборы значений входных переменных, на которых функции, реализуемые схемой, равны единице. Схема задана на 1) Рис. 8.2. 2) Рис. 8.3. 3) Рис. 8.4. 4) Рис. 8.5. 5) Рис. 8.6. 9.11. Построить таблицу истинности системы булевых функций, реализуе- мых логической схемой (рис. 8.1). Функции элементов схемы (рис. 8.1) зада- ны в табл. 29.1.
78 Часть 1. Теоретические основы проектирования логических схем 9.12. Получить таблицу истинности функции, реализуемой логической схе- мой (рис. 9.1), следующими способами Способ 1 («от выходов»). Порядок элиминации (устранения) внутрен- них переменных: w5, w4, w3, w2, wl. Способ 2 («от входов»). Порядок элиминации (устранения) внутренних переменных: wl, w2, w3, w4, w5. Способ 3. Порядок элиминации (устранения) внутренних переменных: w3, w2, w4, wl, w5. Сравнить полученные результаты. Какой вывод можно сделать? Рис. 9.1. 9.13. Построить таблицу истинности булевой функции, реализуемой логиче- ской схемой (рис. 9.2). Функция g(/?,x3,x4) задана в табл. 9.1, функция /?(Х|,х2) задана в табл. 9.2. Рис. 9.2.
9. Анализ логических схем 79 Таблица 9.1 h ху х4 g 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 0 0 0 0 1 1 0 Таблица 9.2 X) х2 h 0 0 0 1 1 0 1 1 1 0 1 0 9.14. Построить ДНФ функции /(х15х2,х3,х4,х5,х6), заданной суперпози- цией /(xi,x2,x3,x4,x5,x6) = g(A1,A2,x„,x5,x6), где функции Л,, А2 имеют вид ДНФ Aj = xix2x3 vxi*3 Л2 = *2Х3 VXjX3 V XjX2, 9 ДНФ функции g(A15A2,x4,x5,x6) задана троичной матрицей Л| Л2 х4х5х6 0 0 10- 0 0 0 -1 0 10 10 0-101 10 0 10 -0101 110 0- 1111-
80 Часть 1. Теоретические основы проектирования логических схем 9.15. Задана логическая схема, описываемая следующим взаимосвязан- ными уравнениями, каждое уравнение описывает функцию логического эле- мента А| = хг; Z] =Z4; w4 = /i1z1; w5 = гз; = w4 vw5> z3 = хз; z4 = Xi; z2 = «; z6 = z4 vz2; z7 =хз; w8 =z4z7; = z6 vw8. 1. Изобразить логическую схему, подписать полюсы и внутренние связи. 2. Построить таблицу истинности системы функций .Vi (Xi, х2, х3 ) 72(xi,x2,x3). 9.16. Задана логическая схема, описываемая следующим взаимосвязан- ными уравнениями, каждое уравнение описывает функцию логического эле- мента w9 = W2; W4 = Xi; = w9w4; ps = xi; р% = w9p5; У1 = Рд vР8’ =хз; w5 = W2; Wj =Х2; w6 = w7 = W3; vr8 = vv5 vv7; V| = w6 v w8; vv3 = xi. Построить таблицу истинности системы функций У\ (Xj, х^, х3) У2(*1.*2,*з)- 9.17. Построить таблицу истинности функций, реализуемых логической схемой (рис. 9.3). Функции элементов схемы (рис. 9.3) заданы в табл. 29.1. Рис. 9.3 9.18. Построить таблицу истинности функций, реализуемых логической схемой (рис. 9.4). Функции элементов схемы (рис. 9.4) заданы в табл. 29.1.
9. Анализ логических схем 81 Рис. 9.4 9.19. Построить таблицу истинности функций, реализуемых логической схемой (рис. 9.5). Функции элементов схемы (рис. 9.5) заданы в табл. 29.1. 9.20. Построить таблицу истинности функций, реализуемых логической схемой (рис. 9.6). Функции элементов схемы (рис. 9.6) заданы в табл. 29.1. Рис. 9.6
82 Часть 1. Теоретические основы проектирования логических схем 9.21. Построить таблицу истинности функций, реализуемых логической схемой (рис. 9.7). Функции элементов схемы (рис. 9.7) заданы в табл. 29.1. Рис. 9.7 9.22. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.2). 9.23. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.3). 9.24. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.4). 9.25. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.5). 9.26. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.6). 9.27. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.7). 9.28. Построить таблицу истинности функций, реализуемых логической схемой (рис. 8.8).
10. Верификация логических схем 10.1. Сформулировать задачу верификации логических схем. 10.2. В чем разница между моделированием и верификацией логической схемы? 10.3. Пусть имеется две комбинационные логические схемы 5|, S2, каждая из которых имеет п входных и tn выходных полюсов. На скольких различ- ных наборах входных воздействий нужно промоделировать обе схемы 5|, S2, чтобы решить задачу верификации схем S], S2. Выписать эти наборы для /2=3. 10.4. Какая КНФ называется выполнимой? 10.5. Сформулировать задачу о выполнимости КНФ. 10.6. Проверить, является ли выполнимой КНФ ^КНФ = (W1 VW2 VW5 V W6)&(W] VW2 V V W6)&( W| v w2 V W5 v w6)& &( W| V W2 V W4)&(Wj V W2 V W5 V W6)&(W, V W2 v w4)&( w2 v W4 )& &( W| V W3 )&( Wl V W3 ). 10.7. Пусть задана комбинационная логическая схема (рис. 10. 1). 1) Что можно сказать о функции f = fX Ф f *2, реализуемой схемой, если схема 1 и схема 2 реализуют одну и ту же булеву функцию ( / 1 2 = J 2) ? 2) Что можно сказать о функции / = Ф/2, реализуемой схемой, если схема 1 и схема 2 реализуют различные булевы функции (у1 /2) ?
84 Часть 1. Теоретические основы проектирования логических схем 10.8. Как задача верификации комбинационных логических схем сводится к задаче выполнимости КНФ? 10.9. Проверить, являются ли функционально эквивалентными схемы, изо- браженные на рис. 10.2 и рис. 10.3. В схеме (рис. 10.2) элемент А2 реализует функцию И (у = АВ), элемент ЕХ2 реализует функцию “сумма по модулю 2” (у = АВ v АВ). Схема (рис. 10.3) состоит из мультиплексоров MS(1) с одним управляющим входом. Рис. 10.2 Рис. 10.3 10.10. Проверить, реализуют ли следующие формулы /' = х5 vx6 vx7 vx8; Р = x3 v x4 v x7 v x8; P = x2 v x4 v x6 v x8
10. Верификация логических схем 85 соответствующие функции, заданные в табл. 10.1. Таблица 10.1 *1 *2 *4 *5 *6 *7 *8 /' /’ /’ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Остальные наборы - - - 10.11. Пусть функционирование логической схемы 1 задается следующими формулами и>1 = Х\Х2 v Xj х2 J w2 = X3W1 v хз W1 » w3 = w2 ; vv4 = w3xi i = vv2x3; / = w4 v w5, а логической схемы 2 - формулой f = xxx2 vx2x3. Провести верификацию, т.е. проверить, реализуют ли схемы 1 и 2 одну и ту же функцию f. 10.12. Проверить для каждого из четырех вариантов задания частичных бу- левых функций А2 (табл. 10.2) Таблица 10.2 X, х2 х3 Вариант 1 Вариант 2 Вариант 3 Вариант 4 Л|Л2 Л,/;, Л(Л2 0 0 0 1 - - 1 0 - 0 - 0 0 1 0 1 1 0 1 1 1 1 0 1 0 0 0 0 0 1 0 1 0 0 1 1 1 - - 1 0 - 0 - 1 0 0 0 - 1 0 1 1 1 - 1 0 1 - - - - - - - - 1 1 0 1 - 0 - - 0 0 - 1 1 1 1 - -и 1 - 0 0 -
86 Часть 1. Теоретические основы проектирования логических схем и полностью определенной булевой функции g(Ai,^2’x4’x5) (табл. 10.3) реализует ли суперпозиция g(/7i(Xi,X2,X3)5 Й2(х1>х2>хз)’х4>х5) (Рис- Ю-4) частичную булеву функцию /(х1,Х2,Хз,х4,Х5) = /(х), заданную в табл. 10.4? f Рис. 10.4. Таблица 10.3 h\h2x2xA g 0000 000 1 00 1 0 00 1 1 0 1 00 0 10 1 0 110 0 111 1 000 100 1 10 10 10 11 1 100 110 1 1110 1111 1 0 0 0 1 0 0 0 0 1 0 1 0 1 0 1
10. Верификация логических схем 87 Таблица 10.4 X f X / 00000 0 10000 - 00001 1 10001 - 00010 - 10010 0 00011 0 10011 - 00100 1 10100 - 00101 - 10101 - 00110 1 10110 - 00111 1 10111 - 01000 0 11000 0 01001 - 11001 - 01010 1 пою - 01011 - 11011 01100 - 11100 0 01101 0 11101 0 01110 0 11110 01111 - 11111 - 10.13. Проверить, реализует ли логическая схема (рис. 10.5) частичную бу- леву функцию f (х), заданную в табл. 10.5. Рис. 10.5
88 Часть 1. Теоретические основы проектирования логических схем Таблица 10.5 X) х2 х3 х4 f 0000 1 000 1 1 1000 1 100 1 1 110 1 1 1111 1 00 1 0 0 1100 0 0 111 0 Остальные наборы - 10.14. Проверить, реализует ли дизъюнкция <р1(х2,х3) V (р\х} ,х4), час- тичную функцию, заданную в табл. 10.5. Частичные функция (р\х2^х3), ^2(х15х4) даны в табл. 10.6, табл. 10.7, соответственно. 10.15. Проверить, реализует ли логическая схема (рис. 10.6) функцию из табл. 10.8. Функции Я1 (х2,х3),Я2(х|5х2,х4) заданы в табл. 10.9, 10.10, соот- ветственно. Из двух вариантов (табл. 10.10) найти правильный вариант зада- ния функции Л2 (Х|, х2, х4 ).
10. Верификация логических схем 89 Рис. 10.6 Таблица 10.8 х, х2 х3 хА f 0000 1 000 1 1 1000 1 100 1 1 110 1 1 1111 1 00 10 0 1 1 00 0 0 111 0 Таблица 10.9 х2х3 Я'(х2,х3) 0 0 1 0 1 0 1 0 0 1 1 0 Таблица 10.10 Х\ Х2 Вариант 1 A2(x„Xj,X4) Вариант 2 Лл.Лз.х,) ООО 0 0 00 1 0 0 0 1 1 0 0 100 1 0 1 0 1 0 0 1 1 0 1 0 111 0 1
90 Часть 1. Теоретические основы проектирования логических схем 10.16. Можно ли путем суперпозиции неполностью определенных булевых функций получить полностью определенную булеву функцию? Привести пример. 10.17. Можно ли путем суперпозиции полностью определенных булевых функций получить неполностью определенную булеву функцию? Привести пример. 10.18. Проверить, какая из функций (табл. 10.11), /2 (табл. 10.12), /3 (табл. 10.13) реализует функцию (р (табл. 10.14), Таблица 10.11 х( х2 /' 00 0 0 1 0 1 0 1 Таблица 10.12 X, х2 /2 00 0 1 11 0 0 0 1 0 1 Таблица 10.13 х, х2 р 00 0 11 0 1 0 1 0 1 1 Таблица 10.14 X) х2 х3 <р 000 0 0 10 0 111 0 1 0 1 1 1 00 1
10. Верификация логических схем 91 10.19. Проверить, какая из систем функций F , F реализует систему функций F (табл. 10.15) Таблица 10.15 F Г’ f'f2/' /77’ /773 0 0 0 0-1 0 1 1 00 1 0 0 1 1 11 1 1 0 1 1 1 0 1 0 -0- 00 1 1 0 1 0 1 1 1-0 1 00 1 00 I 0 0 0 1 - 11 - 0 1 1 1 0 1 — 000 0 1 0 1 I 0 1 00 100 1 00 1 1 1 -1 - 1 1 0 0 1 1 10.20. Верифицировать схемы, заданные на рис. 8.2, рис. 10.7. Функции эле- ментов схемы (рис. 10.7) заданы в табл. 29.3. Рис. 10.7 10.21. Верифицировать схемы, заданные на рис. 8.3, рис. 10.8. Функции элементов схемы (рис. 10.8) заданы в табл. 29.3.
92 Часть 1. Теоретические основы проектирования логических схем Рис. 10.8 10.22. Верифицировать схемы, заданные на рис. 8.4, рис. 10.9. Функции элементов схемы (рис. 10.9) заданы в табл. 29.3. ZAPRET.2 Рис. 10.9 10.23. Верифицировать схемы, заданные на рис. 8.5, рис. 10.10. Функции элементов схемы (рис. 10.10) заданы в табл. 29.3.
10. Верификация логических схем 93 AND_2 Рис. 10.10 10.24. Верифицировать схемы, заданные на рис. 8.6. рис. 10.11. Функции элементов схемы (рис. 10.11) заданы в табл. 29.3. Рис. 10.11 10.25. Верифицировать схемы, заданные на рис. 10.12, рис. 10.13. Функции элементов этих схем заданы в табл. 29.2. Рис. 10.12
94 Часть 1. Теоретические основы проектирования логических схем NMX2 Рис. 10.13 10.26. Верифицировать схемы, заданные на рис. 10.14, рис. 10.15. Функции элементов этих схем заданы в табл. 29.2. Рис. 10.14 Рис. 10. 15 10.27. Верифицировать схемы, заданные на рис. 10.16, рис. 10.17. Функции элементов этих схем заданы в табл. 29.2.
10. Верификация логических схем 95 NAO22 Рис. 10.16 Рис. 10.17 10.28. Верифицировать схемы, заданные на рис. 10.18, рис. 10.19. Функции элементов этих схем заданы в табл. 29.2.
96 Часть 1. Теоретические основы проектирования логических схем Рис. 10.18 Рис. 10.19 10.29. Верифицировать схемы, заданные на рис. 10.20, рис. 10.21. Функции элементов этих схем заданы в табл. 29.2.
10. Верификация логических схем 97 NOA2 Рис. 10.20 10.30. Поведение схемы 1 задано системой ДНФ ✓«1 J =ХЗ%4 VX1X2X4 VX2X3 VXJX3J /2 = Х2Х4 v х3х4 v Х]Х4; /3=0; /4=х3х4; /5 = Х| Х2Х3 V Х1Х2 хз V XIХ4 V х2 х4, а поведение схемы 2 - таблицей истинности (табл. 10.16). Сравнить модели поведения схем 1, 2 приведением каждой из функций к диаграмме двоичного выбора, используя один и тот же порядок (Хр х3, х4, х2) переменных, по которому строится диаграмма.
98 Часть 1. Теоретические основы проектирования логических схем Таблица 10.16 /' /2 /’ f* f5 0000 000 1 00 10 00 1 1 0 100 0 10 1 0 110 0 111 1000 100 1 10 10 10 11 1100 110 1 1110 1111 10 0 0 1 110 0 0 10 0 11 0 10 0 0 1 0 0 0 1 110 0 1 0 0 0 1 1 0 10 0 0 1 0 0 0 0 110 0 0 0 0 0 1 1 0 10 0 1 0 0 0 0 1 10 0 0 0 0 0 0 1 1 0 10 0 0 10.31. Поведение логической схемы 1 задано системой ДНФ —---------------— — — f =Х|Х3Х4 VX1X3 VX3X4 VX2X4; У 2 =Х2ХЗХ4 VXjX3X4; У 3 = Х1Х2Х3 Х4 v X] хз Х4; /4 =Х1Х2ХЗ VXjX2X3 VX1X4 VX2X4, а поведение логической схемы 2 - таблицей истинности (табл. 10.17). Срав- нить модели поведения схем 1, 2 приведением - функций У1, У 2 к диаграммам двоичного выбора, используя порядок (Х|, х3, Хд, х2) переменных, по которому строится диаграмма; - функций у3, У4 к диаграммам двоичного выбора, используя поря док (х3, х4, х2, Xi) переменных, по которому строится диаграмма.
10. Верификация логических схем 99 Таблица 10.17 Х,Х2Х3Х4 /’ /’ /’ /4 0000 1 0 0 1 000 1 1 0 0 0 00 10 1 0 0 1 00 1 1 0 0 0 0 0 1 00 1 1 0 1 0 10 1 1 0 0 1 0 110 0 0 1 1 0 111 0 0 0 0 1000 I 1 0 0 100 1 1 0 0 0 10 10 1 0 1 1 10 11 0 0 0 1 1 1 00 0 1 0 1 110 1 1 0 0 0 1110 1 0 0 1 1111 0 0 0 0 10.32. Поведение логической схемы 1 задано системой ДНФ /' = х2хзх4 v Х|Х3х4; /2 = Xi Х2хзх4 v х2х3х4; /3 = Xjx2x3x4 v xix2x4; /•4 J = Х1Х2Х4 V Х1Х2*3*4 VXjX2X4 VX3X4, а поведение логической схемы 2 - таблицей истинности (табл. 10.18). Срав- нить модели поведения схем 1, 2 приведением - функции J , j к диаграммам двоичного выбора, используя порядок (X], х2, Х3, х4) переменных, по которому строится диаграмма двоичного выбора; - функций к диаграммам двоичного выбора, используя поря- док (Х3, х4, Х|, х2) переменных, по которому строится диаграмма двоичного выбора.
100 Часть 1. Теоретические основы проектирования логических схем Таблица 10.18 Х,Х2Х3Х4 0000 0 0 0 1 000 1 0 10 0 00 10 0 0 0 1 00 11 0 0 0 0 0 100 0 0 10 0 10 1 10 0 1 0 110 0 0 11 0 111 0 10 0 1000 0 0 0 0 100 1 0 0 0 0 10 10 10 0 1 10 11 0 0 0 0 1 100 0 0 0 1 110 1 10 0 0 1110 10 0 1 1111 0 110 10.33. Поведение логической схемы 1 задано системой ДНФ /' = Х1Х2Х3Х4 V Х,Х2ХЗ V Х1Х2ХЗ V Х|Х3Х4 V Х!ХЗХ4; /2 =Х!Х2ХЗХ4 VX1X2X3X4 VX1X2X3X4 VX2X3X4; /3 =Х|Х2хзх4; /4 =Х2Х3Х4 VX2X3, а поведение логической схемы 2 - таблицей истинности (табл. 10.19). Срав- нить модели поведения схем 1,2 - приведением функций схемы 1 к таблице истинности; - для функций /3 (из схем 1, 2) построить и сравнить полиномы Жегалки- на.
10. Верификация логических схем 101 Таблица 10.19 х1х2х3х4 у /2/3 /4 0000 0 0 0 0 000 1 0 1 0 0 00 1 0 0 1 0 1 00 1 1 1 0 0 0 0 1 00 1 0 0 1 0 10 1 1 0 0 I 0 110 0 0 0 0 0 111 0 1 0 0 1000 1 1 0 0 100 1 1 0 0 0 10 10 1 0 0 1 10 11 0 0 0 0 1100 0 0 0 1 110 1 1 0 1 1 1110 1 0 0 0 1111 0 1 0 0 10.34. Поведение логической схемы 1 задано системой ДНФ У* = Х,Х2Х3Х4 VX|X3X4 VX]X2X3X4 VX1X2X3 VX2X3X4; У 2 =X1X2X3X4 VX|X3X4; У3 =X]X2X3X4 VX]X2X3X4; f4 = X2X3 X4 v X2 хз X4, а поведение логической схемы 2 - таблицей истинности (табл. 10.20). Срав- нить модели поведения схем 1,2 - приведением функций /', /2 схемы 1 к таблице истинности; - для функций у3, У4 построить и сравнить полиномы Жегалкина.
[Q2 Часть 1. Теоретические основы проектирования логических схем Таблица 10.20 Х1Х2Х3Х4 /' У2/’/4 0000 0 0 0 0 000 1 0 10 0 00 10 0 0 0 1 00 1 1 10 0 0 0 100 10 0 1 0 10 1 10 0 1 0 110 0 0 10 0 111 0 10 0 1000 0 0 10 100 1 10 0 0 10 10 10 0 1 10 11 0 0 0 0 1 1 00 0 0 0 1 110 1 10 0 1 1110 0 0 0 0 1111 0 10 0
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 11.1. Какое устройство называется 1) сумматором; 2) умножителем; 3) мультиплексором; 4) дешифратором; 5) шифратором; 6) компаратором; 7) инкрементором; 8) декрементором? 11.2. Для чего предназначены ПЗУ? Какие формы булевых функций «запи- сываются» в ПЗУ? 11.3. Для чего предназначены комбинационные ПЛМ, т.е. ПЛМ без элемен- тов памяти? Какие формы булевых функций «записываются» в такие ПЛМ? Можно ли на комбинационной ПЛМ, имеющей р< 2Л-1 промежуточных шин, реализовать любую булеву функцию, зависящую от п переменных? Можно ли реализовать любую булеву функцию, зависящую от п перемен- ных, на ПЛМ, имеющей 2п 1 промежуточных шин? 11.4. Функции из какого класса (монотонные, симметричные, линейные, са- модвойственные) заведомо плохо реализуются на комбинационной ПЛМ, т.е. реализация таких функций приводит к ПЛМ с большой площадью? 11.5. Каким должно быть соотношение между числом управляющих (адрес- ных) и информационных входов (входов данных) мультиплексора MS(h) с п управляющими входами? 11.6. В чем различаются функции мультиплексора и дешифратора? 11.7. Каким должно быть соотношение между числом п входных и числом т выходных переменных дешифратора? 11.8. Построить схему мультиплексора MS(1) с использованием двухвходо- вых элементов И-НЕ. 11.9. Проверить, можно ли на мультиплексоре MS(2) с двумя управляющи- ми входами реализовать функцию /(х15х2,Хз), задаваемую следующими формулами: wi = xix2v xi х2» w2 = хзwi vx3wi; w3 = w2; w4 = ; w5 = w2x3; f = w4 v w5. Если функция реализуется, то определить настройку мультиплексора и запи- сать функцию /(jq,х2,х3) с использованием полученной настройки. На входы мультиплексора можно подавать константы 0,1, а также переменные или инверсии переменных.
104 Часть 1. Теоретические основы проектирования логических схем 11.10. Построить схему мультиплексора MS(2) с использованием двухвхо- довых элементов И-НЕ. 11.11. Записать систему СДНФ булевых функций, реализуемых дешифрато- ром DC( 1) и дешифратором DC(2). 11.12. Записать таблицу истинности дешифратора DC(3). 11.13. Записать систему СДНФ булевых функций, реализуемых дешифрато- ром DC(3). 11.14. Можно ли путем раздельной минимизации уменьшить число конъ- юнкций в ДНФ функций дешифратора? 11.15. Можно ли путем совместной минимизации уменьшить число конъ- юнкций в ДНФ функций дешифратора? 11.16. Как называется устройство, функционирующее согласно табл. 11.1, в столбце f дано значение выходного сигнала устройства. Записать систему ДНФ, изобразить логическую схему. Таблица 11.1 а1 а2 *1 Х2 *3 f 0 0 0 - - 0 0 0 1 - - - 1 0 1 - 0 - 0 0 1 - 1 - 1 1 0 - - 0 0 1 0 - - 1 - 1 1 1 - - - 0 0 1 1 - - - 1 1 11.17. Синтезировать логическую схему мультиплексора MS(2) из мультип- лексоров MS( 1). 11.18. Синтезировать логическую схему мультиплексора MS(3) из мультип- лексоров MS(1). 11.19. Синтезировать логическую схему мультиплексора MS(3) из мультип- лексоров MS(2). 11.20. Синтезировать логическую схему мультиплексора MS(4) из мультип- лексоров MS(2). 11.21. Пусть а = (я25 ^1), b = (^Л) _ двухразрядные неотрицательные числа, представленные в двоичном коде, я2 “ старший разряд числа я, 62 - старший разряд числа Ъ. Записать таблицу истинности булевой функции, принимающей единичное значение тогда и только тогда, когда
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 105 1) а<Ь; 2) а>Ь; 3) а=Ь. Как называется устройство, реализующее функцию сравнения чисел? 11.22. Пусть а = (б73, а2, а\) трехразрядное неотрицательное число, пред- ставленное в двоичном коде, 673 - старший разряд числа а. Записать таблицу истинности системы булевых функций, реализующих арифметическую опе- рацию 6=67-1. Какова разрядность числа 6? Как называется устройство, реа- лизующее арифметическую операцию b = 67-1? 11.23. Пусть 67 = (б73 672,67j) трехразрядные неотрицательное число, пред- ставленное в двоичном коде, 673 - старший разряд числа 67. Записать таблицу истинности системы булевых функций, реализующих арифметическую опе- рацию 6=67 + 1. Какова разрядность числа 6? Как называется устройство, реализующее арифметическую операцию 6=67+1? 11.24. Синтезировать схему 2-разрядного сумматора (с последовательным переносом) в виде каскадного соединения двух полных одноразрядных сум- маторов. 11.25. Синтезировать схему 4-разрядного сумматора (с последовательным переносом) в виде каскадного соединения полных одноразрядных суммато- ров. 11.26. Синтезировать схему N-разрядного сумматора (с последовательным переносом) в виде каскадного соединения полных одноразрядных суммато- ров. 11.27. Реализовать на ПЗУ функции двухразрядного сумматора. Получить “прошивку” ПЗУ, какова разрядность адресного слова ПЗУ, какова разряд- ность хранимых данных? 11.28. Реализовать на ПЗУ функции двухразрядного умножителя. Получить “прошивку” ПЗУ, какова разрядность адресного слова ПЗУ, какова разряд- ность хранимых данных? 11.29. Построить ПЛМ, реализующую функции двухразрядного сумматора. 11.30. Реализовать функцию /(xj, х2, х3 ), задаваемую формулами Wj = xix2 v XjX2; w2 =X3Wj vx3wi; w3=wi; VV4 = W3X1J H'5 ~ W2X3 ’ f ~ w4 v vv5 1)на ПЗУ (3,1); 2) на ПЛМ, минимизировав число промежуточных шин ПЛМ. 11.31. Пусть задана схема (рис. 11.1), состоящая из дешифратора с инверс- ными выходами и матричной схемы И. Записать характеристическое множе- ство каждой из булевых функций q? (Xj, х2), ..., 5 (х,, х2).
106 Часть I. Теоретические основы проектирования логических схем Матрица “И” Рис. 11.1 11.32. Пусть а = {а2,а\), b = (b2,b^ - двухразрядные неотрицательные числа, представленные в двоичном коде, а2 - старший разряд числа а, Ь2 - старший разряд числа b. Реализовать на ПЛМ с двухвходовыми дешифрато- рами тип (рис. 11.1) устройство сложения (c2,52,51)=(a2,«I) + (Z?2,Z)1). Сколько понадобится промежуточных шин ПЛМ? Получить “прошивки” матриц И, ИЛИ. 11.33. Реализовать на ПЛМ функции мультиплексора MS(2) с двумя управ- ляющими входами. 11.34. Реализовать функции каждую из функций ^°(х1?х2), ..., ^,5(х,,х2) (рис. 1.11) на мультиплексоре MS(2) с двумя управляющими входами. 11.35. Пусть ПЗУ (и,/л) имеет п - разрядность адресного слова, т - разряд- ность хранимых данных. Построить ПЗУ(3,3), используя ПЗУ (2,3).
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 107 11.36. В табл. 11.2 задан шифратор унитарного кода. Найти доопределение функций и построить логическую схему, реализующую функции шифратора. Таблица 11.2 *1 х2 *3 ХА xs *6 Х1 *8 /' f1 /’ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Остальные наборы - - - 11.37. Записать таблицу истинности компаратора (>, <, =) двух двухразряд- ных чисел а =(а2,а{ \ b = (62,6,). 11.38. Построить компаратор 4-разрядных чисел из компараторов 2- разрядных чисел. 11.39. Построить компаратор 8-разрядных чисел из компараторов 2- разрядных чисел. 11.40. Построить компаратор 16-разрядных чисел из компараторов 4- разрядных чисел. 11.41. Записать функции полного одноразрядного сумматора. Проверить, являются ли эти функции самодвойственными. Являются ли они симметри- ческими? 11.42. Реализовать схему паритета (контроля по четности) в виде пирами- дальной схемы из двухвходовых элементов «сложение по модулю 2». 11.43. Реализовать схему паритета (контроля по четности) 16-битного слова в виде последовательного соединения схем паритета 4-битных слов. 11.44. Записать таблицу истинности, составить СДНФ и минимизировать в классе ДНФ функции схемы мажоритарного узла “2 из 3” (имеется три входа, выход равен 1, если число единиц на входах больше числа нулей, в против- ном случае выход равен 0). 11.45. Задана таблица истинности дешифратора DC(3) (табл. 11.3). Соста- вить схему дешифратора DC(4), используя дешифраторы DC(3).
108 Часть 1. Теоретические основы проектирования логических схем Таблица 11.3 Входы Выходы G СВ А у1 У6 у5 У4 У3 У2 X1 / 0 11111111 10 0 0 11111110 10 0 1 1111110 1 10 10 111110 11 10 11 11110 111 110 0 1110 1111 110 1 110 11111 1110 10 111111 1111 0 1111111 11.46. Даны дешифраторы DC(3) (табл. 11.3) и дешифраторы DC(2), соста- вить из них схему дешифратора DC(5). 11.47. Составить схему дешифратора DC(6) из дешифраторов DC(3). 11.48. Даны дешифраторы DC(w), составить из них схему дешифратора DC(n), где п>т. 11.49. Изобразить ПЛМ, реализующую систему ДНФ булевых функций D}=--X2X3 VX|X2X4 VXIX2X3X4; Z)2=X|X2X3X4 VXjX2X3X4 VXjX2X3X4 VX1X2X3X4 VX2X3. 11.50. Изобразить ПЛМ, реализующую систему ДНФ булевых функций (табл. 11.4) Таблица 11.4 т В z,z2X3 Л, - 1 0 0 1 0 1 1 1 0 1 - 0 1 1 1 1 - 0 1 11.51. Какое устройство реализовано на ПЗУ (рис. 11.2)?
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 109 11.52. Какое устройство реализовано на ПЗУ (рис. 11.3)? 11.53. Реализовать на ПЛМ функции f\ f \ : л ~ ~ гЗ ~ = = j =^1х1хз; j =и\; J = W|X3 vх2хз , где щ = Х\Х2 vх\х2 . 11.54. Реализовать на ПЛМ функцию /(Х|, х2) = X] © х2 Ф х3. 11.55. Пусть система ДНФ булевых функций задана парой матриц: Т (тро- ичная матрица, строки которой задают элементарные конъюнкции, каждая из которых состоит не более, чем из р литералов), В - булева матрица вхожде- ний конъюнкций в ДНФ функций. К какой комбинаторной задаче сводится задача построения одноуровневой сети из базисных ПЛМ, имеющих р входов и q выходов? Рассмотреть возможности (и невозможность) использования проводных дизъюнкций выходов ПЛМ. 11.56. На рис. 11.4 дана сеть ПЛМ, допускающих проводные дизъюнкции выходов. Нарисовать сеть ПЛМ без использования проводных дизъюнкций. Новая сеть ПЛМ должна реализовать те же функции. Реализовать схему на одной ПЛМ. Подсчитать площадь этой ПЛМ.
110 Часть 1. Теоретические основы проектирования логических схем Рис. 11.4. е* е» 11.57. Изобразить схему расширения ПЛМ « по выходам». 11.58. Изобразить схему расширения ПЛМ « по промежуточным шинам». 11.60. Изобразить схему расширения ПЛМ « по входам», используя метод факторизации конъюнкций. 11.61. Используя факторизацию конъюнкций, реализовать систему ДНФ (табл. 11.5) сетью ПЛМ(3,6,3). Базисная ПЛМ(3,6,3) имеет три входа, шесть промежуточных шин и три выхода. Таблица 11.5 т в Ьг а2 с2 *1 - - 1 1 1 0 0 1 1 1 - 1 0 0 1 1 - 1 1 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 0 1 0 0 - 0 1 0 1 0 - 0 1 0 0 1 0 - 0 0 1 0 1 0 1 0 - - 0 0 1 0 1 - - 0 0 1 11.62. Используя факторизацию конъюнкций, реализовать систему ДНФ (табл. 11.6) сетью ПЛМ(3,4,3). Базисная ПЛМ(3,4,3) имеет три входа, четыре промежуточных шины и три выхода.
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 111 Таблица 11.6 Элементарные конъюнкции т в хх х2 х3 х4 х5 хь х7 х8 х9 /' f2 г г 101------ 1110 Zr2 110------ 0 0 0 1 ^3 01------- 110 0 ---011--- 0 10 0 ^5 ---110--- 0 0 11 К ---10---- 0 0 0 1 ^7 101---0-- 0 0 10 ^8 110011100 110 1 101011-1- 0 0 11 ^10 ---011-01 0 0 10 11.63. Составить таблицу истинности булевых функций, «записанных» в ПЗУ (рис. 11.5). Реализовать те же функции на одной ПЛМ, имеющей про- граммируемые инверторы на выходах. Рис. 11.5 11.64. Дана ПЛМ (рис. 11.6) с двухвходовыми дешифраторами, построить «классическую» ПЛМ (ПЛМ с одновходовыми дешифраторами).
112 Часть 1. Теоретические основы проектирования логических схем 11.65* . Изобразить схему ПЛМ, реализующую систему функций, заданных в табл. 11.7. Найти все различные множества одновременно срабатывающих промежуточных шин ПЛМ. Записать для каждого такого множества 5 соот- ветствующие наборы значений входных переменных, которые приводят к срабатыванию промежуточных шин множества S. Записать в виде формулы (отрицания ДНФ) множество наборов, подача которых на вход ПЛМ приво- дит к нулевому вектору значений выходов ПЛМ. Таблица 11.7 Элементарные конъюнкции т В X) х2 х3 х4 х5 х6 /' /! /’ г а 0-0-10 0 10 1 b - 1 0 0 - 0 0 0 11 с 0 - - 0 1 1 0 110 d 1 1 0 0 1 - 110 0 е 0-00-1 0 0 10 я 0 - - 0 0 10 0 11.66. Для ПЛМ, реализующей систему функций /(х)=(/! (х), /2(х), /3 (х)), заданную в табл. 11.8, провести декомпозицию вида /(*)= ЛьЮ =g(My)>z),
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 113 где Х=(Х|, *2> х3> х4> х5- *6- *7> х8)> y=(Xi, Х2, Х3, Х4, Х5, Х6), z=(x7, х8). Из скольких функций будет состоять система функций й(>>)? Изобразить построенную сеть ПЛМ. Подсчитать площадь исходной ПЛМ и площадь двух ПЛМ, из которых состоит сеть ПЛМ. Какую цель преследует декомпозиция ПЛМ? Таблица 11.8 т в х, х2 х3 *4 х5 х6 Х7 Х8 /' р р 0 - 0 - 1 0 0 - 0 1 0 - 1 0 0-0 - 1 1 0 1 0 - - 0 11 - - 0 0 1 110 0 1 - 1 1 1 1 0 0-0 0-1 0 - 0 0 1 - - 0 - - 0 1 0 0 1 0 11.67. Для ПЛМ, реализующей систему функций (х), /’2(х), (*))> заданную в табл. 11.9, провести декомпозицию вида /(*)= =g(h(y),s(z)), W х=(хи ...,х12), у=(х1( х2, х3, х4, х5, х6), z=(x7, х8, х9, х,0, хн, Х|2), проведя ортогонализацию (если требуется) строк троичных подматриц, соответствующих векторам у, z, и перекодировав строки минимальными по длине булевыми кодами. Из скольких функций будут состоять системы h(y)y £(£)? Изобразить построенную сеть ПЛМ. Подсчитать площадь ис- ходной ПЛМ и площадь двух ПЛМ, из которых состоит сеть ПЛМ. Какую цель преследует проведенное разложение? Таблица 11.9 т в Х1 Х2 *3 х4 *5 Х6 х7 х8 х9 х10 ХП Х12 р р р 1 - 0 0 - - 1 0 - - 1 1 0 1 1 0 - - 1 1 0 0 - 1 1 - 0 1 1 0 - 1 1 - 0 - - 0 - 0 0 - 1 0 0 0 - 0 0 - 1 0 1 1 0 - - 1 0 0 - 0 1 - - 1 0 - - 1 1 1 0 0 1 1 - 0 1 Т- 1 - - 0 1 0 0 1 1
] 14 Часть 1. Теоретические основы проектирования логических схем 11.68. Определить понятия 1) конечный предикат; 2) ДНФ конечного предиката; 3) кратчайшая ДНФ конечного предиката. 11.69. Сформулировать задачи 1) нахождения кратчайшей ДНФ одного конечного предиката 2) нахождения кратчайшей ДНФ системы конечных предикатов. 11.70. Сформулировать сведение задачи синтеза структуры ПЛМ с двухвхо- довыми дешифраторами к задаче минимизации в классе ДНФ конечных пре- дикатов. Записать систему конечных предикатов /2(>Ъ.У2)’ / 3 (УьУ2 ) ’ ./ 4 (Л > У2) ’ соответствующую ПЛМ с двухвходовыми дешиф- раторами (рис. 11.6), полагая, что многозначная переменная jq соответству- ет подмножеству {jq, х2}, а многозначная переменная у 2 соответствует подмножеству {х3, х4} булевых переменных. 11.71. Провести раздельную минимизацию в классе ДНФ предикатов, задан- ных в табл. 11.10. Реализовать исходную и минимизированную систему пре- дикатов на ПЛМ с двухвходовыми дешифраторами (пример такой ПЛМ дан на рис. 11.6). Таблица 11.10 У\ У2 с2 s2 5, У231 1 0 0 У1‘3’ у,»! 1 0 0 у!31 У1'-31 1 0 0 у!” у.0> 0 1 0 У|<3’ у<3> 0 1 0 УГ уР> 0 1 0 уГ,п уГ 0 1 0 у.0,2’ У22' 0 1 0 у!0,2' yj" 0 1 0 у!21 0 0 1 у!” 0 0 1 11.72. Пусть я = (а2>Д1), 6 = (62j^i) " двухразрядные неотрицательные числа, представленные в двоичном коде, где я2 ' старший разряд числа а, - старший разряд числа Ь. Реализовать на ПЛМ с двухвходовыми дешиф- раторами устройство сложения (с2, лг2,5*,) = (я2,67j) + (62,6|).
11. Типовые комбинационные схемы. ПЛМ и ПЗУ 115 11.73. На рис. 11.7 изображена программируемая матрица логики (ПМЛ). Записать ДНФ функций, реализуемых схемой. Вычислить площадь ПЛМ, реализующей те же функции, что и схема ПМЛ (рис. 11.7). Рис. 11.7
12. Триггеры. Синтез автоматов 12.1. Для чего предназначены триггеры? 12.2. Как можно разделить входы триггеров по их функциональному назна- чению? 12.3. В чем различие понятий “синхронный триггер”, “асинхронный триг- гер”? 12.4. В какие моменты времени относительно синхроимпульса возможна за- пись информации в триггер? 12.5. В какие моменты времени происходит запись информации в синхрон- ный триггер и асинхронный триггеры? 12.6. Чем различается работа триггеров со статическим и динамическим управлением? 12.7. Чем различается работа одноступенчатых и двухступенчатых тригге- ров? 12.8. Какая логическая схема называется «последовательностной»? 12.9. Дать определение 1) конечного автомата; 2) конечного автомата с абстрактным состоянием; 3) структурного автомата; 12.10. Записать таблицу функционирования 1) D-триггера; 2) RS-триггера; 3) JK-триггера; 4) Т-триггера. 12.11. С состоянием какого полюса логической схемы триггера ассоцииру- ется понятие хранимого бита (0,1) информации в триггере? 12.12. Какие входные сигналы надо подать на входные полюсы D-триггера, чтобы D-триггер стал хранить 1 (0)? 12.13. Какие входные сигналы надо подать на входные полюсы RS-триггера, чтобы RS-триггер стал хранить 1 (0)? 12.14. Какие входные сигналы надо подать на входные полюсы JK-триггера, чтобы JK-триггер стал хранить 1 (0)? 12.15. Какие входные сигналы надо подать на входные полюсы Т-триггера, чтобы Т-триггер стал хранить 1 (0)?
12. Триггеры. Синтез автоматов 117 12.16. Что будет хранить RS-триггер, если входы R, S установить в единич- ное состояние? 12.17. Какие функции называются функциями возбуждения элементов памя- ти? 12.18. По табл. 12.1 функционирования автомата Мили нарисовать граф пе- реходов. Таблица 12.1 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai а2 аз 84 Z| a2/W| a2/W| a|/w2 at/w4 Z2 a4/w4 a,/wj a4/W| a3/w5 a3/w2 аз/ц,з a,/w4 a3/w5 12.19. Провести моделирование конечного автомата, поведение которого описывается табл. 12.1, на следующей последовательности входных сигна- лов: Z], z2, Zj, Zj, z3, Z3. Записать выходную последовательность и после- довательность сменяемых внутренних состояний. 12.20. По табл. 12.2 функционирования автомата Мура нарисовать граф пе- реходов. Таблица 12.2 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния a! a2 a3 Z| a2 a3 a1 z2 ai a2 a3 Zj a3 ai a3 w3 W| w2 Выходные сигналы 12.21. Провести моделирование конечного автомата, поведение которого описывается табл. 12.2, на следующей последовательности входных сигна- лов: Zj, z2, Zj, z1? z3, z3. Записать выходную последовательность и после- довательность сменяемых внутренних состояний. 12.22* . Для заданного автомата Мили (табл. 12.3) провести кодирование входных, внутренних, выходных состояний (сигналов). Построить логиче- скую схему автомата, используя D-триггеры. Провести раздельную миними-
1 18 Часть 1. Теоретические основы проектирования логических схем зацию функций возбуждения элементов памяти. Реализовать функции логи- ческой схемой в базисе инверторов, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.3 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния L й| а: a3 a4 Z| a2/W| a2/wi a(/w2 a|/w4 Z2 a4/w5 a3/w3 a4/w4 a3/w5 z3 a3/w2 a3/w3 a,/w4 a3/w5 12.23* . Для заданного автомата Мили (табл. 12.4) провести кодирование входных, внутренних, выходных состояний (сигналов). Построить логиче- скую схему автомата, используя RS-триггеры. Провести раздельную мини- мизацию функций возбуждения элементов памяти. Реализовать функции ло- гической схемой в базисе инверторов, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.4 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai Э2 аз 84 Z| аз/\у4 a2/wi ai/w2 ai/w4 Z2 a4/w5 a2/w3 ад/хУз Эз/хуз Z3 a}/w5 a3/w4 ai/w4 аз/wi 12.24* . Для заданного автомата Мили (табл. 12.5) провести кодирование входных, внутренних, выходных состояний (сигналов). Построить логиче- скую схему автомата, используя JK-триггеры. Провести раздельную мини- мизацию функций возбуждения элементов памяти. Реализовать функции ло- гической схемой в базисе инверторов, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.5 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai a2 a3 ад Z| 34/W4 a2/w. a(/w2 a4/w4 Z2 a^Ws a|/w3 a3/w4 a3/w3 Z3 ai/w2 a2/w4 ai/w4 a4/wi
12. Триггеры. Синтез автоматов 119 12.25* . Для заданного автомата Мили (табл. 12.6) провести кодирование входных, внутренних, выходных состояний (сигналов). Построить логиче- скую схему автомата, используя Т-триггеры. Провести раздельную миними- зацию функций возбуждения элементов памяти. Реализовать функции логи- ческой схемой в базисе инверторов, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.6 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai a2 аз ад 21 a,/w4 a3/wt a(/w3 ai/w4 Z2 a2/w5 ai/w3 ацАу3 a3/w3 «3 a3/w5 a4/w5 a,/w4 ад/wi 12.26* . Для заданного автомата Мура (табл. 12.7) построить эквивалентный автомат Мили, провести кодирование входных, внутренних, выходных со- стояний (сигналов). Построить логическую схему автомата, используя D- триггеры. Провести раздельную минимизацию функций возбуждения эле- ментов памяти. Реализовать функции логической схемой в базисе инверто- ров, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.7 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния a> a2 a3 Z| a3 a2 ai Z2 ai a2 a3 z3 a3 a. a3 w3 W| w2 Выходные сигналы 12.27* . Для заданного автомата Мура (табл. 12.8) построить эквивалентный автомат Мили, провести кодирование входных, внутренних, выходных со- стояний (сигналов). Построить логическую схему автомата, используя RS- триггеры. Провести раздельную минимизацию функций возбуждения эле- ментов памяти. Реализовать функции логической схемой в базисе инверто- ров, двух- и трехвходовых элементов И, ИЛИ.
120 Часть 1. Теоретические основы проектирования логических схем Таблица 12.8 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния bi ь2 Ьз qi ь2 Ь, ь, 42 Ь3 ь2 ь2 4з bi Ьз Ьз У2 Уз У| Выходные сигналы 12.28* . Для заданного автомата Мура (табл. 12.9) построить эквивалентный автомат Мили, провести кодирование входных, внутренних, выходных со- стояний (сигналов). Построить логическую схему автомата, используя JK- триггеры. Провести раздельную минимизацию функций возбуждения эле- ментов памяти. Реализовать функции логической схемой в базисе инверто- ров, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.9 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния С| с2 сз 41 с2 с2 С1 42 С2 С1 С2 4з Сз сз Сз У1 Уз У2 Выходные сигналы 12.29* . Для заданного автомата Мура (табл. 12.10) построить эквивалент- ный автомат Мили, провести кодирование входных, внутренних, выходных состояний (сигналов). Построить логическую схему автомата, используя Т- триггеры. Провести раздельную минимизацию функций возбуждения эле- ментов памяти. Реализовать функции логической схемой в базисе инверто- ров, двух- и трехвходовых элементов И, ИЛИ. Таблица 12.10 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния Г| г2 Гз 41 Г| Гз Г1 42 Гз Г2 Гз W3 W| w2 Выходные сигналы
12. Триггеры. Синтез автоматов 121 12.30. Как определяется микропрограммный автомат? Как задается функ- ционирование микропрограммного автомата? Что такое граф-схема алгорит- ма (ГСА)? Какая ГСА является корректной? 12.31. Как проводится разметка состояний ГСА при синтезе автомата Мура? 12.32. Как проводится разметка состояний ГСА при синтезе автомата Мили? 12.33* . Задана ГСА с размеченными состояниями (рис. 12.1). Построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. Рис. 12.1 12.34* . Задан граф переходов автомата Мили (рис. 12.2).
122 Часть 1. Теоретические основы проектирования логических схем Рис. 12.2 Построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. Сравнить с результатом решения предыдущей задачи. Что можно сказать об исходных заданиях автомата (рис. 12.1 и рис. 12.2)? 12.35* . Задана ГСА с размеченными состояниями (рис. 12.3 ). Построить - таблицу переходов автомата Мура; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. Начало а, | Конец | а, Рис. 12.3
12. Триггеры. Синтез автоматов 123 12.36* . Задан граф переходов автомата Мура (рис. 12.4). Построить - таблицу переходов автомата Мура; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. Сравнить с результатом решения предыдущей задачи. Что можно сказать об исходных заданиях автомата (рис. 12.3, рис. 12.4)? Рис. 12.4 12.37. В табл. 12.11 дано функционирование конечного автомата, имеющего X = {х1,х2,Хз} - входной алфавит; ¥ = {У\,У1} - выходной алфавит; 5* = {5j} - внутренний алфавит. Можно ли реализовать поведение данного автомата комбинационной схемой? Если можно, то провести кодирование состояний и составить таблицу истинности системы функций, реализуемых комбинационной схемой. Таблица 12.11 Входные сигналы Внутренние состояния S| Х| S|/yt Х2 S|/y2 Х3 S|/yi 12.38. На рис. 12.5 задана ГСА микропрограммного автомата. Можно ли представить поведение автомата системой булевых функций? Если можно, то составить таблицу истинности этой системы функций.
124 Часть 1. Теоретические основы проектирования логических схем Рис. 12.5 12.39. Для микропрограммного автомата, заданного ГСА (рис. 12.6), полу- чить эквивалентный по поведению конечный автомат. Нарисовать граф пере- ходов конечного автомата Мили. Построить логическую схему, проведя раз- метку состояний ГСА для получения автомата Мили.
12. Триггеры. Синтез автоматов 125 Рис. 12.6 12.40* . Провести на ГСА (рис. 12.7) разметку состояний для получения ав- томата Мили. Построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. 12.41* . Провести на ГСА (рис. 12.7) разметку состояний для получения ав- томата Мура. Построить - таблицу переходов автомата Мура; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата.
126 Часть 1. Теоретические основы проектирования логических схем Рис. 12.7 12.42*. Провести на ГСА (рис. 12.8) разметку состояний для получения ав- томата Мили. Построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата.
12. Триггеры. Синтез автоматов 127 12.43 *. Провести на ГСА (рис. 12.8) разметку состояний для получения ав- томата Мура. Построить - таблицу переходов автомата Мура; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. Рис. 12.8 12.44 *. Для размеченной ГСА (рис. 12.9) построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата.
Рис. 12.9
12. Триггеры. Синтез автоматов 129 12.45 *. Для размеченной ГСА (рис. 12.10) построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата. 12.46 . Провести на ГСА (рис. 12.11) разметку состояний для получения ав- томата Мили. Построить - таблицу переходов автомата Мили; - структурную схему автомата с элементами памяти - RS-триггерами; - ПЛМ, реализующую комбинационную часть автомата.
130 Часть 1. Теоретические основы проектирования логических схем Рис. 12.11
13. Типовые схемы с памятью 13.1. Что такое регистр? 13.2. На какие виды классифицируются регистры по способу своего дейст- вия? 13.3. Нарисовать схему параллельного регистра на основе асинхронного RS- триггера. В каких режимах может работать данный регистр? 13.4. Изобразить схему последовательного регистра на основе синхронного D-триггера. В каких режимах может работать данный регистр? 13.5. Какую роль играют регистры при выполнении операций умножения и деления чисел? 13.6. Сравнить быстродействие регистров параллельного и последовательно- го действия. 13.7. Сколько синхроимпульсов необходимо подать при записи байта ин- формации в регистры параллельного и последовательного действия? 13.8. Где в регистрах параллельного и последовательного действия располо- жены триггеры старшего и младшего разрядов? 13.9. В какой последовательности необходимо подавать записываемую ин- формацию в регистр последовательного действия? 13.10. Что такое счетчик? 13.11 . Как классифицируются счетчики по направлению счета? 13.12. Как классифицируются счетчики по способу организации переноса? 13.13. Изобразить схему асинхронного суммирующего счетчика в виде по- следовательного соединения Т-триггеров. Нарисовать временную диаграмму функционирования счетчика. 13.14. Изобразить схему четырехразрядного двоичного суммирующего счетчика в виде схемы автомата: комбинационной схемы и регистра D- триггеров. Записать таблицу истинности функций комбинационной схемы. 13.15. Изобразить схему четырехразрядного двоичного вычитающего счет- чика в виде схемы автомата: комбинационной схемы и регистра D-триггеров. Записать таблицу истинности функций комбинационной схемы. 13.16. Что такое реверсивный счетчик? 13.17. С каких выводов счетчика снимается информация о количестве под- считанных импульсов? 13.18. В чем заключается различие в построении счетчиков прямого и об- ратного счета? 13.19. В каком режиме работают Т-триггеры счетчика? Как он обеспечива- ется? 13.20. Изобразить схему синхронного счетчика со сквозным переносом. 13.21. Изобразить схему синхронного счетчика с параллельным переносом.
132 Часть 1. Теоретические основы проектирования логических схем 13.22. Изобразить схему синхронного реверсивного счетчика с параллель- ным переносом. 13.23. Пояснить отличие в организации асинхронного и синхронного счет- чика. 13.24. Чем определяется быстродействие синхронного и асинхронного счет- чика? 13.25. Изобразить схему кольцевого счетчика на основе регистра сдвига.
14. Обнаружение неисправностей логических схем 14.1. Что называется неисправностью логической схемы? 14.2. Что может быть причиной неисправности? 14.3. Для чего предназначены проверяющие тесты? 14.4. Для чего предназначены диагностические тесты? 14.5. Какие неисправности комбинационной схемы называются логически- ми? 14.6. Назвать основные виды одиночных неисправностей в логических схе- мах. 14.7. Как определяются константные неисправности? Что может стать при- чиной константной неисправности? Что такое мостиковые неисправности? Что может стать причиной мостиковой неисправности? 14.8. Что такое одиночные и кратные константные неисправности? 14.9. Что такое обнаружимые и необнаружимые константные неисправно- сти? 14.10. Какие константные неисправности называются неразличимыми? 14.11. Сформулировать задачу обнаружения одиночной константной неис- правности комбинационной логической схемы. 14.12. Какой набор значений входных переменных комбинационной схемы называется тестом неисправности? 14.13. Что называется тестом для множества неисправностей? 14.14. Для схемы (рис. 14.1) построить функции константных неисправно- стей и найти классы неразличимых константных неисправностей. Рис. 14.1
134 Часть 1. Теоретические основы проектирования логических схем 14.15. Для схемы (рис. 14.2) построить функции константных неисправно- стей и найти классы неразличимых константных неисправностей. 14.16. Для схемы (рис. 14.3) найти проверяющий тест для константной не- исправности 1) ^=1; 2) w2=0; 3) w3=l; 4) w4=0; 5) х2=0. 14.17. Дана схема (рис. 14.4), функции элементов которой описаны в табл. 16.1. Найти проверяющий тест для константной неисправности 1) w=l; 2) w=0; 3) v=l; 4) v=0; 5) Я=1.
14. Обнаружение неисправностей логических схем 135 ВС А У Рис. 14.4 14.18. Дана схема (рис. 14.5), функции элементов которой описаны в табл. 16.1. Найти проверяющий тест для константной неисправности 1) ^=1; 2) ^=0; 3) w2=l; 4) w2=0; 5) х3=0. f Рис. 14.5 14.19. Для схемы (рис. 14.6): 1) найти пять классов одиночных константных неисправностей; 2) построить проверяющие тесты для каждой из этих неисправностей; 3) найти минимальное по мощности множество тестовых наборов, про- веряющих все одиночные константные неисправности.
136 Часть 1. Теоретические основы проектирования логических схем Рис. 14.6 14.20. Для схемы (рис. 14.1) найти тесты для обнаружения мостиковой не- исправности типа И-перемычки между сигнальными линиями с, Ь. 14.21. Для схемы (рис. 14.2) найти тесты для обнаружения мостиковой не- исправности типа И-перемычки между сигнальными линиями с, Ь. 14.22. Для схемы (рис. 14.6) найти тесты для обнаружения мостиковой не- исправности типа ИЛИ-перемычки между сигнальными линиями х1 и выхо- дом инвертора. 14.23* . Как строятся тесты для обнаружения неисправностей в логических схемах, содержащих триггеры? 14.24. Какие константные неисправности могут быть в ПЛМ? 14.25. Какие константные неисправности могут быть в ПЗУ? Может ли кон- стантная неисправность в дешифраторе ПЗУ привести к одновременному выбору двух элементов памяти? Может ли такая неисправность привести к отсутствию выборки? 14.26. Какие неисправности в матрице запоминающих элементов ПЗУ назы- ваются константными, а какие - кодозависимыми?
ЧАСТЬ 2. ПРОЕКТИРОВАНИЕ ЛОГИЧЕСКИХ СХЕМ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА VHDL 15. Язык VHDL 15.1. Декларация entity определяет только имя проектируемой цифровой системы и спецификацию ее портов ввода/вывода? 15.2. Структурное описание может быть иерархическим? 15.3. Описание всей проектируемой цифровой системы может быть не ие- рархическим? 15.4. Допускается не более восьми уровней иерархии описания VHDL-про- екта? 15.5. Есть ли в языке VHDL ограничение на число уровней иерархии VHDL- I проектов? 15.6. Одна декларация entity может соответствовать нескольким архитек- турным (architecture) описаниям? 15.7. Каждая цифровая система имеет интерфейс (entity)? 15.8. Прежде чем использовать пакет STANDARD, декларация entity должна быть обязательно предопределена операторами library, use? 15.9. Какие типы декларированы в пакете STANDARD? 15.10. Какие перечислимые типы декларированы в пакете STANDARD? 15.11. Каждая цифровая система, описываемая в VHDL, описывается парой entity и architecture? 15.12. Пакет (package) - это компактный способ хранения логически свя- занных описаний entity и architecture? 15.13. Одна декларация architecture может соответствовать нескольким Г декларациям entity? 15.14. Конфигурация (configuration) является модулем (VHDL-файлом) I проекта? 15.15. Конфигурация является объектом языка VHDL? 15.16. Пакет является модулем проекта? 15.17. Пакет является объектом языка VHDL? 15.18. Сигнал является объектом языка VHDL? 15.19. Сигнал является модулем проекта? 15.20. Константа является объектом языка VHDL? 15.21. Константа является модулем проекта? 15.22. Переменная является объектом языка VHDL? 15.23. Переменная является модулем проекта? 15.24. Имеется только три объекта языка VHDL: сигнал, переменная, кон- станта?
138 Часть 2. Проектирование логических схем с использованием языка VHDL 15.25. Имеется только пять модулей проекта (VHDL-файлов) цифровой сис- темы: entity, architecture, configuration, package, package body (тело пакета)? 15.26. Существует ли возможность узнать предыдущее значение перемен- ной? 15.27. Порядок нумерации битов в векторе типа bit_vector всегда одинаков? 15.28. Внутренние сигналы системы определяются в декларации entity? 15.29. Существует ли возможность узнать предыдущее значение сигнала? 15.30. Выходные сигналы системы могут определяться в разделе деклараций архитектурного тела? 15.31. Внутренние сигналы системы определяются в разделе деклараций ар- хитектурного тела? 15.32. Декларация входного сигнала состоит из имени сигнала, типа, на- правления (in)? 15.33. Декларация выходного сигнала состоит из имени сигнала, типа, на- правления (out)? 15.34. Декларация внутреннего сигнала состоит из имени сигнала и типа? 15.35. Все сигналы, описанные в entity, являются видимыми во всех ар- хитектурах, связанных с entity? 15.36. Шина и вектор два обозначения одного и того же понятия (концеп- ции) в VHDL? 15.37. Левая граница порядка битов в векторе всегда должна быть меньше его правой границы? 15.38. Каждый порт должен иметь спецификацию своего направления (in, out, inout)? 15.39. Символом & обозначается логическая операция И? 15.40. Все сигналы системы описываются в ее декларации entity? 15.41. Имя декларации entity может быть записано после оператора end этой декларации entity? 15.42. Порт должен быть либо только входным, либо только выходным? 15.43. Значение настраиваемого параметра (generic) может динамически меняться в процессе моделирования? 15.44. Комментарий начинается и заканчивается двойным дефисом (--)? 15.45. Имеется ли пакете STANDARD декларация типа byte? 15.46. Настраиваемый параметр (generic) позволяет задать ввод постоян- ной величины (константы) в проектируемую систему извне ее? 15.47 Настраиваемый параметр может быть использован для спецификации портов, например, для задания ширины шин? 15.48. Имея в виду модельное время, можно ли сказать, что оператор а<=Ь; выполняется мгновенно?
15. Язык VHDL 139 15.49. Имея в виду физическое время, можно ли сказать, что система моде- лирования выполняет оператор а<=Ь; мгновенно? 15.50. Каждый настраиваемый параметр должен быть определен вместе со своим направлением? 15.51. Каждая декларация entity должна заканчиваться ключевым словом end? 15.52. Порт является сигналом? 15.53. Может ли переменная типа integer быть входным портом? 15.54. Может ли сигнал типа string быть выходным портом? 15.55. Использование комментариев при описании порта является обяза- тельным требованием стандартов языка VHDL? 15.56. Начальное значение порта может быть задано? 15.57. Начальное значение переменной может быть задано? 15.58. В соответствии с пожеланием проектировщика оператор назначения сигнала а<=Ь; может быть записан вправо, т. е записан в виде Ь=>а; ? 15.59. В выражениях могут использоваться константы? 15.60. Процедура может быть декларирована в пакете? 15.61 Может ли сигнал А типа real передать свое значение сигналу В типа integer с помощью оператора В <= A after 5 ns; ? 15.62. Может ли значение true быть присвоено сигналу типа bit? 15.63. Можно ли назначить сигналу типа boolean значение 'О'? 15.64. Можно ли назначить сигналу типа integer значение 'О’? 15.65. Можно ли назначить сигналу типа real значение 'О’? 15.66. Можно ли назначить сигналу типа integer значение 0 ? 15.67. Можно ли в языке VHDL оперировать числами 220, 225, 220, 235, 240? 15.68 Какое максимальное (по абсолютному значению) целое число соглас- но пакету STANDARD можно использовать в VHDL-программах? 15.69. Какое максимальное (по абсолютному значению) действительное число согласно пакету STANDARD можно использовать в VHDL-программах? 15.70. В VHDL можно сложить действительное число и целое? 15.71. В VHDL можно сложить натуральное число и целое? 15.72. Как можно представить в VHDL дробное число? 15.73. Можно ли использовать оператор процесс (process) в теле 1) функции; 2) процедуры; 3) процесса; 4) оператора генерации (generate)? 15.74. Можно ли использовать в теле функции обращение к другой функ- ции?
140 Часть 2. Проектирование логических схем с использованием языка VHDL 15.75. Допускается ли в языке VHDL рекурсивный вызов функций, т.е. вы- зов функции самой себя? 15.76. С какого числа начинается отсчет натуральных чисел в языке VHDL? 15.77. Внутренние состояния конечного автомата могут определяться как перечислимый тип? 15.78. Все элементы массива должны иметь одинаковый тип? 15.79. В VHDL можно умножать действительное число на целое? 15.80. В VHDL можно умножать действительное число на время (тип time)? 15.81. Через 0.0 обозначается значение нуля для типа real? 15.82. Можно ли декларировать двумерный массив, элементами которого являются натуральные числа, не большие 1000? 15.83. Если длительность сигнала больше чем его задержка, то инерционная модель задержки даст тот же результат, что и транспортная модель задерж- ки? 15.84. Атрибут elk ’ event сигнала elk имеет тип boolean? 15.85. Атрибут S ’ left массива S целых чисел задает левое значение номе- ра числа (индекса) в массиве? 15.86. Может ли пользователь определить собственный атрибут? 15.87. В VHDL есть предопределенные атрибуты? 15.88. Сигналы имеют атрибуты? 15.89. Константы имеют атрибуты? 15.90. Переменные имеют атрибуты? 15.91. Подтип является подмножеством значений типа? 15.92. Константе может быть назначено новое значение, если новое значе- ние равно предыдущему? 15.93. В языке VHDL значение “истина” типа boolean равно значению ’ 1' типа bit? 15.94. При определении декларации константы достаточно описать только ее значение, так как тип константы определяется значением? 15.95. Логические операторы могут выполняться только над операндами ти- па bit? 15.96. Логические операторы могут выполняться только над операндами ти- па boolean? 15.97. Логические операторы могут выполняться только над операндами ти- па stdlogic? 15.98. Оператор ожидания wait в начале процесса играет ту же самую роль, как если бы он был расположен в процессе перед словом end? 15.99. Условный оператор if должен быть завершен одним ключевым сло- вом endif?
15. Язык VHDL 141 15.100. Булево условие в цикле типа while проверяется в начале каждой итерации? 15.101. Выполнение процесса, не имеющего списка сигналов запуска, закан- чивается, когда достигается ключевое слово end? 15.102. Процесс со списком чувствительности может не содержать ни одно- го оператора ожидания? 15.103. Сигналы и переменные одного и того же типа могут быть присвоены один другому? 15.104. В entity обязательно должны быть описаны порты (port)? 15.105. Параметр (generic) должен быть константой? 15.106. Верно ли то, что по умолчанию рабочая библиотека проекта имеет имя WORK? 15.107. Можно ли перед декларацией entity ссылаться на несколько паке- тов? 15.108. Можно ли в тексте конфигурации использовать другую конфигура- цию? 15.109. Можно ли в перед описанием пакета ссылаться на другой пакет? 15.110. Константы и переменные одного и того же типа могут быть при- своены один другому? 15.111. Выражение в заголовке оператора case может быть дискретного типа? 15.112. Символом & обозначается операция конкатенации? 15.113. Процесс содержит последовательные операторы? 15.114. Пакет есть спецификация последовательных операторов? 15.115. Модельное время в VHDL описывается типом integer? 15.116. Модельное время в VHDL описывается типом real? 15.117. Блок (block) содержит последовательные операторы? 15.118. Можно ли использовать в теле оператора generate параллельный оператор 1) конкретизации компонента (port шар); 2) оператор генерации (generate); 3) оператор назначения сигнала (<=)? 15.119. Оператор блока (block) может иметь охранное выражение? 15.120. Пакет может иметь охранное выражение? 15.121. Имя процесса специфицируется после слова process? 15.122. Счетчик в цикле типа for есть переменная, которую нужно декла- рировать в начале процесса, в котором цикл употребляется? 15.123. Сигналам назначаются значения тогда, когда все процессы в данном такте моделирования выполнены?
142 Часть 2. Проектирование логических схем с использованием языка VHDL 15.124. При декларации возрастающего диапазона употребляется ключевое слово down to? 15.125. Ключевое слово to употребляется при декларации убывающего диапазона? 15.126. Для сигналов типа real никогда не нужна разрешающая функция? 15.127. Идентификатор @mail является корректным? 15.128. Идентификатор 8mail является корректным? 15.129. Идентификаторы АЬс7, аВС7 являются различными? 15.130. Строковые литералы ’Ь’, ’В’ являются различными? 15.131. Функция может быть декларирована в пакете? 15.132. Переменные могут употребляться для хранения промежуточных данных внутри процессов? 15.133. Рекомендуется ли использовать сигналы для хранения промежуточ- ных данных внутри процессов? 15.134. Условный оператор if должен быть завершен ключевыми словами end if? 15.135. Только сигналы могут употребляться как переносчики информации между процессами? 15.136. Выборочное назначения сигнала представляет то же действие, что и условное назначение сигнала, только они записаны различным способом? 15.137. Прежде чем использовать пакет STD_LOGIC_1164, декларация entity должна быть обязательно предопределена операторами library, use? 15.138. Типы std_logic и std_logic_vector являются промышлен- ным стандартом для логических сигналов и могут применяться для сигналов с многими источниками, так как эти типы являются “разрешимыми”? 15.139. Архитектура есть множество параллельных операторов, взаимодей- ствующих между собой и находящихся под влиянием друг друга? 15.140. Операторы процесса (process) не могут употребляться вместе с операторами (<=) назначения сигнала в одной и той же архитектуре? 15.141. Оператор null назначает нулевое значение сигнала типа bit? 15.142. Оператор next позволяет перейти к выполнению следующего (по порядку записи) оператора архитектурного тела? 15.143. Оператор next позволяет перейти к выполнению следующего (по порядку записи) оператора блока? 15.144. Оператор next позволяет перейти к выполнению следующей итера- ции цикла? 15.145. Оператор exit позволяет завершить выполнение операторов архи- тектурного тела? 15.146. Можно ли с помощью оператора assert выдать сообщение без проверки условия?
15. Язык VHDL 143 15.147. Можно ли с помощью оператора wait выразить бесконечное ожи- дание? 15.148. Оператор конкретизации компонента (port map) может употреб- ляться как в архитектурном теле (как параллельный оператор), так и в про- цессе (как последовательный оператор)? 15.149. Локальная переменная процесса может изменить свое значение не- сколько раз во время выполнения процесса? 15.150. Тип bit как стандартный логический тип не нуждается в разре- шающей функции и может употребляться для сигналов с многими источни- ками? 15.151. Все процессы в архитектурном теле являются активными все время, когда архитектура активна? 15.152. Конструкция if ... then может употребляться внутри процесса? 15.153. Конструкция if ... then может употребляться внутри функции? 15.154. Цикловой параметр (счетчик числа итераций цикла) требуется дек- ларировать снаружи цикла, записываемого с ключевым словом for? 15.155. Процедура имеет имя? 15.156. Функция имеет имя? 15.157. Функция может содержать последовательный оператор ожидания (wait)? 15.158. Оператор wait приостанавливает выполнение процесса? 15.159. Оператор case может употребляться внутри процедуры? 15.160. Метка компонента в операторе port map (конкретизации компо- нента) является необязательной? 15.161. Оператор port map может быть употреблен в функции? 15.162. Оператор port map может быть употреблен в процедуре? 15.163. Оператор port map может быть употреблен в теле оператора gen- erate? 15.164. Оператор хог может выполняться над операндами типа bit_yector? 15.165. Оператор and не может выполняться над операндами типа boo- lean? 15.166. Оператор or может выполняться над операндами типа std_logic? 15.167. Оператор or может выполняться над операндами типа std_logic_vector? 15.168. Символом : (двоеточие) в VHDL обозначается операция деления? 15.169. Символом = в VHDL обозначается логическая операция эквивалент- ность? 15.170. Символом ** в VHDL обозначается операция извлечения квадратно- го корня?
144 Часть 2. Проектирование логических схем с использованием языка VHDL 15.171. Может ли в одном операторе port map быть назначение на одни порты одиночных бит, на другие порты - векторов? 15.172. Структурное описание состоит из компонент и сигналов? 15.173. Всегда ли все компоненты иерархического описания должны быть специфицированы, употребляя только поведенческое описание? 15.174. Оператор сдвига sll сдвига влево может быть оформлен как функ- ция пакета? 15.175. Тип bit является перечислимым типом? 15.176. Тип boolean является перечислимым типом? 15.177. Дельта-задержка равна одной пикосекунде модельного времени? 15.178. Дельта-задержка равна одной фемтосекунде модельного времени? 15.179. Величина дельта-задержки определяется пользователем? 15.180. Дельта-задержка равна нулю модельного времени? 15.181. Имея в виду дельта-задержки, можно ли сказать, что задержка вы- полнения оператора а<=Ь; составляет две дельта-задержки? 15.182. В разделе деклараций архитектурного тела может находиться только одна функция? 15.183. В разделе деклараций архитектурного тела может находиться только одна процедура? 15.184. В пакете может находиться только две функции? 15.185. В теле пакета может находиться более 100 процедур? 15.186. В позиционном соответствии портов сигналы располагаются в том же порядке как порты в entity? 15.187. Компоненты, декларируемые внутри архитектуры, специфицируют- ся полностью, т. е. с их интерфейсом и архитектурой? 15.188. В операторе port map символы => или <= (соответствия) употреб- ляются в зависимости от направления порта (для входа символы =>, для вы- хода символы <=)? 15.190. Операторы block могут быть вложенными? 15.191. При вызове процедуры в архитектурном теле метка обязательна? 15.192. Метка процесса в архитектурном теле обязательна? 15.193. Проверяемое выражение clk='l’ в операторе if (clk='l') имеет тип boolean? 15.194. Если сигнал elk имеет тип бит, то выражение (elk'event and clk=' 1') также имеет тип bit? 15.195. Выражение (elk'event and clk='l') соответствует заднему фронту сигнала elk? 15.196. Есть ли в операторе generate ограничение на число итераций ге- нерации?
15. Язык VHDL 145 15.197. Какие из перечисленных ниже идентификаторов являются ключе- выми словами, какие - нет? Какие идентификаторы записаны правильно, ка- кие - неправильно? 1) last_item; 2) control; 3) buffer; 4; value-1; 5) value_l; 6) element#3; 7) —Control; 8) downto; 9) entry_; 10) is. 15.198. Какое десятичное число представляют следующие литералы 8#14#; 2#1000_0Ю0#; 16#2С#; 2.5Е5; 2#0.101 #. 15.199. Какая разница между литералами 16#23DF# hX#23DF# ? 15.200. Записать восьмеричный и шестнадцатеричный литерал «строка бит» как бинарный литерал «строка бит» 1) О#747#; 2) о#1_345#; 3) X#F2#; 4) х#0000_0001#. 15.201. Какие из перечисленных ниже VHDL-операторов записаны правиль- но 1)С <= A nand В; 2)С <= A and not В; 3) D <= (A nand В) xor С; 4) D <= (A and not В) xor С; 5) D <= A and В and С; 6) D <= A nand В nand С; 7) D <= A and В or С; 15.202. Пусть имеются следующие декларации: Signal W,X : bit_vector (3 downto Ob- Signal Y : bit; Signal Z : bit_vector (4 downto 0); Какие из перечисленных ниже VHDL-операторов являются правильными 1)W <= X or Y; 2) Z <= W and X;
146 Часть 2. Проектирование логических схем с использованием языка VHDL 15.203. Объяснить, при каких условиях являются корректными следующие VHDL-конструкции 1)А <= в > С; 2)F <= D=E nand (В=С); 3)Х<= Y <=Z; 15.204. Пусть имеются следующие декларации: Signal a, b, с : std_ulogic; Type state_type is (idle, reg, ack); Signal state : state_type; Указать какие из выражений задают правильно условие в операторе if: 1)а and not b and с ; 2)a and not b and state = idle ; 3)a='0' and b and state = idle ; 4)a='l' and b='0' and state = idle ; 15.205. Указать, какие из выражений являются синтаксически корректными и вычислить значения корректных выражений 1)2 * 3 + 6 / 4 ; 2)3 + -4; 3)В"101110" sla 3 ; 4)(В"100010" sra 2) & Х"2С"; 15.206. Сколько случаев, начинающихся с ключевого слова when, надо рас- смотреть в записи оператора case? Variable А : integer range 0 to 5; case A is when ... when ... end case; 15.207. Сколько случаев, начинающихся с ключевого слова when, надо рас- смотреть в записи оператора назначения сигнала? Signal х, z : bit_vector (0 to 5); у<= "000000" when z= "111111" else "111111" when z= "000000";
15. Язык VHDL 147 15.208. Сколько случаев, начинающихся с ключевого слова when, надо рас- смотреть в записи оператора case? Variable R : real range 0.0 to 5.0; case R is when ... when ... end case; 15.209. Есть ли в языке VHDL ограничение на число слов when, используе- мых в операторе case? 15.210. В операторе case Р is when ... when ... end case; какие типы допускаются для Р? 15.211. Оператор if допускает в своем употреблении несколько слов elsif. Можно ли записать оператор i f, употребляя 1) 128 слов elsif; 2) 256 слов elsif; 3) 1024 слов elsif. 15.212. Есть ли в языке VHDL ограничение на число слов elsif, исполь- зуемых в операторе i f ? 15.213. Оператор select выборочного назначения сигнала допускает в своем употреблении несколько слов when, например, with selection select F <= xl when ”00”, x2 when "01", x3 when "10”, x4 when others; Есть ли в языке VHDL ограничение на число слов when, используемых в операторе select? Есть ли в языке VHDL ограничение на число слов oth- ers, используемых в операторе select?
148 Часть 2. Проектирование логических схем с использованием языка VHDL 15.214. Как должен быть декларирован тип INT_A, чтобы запись приведен- ного ниже оператора была правильной? with INT_A select Z <= A when О, В when 1 to 3r C when 4 | 5 I 6 | 8, D when 7 ; 15.215. Будут ли (и сколько) дельта-задержек при моделировании оператора Y<= not Y after 3 ns; ? 15.216. Что можно сказать о числе дельта-задержек, которые, возможно, возникают при моделировании оператора Y<- not Z; ? 15.217. Что можно сказать о числе дельта-задержек, которые, возможно, возникают при моделировании оператора Y<= not ( (Y and X)or Z); ? 15.218. Что можно сказать о числе дельта-задержек, которые, возможно, возникают при моделировании оператора Y<= not ((Y and X)or Z) after 10 ns; ? 15.219. Что можно сказать о числе дельта-задержек, которые, возможно, возникают при моделировании оператора Y<« not Y; ? 15.220. Пусть имеются следующие декларации: Subtype SH is integer range 1 to 10; Subtype LO is integer range 1 to 20; Signal X: SH; Signal Y: LO; Какой оператор назначения сигнала является правильным? 1) х <= Y; 2) Y <= X;
15. Язык VHDL 149 15.221. Какой оператор является правильным? 1) А <= В /(-с) ; 2) А <= В /-с; 15.222. Пусть сделаны следующие декларации сигналов: Signal А : bit_vector (7 downto 0):= "10001010"; Signal В : bit_vector (0 to 7):= "00111011"; Какие значения имеют биты 1) А(7) , А(0), А(4); 2)В(7), В(0), В(4); 15.223. Пусть сделаны следующие декларации сигналов Signal z_bus : bit_vector (3 downto 0); Signal c_bus : bit_vector (1 to 4); Какие из перечисленных ниже операторов являются правильными? 1) z_bus (3 downto 2) <= "00”; 2) c_bus (2 to 4) <= z_bus (3 downto 1); 3) z_bus (0 to 1) <= ”11"; 15.224. Пусть сделаны следующие декларации сигналов: Type Row is array (7 downto 0) of bit; Type Memory_A is array (0 to 16, 7 downto 0) of bit; Type Memory_B is array (0 to 10) of Row; Subtype C_bus is bit_vector (0 to 3); Subtype D_bus, Z is bit_vector (7 downto Ob- Signal A: Memory_A; Signal B: Memory_B; Signal C: C_bus; Signal D: D_bus; Signal X: bit; Signal Y: bit_vector (0 to 5); Какие из перечисленных ниже операторов 1) - 22) являются правильными? 1) х <= с(2); 2) Y (1) <= А(0,0) ; 3) С <= Y(0 to 3) ; 4) D(3 downto 1) <= Z (6 downto 4); 5) A(4,7) <= B(4) (7) ; 6) Y (1) <= Y(5 to 5) ; 7) Y(l) <= Y(5 downto 5) ; 8) D <= В (2) ;
150 Часть 2. Проектирование логических схем с использованием языка VHDL 9) Y (1 to 3) <= Z (7 downto 5); 10) Y(5 downto 2) <= Z(6 downto 3); 11) X <= B(l) ; 12) X <= C (2 to 2) ; 13) Y <= C & "10"; 14) Y <= C(0 to 2) & D(6 downto 4); 15) Y(1 to 3) <= C(0 to 2) & X; 16) Y <= C & "1110"; 17) Y <= X & "01111"; 18) Y <= 'O' & X & (C(2 to 3) and Y(0 to 1) & "000"); 19) Y <=(0|4 to 5 =>'0',3 =>C(2) and Y(l),2 => C(3),l => X); 20) Y <= (X,'0','l','l','l','l'); 21) Y<= ('0','X',C(2) andY(0), C(3) and Y(l), '0','0'); 22) Y <= (0 »> X, 1 => 'O', others => '1'); 15.225. Пусть сделаны следующие декларации сигналов Signal X : integer range -404 to 1005; Signal Y : real range -404.0 to 1005.0; Signal Z : real; Какие из записанных ниже операторов являются правильными? 1)z <= X+Y; 2)Z <= X-Y; 3) Z<= X*Y; 4)Z<= X/Y; 15.226. Пусть сделаны следующие декларации сигналов Signal X : std_logic_vector (0 to 5); Signal Y1 : std_logic_vector (0 to 3); Signal Y2 : bit_vector (0 to 3); Signal Y3 : bit_vector (3 downto 0); Signal Y4 : std_logic_vector (3 downto 0); Какие из записанных ниже операторов являются правильными? 1)Yl <= X(0 to 3); 2) Y2 <= Х(0 to 3) ; 3) Y3 <= X(0 to 3); 4) Y4 <= X(0 to 3); 15.227. Как определяются операции rem, mod? В каких случаях эти опера- ции дают одинаковые результаты? Привести примеры. В каких случаях эти операции дают различные результаты? Привести примеры.
15. Язык VHDL 151 15.228. Указать, в каких случаях X и Y получат одинаковые значения, и в каких - разные 1)Х <= -А/(-В); Y <= (-А) /(-В); 2)Х О -A rem(-B); Y <= - (A rem (-В) ) ; 3) X <= (—A) mod (-В); Y <= -A mod (-В); 4) X <= -A rem -В; Y <= (-А) rem (-В)); 15.229. Проанализировать VHDL-код и ответить на вопросы. Signal X,Y,W,Z : real; Signal A,B,C,D,E,M : integer; X<= 100.0; Y<= 20.0; D <= 10; E <= 4; A <= X/Y; Z <= X/Y; W <= X/Y; В <= D/E; C <= D rem E; M <= X rem Y; 1) Верно ли, что А получит значение 5 ? 2) Верно ли, что Z получит значение 5 ? 3) Верно ли, что W получит значение 5.0 ? 4) Верно ли, что В получит значение 2.5 ? 5) Верно ли, что С получит значение 0.5 ? 6) Верно ли, что С получит значение 5 ? 7) Верно ли, что И получит значение 0 ? 8) Верно ли, что V получит значение 0.0 ? 15.230. Какое значение получит вектор D= (10010111) в результате при- менения операций сдвига 1) D <= D sll 4; 2) D <= D srl -1; 3) D <= D sla 2; 4) D <= D sra 4; 5) D <= D rol 3; 6) D <= D ror 3; 15.231 . Какое целое число представляет литерал 1) 2#1000_0000#; 2) 16#8О#; 3) 08#200#.
152 Часть 2. Проектирование логических схем с использованием языка VHDL 15.232. Представляют ли литералы 1) - 5) одно и то же число 1) 2#1111_1юо#; 2) 16#fc#; 3) 016#ofc#; 4) ю#251#; 5) 7#510#. 15.233. Пусть тип D декларирован следующим образом Type D is range 30 downto 2; Какие значения получат атрибуты 1) D'left; 2) D' right; 3) D'low; 4) D'hight; 5) D' ascending. 15.234. Пусть тип А декларирован следующим образом Type A is array (0 to 15, 0 to 3) of bit; Какие значения получат атрибуты 1) A' range (1) ; 2)A'length(2); 3) A'hight (1); 4) A'low(l) ; 5) A'left(2); 6) A'right (1) . 7) A'reverse_range(2); 8) A' range (1) ; 9) A'ascending(1). 15.235. Пусть тип R декларирован следующим образом Type R is array (1 to 4, 31 downto 0) of boolean; Какие значения получат атрибуты 1) R'left(l) ; 2) R'low(l) ; 3) R'right(2); 4) R'hight(2); 5) R'length(1);
15. Язык VHDL 153 6) R'length(2); 7) R'ascending(1); 8) R'ascending(2) ; 9) R'range (1); 10) R'range (2); 11) R'reverse_range (1); 12) R'reverse_range (2) . 15.236. Пусть перечислимый тип new декларирован следующим образом type new is (al, bl, a2, Ь2, аЗ, ЬЗ, w); Указать, какие из атрибутов являются правомерными (записаны правильно) для типа new, и какие значения они получат (в случае их правомерности) 1)new’left; 2)new’right; 3)new’low; 4)new’high; 5)new'pos(b3); 6)new'val(2) ; 7)new'succ(w) ; 8)new'succ(b3) ; 9)new'pred(b2) ; 10)new'leftof(al) ; 11)new'leftof(bl) ; 12)new'rightof(w); 13)new'rightof(b3). 15.237. Пусть перечислимый тип opcode декларирован следующим образом type opcode is (nop, load, store, add, substract,branch); subtype sm_op is opcode range load to substract; Какое значение получат атрибуты sm_op'base' left; sm_op'base'succ(substract). 15.238. Выяснить, в каком из вариантов 1 или 2 назначение сигнала final является правильным? Вариант 1. type big_integer is range 0 to 2000; subtype small_integer is big_integer range 0 to 15;
154 Часть 2. Проектирование логических схем с использованием языка VHDL signal intermediate : small_integer; signal final : big_integer; final <= intermediate *5; Вариант 2. type big_integer is range 0 to 2000; type small_integer is big_integer range 0 to 15; signal intermediate : small_integer; signal final : big_integer; final <= intermediate *5; 15.239. Пусть декларирован двухразмерный массив arl type arl is array (natural range 1 to 3, natural range 1 to 3) of integer range 0 to 3; constant fin : arl; Привести пример задания константы fin типа arl. 15.240. Пусть декларирован двухразмерный массив points type points is array (1 to 3, 1 to 4) of real; Привести пример задания константы fin типа points. 15.241. Пусть сделаны следующие декларации subtype WORD8 is bit_vector (7 downto 0); type TAB05 is array (4 downto 0) of WORD8; type TAB03 is array (2 downto 0) of TAB05; signal B_l, B_2, B_3 : bit; signal TAB_A, TAB_B : TAB05; signal TAB_C, TAB_D : TAB03; constant CST—A : TAB03 := ( ("00000000'S "00000001", "00000010", "00000011", ("00100000", "00100001", "00100010", "00100011", ("01000000", "01000001", "01000010", "01000011", "00000100"), "00100100") , "01000100") ) ; W_1 <= CST-A (0) (2); W_2 <= CST-A (3) (1); W_3 <= CST_A (2) (2); B_1 <= CST_A (2) (2) B-2 <= CST_A (2) (2) B_3 <= CST_A (0) (2) TAB—A <= CST_A (2); TAB—В <= CST_A (0); (1) ; (2) ; (6) ;
15. Язык VHDL 155 ТАВ_C(l) <= CST_A (0); TAB—D(2) <= CST_A (1); 1) Указать, какие значения получат сигналы W_1, W_2 r W_3, Bl, B_2,B_3, TAB_A, TAB—B, TAB_C(1), TAB_D(2) ? 2) Как обеспечить доступ к словам и битам, выделенным в константе CST_A жирным шрифтом? 15.242. Правильно ли, что оператор YT <= reject 1 ns transport xl and x2 after 10 ns; эквивалентен следующим двум операторам ТМР <= xl and х2 after 1 ns; YT <= transport TMP after 9 ns; 15.243. Провести моделирование «вручную» (т.е. без использования систе- мы моделирования) и нарисовать временную диаграмму на временном ин- тервале [0 ns, 100 ns]. library ieee; use ieee.std_logiC—1164.all; entity TB_CLK_RST is end TB_CLK_RST; architecture test of TB_CLK_RST is tiignal elk: std_logic :» 'O'; aignal rst: std_logic; begin rst <= *0', '1' after 10 ns, 'O' after 30 ns; elk <= not elk after 8 ns; end test; 15.244. Написать цикл, позволяющий подсчитать число единиц в битовом векторе, представленном переменной у. 15.245. Написать процесс, который позволяет осуществлять генерацию псевдослучайной последовательности чисел, не больших 65536, используя операцию mod. 15.246. Назвать три наиболее существенные отличия языка VHDL от языка программирования С.
16. VHDL-модели логических элементов Обозначения в таблицах функционирования триггеров. Через обозначено любое из (0,1) значение сигнала; в квадратных скобках показывается изменение сигнала (обычно синхросигнала), например, через [01] обозначается передний фронт сигнала (сигнал меняется из 0 в 1); через [10] обозначается задний фронт сигнала (сигнал меняется из 1 в 0); символ N обозначает неизменяемое (предыдущее) значение сигнала; символ Л является знаком инверсии (отрицания). 16.1. Составить описание поведения логических элементов (табл. 29.2) с ис- пользованием типа std_logic и логических операторов. Задержки элемен- тов описать с использованием передаваемых параметров (generic). 16.2. Составить описание поведения логических элементов (табл. 29.3) с ис- пользованием - типа std_logic; - логических и арифметических операторов; - нулевых задержек. 16.3. Составить VHDL-модель логического элемента, реализующего логиче- скую операцию х у (импликация). 16.4. Опишите на языке VHDL функционирование двух- и трехвходового элемента И без использования логического оператора and. 16.5. Опишите на языке VHDL функционирование двух- и трехвходового элемента ИЛИ без использования логического оператора or. 16.6. Опишите на языке VHDL функционирование двухвходового элемента Ф (сложение по модулю 2) 1) без использования логического оператора хог; 2) без использования логических операторов. 16.7. Опишите на языке VHDL функционирование двухвходового элемента «эквивалентность» 1) без использования логического оператора хпог; 2) без использования логических операторов. 16.8. Используя тип std_logic, составить VHDL-модели буферов с тремя состояниями (рис. 16.1)
16. VHDL-модели логических элементов 157 Рис. 16.1 16.9. Составить структурное (с использованием нулевых и ненулевых задер- жек логических элементов) и алгоритмическое (с использованием оператора process) описание двухступенчатого D-триггера со сбросом. Провести мо- делирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.2, функционирование триггера описывается табл. 16.3. Рис. 16.2. Двухступенчатый D-триггер со сбросом Таблица 16.3 Таблица функционирования двухступенчатого D-триггера со сбросом R D С Q 1 - н 0 0 - [01] (D) 0 - [1-] N 0 _[00] N
158 Часть 2. Проектирование логических схем с использованием языка VHDL 16.10. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера с установкой. Про- вести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.3, функционирование триггера описывается табл. 16.4. Рис. 16.3. Двухступенчатый D-триггер с установкой Таблица 16.4 Таблица функционирования двухступенчатого D-триггера с установкой S D С Q 1 [-1 1 0 - [01] (О) 0 - [1-1 N 0 - [00] N 16.11. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера с инверсным выходом. Провести моделирование, сравнить результаты, сделать выводы. Схема триг- гера дана на рис. 16.4, функционирование триггера описывается табл. 16.5. Рис. 16.4. Двухступенчатый D-триггер с инверсным выходом
16. VHDL-модели логических элементов 159 Таблица 16.5 Таблица функционирования двухступенчатого D-триггера с инверсным выходом D С QN - [01] A(D) - [1-] N - [00] N 16.12. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание D-триггера. Провести моделирование, сравнить ре- зультаты, сделать выводы. Схема триггера дана на рис. 16.5, функционирова- ние триггера описывается табл. 16.6. Таблица 16.6 Таблица функционирования D-тригтера D С Q - 1 (D) - 0 N 16.13. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание D-триггера со сбросом. Провести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.6, функционирование триггера описывается табл. 16.7.
160 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 16.7 Таблица функционирования D-триггера со сбросом R D С Q 1 - 0 0 0 - 1 (О) 0 - 0 N 16.14. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера с установкой. Про- вести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.7, функционирование триггера описывается табл. 16.8. Таблица 16.8 Таблица функционирования D-триггера с установкой S_ _1_ _0 0 _0_ 1 <D) N
16. VHDL-модели логических элементов 161 16.15. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера со сбросом. Провести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.8, функционирование триггера описывается табл. 16.9. Рис. 16.8. D-триггер со сбросом и установкой Таблица 16.9 Таблица функционирования D-триггера со сбросом и установкой держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание D-триггера с инверсным выходом. Провести моде- лирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.9, функционирование триггера описывается табл. 16.10. Рис. 16.9. D-триггер с инверсным выходом
162 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 16.10 Таблица функционирования D-триггера с инверсным выходом D С QN - 1 - 0 N 16.17. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера с инверсным синхро- сигналом. Провести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.10, функционирование триггера описывается табл. 16.11. Таблица 16.11 Таблица функционирования D-триггера с инверсным синхросигналом D С Q - 0 (О) - 1 N 16.18. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание D-григгера со сбросом и инверсным синхросигна- лом. Провести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.11, функционирование триггера описывается табл. 16.12.
16. VHDL-модели логических элементов 163 Рис. 16.11. D-триггер со сбросом и инверсным синхросигналом Таблица 16.12 16.19. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого Т-триггера. Провести моделиро- вание, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.12, функционирование триггера описывается табл. 16.13. Рис. 16.12. Двухступенчатый Т-триггер Таблица 16.13 Таблица функционирования двухступенчатого Т-триггера С Q [01] Л(<?) ['1 N [00] N
164 Часть 2. Проектирование логических схем с использованием языка VHDL 16.20. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого Т-триггера с установкой. Про- вести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.13, функционирование триггера описывается табл. 16.14. Рис. 16.13. Двухступенчатый Т-триггер с установкой Таблица 16.14 16.21. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание RS-триггера. Провести моделирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.14, функциони- рование триггера описывается табл. 16.15. Рис. 16.14. RS-триггер
16. VHDL-модели логических элементов 165 Таблица 16.15 Таблица функционирования RS-триггера R S Q 0 0 N - 1 1 1 0 0 16.22. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание RS-триггера с инверсным выходом. Провести мо- делирование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.15, функционирование триггера описывается табл. 16.16. Таблица 16.16 Таблица функционирования 16.23. Составить структурное (с использованием нулевых и ненулевых за- держек логических элементов) и алгоритмическое (с использованием опера- тора process) описание двухступенчатого D-триггера. Провести модели- рование, сравнить результаты, сделать выводы. Схема триггера дана на рис. 16.16, функционирование триггера описывается табл. 16.17.
] 66 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 16.17 Таблица функционирования двухступенчатого D-триггера D С Q - foil (D) - [1-1 N - [00] _ N
17. VHDL-модели булевых функций 17.1. Составить VHDL-модель системы СДНФ булевых функций, заданных в табл. 17.1. Использовать 1) логические операторы и оператор назначения сигнала; 2) оператор case; 3) оператор if. Таблица 17.1 *1 х2 х3 х4 /' /2/3 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 10 0 0 0 0 0 11 0 0 0 0 10 0 0 0 1 0 10 1 0 1 0 0 110 0 1 1 0 111 1 0 0 10 0 0 0 0 0 10 0 1 0 1 1 10 10 1 0 0 10 11 1 0 1 110 0 0 1 1 110 1 1 0 0 1110 1 0 1 1111 1 0 0 17.2. Минимизировать функции (табл. 17.1) в классе ДНФ с помощью карт Карно. Записать VHDL-модель минимизированной системы функций с ис- пользованием логических операторов. Провести моделирование обеих VHDL- моделей на всех 16 наборах входных сигналов, сравнить результаты. 17.3. Составить VHDL-модель булевой функции, ДНФ которой задана тро- ичной матрицей D D = X] х2 х3 х4 0-1 -10- 1 - - 0 к2 к2 17.4. Составить VHDL-модель системы матрицами Т, В (табл. 17.2). ДНФ булевых функций, заданных
168 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 17.2 т в *2 х3 Л| - 1 0 0 1 0 1 1 1 0 1 - 0 1 1 1 1 - 0 1 17.5. С использованием типа std_logic_vector составьте VHDL-модель сис- темы ДНФ полностью определенных булевых функций (табл. 17.3). Таблица 17.3 *1 х2 Хз Х4 Хь Х7 *8 /' /2 /3 1 0 0 0 0 0 0 0 0 0 0 - 1 0 0 0 0 0 0 0 0 1 - - 1 0 0 0 0 0 0 1 0 - - - 1 0 0 0 0 0 1 1 - - - 1 0 0 0 1 0 0 - - - 1 0 0 1 0 1 - - - - - 1 0 1 1 0 - - - - - - - 1 1 1 1 17.6. Составить VHDL-модель булевой функции, заданной формулами 1) И = х2хз vXjX3 VX|X4; 2)F = ^(xvz)(x->y); 3) G=((x Ф y)~z)(x yz). 17.7. Записать VHDL-модель булевой функции, ДНФ которой задана троич- ной матрицей Т Х\ О 1 х2 х3 х4 х5 х6 1 - 1 0-1- 1-010 ^2 ^3 17.8. Составить VHDL-модель системы ДНФ булевых функций, заданных формулами
17. VHDL-модели булевых функций 169 D} = X2X3 VX]X2X4 VXIX2X3X4; г3 2 1J = X|X2X3X4 VX,X2X3X4 VX,X2X3X4 V X1X2X3X4 VX2X3. 17.9. Составить VHDL-модель системы булевых функций f\ f\ за- данных формулами yl г 2 “ гЗ =— = = j =М1Х1хз; j =и\\ f = щхт* vx2X3, где щ =х^Х2 vxix2 • Для повышения компактности модели используйте внутренние сигналы, со- ответствующие элементарным конъюнкциям, входящим в обе ДНФ. 17.10. Составить VHDL-модель системы ДНФ булевых функций, заданных в табл. 17.4 парой матриц Г, В. Таблица 17.4 Z>i b2 at а2 - - 1 1 111- 11-1 110 0 1111 0-10 0-01 -010 -001 1 0 - - 0 1 - - с2 S, S, 1 0 0 1 0 0 1 о о О 1 о О 1 о О 1 о О 1 о О 1 о О 1 о О 0 1 О О 1 17.11. Составить VHDL-модель системы ДНФ булевых функций с2, 51» ^1> заданных формулами Cj — Z?| aZ>2 = Z?|Z?2; 5] = 6] Z>2 V 6162; s2 = с\а\а2 vc\a}a2 vc}a\a2 vc}a}a2; c2 =C]a}a2 \zc{a\a2 v cxaxa2 v с}а{а2. 17.12. С использованием типа std_logic составьте VHDL-модель системы частичных булевых функций (табл. 17.5)
] 70 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 17.5 а(1)а(0) Ь(1)Ь(О) s(2)s(i)s(0) 0 0 0 0 0 0 0 1 0 0 10 0 0 11 0 10 0 0 10 1 0 110 0 111 10 0 0 10 0 1 10 10 10 11 110 0 110 1 1110 1111 0 0 0 0 0 1 0 1 0 0 0 1 0 1 0 0 1 1 0 1 0 0 1 1 1 0 0 17.13. Поведение устройства задано системой частичных функций (табл. 17.6). Составьте VHDL-модель устройства с использованием типа std_logic_vector. Таблица 17.6 *1 Х2 *3 *4 *5 *6 х7 *8 /' f1 /’ 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 0 0 0 0 0 1 1 1 1 Остальные наборы - - - 17.14. С использованием оператора процесс, оператора if и оператора на- значения сигнала составить VHDL-код диаграммы двоичного выбора 1) рис. 6.1; 2) рис. 16.2; 3) рис. 16.3. 17.15. С использованием только логических операторов и оператора назна- чения сигнала составить VHDL-код диаграммы двоичного выбора
17. VHDL-модели булевых функций 171 1) рис. 6.1; 2) рис. 16.2; 3) рис. 16.3. 17.16. По приведенному ниже VHDL-коду нарисовать диаграмму двоичного выбора. entity bdd__example is port (Xi, x2, x3 : in bit; f : out bit); end bdd_example; architecture data_flow of bdd_example is begin pO : process (xl, x2, x3) variable z : bit; begin if (xl='O') then if (x2='0‘) then z:='O’; elsif (x2='l') then if (x3=’O') then z:=’O'; elsif (x3='l*) then z:='l'; end if; end if; elsif (xl=’l*) then if (x2='O’) then if (x3=’O') then z:=’O’; elsif (x3=’l') then z:=’l'; end if; elsif (x2=’l’) then z:=,0‘; end if; end if; f <= z; end process; end data_flow; 17.17. Составить VHDL-модель устройства, функция которого описывается полиномом Жегалкина f = Xj Фх2х3 ©XjX4. 17.18. Составить VHDL-модель булевой функции, заданной булевой сетью (рис. 1.1). 17.19. Ввести обозначения для входных сигналов и записать VHDL-модель булевой функции g|, заданной булевой сетью (рис. 17.1). В качестве внут- ренних сигналов использовать g2,..., gg.
172 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 17.1 17.20. Записать VHDL-модель булевой функции, заданной булевой сетью (рис. 17.2). Рис. 17.2
18. Структурные описания логических схем 18.1. Дать определение понятия «структура». 18.2. Что такое структурное описание логической схемы? 18.3. Достаточно ли только структурного описания, чтобы полностью спе- цифицировать логическую схему? 18.4. Что такое иерархическое описание логической схемы? 18.5. Пусть полный одноразрядный сумматор имеет имя adder l. Двухраз- рядный сумматор adder_2 состоит из двух подсхем adder_l, четырехразряд- ный сумматор adder_4 состоит из двух подсхем adder_2, восьмиразрядный сумматор adder_8 состоит из двух подсхем adder_4. Нарисовать дерево ие- рархии для схемы 1) adder_2; 2) adder_4; 3) adder_8. Нарисовать дерево иерархии схемы 32-разрядного сумматора adder_32, со- стоящего из 16 сумматоров adder_2. 18.6. Схема circuitl (рис. 18.1) составлена из элементов, функции кото- рых приведены в табл. 29.2. 1) Используя типы bit, bit_vector и операторы port map конкре- тизации экземпляров компонентов, составить структурное описание схемы circuitl. Положить нулевыми задержки элементов. 2) Составить функциональное описание схемы circuitl в стиле data flow, используя только операторы назначения сигналов и логические опера- торы. 3) Провести моделирование для случаев 1) и 2), сравнить результаты. Рис. 18.1
174 Часть 2. Проектирование логических схем с использованием языка VHDL 18.7. Задано структурное описание логической схемы d_latch. Нарисовать схему d_latch. Сколько элементов содержит схема? Сколько типов эле- ментов в схеме? Имеет ли схема обратные связи? entity d__latch is port(d,elk : in bit; q : out bit); end d_latch; architecture structural of d_latch is component NAND2 port (il,i2: in bit; o: out bit); end component; signal A,B,Y1,Y2 : bit; begin DD1: NAND2 port map (d,clk,A); DD2: NAND2 port map (A,clk,B); DD3: NAND2 port map DD4: NAND2 port map (B,Y1,Y2); q <= Yl; end structural; 18.8. Для схемы (рис. 18.2) составить структурное описание и провести мо- делирование на всех наборах значений аргументов. Какие значения принима- ет функция f на наборах ООО, 100 значений входных сигналов? Функции ло- гических элементов приведены в табл. 29.1. 18.9. Составить VHDL-модель мультиплексора MS(1), а затем составить структурное описание схемы из мультиплексоров 1) рис. 8.7; 1)рис. 10.3.
18. Структурные описания логических схем 175 18.10. Составить VHDL-модель мультиплексора MS(2), а затем составить структурное описание схем из мультиплексоров. Элемент DC (рис. 18.3) - это дешифратор DC(3) с тремя входами. 1) рис. 18.3; 2) рис. 8.8. Рис. 18.3 18.11. Используя типы bit, bit_vector составить структурное описание схемы (рис. 18.4), используя операторы port map конкретизации экземпляров компонентов. Положить нулевыми задержки элементов. Ввести обозначения для внутренних сигналов схемы, составить функ- циональное описание схемы в стиле data flow (используя только операторы назначения сигналов и логические операторы). Провести моделирование обоих схем, сравнить результаты. Функции логических элементов приведены в табл. 29.1.
176 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 18. 4 18.12. Используя типы bit, bit_vector составить функциональные опи- сания полусумматора addl и одноразрядного сумматора add2, затем соста- вить структурное описание схемы 4-разрядного сумматора (рис. 18.5). z(0) z(1) z(2) z(3) Рис. 18.5 18.13. На рис. 18.6 изображена схема 4-разрядного умножителя. Ввести имена сигналам, соединяющим элементы схемы: одноразрядные полусумма- торы addl, одноразрядные сумматоры add2, двухвходовые элементы И. Описать схему, используя операторы создания экземпляров компонен- тов. Ввести задержки элементам: addl - 10ns, add2 -15 ns, элементам И - 5 ns. Провести моделирование и определить задержку схемы.
18. Структурные описания логических схем 177 Рис. 18.6 18.14. В схеме четырехразрядного умножителя (рис. 18.6) выделить одина- ковые подсхемы, дать им имена и нарисовать дерево иерархии этой схемы. Перерисовать схему, используя в качестве элементов выделенные подсхемы. 18.15. Используя тип bit, написать структурное описание схемы. Сигнал out_wire - это монтажное ИЛИ элементов первого каскада схемы. Эле- мент А2 - двухвходовый элемент И. Описать монтажное соединение 1) используя разрешающую функцию; 2) заменив монтажное соединение логическим элементом. 18.16. Используя тип std_logic, написать структурное описание схемы. Сигнал out_wire - это монтажное ИЛИ элементов первого каскада схемы. Элемент А2 - двухвходовый элемент И.
178 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 18.7 18.17. Составить структурное VHDL-описание схемы (рис. 18.8), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.8 18.18. Составить структурное VHDL-описание схемы (рис. 18.9), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
18. Структурные описания логических схем 179 Рис. 18.9 18.19. Составить структурное VHDL-описание схемы (рис. 18.10), провести моделирование, записать Функции логических элементов таблицу истинности функций, реализуемых схемой. приведены в табл. 29.2. Рис. 18.10
180 Часть 2. Проектирование логических схем с использованием языка VHDL 18.20. Составить структурное VHDL-описание схемы (рис. 18.11), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.11 18.21. Составить структурное VHDL-описание схемы (рис. 18.12), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.12
18. Структурные описания логических схем 181 18.22. Составить структурное VHDL-описание схемы (рис. 18.13), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.13 18.23. Составить структурное VHDL-описание схемы (рис. 18.14), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
182 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 18.14
18. Структурные описания логических схем 183 18.24. Составить структурное VHDL-описание схемы (рис. 18.15), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.15
184 Часть 2. Проектирование логических схем с использованием языка VHDL 18.25. Составить структурное VHDL-описание схемы (рис. 18.16 ), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. 18.26. Составить структурное VHDL-описание схемы (рис. 18.17), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
18. Структурные описания логических схем 185 Рис. 18.17 18.27. Составить структурное VHDL-описание схемы (рис. 18.18), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
186 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 18.18 18.28. Составить структурное VHDL-описание схемы (рис. 18.19), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
18. Структурные описания логических схем 187 Рис. 18.19 18.29. Составить структурное VHDL-описание схемы (рис. 18.20), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2.
188 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 18.20
18. Структурные описания логических схем 189 18.30. Составить структурное VHDL-описание схемы (рис. 18.21), провести моделирование, записать таблицу истинности функций, реализуемых схемой. Функции логических элементов приведены в табл. 29.2. Рис. 18.21 18.31. Пусть модели компонент схемы (рис. 18.1) имеют различные вариан- ты реализации: компонент NAO22 имеет три архитектурных тела А_1, А_2, А_3; компонент NAO2 - два архитектурных тела В_1, В_2. Составить конфи- гурацию для моделирования схемы, в которой 1) для экземпляра met_l компонента NAO22 используется архитектур- ное тело А_3, а для экземпляра met_2 - архитектурное тело А_1; для экземп- ляра т_3 компонента NAO2 - архитектурное тело В_2; 2) для экземпляров met_l, met_2 компонента NAO22 используется ар- хитектурное тело А_2; для экземпляра т_3 компонента NAO2 - архитектур- ное тело В_1; 3) для экземпляра met_l компонента NAO22 используется архитектур- ное тело А_1, а для экземпляра met_2 - архитектурное тело А_2; для экземп- ляра т_3 компонента NAO2 - архитектурное тело В_1. 18.32. Пусть модели компонент схемы (рис. 18.5) имеют различные вариан- ты реализации: компонент addl имеет два архитектурных тела DI, D2; ком- понент add2 - три архитектурных тела Fl, F2, F3. Составить конфигурацию для моделирования схемы, в которой для компонента addl используется ар- хитектурное тело D1; для компонента add2, реализующего функции z(3), z(4)
190 Часть 2. Проектирование логических схем с использованием языка VHDL - архитектурное тело F2, а для остальных экземпляров схемы add2 - архитек- турное тело F3. 18.33. Задано структурное описание схемы сри. Компонент int_reg имеет два архитектурных тела Т1 и Т2, компонент alu - также два архитек- турных тела S1, S2. Написать конфигурацию, в которой для компонента alu блока shifter используется архитектурное тело S2, для компонента int reg блока reg_array - архитектурное тело Т2, а для компонента int reg блока shifter - архитектурное тело Т1. Может ли один оператор блока быть вложенным в другой оператор блока? LIBRARY IEEE; USE IEEE.std_logic_1164.ALL; ENTITY epu IS PORT( clock : IN std_logic; PORT( addr : OUT std_logic_vector(0 to 3); PORT( data : INOUT std_logic_vector(0 to 3) PORT( interrupt : IN std_logic; PORT( reset : IN std_logic); END epu; ARCHITECTURE fragment OF epu IS COMPONENT int_reg PORT( data : IN std_logic; PORT( regclock : IN std_logic; PORT( data_out : OUT std_logic); END COMPONENT; COMPONENT alu PORT( a, b : IN std_logic; PORT( c, carry : OUT std_logic); END COMPONENT; SIGNAL a, c, carry : std_logic_vector(0 TO 3); BEGIN reg_array : BLOCK BEGIN R1 : int_reg PORT MAP( data(0), clock, data(0)); R2 : int_reg PORT MAP( data(l), clock, data(l)); R3 : int_reg PORT MAP( data(2), clock, data(2)); R4 : int_reg PORT MAP( data(3), clock, data(3)); END BLOCK reg_array; shifter : BLOCK BEGIN Al : alu PORT MAP( a(0), data(0), c(0), carry(O)); A2 : alu PORT MAP( a(l), data(l), c(l), carry(1)); A3 : alu PORT MAP( a (2), data(2), c(2), carry(2)); A4 : alu PORT MAP( a(3), data(3), c(3), carry(3)); shift_reg : BLOCK BEGIN R1 : int_reg PORT MAP( data, shft_clk, data_out); END BLOCK shift_reg; END BLOCK shifter; END fragment;
18. Структурные описания логических схем 191 18.34. Провести моделирование логической схемы (рис. 18.8) на всех парах возможных комбинаций входных сигналов. Определить, имеет ли схема ста- тические и динамические источники опасности. 18.35. Провести моделирование логической схемы (рис. 18.9) на всех парах возможных комбинаций входных сигналов. Определить, имеет ли схема ста- тические и динамические источники опасности. 18.36. Провести моделирование логической схемы (рис. 18.10) на всех парах возможных комбинаций входных сигналов. Определить, имеет ли схема ста- тические и динамические источники опасности. 18.37. Провести моделирование логической схемы (рис. 18.11) на всех парах возможных комбинаций входных сигналов. Определить, имеет ли схема ста- тические и динамические источники опасности.
19. Функционально-структурные описания логических схем 19.1 . Что такое функциональное описание 1) логического элемента; 2) подсхемы (блока); 3) схемы? 19.2 . Может ли функциональное описание быть иерархическим? 19.3 . Может ли описание поведения схемы быть «чисто функциональным» ? 19.4 . Может ли иерархическое описание логической схемы быть организо- вано следующим образом: описания нижнего уровня, т.е. описания элемен- тов, быть структурными, описание верхнего уровня - функциональным? 19.4 . Правильно ли, что в иерархических описаниях описания нижнего уров- ня должны быть функциональными? 19.5 . Составить описание схемы (рис. 19.1), используя для каждого элемента отдельное описание в виде entity. 19.6 . Составить описание схемы (рис. 19.1), используя для каждого элемента процесс со своим списком чувствительности. 19.7 . Составить смешанное описание схемы (рис. 19.1), используя для опи- сания элементов: AND2 - оператор процесса; OR2 - оператор назначения сигнала; XOR2 - оператор создания экземпляра компонента. 19.8 . Составить описание схемы (рис. 19.1), используя функции и процедуры для описания логических элементов. Поведение двухвходового логического элемента XOR2 написать без использования логического оператора хог. 19.9. Составить смешанное описание схемы (рис. 19.2), используя для опи- сания элементов: для ЕХ2 - оператор процесса; для 02 - оператор назначе- ния сигнала; для NMX2 - оператор создания экземпляра компонента. Эле- мент 02 - логический элемент, реализующий функцию у = A v В; элемент ЕХ2 - логический элемент, реализующий функцию сложения по модулю 2; элемент NMX2 реализует функцию у = (A v И)(В v И).
19. Функционально-структурные описания логических схем 193 02 Рис. 19.2 19.10 . Функции дешифратора DC(3) даны в табл. 19.1. Составить VHDL- модель дешифратора DC(3). Таблица 19.1 со С1 С2 сз С4 С5 С7 ООО 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 ГсГ“ 0 0 0 0 1 1 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 0 1 0 0 0 0 0 1 Го- 0 1 1 0 0 0 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 0 ч 19.11 . Составить структурное описание мультиплексора MS(3) (рис. 19.3), при этом поведение компонента - дешифратора DC(3) должно быть пред- ставлено соответствующей функцией. Рис. 19.3
194 Часть 2. Проектирование логических схем с использованием языка VHDL 19.12 . Составить VHDL-модель схемы ПЛМ (рис. 11.6) с двухвходовыми дешифраторами, используя описания компонент - дешифратора, матричной подсхемы И, матричной подсхемы ИЛИ. 19.13 . Составить VHDL-модель схемы ПЗУ (рис. 19.4), описав поведение дешифратора функцией, а матрицу хранения данных — двухмерной констан- той битовых элементов. Рис. 19.4
20. Описание регулярных схем 20.1 . Что такое регулярная (нерегулярная) логическая схема? 20.2. Что такое систолические вычисления? 20.3. Составить описание логического элемента, реализующего функцию f = (Х1 У1 V Х2у2 V... V хпуп), используя оператор generate. 20.4. Составить структурное описание N-разрядного сумматора adder_N (рис. 20.1), используя оператор generate. s(0) s(1) s(N-2) s(N-1) Рис. 20.1 20.5. Составить параметризованное по разрядности структурное описание сдвигового регистра SHIFT (рис. 20.2), состоящего из D-триггеров. Исполь- зовать оператор generate. Рис. 20.2
196 Часть 2. Проектирование логических схем с использованием языка VHDL 20.6. Обобщить схему 4-разрядного умножителя (рис. 18.6) на случай пере- множения п-разрядных чисел и, используя оператор generate, составить параметризованное описание. 20.7. Составить параметризованное по разрядности функциональное описа- ние дешифратора DC(n), имеющего и входов. Функции дешифратора DC(3) даны в табл. 19.1. 20.8. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.3) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Логический элемент у1 = х1@ х2 у2 хЗ® х4 Сумматор (а2, а1Н(Ь2. Ы)= (сЗ, с2. d ) а2, Ь2, сЗ - старший разряд Рис. 20.3
20. Описание регулярных схем 197 20.9. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.4) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Младший разряд разряд ы а1—э с2 с1 Умножение трех чисел (а1 )х (Ы )х (с2. с1 )=(р2, р1 ) с2, р2 - старший разряд Сумматор трех чисел (с1 )+(с2>(сЗ)=(р2, р1 ) р2 - старший разряд Рис. 20.4
198 Часть 2. Проектирование логических схем с использованием языка VHDL 20.10. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.5) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Ь2 Ы р1 р2 Умножитель ( а2, а1 )Х ( Ь2, Ы) = ( р4, рЗ, р2, р1 ) р4 - старший разряд, р1 - младший разряд Сумматор (а2, а1)+(Ь2, Ь1)=(рЗ,р2, р1 ) рЗ - старший разряд Рис. 20.5
20. Описание регулярных схем 199 20.11. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.6) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. р1 р2 S 1 а2—1 + —* р2 Сумматор (а2, а1 >(Ь2, Ь1 >(рЗ,р2,р1 ) а2, Ь2, рЗ - старший разряд Сумматор ( а2, а1 )+ s = (р2, р1 ) а2, р2 - старший разряд Рис. 20.6
200 Часть 2. Проектирование логических схем с использованием языка VHDL 20.12. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.7) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. разряд s Сумматор ( а2, а1 >( Ь2, Ы )=( рЗ, р2, р1 ) а2, Ь2, рЗ - старший разряд Умножитель ( а2, а1 >с s = (р2, р1 ) а2, р2 - старший разряд Рис. 20.7
20. Описание регулярных схем 201 20.13. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.8) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Сложение трех чисел ( а1 )+ ( а2 ) + ( аЗ ) = (р2, р1 ) р2 - старший разряд Ь2 Ы Wti .. v а2 а1 р1р2рЗр4 Умножитель ( а2. а1 * ( Ь2, Ы}=(р4, рЗ, р2. р\ ) р4 - старший разряд Рис. 20.8
202 Часть 2. Проектирование логических схем с использованием языка VHDL 20.14. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.9) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. а2 аЗ Сложение трех чисел ( а1 )+ ( а2 ) + ( аЗ ) s (р2, р1 ) рЗ = а2 © аЗ р2 - старший разряд Ь2 Ы а2 а1 pipzpsp4 Умножитель ( а2, а1 )х ( Ь2, Ы )= ( р4, рЗ, р2, р1 ) р4 - старший разряд Рис. 20.9
20. Описание регулярных схем 203 20.15. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.10) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. т Ы—> add1 —► d т Ь2 Л Ы—> ©V—>у2 Г Полусумматор (Ы )+(Ь2) -(C1.S1 ) у1 = Ыф Ь2 у2=Ь1 V Ь2 Рис. 20.10
204 Часть 2. Проектирование логических схем с использованием языка VHDL 20.16. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.11) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Направление параметризации Полусумматор ( Ы ) + (Ь2) =(c1,s1 ) X Ь1 —> add1 —► d I Ь2 yj Г-Ц Ь1—♦ ©V—>у2 т у1= Ы® Ь2 у2= Ы V Ь2 Ь2 Рис. 20. И
20. Описание регулярных схем 205 20.17. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.12) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. 1 Ы —♦ add1 —► d Y Ь2 з1 Ы—* add2 d тг ЬЗЬ2 Полусумматор ( Ь1 )+(Ь2) «(с1.з1 ) Сумматор add2 (Ь1) + (Ь2)+(ЬЗ) -(с1,«1) «1 - сумма, d - перенос Рис. 20.12
206 Часть 2. Проектирование логических схем с использованием языка VHDL 20.18. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.13) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. Умножитель ( а2, а1 )Х( Ь2, Ы) = ( р4, рЗ. р2, р1 ) а2, Ь2, р4 - старшие разряды а2 а1 Ь2 Ы Л, * add2 —>с1 02---* Т Сумматор add2 (Ь1)+(Ь2) + (р) »(c1.s1) s1 - сумма, с1 - перенос Рис. 20.13
20. Описание регулярных схем 207 20.19. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.14) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. р4 рЗ д а2—» р2 а1—> —>р1 и Ь2 Ы Умножитель ( а2, а1 )Х( Ь2, Ы) = (р4, рЗ, р2, р1 ) а2, Ь2, р4 - старшие разряды Рис. 20.14
208 Часть 2. Проектирование логических схем с использованием языка VHDL 20.20. Выделить регулярный (повторяющийся) фрагмент схемы (рис. 20.15) и составить параметризованное по разрядности входных и выходных данных структурное описание схемы с использованием оператора generate. ы Полусумматор (Ь1 )+(Ь2) +(ЬЗ) =(c1,s1 ) s1 - сумма, d - перенос у = х1 ф х2 Рис. 20.15
20. Описание регулярных схем 209 20.21 . Составить параметризованное по разрядности структурное описание регулярной схемы (рис. 20.16), состоящей из элементов «сложение по моду- лю 2» и одноразрядных сумматоров FA. Использовать оператор generate. Какое название носит данная схема? Какие функции она выполняет? Рис. 20.16
21. Алгоритмические описания 21.1. Написать функцию (процедуру) преобразования двоичного представ- ления числа в десятичное представление - это функция (процедура) преобра- зования типа BIT_VECTOR -> INTEGER. Первый (левый) разряд двоичного представления является старшим, число разрядов бит-вектора равно 10. 21.2. Написать функцию (процедуру) преобразования десятичного представ- ления числа в двоичное представление - это функция (процедура) преобра- зования типа INTEGER -> BIT_VECTOR. Первый (левый) разряд двоичного представления является старшим, число разрядов бит-вектора равно 8. 21.3. Написать функцию (процедуру) преобразования двоичного представ- ления числа в десятичное представление - это функция (процедура) преоб- разования типа BIT_VECTOR -> INTEGER. Последний (правый) разряд дво- ичного представления является старшим, число разрядов бит-вектора равно 8. 21.4. Написать функцию (процедуру) преобразования десятичного представ- ления числа в двоичное представление - это функция (процедура) преобразо- вания типа INTEGER -> BIT_VECTOR. Последний (правый) разряд двоично- го представления является старшим, число разрядов бит-вектора равно 8. 21.5. Написать функцию (процедуру) преобразования двоичного представ- ления числа в восьмеричное представление - это функция (процедура) пре- образования типа BIT_VECTOR INTEGER. Первый (левый) разряд двоич- ного представления является старшим, число разрядов бит-вектора равно 10. 21.6. Написать функцию (процедуру) преобразования восьмеричного пред- ставления числа в двоичное представление - это функция преобразования типа INTEGER -> BIT_VECTOR. Первый (левый) разряд двоичного пред- ставления является старшим, число разрядов бит-вектора равно 12. 21.7. Написать функцию (процедуру) преобразования двоичного представ- ления числа в восьмеричное представление - это функция преобразования типа BIT_VECTOR 4 INTEGER. Последний (правый) разряд двоичного представления является старшим, число разрядов бит-вектора равно 8. 21.8. Написать функцию (процедуру) преобразования восьмеричного пред- ставления числа в двоичное представление - это функция преобразования типа INTEGER -> BIT_VECTOR. Последний (правый) разряд двоичного представления является старшим, число разрядов бит-вектора равно 8. 21.9. Написать функцию (процедуру) преобразования шестнадцатеричного представления числа в восьмеричное представление. Число разрядов в вось- меричном представлении равно 4. 21.10. Написать функцию (процедуру) преобразования восьмеричного пред- ставления числа в шестнадцатеричное представление. Число разрядов в восьмеричном представлении равно 4.
21. Алгоритмические описания 211 21.11. Написать функцию (процедуру) преобразования двоичного представ- ления числа в дополнительный код. Число разрядов в двоичном представле- нии числа равно 8. 21.12. Написать функцию (процедуру) преобразования десятичного пред- ставления числа в шестнадцатеричное представление. Число разрядов в деся- тичном представлении числа равно 4. 21.13. Написать функцию (процедуру) преобразования двоично-десятичного кода числа в двоичный. Первый (левый) разряд двоичного представления числа является старшим, число разрядов в двоичном представлении числа равно 8. 21.14. Написать функцию (процедуру) преобразования двоично-десятичного кода числа в двоичный. Последний (правый) разряд двоичного представле- ния числа является старшим, число разрядов в двоичном представлении чис- ла равно 8. 21.15. Написать функцию (процедуру) нахождения максимального winox и минимального wmin элемента в одномерном массиве М целых положительных чисел. Выдать элементы wmax, wmin и номера их позиций в массиве. В пакете определить тип для массива значений, возвращаемых функцией. 21.16. Написать функцию (процедуру) нахождения минимального элемента rnmin в столбце j двумерного массива (матрицы) М, элементами которого яв- ляются целые положительные числа, выбираемые из множества {0, 1, 2, ..., 100}. Выдать элемент wmin и номер строки /, в которой он находится. В паке- те определить - тип для элементов матрицы М; - тип для матрицы М; - тип для двухэлементного массива значений, возвращаемых функцией. 21.17. Написать функцию (процедуру) транспонирования булевой (двоичной) матрицы В размерности NxN. Соответствующий тип для матрицы В опреде- лить в пакете. 21.18. Написать функцию (процедуру) транспонирования матрицы М, эле- ментами которой являются целые положительные числа, выбираемые из множества {0, 1, 2, ..., 100}. В пакете определить соответствующий тип для матрицы М. 21.19. Разработать алгоритмическое описание (функцию и процедуру) циф- ровой системы, осуществляющей перемножение (С=АхВ) двух матриц А, В размерности NxN, элементами которых являются целые положительные числа, выбираемые из множества {0, 1,2, ..., 100}. В пакете определить тип для матриц А, В и соответствующий тип для матрицы С. 21.20. Написать функцию (процедуру) поиска максимального элемента mtj в заданном столбце j двумерного массива (матрицы) М, элементами которого являются натуральные числа, выбираемые из множества {0, 1, 2, ..., 100}.
212 Часть 2. Проектирование логических схем с использованием языка VHDL Выдать номер / строки и номер j столбца найденного элемента выдать найденный элемент ту. В пакете определить - тип для элементов матрицы М; - тип для матрицы М; - тип для трехэлементного массива значений, возвращаемых функцией. 21.21 . Написать функцию (процедуру) упорядочения по возрастанию эле- ментов массива. Массив состоит из натуральных чисел, выбираемых из мно- жества {0, 1,2, ..., 100}. Для каждого элемента упорядоченного массива вы- дать номер позиции в исходном массиве. В пакете определить тип массива. 21.22. Написать функцию (процедуру) поиска такого столбца j в двумерном массиве (матрице) М, сумма элементов которого является максимальной. Элементами матрицы М являются натуральные числа, выбираемые из мно- жества {0, 1,2, ..., 100}. В пакете определить - тип для элементов матрицы М; - размерность матрицы М. 21.23. Написать функцию (процедуру) поиска такой строки j двумерного массива (матрицы) М, сумма элементов которой является максимальной. Элементами матрицы М, являются натуральные числа, выбираемые из мно- жества {0, 1, 2, ..., 100}. Выдать номер j строки, выдать сумму элементов, находящихся в строке j. В пакете определить - тип для элементов матрицы М; - тип для матрицы М; - тип для двухэлементного массива значений, возвращаемых функцией. 21.24. Написать функцию (процедуру) нахождения в двоичной матрице В строки j с минимальным суммарным числом S единиц. Выдать номер j стро- ки и число S. В пакете определить - тип для матрицы М размерности (Nx К); - тип для двухэлементного массива значений, возвращаемых функцией. 21.25. Написать функцию (процедуру) нахождения в двоичной матрице В столбца i с максимальным суммарным числом S единиц. Выдать номер i строки и число S. Тип матрицы В размерности (NxN) определить в пакете. Тип для двухэлементного массива значений, возвращаемых функцией, также определить в пакете. 21.26. Написать функцию (процедуру) нахождения в двоичной матрице В строки j с максимальным суммарным числом S единиц. Выдать номер j строки и число S. Тип для матрицы размерности (Nx К) определить в пакете. Тип для двухэлементного массива значений, возвращаемых функцией, также определить в пакете. 21.27. Написать функцию (процедуру) нахождения в двоичной матрице В столбца / с минимальным суммарным числом S единиц. Выдать номер i стро- ки и число S. Тип для матрицы размерности (Nx N) определить в пакете. Тип для двухэлементного массива значений, возвращаемых функцией, также оп- ределить в пакете.
21. Алгоритмические описания 213 21.28. Написать процедуру упорядочения по убыванию элементов одномер- ного массива М. Элементами массива М являются натуральные числа, выби- раемые из множества {0, 1,2, ..., 100}. Для каждого элемента упорядоченно- го массива выдать номер его позиции в исходном массиве М. Выдать сумму элементов массива М, подсчитав ее с помощью отдельно написанной функ- ции. Тип для массива М определить в пакете. Тип для элементов, входящих в массив, также определить в пакете. 21.29. Написать процедуру нахождения числа элементов в массиве целых чисел, значения которых превышают среднеарифметическое значение. Раз- мерность массива - не менее 20 элементов. 21.30. Написать функцию, которая объединяет два упорядоченных по убы- ванию массива в один, также упорядоченный (по возрастанию) массив. 21.31. Написать функцию, которая формирует текстовый файл, содержащий таблицу квадратов первых десяти целых положительных чисел. Текстовый файл требуется сохранить в директории проекта. Ниже приведен рекомен- дуемый вид текстового файла после работы программы Number Square 1 1 2 4 10 100 21.32. Написать функцию вычисления среднего арифметического последо- вательности целых чисел. Функция должна вернуть целую часть этого числа. 21.33. Написать процедуру преобразования двоично-десятичного кода числа в двоичный код. Первый (левый) разряд двоичного представления числа яв- ляется старшим, число разрядов двоичного представления числа равно 12. 21.34. Написать функцию преобразования двоично-десятичного кода числа в двоичный код. Последний (правый) разряд двоичного представления числа является старшим, число разрядов двоичного представления числа равно 12. 21.35. Написать функцию проверки, является ли матрица «магическим» квадратом. Примечание. «Магическим» квадратом называется матрица целых по- ложительных чисел, у которой сумма чисел - в каждой строке; - в каждом столбце; - по каждой из диагоналей является одинаковой. Примеры «магического» квадрата:
214 Часть 2. Проектирование логических схем с использованием языка VHDL 2 9 4 7 5 3 6 1 8 7 12 1 14 2 13 8 И 16 3 10 5 9 6 15 4 21.36. Написать функцию упорядочения элементов массива целых чисел по возрастанию. 21.37. Написать функцию вычисления суммы тех элементов квадратной матрицы, которые расположены по главной диагонали. Тип матрицы размер- ности (NxN) определить в пакете. Тип элементов матрицы (целых чисел из интервала [-100,4-100] также определить в пакете. 21.38. Написать функцию вывода на экран минимального числа, найденного в последовательности (массиве) целых чисел. 21.39. Написать функцию (процедуру) вычисления суммы первых N целых положительных четных чисел. 21.40. Написать функцию (процедуру) вычисления суммы первых N целых положительных нечетных чисел. 21.41. Написать функцию (процедуру) вычисления суммы целых положи- тельных четных чисел, не больших числа R. 21.42. Написать функцию (процедуру) вычисления суммы целых положи- тельных нечетных чисел, не больших числа R. 21.43. Написать функцию и процедуру вычисления суммы нечетных целых чисел, попадающих в числовой интервал [-100,5; +27,8]. 21.44. Написать функцию, которая выводит 10 раз на экран сообщение “NOT”. 21.45. Написать функцию нахождения в массиве М целых чисел позиции /, в которой находится максимальное число и позиции у, в которой находится минимальное число. Функция должна вернуть массив, в котором произошел обмен значениями в позициях i,j. 21.46. Написать функцию и процедуру нахождения наибольшего общего де- лителя двух целых чисел. 21.47. Написать функцию вывода на экран минимального числа, найденного в последовательности (массиве) целых чисел. 21.48. Написать функцию и процедуру нахождения среднего арифметиче- ского элементов массива вещественных чисел без учета минимального и максимального элементов массива этого массива.
21. Алгоритмические описания 215 21.49. Написать функцию нахождения числа повторений заданного целого числа в массиве целых чисел. 21.50. Написать функцию, которая объединяет два упорядоченных (по воз- растанию) массива в один, также упорядоченный (но по убыванию) массив. 21.51. Написать функцию, которая сравнивает два целых числа и возвращает результат сравнения в виде одного из символов: >, =, <. 21.52. Написать функцию, которая вычисляет объем цилиндра. Параметрами функции должны быть радиус и высота цилиндра (тип real). 21.53. Написать функции, которые проверяют, является ли набор символов (тип string) - целым числом; - отрицательным целым числом; - натуральным числом; - набором нулей и единиц (двоичным числом). 21.54. Написать функцию, которая проверяет, есть ли в массиве целых чисел элементы с одинаковым значением. Функция должна возвращать слова “Yes”, “Not”. 21.55. Написать функцию, которая проверяет, является ли заданное целое число простым. Функция должна возвращать слова “Yes”, “Not”. 21.56. Написать процедуру, которая объединяет два упорядоченных (по воз- растанию) массива в один, также упорядоченный (по возрастанию) массив. 21.57. Написать функцию, которая проверяет, является ли заданный массив целых чисел упорядоченным по возрастанию. Функция должна возвращать слова “Yes”, “Not”. 21.58. Написать функцию (процедуру) для определения в массиве целых чи- сел сумму элементов, занимающих четные позиции, и произведение элемен- тов, имеющих четные значения. Предусмотреть вывод на экран соответст- вующего сообщения, если полученное число будет превышать максимально допустимое в VHDL. 21.59. Написать функцию вычисления факториала п\ числа п с использова- нием рекурсивного вызова функцией самой себя. Предусмотреть вывод на экран соответствующего сообщения, если полученное число будет превы- шать максимально допустимое в VHDL. 21.60. Задан массив М целых положительных чисел. Написать функцию, вычисляющую для каждого /-го элемента mi массива факториал т(\. Преду- смотреть вывод на экран соответствующего сообщения, если полученное число будет превышать максимально допустимое в VHDL. 21.61 . Написать функцию (и процедуру) для вычисления в массиве вещест- венных чисел суммы его пяти наибольших (по абсолютному значению) эле- ментов.
216 Часть 2. Проектирование логических схем с использованием языка VHDL 21.62. Написать функцию (процедуру) для преобразования массива целых чисел: требуется утроить значения положительных элементов, расположен- ных непосредственно перед отрицательными элементами. 21.63. Написать функцию (процедуру) нахождения суммы всех тех элемен- тов матрицы (размерности NxN) целых чисел, которые расположены ниже главной диагонали. Константу N и тип для матрицы определить в пакете. 21.64. Написать функцию для преобразования массива целых чисел: требу- ется заменить нулем каждое отрицательное число, размещенное непосредст- венно после положительного числа. 21.65. Написать функцию (процедуру) нахождения суммы всех тех элемен- тов матрицы (размерности NxN) целых чисел, которые расположены выше главной диагонали. Константу N и тип для матрицы определить в пакете. 21.66. Даны два массива натуральных чисел, упорядоченных по возраста- нию. Написать функцию, которая должна преобразовать первый массив сле- дующим образом: в нем должны остаться только те числа, которые входят в оба массива, остальные числа должны быть заменены нулями. Кроме того, возвращаемый функцией массив чисел должен быть упорядочен по возраста- нию. 21.67. Написать функцию, определяющую для массива целых чисел количе- ство чисел, состоящих только из нечетных цифр. 21.68. Написать функцию, определяющую в массиве целых чисел число элементов, кратных минимальному элементу. (Кратный - делящийся без ос- татка). 21.69. Написать функцию, выполняющую следующие действия: в массиве целых чисел нулями заменяются отрицательные элементы, размещенные не- посредственно после положительных. 21.70. Написать процедуру нахождения - суммы трех максимальных положительных элементов; - произведения двух минимальных (по абсолютному значению) отрица- тельных элементов; в двумерном массиве (матрице) М, элементами которого являются целые числа, выбираемые из множества {-100, -99, ..., -1, 0, +1, +2, ..., +100}. Тип для матрицы размерности (NxN) определить в пакете. Константу N и тип элементов матрицы также определить в пакете. 21.71. Написать функцию, выполняющую следующие действия: в массиве вещественных чисел нулями заменить отрицательные элементы. 21.72. Написать функцию (и процедуру), выполняющую следующие дейст- вия: в массиве целых чисел подсчитать число элементов, стоящих непосред- ственно после элементов со значениями, кратными пяти. 21.73. Задан массив целых чисел (20 чисел). Выдать на экран с помощью оператора сообщения assert все трехзначные десятичные числа, состоящие из несовпадающих цифр. Написать функцию, осуществляющую эти действия.
21. Алгоритмические описания 217 21.74. Написать функцию (и процедуру), выполняющую следующие дейст- вия: в заданной двухразмерной двоичной матрице размерности (NxN) заме- нить нулевыми строками и нулевыми столбцами те строки и те столбцы, ко- торые содержат хотя бы один нулевой элемент. Тип для матрицы размерно- сти (NxN) определить в пакете. Константу N и тип (bit) элементов матрицы также определить в пакете. 21.75. Написать процедуру, выполняющую следующие действия: в массиве, элементами которого являются целые числа, упорядочить положительные элементы по возрастанию, отрицательные элементы упорядочить по убыва- нию и расположить их после положительных. 21.76. В матрице целых чисел определить максимальный элемент на главной диагонали и установить, есть ли такой элемент среди элементов, располо- женных ниже главной диагонали. Написать соответствующую функцию, ко- торая должна возвращать слова “Yes”, “Not”. 21.77. Чаписать функцию, которая позволяет найти числа, кратные 5, среди I натуральных чисел, не превышающих R (R=10; R= 50; R=100). 21.78. Чаписать функцию, которая позволяет найти среди натуральных чи- I сел все простые числа, не превышающие число R (R=63; R= 81; R=120. 21.79. Написать функцию, вычисляющую натуральный логарифм с помо- щью ряда Тейлора . . (х-1)2 (х-1)3 (х-1)4 1пх = (х-1)------— ч----- 2 3 4 где |х —1| < 1. Одним из аргументов функции должно быть число используе- мых членов ряда Тейлора. 21.80. Написать функцию, вычисляющую значение квадратного корня с по- мощью аппроксимации методом Ньютона-Рафсона. Метод Ньютона-Рафсона базируется на итеративном использовании формулы 5а+1=1№+£)’ причем при больших значениях к принимается . Провести модели- рование и определить погрешность вычислений при различных значениях к. 21.81. Написать функцию, вычисляющую ех по формуле ех = 1 + X Н--1---1---И 2! 3! 4!
218 Часть 2. Проектирование логических схем с использованием языка VHDL суммированием 1) первых шести слагаемых; 2) первых восьми слагаемых. 21.82. Пусть входами логического элемента GATE, реализующего булеву функцию / = (Х1Л ^х2У2^-^хпуп), являются битовые векторы х = (хх,...,хпУу = (У\,—9уп)' Написать VHDL- функцию, которая описывает поведение логического элемента GATE. 21.83. Написать VHDL-функцию, которая описывает преобразование п- разрядного двоичного кода в код Грея. 21.84. Написать VHDL-функцию, которая описывает преобразование (л-1)- разрядного кода Грея в ^-разрядный кода Грея. 21.85. Пусть задана булева матрица В, имеющая 2Л; строк и п столбцов. На- писать VHDL-функцию, которая проверяет, является ли матрица В кодом Грея. 21.86. Задана таблица (табл. 21.1) кодирования четырех символов двоичны- ми кодами. Написать VHDL-функцию проверки следующего свойства кода: код обнаруживает все одиночные ошибки. Функция должна вернуть значение 'Г типа bit, если код обнаруживает все одиночные ошибки, и значение 'О' - в противном случае. Таблица 21.1 Символ Код А ООО В 101 С НО D ОН 21.87. Пусть задана булева матрица В, имеющая 2” строк и и+1 столбцов. Каждая строка матрицы В задает кодовое слово, а матрица В - kqr- Написать VHDL-функции, проверяющие свойства 1) - 3) кода: 1) «код обнаруживает одиночную ошибку в кодовом слове»; 2) «код обнаруживает s ошибок в кодовом слове»; 3) «код обнаруживает не более s ошибок и исправляет не более d оши- бок». 21.88* . Разработать VHDL-описание устройства управления одним светофо- ром, регулирующего движение автомашин и пешеходов на перекрестке двух дорог: магистральной и локальной. Алгоритм работы светофора описан в [6] и состоит в следующем. Управление движением осуществляется посредством трех фонарей: зеленого, красного и желтого, направленных на магистраль, и трех таких же фонарей,
21. Алгоритмические описания 219 видных со стороны локальной улицы. Для управления движением на пере- крестке достаточно манипулировать четырьмя комбинациями состояний фо- нарей, а именно: ЗК - горит зеленый фонарь на магистрали и красный на локальной до- роге (остальные погашены); ЖК - горит желтый фонарь на магистрали и красный на локальной до- роге; КЗ - горит красный фонарь на магистрали и зеленый на локальной до- роге; КЖ - горит красный фонарь на магистрали и желтый на локальной до- роге. В алгоритме работы светофора выделим базисные операции: действия (операцию действия будут начинаться символом «-»> ) и ожидания (опера- цию ожидания будем начинать символом «-»). В качестве операций действия возьмем четыре операции приведения светофора в перечисленные ниже со- стояния: — >ЗК - зажечь зеленый фонарь на магистрали и красный на локальной дороге и погасить остальные фонари; — >ЖК, —>КЗ, -»КЖ - определяются аналогично. Операции ожидания определим так: - х - ожидать события: по локальной дороге к перекрестку подошел пе- шеход или машина - это событие может регистрироваться с помощью кно- пок, нажимаемых пешеходами, и фотодатчиков, замечающих подход авто- машин; - х' - ожидать события: никто не желает пересекать магистраль; - 10 - ожидать истечения 10 с, начиная с момента начала выполнения этой операции ожидания, поскольку именно такой промежуток времени по- надобится для работы желтого фонаря; - 60 - ожидать 60 с, аналогично, такой интервал будет достаточным для того, чтобы пешеход успел пересечь магистраль. Алгоритм работы светофора следующий. Допустим, что светофор уже переведен в состояние КЗ и для пересече- ния магистрали отводится 60 с, после чего надо проверить, не подошли ли еще пешеходы или машины по локальной дороге. Если да, то надо опять дать им 60 с и все повторить (здесь образуется малый цикл алгоритма), в против- ном случае надо возобновить движение по магистрали. Для этого светофор переводится на 10 с в состояние КЖ, а затем в состояние ЗК, открывающее магистраль. Далее остается ожидать новых претендентов на пересечение, но лучше реагировать на них не ранее чем через 60 с, чтобы разгрузить возмож- ное скопление машин на магистрали. При очередном перекрытии магистрали светофор переводится на 10 с в состояние ЖК и лишь затем в состояние КЗ, открывающее движение по локальной дороге. Здесь алгоритм замыкается на начало. Графическая форма алгоритма управления светофором показана на рис. 21.1.
220 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 21.1. 21.89* . Решить задачу составления VHDL-модели устройства согласованно го управления четырьмя светофорами на перекрестке магистрали и локаль ной дороги.
22. VHDL-модели типовых комбинационных схем, ПЛМ и ПЗУ 22.1. Составить параметризованную функциональную VHDL-модель де- шифратора DC(N)- 22.2. На рис. 19.3 задан MS(3) - мультиплексор с тремя управляющими вхо- дами. Составьте параметризованную VHDL-модель мультиплексора MS(N), имеющего N управляющих входов. 22.3. Разработать функции (bit__vector integer), (integer —> bit_vector) преобразования одного типа в другой. Составить с исполь- зованием разработанных функций параметризованную функциональную VHDL-модель компаратора К(А,В) чисел А, В, заданных в двоичном коде 1) для отношения А>В; 2) для отношения А<В; 3) для отношения А^ В; 4) для отношения А=В; 5) для отношения А<В; 6) для отношения А>В. 22.4. Разработать функции (bit_vector —> integer), (integer —> bit_vector) преобразования одного типа в другой. Составить с использова- нием разработанных функций параметризованную функциональную VHDL- модель 1) инкрементора; 2) декрементора; 3) сумматора; 4) умножителя; 5) устройства вычитания. 22.5. Используя тип std_logic и логические операторы, составить VHDL- модель схемы ПЛМ (рис. 22.1).
222 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 22.1 22.6. Используя тип std_logic и логические операторы, составить VHDL- модель программируемой матрицы логики (рис. 11.7). 22.7. Используя тип std_logic, составить VHDL-модель ПЗУ (рис. 11.5). 22.8. Используя тип std_logic, составить VHDL-модель сети ПЛМ (рис. 11.4), в которой имеются проводные дизъюнкции выходных полюсов. Решить ту же задачу с использованием типа bit. В чем преимущества типа std_logic? 22.9. Используя двухмерные константы типа bit, составить VHDL-модель ПЗУ, приведенного на 1) рис. 11.2; 2) рис. 11.3. 22.10. Используя двухмерные константы типа bit и параметризованную модель дешифратора с инверсными выходами, составить VHDL-модель схе- мы, приведенной на рис. 11.6.
23. VHDL-модели схем с памятью 23.1. Составить алгоритмическую VHDL-модель конечного автомата Мили, функционирование которого задано табл. 23.1. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по единичному значению сигнала elk. Таблица 23.1 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai a2 аз a4 21 a2/wi a2/wi a|/w2 ai/w4 Z2 34/W5 азЛУз ад/\у4 аз/ws Z3 aj/w2 аз/\Уз ai/w4 азЛу5 23.2. Составить алгоритмическую VHDL-модель конечного автомата Мили, функционирование которого задано табл. 23.2. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по переднему фронту сигнала elk. Таблица 23.2 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai a2 аз a4 Z| азЛу4 a2/wi aj/w2 3|/W4 Z2 a4/w5 a2/w3 a4/w3 азМз Z3 аз/ws a3/w4 ai/w4 аз/wi 23.3. Составить алгоритмическую VHDL-модель конечного автомата Мили, функционирование которого задано табл. 23.3. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по заднему фронту сигнала elk.
224 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 23.3 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния Э| а2 аз a4 Z| aVw4 a2/wi aj/w2 a4/w4 Z2 aVw5 ai/w3 aj/w4 аз/\¥з Z3 aj/w2 a2/W4 ai/w4 a4/wi 23.4. Составить алгоритмическую VHDL-модель конечного автомата Мили, функционирование которого задано табл. 23.4. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по нулевому значению сигнала elk. Таблица 23.4 Таблица функционирования конечного автомата Мили Входные сигналы Внутренние состояния ai a2 аз a4 Z| ai/w4 аз/wi ai/w3 ai/w4 z2 a2/w5 aj/wj a4/w3 азЛуз Z3 аз/ws 34/W5 aj/w4 ад/wi 23.5. Составить алгоритмическую VHDL-модель конечного автомата Мура, функционирование которого задано табл. 23.5. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по переднему фронту сигнала elk. Таблица 23.5 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния ai a2 аз Z1 аз a2 ai z2 ai a2 аз Z3 аз ai аз Wi w2 Выходные сигналы
23. VHDL-модели схем с памятью 225 23.6. Составить алгоритмическую VHDL-модель конечного автомата Мура, функционирование которого задано табл. 23.6. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по заднему фронту сигнала elk. Таблица 23.6 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния ь, bz Ьз qi bz bl ь. 42 Ьз bz ь2 Чз bi Ьз Ьз У2 Уз У1 Выходные сигналы 23.7. Составить алгоритмическую VHDL-модель конечного автомата Мура, функционирование которого задано табл. 23.7. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по единичному значению сигнала elk. Таблица 23.7 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния С1 с2 сз qi с2 с2 С1 42 с2 С1 Cz Чз сз Cz Сз У1 Уз У2 Выходные сигналы 23.8. Составить алгоритмическую VHDL-модель конечного автомата Мура, функционирование которого задано табл. 23.8. Ввести сигнал elk синхрони- зации, переходы между внутренними состояниями выполнять по переднему фронту сигнала elk.
226 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 23.8 Таблица функционирования конечного автомата Мура Входные сигналы Внутренние состояния Г| Г2 гз Ц| Г| Гз Г| 42 Гз Г2 Гз W3 Wi W2 Выходные сигналы 23.9. Граф (диаграмма) состояний 4-разрядного счетчика дана на рис. 23.1. Составить VHDL-модель счетчика. Рис. 23.1 23.10. Составить VHDL-модель ПЛМ с памятью (рис. 23.2). Рис. 23.2
23/УНОЕ-модели схем с памятью 227 23.11. Составить VHDL-модель автомата с абстрактными состояниями, за- данного графом переходов (рис. 23.3). Рис. 23.3 23.12. На рис. 23.4 дана схема четырехразрядного параллельного регистра на базе асинхронных RS-триггеров. Составить параметризованную (по числу 77- разрядов) VHDL-модель «-разрядного регистра. Сравнить результаты «руч- ного» и компьютерного моделирования для «=3. Рис. 23.4
228 Часть 2. Проектирование логических схем с использованием языка VHDL 23.13. Составить VHDL-модель схемы синхронного суммирующего декад- ного счетчика (рис. 23.5). Рис. 23.5 23.14. Составить VHDL-модель схемы (рис. 23.6) счетчика с параллельным переносом. Провести моделирование. Рис. 23.6 23.15. На рис. 23.7 дана схема четырехразрядного счетчика со сквозным пе- реносом. Составить параметризованную (по числу л-разрядов) VHDL-модель и-разрядного счетчика. Сравнить результаты «ручного» и компьютерного моделирования для и=4.
23. VHDL-модели схем с памятью 229 Рис. 23.7 23.16. Составить VHDL-модель схемы (рис. 23.8) счетчика Джонсона. Про- вести моделирование. DD1 DD2 S с R ТТ < S с R ТТ < DD3 S с R ТТ < DD4 Рис. 23.8 23.17. Составить VHDL-модель схемы (рис. 23.9) счетчика. Провести моде- лирование.
230 Часть 2. Проектирование логических схем с использованием языка VHDL 23.18. Составить VHDL-модель схемы (рис. 23.10) кольцевого счетчика на JK-триггерах. Провести моделирование. Рис. 23.10
24. Нахождение задержек комбинационных схем 24.1. Как определяется задержка комбинационного логического элемента? 24.2. Как определяется задержка триггера (элемента памяти) ? 24.3. Что такое «критический путь» в комбинационной схеме? 24.4. Как определяется задержка комбинационной логической схемы? 24.5. Сформулировать постановку задачи нахождения критических путей в комбинационной логической схеме как задачу на ориентированном графе. Сформулировать алгоритм решения этой задачи. 24.6. Как определяется задержка логической схемы с одним регистром триг- геров (рис. 24.1)? Рис. 24.1 24.7. Как определяется задержка логической схемы с двумя регистрами триггеров (рис. 24.2)? Рис. 24.2
232 Часть 2. Проектирование логических схем с использованием языка VHDL 24.8. Как определяется задержка логической схемы, имеющей триггеры в цепях обратной связи (рис. 24.3)? Рис. 24.3 24.9. Найти критический путь в схеме (рис. 10.12). Задержки элементов при- ведены в табл. 29.2. 24.10. Найти критический путь в схеме (рис. 10.14). Задержки элементов приведены в табл. 29.2. 24.11. Найти критический путь в схеме (рис. 10.16). Задержки элементов приведены в табл. 29.2. 24.12. Найти критический путь в схеме (рис. 10.18). Задержки элементов приведены в табл. 29.2. 24.13. Найти критический путь в схеме (рис. 10.20). Задержки элементов приведены в табл. 29.2. 24.14. Найти критический путь в схеме (рис. 24.4) и соответствующую за- держку выходного сигнала. Задержки элементов схемы приведены в табл. 29.2. Составить структурное описание и путем моделирования на всех набо- рах входных сигналов определить наибольшую задержку схемы. Может ли полученная задержка быть больше задержки критического пути?
24. Нахождение задержек комбинационных схем 233 GND Рис. 24.4 24.15. Найти критический путь в схеме (рис. 24.5) и соответствующую за- держку выходного сигнала. Задержки элементов схемы приведены в табл. 29.2. Составить структурное описание и путем моделирования на всех набо- рах входных сигналов определить наибольшую задержку схемы. Может ли полученная задержка быть больше задержки критического пути? Рис. 24.5
234 Часть 2. Проектирование логических схем с использованием языка VHDL 24.16. Найти критический путь в схеме (рис. 24.6) и соответствующую за- держку выходного сигнала. Задержки элементов схемы приведены в табл. 29.2. Составить структурное описание и путем моделирования на всех набо- рах входных сигналов определить наибольшую задержку схемы. Может ли полученная задержка быть больше задержки критического пути? Рис. 24.6 24.17. Найти критический путь в схеме (рис. 24.7) и соответствующую за- держку выходного сигнала. Задержки элементов схемы приведены в табл. 29.2. Составить структурное описание и путем моделирования на всех набо- рах входных сигналов определить наибольшую задержку схемы. Может ли полученная задержка быть больше задержки критического пути?
24. Нахождение задержек комбинационных схем 235 Рис. 24.7
25. RTL-описания схем 25.1. 1) Создать в синтезаторе, например в синтезаторе Leonardo, библиоте- ку, состоящую только из одного элемента MS(1) - мультиплексора с одним управляющим входом, и провести синтез логической схемы по VHDL- модели двухразрядного сумматора. Синтезируется ли схема? 2) Дополнить библиотеку синтеза константами 0,1 и проведите синтез в базисе {MS( 1), 0, 1}. Синтезируется ли схема? 3) Дополнить библиотеку логическими элементами И, ИЛИ, НЕ и про- ведите синтез в базисе {MS(1), И, ИЛИ, НЕ, 0, 1}. Синтезируется ли схема? 25.2. Графическое задание RTL-представления называют булевой сетью. За- писать VHDL-модель, соответствующую булевой сети (рис. 25.1). Рис. 25.1 25.3. Задано RTL-описание комбинационной схемы case_DNF. library IEEE; use IEEE. STD__LOGIC_1164. al Id- entity case_DNF is port ( xl : IN std_logic ; x2 : IN std_logic ; x3 : IN std_logic ; yl : OUT std_logic ; y2 : OUT std_logic) ; end case_DNF ; architecture BEHAVIOR of case_DNF is signal nxl27, nx3, z4, nx4, nx5, nx8, rl, z5, tl, t2, t3: std_logic ; begin nx3 <= NOT nxl27 ; z4 <= NOT xl ; nx4 <= nx3 AND z4 ;
25. RTL-описания схем 237 nx5 <= NOT x2 ; nx8 <= nx5 AND xl ; y2 <= nx4 OR nx8 ; nxl27 <= NOT x3 ; rl <= NOT xl ; z5 <= NOT x2 ; tl <« rl AND z5 ; t2 <= NOT x3 ; t3 <= rl AND t2 ; yl <« tl OR t3 ; end BEHAVIOR; Изобразить RTL-описание схемы case_DNF графически 1) в виде булевой сети; 2) в виде логической схемы в отечественной нотации (см. табл. 29.1); 3) в виде логической схемы в зарубежной нотации (см. табл. 29.1); Построить таблицу истинности системы функций, реализуемых схемой. 25.4. Задано RTL-описание комбинационной схемы DNF. library IEEE; use IEEE.STD_LOGIC_1164.all; entity DNF is port ( xl : IN std_logic ; x2 : IN std_logic ; x3 : IN std_logic ; yl : OUT std_logic ; у2 : OUT std_logic) ; end DNF ; architecture BEHAVIOR of DNF is signal si, s2, nx3, s3, nx4, nx5, nx8, s5, s4, s6, s7, s8: std_logic ; begin nx3 <= NOT si ; s3 О NOT x2 ; nx4 <= nx3 AND s3 ; nx5 <= NOT xl ; nx8 <= nx3 AND nx5 ; y2 <= nx4 OR nx8 ; si <= NOT x3 ; s5 <= NOT si ; s4 <= NOT x2 ; s6 <« s5 AND s4 ; s7 <- NOT s2 ; s8 <= s5 AND s7 ; yl <= s6 OR s8 ; s2 <« NOT xl ; end BEHAVIOR;
238 Часть 2. Проектирование логических схем с использованием языка VHDL Изобразить RTL-описание схемы DNF графически 1) в виде булевой сети; 2) в виде логической схемы в отечественной нотации (см. табл. 29.1); 3) в виде логической схемы в зарубежной нотации (см. табл. 29.1). Построить таблицу истинности системы функций, реализуемых схемой. 25.5. Изобразить логическую схему, соответствующую RTL-описанию схе- мы circl. Построить таблицу истинности системы функций по RTL- описанию схемы circl. library IEEE; use IEEE.STD_LOGIC_1164.all; entity circl is port ( xl : IN std_logic ; x2 : IN std_logic ; x3 : IN std_logic ; yl : OUT std_logic ; y2 : OUT std_logic) ; end circl; architecture BEHAVIOR of circl is signal z3, z4, hl, zl, nx4, nx5, z5, z2, z6, z7, nx8: std_logic ; begin hl <= NOT x2 ; zl <= NOT z4 ; nx4 <= hl AND zl ; nx5 <= NOT z3 ; y2 <= nx4 OR nx5 ; z3 <= NOT x3 ; z4 <= NOT xl ; z5 <= NOT xl ; z2 <= NOT x2 ; z6 <= z5 AND z2 ; z7 <= NOT x3 ; nx8 <= z5 AND z7 ; yl <= z6 OR nx8 ; end BEHAVIOR; 25.6 . Изобразить логическую схему, соответствующую RTL-описанию схе- мы circ2. Построить таблицу истинности системы функций по RTL- описанию схемы circ2. library IEEE; use IEEE.STD_LOGIC_1164.all; entity circ2 is port (
25. RTL-описания схем 239 xl : IN std_logic ; x2 : IN std_logic ; x3 : IN std__logic ; yl : OUT std_logic ; y2 : OUT std_logic) ; end circ2 ; architecture BEHAVIOR of circ2 is signal w2, w3, nx3, w4, nx4, nx5, nx8, w5, wl, w6, w7, w8: std_logic ; begin w9 <= NOT w2 ; w4 <= NOT x2 ; nx4 <= w9 AND w4 ; nx5 <= NOT xl ; nx8 <= w9 AND nx5 ; y2 <= nx4 OR nx8 ; w2 <= NOT x3 ; w5 <= NOT w2 ; wl <= NOT x2 ; w6 <= w5 AND wl ; w7 <= NOT w3 ; w8 <= w5 AND w7 ; yl <= w6 OR w8 ; w3 <= NOT xl ; end BEHAVIOR; 25.7 . Изобразить логическую схему, соответствующую RTL-описанию схе- мы circ3. Построить таблицу истинности системы функций по RTL- описанию схемы circ3. library IEEE; use IEEE.STD_LOGIC_1164.all; entity circ3 is port ( xl : IN std_logic ; x2 : IN std_logic ; x3 : IN std_logic ; yl : OUT std_logic ; y2 : OUT std_logic) ; end circ3 ; architecture BEHAVIOR of circ3 is signal s2, s3, s4, s8, s5, nx4, nx5, nx8, si, s6, s7, nx6, nx7, nxlO: std_logic ; begin y2 <= s2 ; s8 <= NOT s3 ; s5 <= NOT x3 ;
240 Часть 2. Проектирование логических схем с использованием языка VHDL nx4 <= s8 AND s5 ; nx5 <= NOT x2 ; nx8 <= nx5 AND x3 ; s2 <= nx4 OR nx8 ; s3 <= NOT xl ; si <= NOT x3 ; s6 <= NOT s4 ; s7 <= si AND s6 ; nx6 <= NOT s3 ; nx7 <= NOT s2 ; nxlO <- nx6 AND nx7 ; yl <= s7 OR nxlO ; s4 <= NOT (x2 XOR s2) ; end BEHAVIOR; 25.8 . Задан полный одноразрядный сумматор add2 (табл. 25.1), где s2 - сум- ма, с2 - перенос. Таблица 25.1 cl al a2 c2 s2 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 0 0 0 1 0 1 1 0 0 1 1 0 1 0 1 1 1) Проверить, является ли следующая VHDL-программа entity add2 is port (cl,al, a2: in std_logic; c2,s2: out std_logic); end add2; architecture struct_l of add2 is begin S2 <= ((not cl) and (not al ) and a2 ) or ((not cl) and al and (not a2)) or ( cl and (not al)and (not a2) ) or (al and a2 and cl); c2 <= (al and cl) or (a2 and cl) or (al and a2 ); end struct 1; функциональной моделью сумматора add2. 2) Проверить, является ли эта VHDL-программа функционально экви- валентной следующему RTL-описанию: library IEEE; use IEEE.STD_LOGIC_1164.all;
25. RTL-описания схем 241 entity add2 is port ( cl : IN std_logic ; al : IN std_logic ; a2 : IN std_logic ; c2 : OUT std_logic ; s2 : OUT std_logic) ; end add2 ; architecture struct_l of add2 is signal Nel, Nal, nx4, nx6, nx8, Na2, nxl2, nxl4, nxl6, nxl8, nx20, nx22, nx24, nx28, w90, nx32: std_logic ; begin Nel <= NOT cl ; Nal <= NOT al ; nx4 <= Nel AND Nal ; nx6 <= nx4 AND a2 ; nx8 <= Nel AND al ; Na2 <= NOT a2 ; nxl2 <= nx8 AND Na2 ; nxl4 <= nx6 OR nxl2 ; nxl6 <= cl AND Nal ; nxl8 <= nxl6 AND Na2 ; nx20 <= nxl4 OR nxl8 ; nx22 <= al AND a2 ; nx24 <= nx22 AND cl ; s2 <= nx20 OR nx24 ; nx28 <= al AND cl ; nx30 <= a2 AND cl ; nx32 <= nx28 OR nx30 ; c2 <= nx32 OR nx22 ; end struct 1 ; 25.9 . Проверить, является ли следующая VHDL-программа entity control__loop is port (a: bit_vector (0 to 3); m: out bit_vector (0 to 3)); end control_loop; architecture example of control_loop is begin process (a) variable b: bit; begin b := ’1’; for i in 0 to 3 loop b:= a(3-i) and b; m( i ) <= b; end loop; end process; end example;
242 Часть 2. Проектирование логических схем с использованием языка VHDL функционально эквивалентной следующему RTL-описанию, являющемся промежуточным при синтезе: library IEEE; use IEEE.STD_LOGIC_1164.all; entity control__loop is port ( a : IN std_logic_vector (0 TO 3) ; m : OUT std_logic_vector (0 TO 3)) ; end control_loop ; architecture example of control_loop is signal m_l_EX, m_2_EX: std_logic ; begin m(0) <= a (3) ; m(l) <= m_l_EX ; m(2) <= m_2_EX ; m_l_EX <= a(2) AND a(3) ; m_2_EX <= a(l) AND m_l_EX ; m(3) <= a(0) AND m_2_EX ; end example ; 25.10 . Синтезировать схему одноразрядного сумматора add2 в двух различ- ных библиотеках и получить две логические схемы. 1) Составить структурные описания этих схем и «вручную» получить RTL-описания. Получить таблицы истинности по построенным «вручную» RTL-описаниям и сравните результаты. 2) Получить для обеих схем RTL-описания с помощью синтезатора, например синтезатора Leonardo [5], затем получить таблицы истинности функций, реализуемых схемами, сравнить полученные результаты. 25.11 . Схему в базисе мультиплексоров с одним управляющим входом (рис. 10.3) повторно синтезировать в базисе элементов И, ИЛИ, НЕ, упростить с использованием эквивалентных преобразований формул алгебры логики. Со- ставить RTL-описание на языке VHDL «вручную», получить в синтезаторе Leonardo [5] RTL-описание по структурному описанию. Сравнить результаты. 25.12 . По диаграмме двоичного выбора 1) рис. 6.1; 2) рис. 6.2; 3) рис. 6.3 построить булеву сеть и провести технологическое отображение в базисе ин- верторов, и-входовых элементов И, и-входовых элементов ИЛИ (и=2,3,4). 25.13 . По диаграмме двоичного выбора 1) рис. 6.1; 2) рис. 6.2; 3) рис. 6.3
25. RTL-описания схем 243 провести технологическое отображение в базисе мультиплексоров MS(1), инверторов, 2-входовых элементов И, ИЛИ. 25.14 . По диаграмме двоичного выбора 1) рис. 6.1; 2) рис. 6.2; 3) рис. 6.3; 4) рис. 6.7; провести технологическое отображение в базисе мультиплексоров MS(2) с двумя управляющими входами. 25.15 . Чем отличается RTL-представление, построенное по BDD- представлению булевой функции, от общего случая RTL-представления бу- левой функции? 25.16 . В RTL-описании схемы FSM_struct элемент памяти имеет имя DFFPC. Выделить комбинационную часть схемы и реализовать ее в базисе мультиплексоров MS(1) с одним управляющим входом. Изобразить перепро- ектированную логическую схему FSM_struct. library IEEE; use IEEE.STD_LOGIC_1164.all; entity FSM_struct is port ( x : IN std_logic ; elk : IN std_logic ; у : OUT std_logic_vector (1 TO 2)) ; end FSM_struct ; architecture rtl of FSM_struct is component DFFPC ( port data : in std_logic; port preset : in std_logic; port clear : in std_logic; port elk : in std_logic; port q : out std_logic) end component; signal w, z, nx2, nxO: std_logic ; begin У (1) <= x ; у(2) <= z ; w <= 'O' ; DFFPC (nx2,w,w,elk,nxO) ; z <= NOT nxO ; nx2 <= x OR z ; end rtl ; 25.17 . В RTL-описании схемы FSM элемент памяти имеет имя DFFPC. Вы- делить комбинационную часть схемы и реализовать ее в базисе мультиплек- соров MS(1) с одним управляющим входом. Изобразить перепроектирован- ную логическую схему FSM.
244 Часть 2. Проектирование логических схем с использованием языка VHDL library IEEE; use IEEE.STD_LOGIC_1164.all; entity FSM is port ( z : IN std_logic ; elk : IN std_logic ; w : OUT std_logic_vector (1 DOWNTO 0)) ; end FSM ; architecture rtl of FSM is component DFFPC ( port data : in std_logic; port preset : in std_logic; port clear : in std_logic; port elk : in std_logic; port q : out std_logic) end component; signal t, s, nx4, nxl, nx2, nx3: std_logic ; begin w(l) <= z ; w(0) <= t ; s <= 'O' ; DFFPC (nx4,s,s,elk,t) ; nxl <= NOT t ; nx2 <= NOT z ; nx3 <= NOT t ; nx4 <= nx2 AND nx3 ; end rtl ;
26. Автоматизированный синтез логических схем. VHDL-пакеты 26.1. Назвать основные особенности (характеристики) ПЛИС, выпускаемых фирмой Xilinx. 26.2. Назвать основные отличия FPGA от CPLD, выпускаемых фирмой Xilinx. 26.3. Что такое файл конфигурации (конфигурационная последовательность - bitstream) ПЛИС? 26.4. Назвать основные характеристики микросхем FPGA серий Virtex и Spartan 1) какие семейства микросхем составляют серию? 2) сложность (емкость микросхем); 3) системная производительность; 4) тип и число базовых логических ячеек; 5) число выводов. 26.5. Назвать основные характеристики микросхем CPLD серий ХС9500 и CoolRunner-II 1) какие семейства составляют эту серию? 2) сложность (емкость микросхем); 3) системная производительность; 4) тип и число логических макроячеек; 5) число выводов. 26.6. Что такое трассировочная матрица FPGA? 26.7. Как расшифровывается обозначение ПЛИС семейства Virtex: XCV300-6 PQ 240 С? 26.8. Как расшифровывается обозначение ПЛИС семейства Spartan-3: XC3S50 -4 PQ208 С? 26.9. Как расшифровывается обозначение ПЛИС семейства CoolRunner-II: ХС2С256-7 TQ144 С? 26.10. Для чего предназначен такой элемент FPGA, как LUT? Какую функ- цию он выполняет в составе FPGA? 26.11. Что понимается под slice? Чем этот элемент FPGA отличается от LUT? 26.12. Все ли конструкции VHDL-описания цифровой системы реализуются автоматически при синтезе логическими элементами либо логическими под- схемами? 26.13. Может ли синтезатор построить логическую схему только по архитек- турному телу, без задания entity?
246 Часть 2. Проектирование логических схем с использованием языка VHDL 26.14. Какая схема будет построена синтезатором, если VHDL-код, по кото- рому проводится синтез, содержит только интерфейс (entity), а архитек- турное тело отсутствует? 26.15. Каким элементом (или схемой) будет реализован при синтезе сле- дующий VHDL-код entity addl is port (bl,b2 : in BIT; cl,si : out BIT); end addl; architecture struct_l of addl is begin sl<= ((bl and (not b2)) or ((not bl) and b2)); cl<= bl and b2; end struct_l; 26.16. Может ли быть синтезирована схема для 1) компонента (component), декларированного в пакете; 2) функции (function), декларированной в пакете; 3) процедуры (procedure), декларированной в пакете; 4) конфигурации (без задания требуемых entity и архитектурных тел)? 26.17. Создаются ли при синтезе входные порты для передаваемых парамет- ров (generic) VHDL-модели? 26.18. Каким типом данных после синтеза схемы будет заменен тип 1) Signal а : integer range 0 to 7; 2) Signal b : integer range -4 to +4; 3) constant PERIOD: time:=100ns; 4) constant PI: real:» 3.14159; 5) constant WIDTH: integer:=32; 6) constant DEFAULT: bit_vector(0 to 3):= "0101"; 7) constant a, b, c, d : integer := 5; 8) signal CLK, RESETn: bit; 9) signal COUNTER: integer range 0 to 31; 10) signal R : array (natural range 1 to 5) of bit; 11) signal INSTRUCTION: bit_vector (15 downto 0); 12) signal a, b, c, d: bit :=’0'; 26.19. Пусть сделаны следующие декларации Type fsm_in is (zl, z2, z3); Type fsm_out is (wl, w2, w3, w4); Type month_type is (JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC); Signal z : fsm_in; Signal w : fsm_out; Signal у : month_type; Каким типом данных после синтеза схемы будут заменены сигналы z, w, у?
26. Автоматизированный синтез логических схем. VHDL-пакеты 247 26.20. Пусть сделаны следующие декларации type arrl is array (natural range 1 to 5) of integer range 0 to 3; type arr2 is array (natural range 1 to 5) of integer range -3 to 3 type arr3 is array (natural range 1 to 8) of integer range -8 to 8; Signal Al : arrl; Signal A2 : arr2; x Signal A3 : arr3; Каким типом данных после синтеза схемы будут заменены сигналы Al, А2, АЗ? Написать VHDL-код с использованием типов arrl, arr2, аггЗ и проверить, как осуществляет кодирование данных типов синтезатор. 26.21. Каким типом данных после синтеза будет заменен тип time, опреде- ленный в пакете STANDARD? 26.22. Оператор сложения целых чисел реализуется при синтезе логической схемой? 26.23. Оператор вычитания целых отрицательных чисел реализуется при синтезе логической схемой? 26.24. Как кодируются при синтезе отрицательные целые числа? 26.26. Оператор сложения действительных (вещественных) чисел реализует- ся при синтезе логической схемой? 26.27. Оператор вычитания действительных (вещественных) чисел реализу- ется при синтезе логической схемой? 26.28. Реализуются ли логическими схемами при синтезе арифметические операции над типом real? 26.29. Каким элементом (или схемой) будет реализована при синтезе VHDL- конструкция Signal к, у : bit; у <= х'event; 26.30. Каким элементом (или схемой) будет реализована при синтезе VHDL-конструкция type Year : integer range 0 to 3000; Signal x, у : Year; у <= x'last_value; 26.31. Каким элементом (или схемой) будет реализована при синтезе VHDL- конструкция
248 Часть 2. Проектирование логических схем с использованием языка VHDL Signal elk : bit; Signal у : Boolean; y<= elk’event and clk='l'; 26.32. Каким элементом (или схемой) будет реализована при синтезе VHDL- конструкция Signal elk, х, у : bit; if (clk'event and clk='l') then x <= y; else null; end if; 26.33. Все ли атрибуты сигналов заменяются схемами при синтезе? Указать нереализуемые атрибуты. 26.34. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию вычисления абсолютного значения у <= abs х; языка VHDL. Операнд х имеет тип integer и принимает значение из чи- слового интервала [-4, +4]. Построить таблицу истинности функций схемы. 26.35. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию вычитания у <= а - Ь; языка VHDL. Операнды а, b имеют тип integer и принимают значения из числового интервала [-2, +2]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.36. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию сложения у <= а + Ь; языка VHDL. Операнды а, b имеют тип integer и принимают значения из числового интервала [0, +3]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.37. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию умножения у <= а * Ь;
26. Автоматизированный синтез логических схем. VHDL-пакеты 249 языка VHDL. Операнды a, b имеют тип integer и принимают значения из числового интервала [0, +2]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.38. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию получения целой части частного у <= а / 2; языка VHDL. Операнд а имеет тип integer и принимает значение из чи- слового интервала [0, +8]. По RTL-описанию построить таблицу истинности функций схемы. 26.39. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию возведения в квадрат у <= а ** 2; языка VHDL. Операнд а имеет тип integer и принимает значение из чи- слового интервала [0, +4]. По RTL-описанию построить таблицу истинности функций схемы. Решите ту же задачу для операции у <= а * а; 26.40. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию возведения в куб у <= а ** 3; языка VHDL. Операнд а имеет тип integer и принимает значение из чи- слового интервала [0, +3]. По RTL-описанию построить таблицу истинности функций схемы. 26.41. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию сравнения «меньше» у <= (а < Ь) ; языка VHDL. Операнды а, ь имеют тип integer и принимают значение из числового интервала [0, +3]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.42. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию сравнения «больше» у <= (а > Ь) ;
250 Часть 2. Проектирование логических схем с использованием языка VHDL языка VHDL. Операнды а, ь имеют тип integer и принимают значение из числового интервала [0, +3]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.43. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию сравнения «равно» у <= (а = Ь) ; языка VHDL. Операнды а, Ь имеют тип integer и принимают значение из числового интервала [0, +3]. По RTL-описанию построить таблицу истин- ности функций схемы. 26.44. С помощью синтезатора построить RTL-описание схемы, реализую- щей операцию сравнения «больше или равно» у <= (а > b) or (а = Ь) ; языка VHDL. Операнды а, ь имеют тип integer и принимают значение из числового интервала [0, +3]. По RTL-описанию построить таблицу истинно- сти функций схемы. 26.45. Будет синтезирована логическая схема по VHDL-описанию examl и если нет, то почему? Как будет выглядеть интерфейс схемы? entity examl is port ( xl : in integer; yl, y2 : out integer); ,end examl; architecture beh of examl is shared variable COUNT : Integer; begin pl: process (xl) begin COUNT := 1; yl <= xl + COUNT; end process; p2: process (xl) begin COUNT := 3; у2 <= xl + COUNT; end process; end beh; 26.46. Является ли синтезируемой конструкция? Если нет, то почему? If (clk'event and clk='l' and rst =’0') then
26. Автоматизированный синтез логических схем. VHDL-пакеты 251 26.47. Является ли синтезируемым VHDL-код схемы pro? Если нет, то по- чему? library IEEE; use IEEE.std_logic_l164.all; entity pro is port ( xl, x2, x3, x4 : in std_logic; y, w, v : out std_logic); end pro; architecture beh of pro is begin pO : process begin wait until x3 = ’1'; у <= xl or x2; wait until x3 = '1'; v <= xl and x2; wait until x4 = '1'; w <= xl xor x2; end process; end beh; 26.48. Поведение устройства circl описывается следующей VHDL-про- граммой: entity circl is port ( xl, x2 : in bit_vector (0 to 4); у : out bit_vector (0 to 4)); end circl; architecture beh of circl is constant b : bit_vector (0 to 5) := ”010100"; begin у <= (xl and x2) or b; end beh; Определить число входов и выходов устройства, записать алгебраические представления булевых функций, реализуемых устройством. Записать эти функции на языке VHDL, используя операторы назначения сигнала и логиче- ские операторы. 26.49. Задано поведение устройства XXX, имеющего входы xl, х2 и выход у. entity XXX is port ( xl, x2, contr : in boolean; у : out boolean); end XXX;
252 Часть 2. Проектирование логических схем с использованием языка VHDL architecture beh of XXX is begin process (xl, x2, contr) variable n : boolean; begin if contr then n := xl; else n := x2; end if; у <= n; end process; end beh; Записать представление функции у. Какой логический элемент реализует функцию устройства XXX ? 26.50. Поведение устройства RRR описывается следующей VHDL- программой: entity RRR is port (xl, x2 : in integer range 0 to 122; у : out integer range 0 to 244); end; architecture beh of RRR is begin у <= xl + x2; end; 1) Определить число входных и выходных полюсов логической схемы, полученной после синтеза. 2) Как будет выглядеть интерфейс (entity) устройства RRR после синтеза логической схемы? Записать этот интерфейс и сравнить с результа- том, полученным в синтезаторе. 26.51. Поведение устройства SSS описывается следующей VHDL- программой: entity SSS is port ( xl, x2 : in integer range 0 to 100; у : out integer range -100 to 100); end; architecture beh of SSS is begin у <= xl - x2; end beh; 1) Определить число входных и выходных полюсов логической схемы SSS, полученной после синтеза.
26. Автоматизированный синтез логических схем. VHDL-пакеты 253 2) Как будет выглядеть интерфейс (entity) устройства SSS после синтеза логической схемы? Записать этот интерфейс и сравнить с результа- том, полученным в синтезаторе. 26.52. Поведение устройства WWW описывается следующей VHDL-npo- граммой: entity WWW is port ( xl, x2 : in integer range 0 to 100; у : out integer range 0 to 10000); end; architecture beh of WWW is begin у <= xl * x2; end beh; 1) Определить число входных и выходных полюсов логической схемы WWW, полученной после синтеза. 2) Как будет выглядеть интерфейс (entity) устройства WWW после синтеза логической схемы? Записать этот интерфейс и сравнить с результа- том, полученным в синтезаторе. 26.53. Синтез какого из архитектурных тел Al, А2, АЗ или А4 с помощью синтезатора приведет к схеме большей сложности? entity circ is port ( xl, x2 : in integer range 0 to 15; у : out integer range 0 to 225); end; architecture Al of circ is begin у <= xl * x2; end; architecture A2 of circ is begin p2: process (xl, x2) begin у <= xl * x2; end process p2; end A2; architecture A3 of circ is begin p3: process (xl, x2) variable z : integer range 0 to 225; begin z := xl * x2; У <= z;
254 Часть 2. Проектирование логических схем с использованием языка VHDL end process рЗ; end АЗ; architecture А4 of circ is begin p4: process (xl, x2) variable z : integer range 0 to 1000; begin z := xl * x2; end process p4; end A4; 26.54. Пусть 0 < nx <100, 0<mx <100, 0 < n2 ^100, 0<w2 £100. Для каких значений m\, т2 будут синтезируемыми выражения m2 n2 x m2 /7?! /7?2 w, /И] 4)У4=А:^. TWj Ш2 Как задать требуемую точность вычислений? Написать VHDL-код и прове- рить ответ. 26.55. Пусть типы А, В декларированы следующим образом Туре А : bit_vector (0 to5) ; Туре В : integer range 0 to 63; Написать VHDL-модель 1) vect_int преобразования входных данных типа А в выходные данные типа В; 2) int_vect преобразования входных данных типа В в выходные данные типа А. 3) Можно ли, не проведя синтез, сказать, какой вид будут иметь обе схемы vect int, int_vect ? Провести синтез, чтобы убедиться в пра- вильности ответа. 26.56. Пусть имеется следующая декларация сигнала у Signal у : std_logoc_vector (4 downto 0);
26. Автоматизированный синтез логических схем. VHDL-пакеты 255 Какой схемой будет реализована VHDL-конструкция 1) у <= "01011"; 2) У <= "-WX0Z"; 3) у <= "0HZ1L"; 4) у <= "----- 26.57. Какое основное назначение пакета STD_LOGIC_1164? 26.58. Сколько значений (и какие) имеет тип std_logic, декларированный в пакете STD_LOGIC_1164? Является ли этот тип перечислимым? 26.59. Сколько значений имеет тип std_ulogic, декларированный в паке- те STD_LOGIC_1164? Является ли этот тип перечислимым? 26.60. Используя приведенные в пакете STD_LOGIC_1164 переопределе- ния логических операций, вычислить значение вектора у Signal у : std_logic_vector (0 to 4); 1) у <= "010-0" and "HHLWX"; 2) у <= "ZWXLH" or "01011"; 3) у <= "01Z1L" xor "11010";; 4) У <= "-----" nand "XWZ01"; Какой схемой в каждом из случаев 1) -4) будет представлен вектор у после синтеза? Написать VHDL-код и синтезировать схемы с помощью синтезатора. 26.61. Изучив функции to_bit, to_bitvector пакета STD_LOGIC_1164, указать какие значения получат сигналы r_u, r_uv, r_lv? signal u : std_ulogic:=’Z’; signal r_u : bit; signal uv: std_ulogic_vector(8 downto 0):="UX01ZWLH-"; signal r_uv : to_bit (8 downto 0); signal Iv: std_logic_vector(8 downto 0):="UX01ZWLH-"; signal r_lv : bit_vector(8 downto 0); r_u <= to_bit(u); r_uv <= to_bitvector(uv); r_lv <= to_bitvector(Iv); 26.62. Можно ли уменьшить сложность схемы при синтезе, установив на- чальные значения 1) входных портов; 2) внутренних сигналов; 3) выходных портов.
256 Часть 2. Проектирование логических схем с использованием языка VHDL 26.63. Пусть имеется VHDL-код цифровой системы, содержащий только операторы создания экземпляров компонент (операторы port map) в архи- тектурном теле. Можно ли уменьшить сложность схемы при синтезе, если назначить константы 0, 1 на входные порты некоторых компонент в операто- рах port map? 26.64. Как определяются и как понимаются типы UNSIGNED и SIGNED па- кета NUMERICJSTD? 26.65. Пусть X, Y - числа, задаваемые N-разрядными двоичными векторами. С использованием задания чисел X, Y типом std_logic_vector и функ- ций пакета NUMERIC_STD составить алгоритмическое описание устройства 1) сложения (X + Y=Z); 2) вычитания (X - Y=Z); 3) умножения (X х Y=Z); 4) сравнения (X < Y); 5) сравнения (X >Y); 6) сравнения (X = Y). Определить размерность вектора Z. Отдельно рассмотреть случаи, ко- гда N > 32. 26.66. Составьте описание поведения логических элементов (табл. 26.1) с использованием типа std_logic, логических, арифметических операторов и функций преобразования типов. Задержки элементов опишите с использо- ванием передаваемых параметров (generic). Таблица 26.1 Название элемента Функция MOJ_ 1_3_2 11, a\ + a2 + a3 > 2 [0,e противном случае MOJ_3_2 1, +я2 + a3 > 2 0,e противном случае MOJ_2_4 F = \ fl, + a2 +a3 +a4 > 2 [0,e противном случае NOJ_2_4 [0, a, + a2 + a3 +a4 =2 г = s [l,e противном случае 26.67. С использованием функций пакета NUMERIC_STD составить алго- ритмическое описание неполного сумматора (табл. 26.2)
26. Автоматизированный синтез логических схем. VHDL-пакеты 257 Таблица 26.2 а (1) а (0) ь (1) ь (0) з(2) 3(1) s(0) 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 1 0 0 1 0 0 0 1 1 - — - 0 1 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 1 0 1 1 1 - - - 1 0 0 0 0 1 0 1 0 0 1 0 1 1 1 0 1 0 1 0 0 1 0 1 1 - - - 1 1 0 0 — - - 1 1 0 1 - - - 1 1 1 0 - - - 1 1 1 1 - - - 26.68. С использованием функций пакета NUMERIC_STD составить алго- ритмическое описание неполного умножителя (табл. 26.3) Таблица 26.3 а (1) а(0) Ь(1) ь (0) s(2) S (1) s(0) 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 - - - 0 1 0 0 0 0 0 0 1 0 1 0 0 1 0 1 1 0 0 1 0 0 1 1 1 — — - 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 1 - - - 1 1 0 0 - - - 1 1 0 1 - - - 1 1 1 0 - - - 1 1 1 1 - - - 26.69. Пусть функционирование АЛУ (арифметико-логического устройства), задается табл. 26.4. Пусть входные а, Ь, с порты - это векторы типа std__logic_vector. Пусть а, b имеют п разрядов. Определить размер- ность выходного порта у и составить алгоритмическое описание АЛУ с ис- пользованием функций пакета NUMERIC_STD.
258 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 26.4 Код команды (входной порт с) VHDL-операция (входные порты а, Ь) Операция (выходной порт у) "00” a and b логическое И "01" a or Ь логическое ИЛИ "10" а * Ь арифметическое ум- ножение "11" а + Ь арифметическое сложение 26.70. Задана структурная схема АЛУ_2 (рис. 26.1), где а, Ь - векторы оди- наковой размерности N. С использованием функций пакета NUMERICSTD описать функции подсхем mult (умножитель), add (сумматор), mux (муль- типлексор с управляющим входом с). Функционирование мультиплексора следующее: если с=0, то на выход у передается сигнал с выхода подсхемы add, во всех остальных случаях на выход у передается сигнал с выхода под- схемы mult. Составить структурное описание схемы в целом, провести синтез для случая, когда N=33. mult Рис. 26.1. АЛУ 2 26.71. Используя функции пакета NUMERIC_STD, написать функцию, гене- рирующую к псевдослучайных чисел в диапазоне [0, N]. 26.72. В табл. 10.1 задан шифратор унарного кода. 1) Составить VHDL-модель поведения устройства в виде системы час- тичных функций. Синтезировать схему S1 с помощью синтезатора Leonardo. 2) «Вручную» найти лучшее доопределение частичных функций до полностью определенных, записать VHDL-модель полностью определенных
26. Автоматизированный синтез логических схем. VHDL-пакеты 259 функций, синтезировать схему S2 с помощью синтезатора Leonardo в той же библиотеке синтеза. Сравнить полученную схему S2 со схемой S1, получен- ной в п. 1. Нашел ли синтезатор лучшее доопределение функций? 26.73. Функции дешифратора Z)C(3) даны в табл. 19.1. 1) Составить VHDL-модель дешифратора DC(3). Синтезировать с по- мощью синтезатора схему по составленной модели. 2) Составьте параметризованное описание дешифратора £>С(я). Синте- зируйте схему, задав и=3. Сравнить схемы, полученные в п. 1) и в п. 2). Получился ли одинаковый результат? 26.74. Синтезировать логические схемы неполного сумматора, описанного двумя различными способами Способ 1. Неполный сумматор описывается как система частичных функций (табл. 26.2). Способ 2. Неполный сумматор описывается с применением функций пакета NUMERIC_STD (задача 26.67). Сравнить результаты. 26.75. Синтезировать логические схемы неполного умножителя, описанного двумя различными способами: Способ 1. Неполный умножитель описывается как система частичных функций (табл. 26.3). Способ 2. Неполный умножитель описывается с применением функций пакета NUMERIC_STD (задача 26.68). Сравнить результаты. 26.76* . Сравнить результаты «ручного» и автоматизированного синтеза на примере устройства arithm_l, поведение которого описывается VHDL- программой entity arithm_l is port (xl, x2 : in integer range 0 to 2; у : out integer range 0 to 4); end arithm_l; architecture beh of arithm_l is begin у <= xl * x2; end beh; Указание. Рекомендуемые этапы решения задачи. 1) записать таблицу истинности системы булевых функций, реализуе- мых устройством; 2) по таблице истинности записать систему СДНФ булевых функций и провести оптимизацию, т.е. построить BDD-представление системы функций для выбранной (произвольным образом) перестановки переменных, по кото- рым проводится разложение Шеннона;
260 Часть 2. Проектирование логических схем с использованием языка VHDL 3) перейдя к типам std_logic_vector и записав на языке VHDL BDD-представление, получить RTL-описание; 4) по RTL-описанию построить логическую схему в базисе логических элементов, представленных в табл. 29.1; 5) описать построенную логическую схему на языке VHDL, используя операторы port map; 6) по VHDL-коду получить логическую схему с помощью синтезатора, сохранить полученный результат (netlist); 7) провести моделирование обеих схем («ручной» и синтезированной автоматически) на всех наборах входных переменных; 8) сравнить результаты моделирования, добиться одинакового поведе- ния логических схем, найдя ошибки (если они есть) ручного проектирования. 26.77* . Сравнить результаты «ручного» и автоматизированного синтеза на примере устройства arithm_2, поведение которого описывается VHDL- программой entity arithm_2 is port (xl, x2 : in integer range 0 to 2; у : out integer range 0 to 4); end arithm_l; architecture beh of arithm_2 is begin у <= xl + x2; end beh; Этапы решения приведены в указании к задаче 26.76. 26.78. * Сравнить результаты «ручного» и автоматизированного синтеза на примере устройства 1од_1, поведение которого описывается VHDL-про- граммой entity log_l is port (a: in bit_vector (0 to 3); m: out bit_vector (0 to 3) ) ; end circ; architecture example of log_l is begin process (a) variable b: bit; begin b : = ' 1' ;
26. Автоматизированный синтез логических схем. VHDL-пакеты 261 for i in 0 to 3 loop b:= a (3-i) or b; m( i ) <= b; end loop; end process; end example; Этапы решения приведены в указании к задаче 26.76. Решение задачи можно начать с записи RTL-описания (этап 4), не выполняя оптимизацию (построе- ние BDD). 26.79. Написать VHDL-модель и синтезировать схему устройства для провер- ки равенства двух булевых функций (xj, х2, х3 ), /2 (jq, х2, х3 ), заданных таблицами истинности. Ввод данных является параллельным, интерфейс схе- мы показан на рис. 26.2, где - столбец значений функции в таблице истинности. Выходной сигнал у=1, если (jq,х2, х3)=/2(xj, х2, х3); у=0 - в противном случае. Рис. 26.2 26.80. Написать VHDL-модель и синтезировать схему устройства для про- верки равенства двух булевых функций f\x],...ixn)i /2(xlv..,x,7), задан- ных столбцами значений из таблиц истинности. Ввод данных является па- раллельным, интерфейс схемы показан на рис. 26.3, где - стол- бец значений функции в таблице истинности. Выходной сигнал у=1, если /1(х1,...,хл)=/2(х1,...,хл); у=0 - в противном случае. В качестве переда- ваемых параметров (generic) использовать числа 2Л, и.
262 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 26.3 26.81. Написать VHDL-модель и синтезировать схему устройства для вы- числения конъюнкции (логического произведения) /3(Х|,Х2,Хз)=/1(х1,Х2,Х3)&/2(х1,Х2,Х3) двух булевых функций /1(х1,х25хз)» /2(хн*2’хз)» заданных столбцами значений из таблиц истинности. Ввод данных является параллельным, ин- терфейс схемы показан на рис. 26.4, где <7о,...,сс^ - столбец значений функ- ции в таблице истинности. Рис. 26.4
26. Автоматизированный синтез логических схем. VHDL-пакеты 263 26.82. Написать VHDL-модель и синтезировать схему устройства для про- верки, равна булева функция /(Xj ,...,х,7) константе 1. Ввод данных являет- ся параллельным, интерфейс схемы показан на рис. 26.5, где а0,...,а2Л_1 - столбец значений функции в таблице истинности. Выходной сигнал у=1, если /1(Х|,...,хл)=1; у=0 - в противном случае. В качестве передаваемых пара- метров (generic) использовать числа 2Л, и. CONST т Рис. 26.5 26.83. Написать VHDL-модель и синтезировать схему устройства для про- верки, равна булева функция /(Х1,...,ХЛ) константе 0. Ввод данных являет- ся параллельным, интерфейс схемы показан на рис. 26.5, где а0,...,а2„- столбец значений функции в таблице истинности. Выходной сигнал у=1, если у=0 - в противном случае. В качестве передаваемых пара- метров (generic) использовать числа 2п, п. 26.84. Написать VHDL-модель и синтезировать схему устройства для вы- числения числа 5 конъюнкций в сокращенной ДНФ булевой функции /(Х1,Х2,Хз), заданной столбцом значений из таблицы истинности. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.6, где «0,...,а7 - столбец значений функции /(Х1,х2,Хз) в таблице истинности; (А»Р1 ’ Р\) ~ Двоичный код числа 5.
264 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 26.6 26.85. Написать VHDL-модель и синтезировать схему устройства для вы- числения числа 5 конъюнкций в сокращенной ДНФ булевой функции f{Х|, заданной столбцом значений из таблицы истинности. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.7, где а0,...,а2„ j - столбец значений функции /(х15...,хл) в таблице истинно- сти; - двоичный код числа 5. В качестве передаваемых парамет- ров (generic) использовать числа 2Л, п. Рис. 26.7 26.86. Написать VHDL-модель и синтезировать схему устройства для полу- чения двойственной булевой функции. На вход устройства поступает столбец значений функции /(Х1,...,ХЛ) из таблицы истинности, на выходе - двойст- венная к /(X|,...,xw) функция /*(х1?...,хл). Ввод данных является парал- лельным, интерфейс схемы показан на рис. 26.8, где aQ,...,a2„_1 - столбец
26. Автоматизированный синтез логических схем. VHDL-пакеты 265 значений функции /(Х|,...,ХЯ) в таблице истинности, [3^п- стол- бец значений функции /* (xi,...,xw). В качестве передаваемых параметров (generic) использовать числа 2п, п. Рис. 26.8 26.87* . Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли булева функция /(х15...,хл) самодвойственной. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.9, где ao,...,a2W_j - столбец значений функции /(Х|,...,х„) в таблице истинно- сти. Выходной сигнал у=1, если /(х1?...,х„) - самодвойственна, у=0 , если /(Х1,...,хл) - несамодвойственна. В качестве передаваемых параметров (generic) использовать числа 2п, и. Рис. 26.9
266 Часть 2. Проектирование логических схем с использованием языка VHDL 26.88* . Написать VHDL-модель и синтезировать схему устройства для на- хождения подмножества ScX аргументов функции /*(Х],...,ХЛ), X = {Х|, являющихся симметричными. Ввод данных является парал- лельным, интерфейс схемы показан на рис. 26.10, где выходной сигнал если аргумент xi G S; ^=0, если xz ё 5, л . В качестве передавае- мых параметров (generic) использовать числа 2п, и. Рис. 26.10 26.89. Написать VHDL-модель и синтезировать схему устройства для про- верки выполнения отношения < между булевыми векторами а = (Л|,...,ЛП), b = посту лающими на вход устройства. Вектор а < Ь, если и только если a, <bit / = 1,..., п. Ввод данных является параллельным, интер- фейс схемы показан на рис. 26.11. Выходной сигнал у=1, если выполняется отношение а < Ъ, у=0 - в противном случае. В качестве передаваемого па- раметра (generic) использовать число и. Рис. 26.11
26. Автоматизированный синтез логических схем. VHDL-пакеты 267 26.90* . Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли монотонной булева функция /(Х|,Х2,Хз), заданная таб- лицей истинности. Ввод данных является параллельным, интерфейс схемы показан на рис.26.12, где а0,...,а7 - столбец значений функции в таблице истинности. Выходной сигнал у=1, если /(Х1,х2>хз) ‘ монотонна; у=0 - в противном случае. MON Рис. 26.12 26.91* . Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли монотонной булева функция /(xj, заданная таб- лицей истинности. Ввод данных является параллельным, интерфейс схемы показан на рис.26.13, где - столбец значений функции в таблице истинности. Выходной сигнал у=1, если - монотонна; у=0 - в противном случае. В качестве передаваемых параметров (generic) исполь- 2п , п. У Рис. 26.13
268 Часть 2. Проектирование логических схем с использованием языка VHDL 26.92. Написать VHDL-модель и синтезировать схему устройства для про- верки выполнения отношения ort ортогональности между троичными векто- рами а = & = (^,...,6Л ) поступающими на вход устройства. Бу- дем говорить, что троичные векторы а = , b = ортого- нальны ( a ort b ), если найдется хотя бы одна компонента /е п }, что ait bj определены и не равны. Например, троичные векторы я = (0-10), /) = (-100) ортогональны, так как для i = 3 выполняется условие ортого- нальности: Лз =1, =0. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.14. Кодирование троичных векторов, подаваемых на вход устройства, осу- ществляется следующим образом: 1) на входной полюс а,- подается 1, на полюс а/ подается 0, если и только если компонента вектора а равна 1; 2) на входной полюс а{ подается 0, на полюс а/ подается 1, если и только если компонента а,- вектора а равна 0; 3) на входные полюсы ah ai подается 0, если и только если компонен- та а, вектора а равна «-». Аналогично для вектора Ь. Например, для векторов а = (0 — 10), b = (—100), подаваемые на вход устройства булевы векторы будут следующими (01001001), (00100101). Выходной сигнал у=1, если выполняется отношение a ort Ь\ у=0 - в противном случае. В качестве передаваемого параметра (generic) исполь- зовать число п. Рис. 26.14 26.93. Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли самодвойственной булева функция /(Х1,...,ХЛ), заданная
26. Автоматизированный синтез логических схем. VHDL-пакеты 269 столбцом 6Zq,...,6Z2ZI_1 значений функции в таблице истинности. Ввод значе- ний функции является последовательным, интерфейс схемы показан на рис. 26.15, где е{сг0,...,а2Л_1}. Ввод значений функции осуществляется по единичному значению сигнала rst, последовательно за 2п тактов. В каждом такте очередное значение а, вводится по переднему фронту сигнала elk. Единичное значение сигнала еп разрешает выводить результирующее значе- ние сигнала у. Выходной сигнал у=1, если /(Х1,...,Х„) - самодвойственна; у=0, если /(Х},...,хп) - несамодвойственна. В качестве передаваемых пара- метров (generic) использовать числа 2Л, п . (Xjjf elk rst Л ; SDW 4— en т У Рис. 26.15 26.94. Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли несущественным аргумент xi булевой функции /(Х1,Х2,Хз), заданной таблицей истинности. Ввод данных является парал- лельным, интерфейс схемы показан на рис.26.16, где 6Zq,...,6Z7 - столбец зна- чений функции /(Х1,Х2>хз) в таблице истинности, “ Двоичный код номера i аргумента X/. Выходной сигнал у=1, если аргумент xz- является не- существенным; у=0, если аргумент х,- является существенным.
270 Часть 2. Проектирование логических схем с использованием языка VHDL 26.95. Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли несущественным аргумент х, булевой функции заданной таблицей истинности. Ввод данных является парал- лельным, интерфейс схемы показан на рис. 26.17, где " стол^ец значений функции в таблице истинности, - двоичный код номера i аргумента X/. Выходной сигнал у=1, если аргумент х,- является несущест- венным; у=0, если аргумент X/ является существенным. В качестве переда- ваемых параметров (generic) использовать числа 2”, п. Рис. 26.17 26.96. Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли несущественным аргумент X/ булевой функции /(Х|,...,ХЛ), заданной столбцом значений из таблицы истинности. Выход- ной сигнал у=1, если аргумент X, является несущественным; у=0 если аргу- мент xi является существенным. В качестве передаваемых параметров (ge- neric) использовать числа 2П, п, i. Интерфейс схемы показан на рис. 26.17, однако входные полюсы /7д.,...,Д отсутствуют. Сравнить сложность полученной схемы со сложностью схемы из пре- дыдущей задачи. 26.97. Написать VHDL-модель и синтезировать схему устройства для нахо- ждения несущественных аргументов xz булевой функции /Сч, х2, х3 ), за- данной таблицей истинности. Ввод данных является параллельным, интер- фейс схемы показан на рис. 26.18, где - столбец значений функции
26. Автоматизированный синтез логических схем. VHDL-пакеты 271 в таблице истинности. Выходные сигналы формируются следующим обра- зом: ^/ = 1, если аргумент х7 является несущественным; J>z=0, если аргумент X/ является существенным; /=1,2,3. Рис. 26.18 26.98. Написать VHDL-модель и синтезировать схему устройства для нахо- ждения несущественных аргументов xz- булевой функции /(х15...,х/7), за- данной таблицей истинности. Ввод данных является параллельным, интер- фейс схемы показан на рис. 26.19, где - столбец значений функ- ции в таблице истинности. Выходные сигналы формируются следующим об- разом: У/=1, если аргумент х7- функции /(Х],...,хл) является несуществен- ным; У/=0, если аргумент х7 является существенным; /=!,..., и. В качестве передаваемых параметров (generic) использовать числа 2п, и. Рис. 26.19
272 Часть 2. Проектирование логических схем с использованием языка VHDL 26.99. Написать VHDL-модель и синтезировать схему устройства, осущест- вляющего перемножение (С=АхВ) двух матриц А, В размерности /?хи, элементами которых являются целые положительные числа, выбираемые из множества {0, 1,2, ..., к}. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.20, все элементы Оу, by, Су матриц А, В, С вво- дятся (выводятся) в двоичном коде. В качестве передаваемых параметров (generic) использовать числа к, п. В качестве базиса синтеза использовать FPGA. Построить графики зави- симостей сложности схемы, измеряемой в числе LUT, от параметров пик. Матрица А Матрица В строка 1 строка п строка 1 строка п строка 1 строка п Матрица С Рис. 26.20 26.100. Написать VHDL-модель и синтезировать схему устройства, осуще- ствляющего перемножение (С=АхВ) двух матриц А, В размерности ихи, элементами которых являются целые положительные числа, выбираемые из множества {0, 1,2, ..., к}. Ввод элементов by матриц А, В является по- следовательным. Интерфейс схемы показан на рис. 26.21, все элементы Ду, by, Су матриц А, В, С вводятся (выводятся) в двоичном коде. Ввод значений
26. Автоматизированный синтез логических схем. VHDL-пакеты 273 Яу, by осуществляется по единичному значению сигнала rst, последователь- 2 но за п тактов. В каждом такте очередные значения Яу, by вводятся по пе- реднему фронту сигнала elk. Единичное значение сигнала еп разрешает вы- водить значения Су матрицы С. Вывод осуществляется .последовательно за 2 п тактов. В каждом такте очередное значение Су выводятся по переднему фронту сигнала elk. В качестве передаваемых параметров (generic) ис- пользовать числа к, п, В качестве базиса синтеза использовать FPGA. Построить графики зави- симостей сложности схемы, измеряемой в числе LUT, от параметров пик. Сравнить полученные результаты с результатами решения предыдущей задачи. Сделать выводы. ПАВ Рис. 26.21 26.101. «Магическим» квадратом называется матрица целых положительных чисел, у которой сумма чисел - в каждой строке; - в каждом столбце; - по каждой из диагоналей является одинаковой. Примеры «магических» квадратов приведены в фор- мулировке задачи 21.35. Написать VHDL-модель и синтезировать схему устройства для провер- ки, является ли матрица А размерности п^п «магическим» квадратом. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.22 ris_sin36, все элементы Яу е {0, 1,2, ..., к } матрицы А вводятся в двоичном коде. В качестве передаваемых параметров (generic) использовать числа к, п. В качестве базиса синтеза использовать FPGA. Построить графики зави- симостей сложности схемы, измеряемой в числе LUT, от параметров пик.
274 Часть 2. Проектирование логических схем с использованием языка VHDL Рис. 26.22 26.102. Написать VHDL-модель и синтезировать схему устройства для про- верки, является ли матрица А размерности их и “магическим” квадратом (см. предыдущую задачу). Ввод данных является последовательным, по строкам либо по столбцам матрицы А. Интерфейс схемы на рис. 26.23, эле- менты ад е {0, 1,2, ..., к } матрицы А вводятся в двоичном коде. Ввод зна- чений ад осуществляется по единичному значению сигнала rst, последова- 7 тельно за п тактов. Единичное значение сигнала еп разрешает выводить вы- ходной сигнал у. В качестве передаваемых параметров (generic) исполь- зовать числа к, п. В качестве базиса синтеза использовать FPGA. Построить графики зави- симостей сложности схемы, измеряемой в числе LUT, от параметров п и к. Сравнить полученные результаты с результатами решения предыдущей задачи. Сделать выводы. Рис. 26.23
26. Автоматизированный синтез логических схем. VHDL-пакеты 275 26.103. Написать VHDL-модель и синтезировать схему устройства для на- хождения кратчайшего строчного покрытия булевой матрицы А размерности п х и. Ввод данных является параллельным, интерфейс схемы показан на рис. 26.24. Выходные сигналы формируются следующим образом: У/ = 1, если строка / входит в покрытие; У/=0, если строка i не входит в покрытие; z=l,..., п. В качестве передаваемого параметра (generic) использовать число п. Рис. 26.24 26.104. Написать VHDL-модель и синтезировать схему устройства для на- хождения кратчайшего столбцового покрытия булевой матрицы А размерно- сти п х и. Ввод данных является параллельным, интерфейс схемы является параллельным и показан на рис. 26.25. Выходные сигналы формируются сле- дующим образом: У/=1, если столбец i входит в покрытие; ^=0, если стол- бец i не входит в покрытие; 1=1,..., и. В качестве передаваемого параметра (generic) использовать число п. Рис.26.25
276 Часть 2. Проектирование логических схем с использованием языка VHDL 26.105. Написать VHDL-модель и синтезировать схему устройства для на- хождения кратчайшего строчного покрытия булевой матрицы А размерности п х п. Ввод данных ау является последовательным, интерфейс схемы ока- зан на рис. 26.26. Ввод значений а у осуществляется по единичному значе- нию сигнала rst, последовательно за п тактов. В каждом такте очередная строка матрицы вводится по переднему фронту сигнала elk. Единичное значение сигнала еп разрешает выводить выходные сигналы. Выходные сиг- налы формируются следующим образом: J/=l, если строка / входит в по- крытие; )^/=0, если строка i не входит в покрытие; z=l,..., и. В качестве передаваемого параметра (generic) использовать число п. Рис. 26.26 26.106. Написать VHDL-модель и синтезировать схему устройства для на- хождения кратчайшего столбцового покрытия булевой матрицы А размерно- сти п х п. Ввод данных является последовательным, интерфейс схемы пока- зан на рис. 26.27. Ввод значений ау осуществляется по единичному значению сигнала rst, последовательно за п тактов. В каждом такте очередной столбец матрицы вводится по переднему фронту сигнала elk. Единичное значение сигнала еп разрешает выводить выходные сигналы. Выходные сигналы формируются следующим образом: У/=1, если строка / входит в покрытие; ^=0, если строка i не входит в покрытие; /=1,..., п. В качестве передаваемого пара- метра (generic) использовать число п .
26. Автоматизированный синтез логических схем. VHDL-пакеты 277 Рис. 26.27 26.107. Если формула имеет вид КНФ, то задача нахождения хотя бы одного набора значений переменных, для которого КНФ принимает значение 1 (то- гда говорят, что КНФ выполнима для данного набора), широко известна в ли- тературе как задача выполнимости КНФ. Написать VHDL-модель и синтезировать схему устройства для проверки выполнимости КНФ булевой функции /(х15х2,х3), причем КНФ содержит не более четырех дизъюнктов. Ввод данных является параллельным, интер- фейс схемы показан на рис. 26.28. Выходной сигнал у=1, если КНФ выпол- нима; у=0 , если КНФ невыполнима. Кодирование дизъюнктов dq (#=1,2,3,4), подаваемых на вход устрой- ства, осуществляется следующим образом: для каждой переменной X/ в каж- дом дизъюнкте dq имеется два полюса, соответствующих литералам X/, х/: 1) на входной полюс X/ подается 1, на полюс х/ подается 0, если и только если литерал X, входит дизъюнкт dq; 2) на входной полюс Ху подается 0, на полюс х/ подается 1, если и только если литерал х/ входит дизъюнкт dq; 3) на входные полюсы Ху,х/ подается 0, если и только если ни литерал Ху, ни литерал х/ не входят в дизъюнкт dq. Пример кодирования дизъюнктов КНФ /кнф =d[ &d2 &d3 =(xj vx3)&(xi vx2 vx3)&l приведен в табл. 26.4.
278 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 26.4 dl=xl v хз d2—x\ vx2vxj *1 Х| х2 Х2 *3 хз Xi Х2 Х2 Х3 Хз *1 Х| Х2 Х2 Х3 Хз 1 0 0 0 0 1 0 1 1 0 1 0 1 1 1 1 1 1 КНФ; f(xpx2,x3) Рис. 26.28 26.108. Написать VHDL-модель и синтезировать схему устройства для про- верки выполнимости КНФ булевой функции /(Х],...,хп), причем КНФ со- держит не более 5 дизъюнктов. Ввод данных является параллельным, интер- фейс схемы показан на рис. 26.29. Выходной сигнал у=1, если КНФ выпол- нима; у=0 , если КНФ невыполнима. Кодирование дизъюнктов осуществля- ется так же, как в предыдущей задаче. Рис. 26.29
26. Автоматизированный синтез логических схем. VHDL-пакеты 279 26.109. Написать VHDL-модель и синтезировать схему устройства для вы- числения конъюнкции /3=/1&/2 булевых функций /1(Х|,Х2), /2(Xj,x2), представленных в СДНФ: / =к\ vK'2 vX] vK\, f2 причем СДНФ каждой из функций содержит не более четырех полных эле- ментарных конъюнкций. Ввод данных является параллельным, интерфейс схемы показан на рис.26.30. Кодирование полных элементарных конъюнкций Kj , q=1,2,3,4; J =1,2, подаваемых на входные полюсы (и снимаемых с выходных полюсов) устрой- ства, осуществляется следующим образом: для каждой переменной X, в каж- дой конъюнкции Kj имеется два полюса, соответствующих литералам х,, Xi: 1) на входной полюс X/ подается 1, на полюс X/ подается 0, если и только если литерал X/ входит в конъюнкцию Kj ; 2) на входной полюс X/ подается 0, на полюс х/ подается 1, если и только если литерал х/ входит в конъюнкцию К? ; 3) если конъюнкции нет в СДНФ, то она считается логическим нулем, и на соответствующие входы подаются нули. Пример кодирования конъюнкций СДНФ У1 = v 0 v 0 v к\ =xiX2 VX]X2; /2 = 0 V Л?2 V 0 V = Х\Х2 V XjX2 приведен в табл. 26.5. Таблица 26.5 К'* = Xi х2; К'2 =0; К2 = xix2 К\ = 0; — Х]Х2; Кд = х,х2 к.2 = 0 = Х,Х2 Х1 Х| *2 Х2 *1 Х1 Х2 Х2 *1 XI *2 Х2 xi Xl х2 Х2 0 1 0 1 0 0 0 0 0 0 0 0 1 0 1 0 /2 0 0 0 0 0 1 1 0 0 0 0 0 1 0 1 0
280 Часть 2. Проектирование логических схем с использованием языка VHDL Х|Х|Х2*2 Х|Х1Х2Х2 1Ш-Ш1 Х,Х|Х2Х2 Х!Х!Х2Х2 Рис. 26.30. 26.110. Написать VHDL-модель и синтезировать схему устройства для вы- числения конъюнкции /3=/|(х1,...,х„)&/2(х1,...,х„) булевых функций fX(x\,...,xn), /2(х1,...,х„), представленных в ДНФ: Dx =К! vK\ V...VJC1!, D2 = К? vK% V...V.K2 , причем ДНФ D1 функции у1 содержит не более р} элементарных конъюнкций, а ДНФ D1 1 2 функции f содержит не более р элементарных конъюнкций. Ввод дан- ных является параллельным, интерфейс схемы показан на рис. 26.31. Резуль- тирующая функция /3 должна быть представлена в виде ДНФ D3. Кодиро- вание конъюнкций К, подаваемых на входные полюсы (и снимаемых с вы- ходных полюсов) устройства, осуществляется так же, как и в предыдущей за- даче, с одним уточнением: если литералы xz-, Xj отсутствуют в конъюнкции, то на соответствующие полюсы подаются нули. В качестве передаваемых 12 3 12 параметров (generic) использовать числа п, р , р , р =р х р .
26. Автоматизированный синтез логических схем. VHDL-пакеты 281 Рис. 26.31 26.111. Написать VHDL-модель и синтезировать схему устройства для вы- числения конъюнкции D}&D2 булевых функций /2(х1,...,х„), представленных в ДНФ: Z)1 = К\ v К\ v... v К^\, D2 = К\ v К2 v... v К2^, причем ДНФ D1 функции содержит не бо- лее р элементарных конъюнкций, а ДНФ D функции f содержит не бо- 2 лее р элементарных конъюнкций. Ввод данных является параллельным. Интерфейс схемы показан на рис. 26.32. Кодирование конъюнкций К, пода- ваемых на входные полюсы (и снимаемых с выходных полюсов) устройства осуществляется так же, как и в задаче 26.109, с одним уточнением: если ли- тералы xz-, Xj отсутствуют в конъюнкции, то на соответствующие полюсы подаются нули. Ввод конъюнкций К осуществляется по единичному значению сигнала 1 2 rst последовательно (по переднему фронту синхросигнала elk) за р + р так- 1 12 тов: за первые р тактов вводятся конъюнкции ДНФ D , за следующие р тактов вводятся конъюнкции ДНФ D . Единичное значение сигнала еп раз- 3 решает выводить выходные р конъюнкций результирующей ДНФ
282 Часть 2. Проектирование логических схем с использованием языка VHDL D^ = D^ &.D~ . Вывод очередной конъюнкции ДНФ проводится также по переднему фронту синхросигнала elk. В качестве передаваемых параметров (generic) использовать числа и, р , р . Рис. 26.32 26.112. Написать VHDL-модель и синтезировать схему устройства для про- верки равенства двух ДНФ Z)1, D2 булевых функций J~(Х|,...,хл) соответственно. ДНФ Z)1 представлена троичной матрицей Г1, имеющей 51 строк, ДНФ Z)2 представлена троичной матрицей Г2, 2 имеющей 5 строк. Ввод данных является параллельным. Интерфейс схемы 1 2 показан на рис. 26.33. Выходной сигнал у=1, если D = D ; у=0 - в против- ном случае. Кодирование строк троичных матриц осуществляется следующим обра- зом: для каждой компоненты / вектора имеется два полюса, соответствую- щих литералам X/, х/. Значения сигналов (коды), подаваемых на данные по- люсы формируются так: 1) на входной полюс xz- подается 1, на полюс х/ подается 0, если и только если i -я компонента троичного вектор равна 1; 2) на входной полюс xz подается 0, на полюс X/ подается 1, если и только если i -я компонента троичного вектор равна 0; 3) на входные полюсы xz, х/ подается 0, если и только если / -я компо- нента троичного вектор равна «-».
26. Автоматизированный синтез логических схем. VHDL-пакеты 283 Пример кодирования строки /=(01-0-) троичной матрицы для п=5 пока- зан в табл. 26.6. В качестве передаваемых параметров (generic) использо- вать числа /7, 51, 52. Таблица 26.6 0 1 0 - *1 Х| х2 Х2 *3 Хз х4 Х4 Х5 Х5 0 1 1 0 0 0 0 1 0 0 26.113. Написать VHDL-модель и синтезировать схему устройства для про- верки равенства двух ДНФ D\ D~ булевых функций J1 J (*i,.соответственно. ДНФ D представлена троичной матрицей Т\ 1 2 2 имеющей 5 строк, ДНФ D представлена троичной матрицей Г , имею- 2 щей 5 строк. Ввод данных является последовательным, интерфейс схемы показан на рис. 26.34. Ввод строк матриц Г1, Т2 осуществляется по единичному значению сигнала rst, последовательно (по переднему фронту синхросигнала elk) за 1 2 1 р + р тактов: за первые р тактов вводятся строки / троичной матрицы Г1 2 л V» гг> 2 , за следующие р тактов вводятся строки / троичной матрицы Т . Единичное значение сигнала еп разрешает выводить выходной сигнал у . Выходной сигнал у=1, если D1 = Z)2; j>=0 - в противном случае. Кодиро-
284 Часть 2. Проектирование логических схем с использованием языка VHDL вание строк троичных матриц осуществляется согласно табл. 26.6. В качестве 1 2 передаваемых параметров (generic) использовать числа п, s , s . Рис. 26.34. 26.114. Написать VHDL-модель и синтезировать схему устройства, прове- ряющего, поглощается ли п -компонентный троичный вектор к троичной матрицей Т, имеющей п столбцов и 5 строк. Ввод данных является парал- лельным, интерфейс схемы показан на рис. 26.35. Компоненте / вектора к (и компоненте i строки t троичной матрицы Т) соответствует булева перемен- ная xz-. Кодирование троичного вектора к (и троичной строки t матрицы Т) 2п -компонентным булевым вектором, осуществляется согласно табл. 26.6. Выходной сигнал у =1, если троичный вектор к поглощается матрицей Т; у =0 - в противном случае. В качестве передаваемых параметров (ge- neric) использовать числа п, s. Рис. 26.35.
26. Автоматизированный синтез логических схем. VHDL-пакеты 285 26.115. Написать VHDL-модель и синтезировать схему устройства, прове- ряющего, поглощается ли п -компонентный троичный вектор к троичной матрицей Т, имеющей п столбцов и 5 строк. Ввод данных является после- довательным, интерфейс схемы показан на рис. 26.36. Кодирование троичного вектора к и строк троичной матрицы Т осуществляется согласно табл. 26.6. Ввод вектора к и строк t матрицы Т осуществляется по единичному значе- нию сигнала rst, последовательно (по переднему фронту синхросигнала elk) за 5+1 тактов: в первом такте вводится вектор к, затем за 5 тактов вводятся строки троичной матрицы Т. Единичное значение сигнала еп разрешает вы- водить выходной сигнал у . Выходной сигнал у =1, если троичный вектор к поглощается матрицей Т; у=0 - в противном случае. В качестве передавае- мых параметров (generic) использовать числа п, S. Рис. 26.36. 26.116* . Написать VHDL-модель и синтезировать схему устройства для проверки равенства 1 булевой функции /(х15...,хл), заданной ДНФ D. ДНФ D представляется троичной матрицей Т, имеющей 5 строк и п столб- цов. Ввод данных является параллельным - все строки матрицы Т подаются на вход устройства одновременно (параллельно). Кодирование троичных строк матрицы Т осуществляется согласно табл. 26.6. В качестве передавае- мых параметров (generic) использовать числа и, s. 26.117* . Написать VHDL-программу генерации (в лексикографическом по- рядке) очередной перестановки конечного множества. Входные и выходные данные представить массивом целых чисел - номеров аргументов функции Алгоритм генерации перестановок. Пусть 77 = (^,^2,...,^) - начальная перестановка множества X = {Х1,х2у-хц} аргументов булевой функции f(X\,X2,--.xf1). Получение
286 Часть 2. Проектирование логических схем с использованием языка VHDL последующей перестановки ПС1 из предыдущей перестановки П осуществ- ляется так. Алгоритм генерации перестановки Псл. 1. Справа налево просматривается перестановка П и находится самая правая позиция, в которой 7Г, < . 2. Найдя такую позицию /, ищем лj - такой наименьший элемент, ко- торый расположен справа от л*/ и больший его. 3. Осуществляется транспозиция элементов TTj и 7Tj . 4. Отрезок лп (элементы которого расположены в порядке убы- вания) переворачивается - результатом последнего действия и является пере- становка Псл. Например, пусть имеется перестановка (5, 4, 7, 6, 3, 2, 1) для п = 7. Если просматривать ее справа налево, то 7Tj = 4, = 7. Затем ищется справа от 7Г^ = 4 наименьший элемент, который больше 77 j; этим элементом является я. = 6. Осуществляется транспозиция элементов 7Ti = 4, 71j = 6; получается перестановка (5, 6, 7, 4, 3, 2, 1). После этого отрезок 7ti+\7ГП, равный (7, 4, 3, 2, 1), переворачивается, в результате получается следующая перестанов- ка (5, 6, 7,4, 3,2, 1). 26.118* . Разработать VHDL-модель и синтезировать схему устройства S, позволяющего определить, является ли симметричной заданная полностью определенная булева функция /(xj,х2), подаваемая на вход этого устройства. Булеву функцию задается столбцом ее значений из таблицы ис- тинности; устройство S должно проверять свойство симметричности функ- ции за п\ тактов изменения сигнала синхронизации elk, т.е. в каждом такте устройство должно проверять, не изменилась ли функция после одной пере- становки переменных. Ввод значений функции осуществляется по единич- ному значению сигнала rst. Определить значение числа п, для которого логическая схема устройства реализуется на основе микросхем семейства VIRTEX II PRO фирмы Xilinx [8]. Указание. Использовать описанный в задаче 26.117 алгоритм генера- ции перестановок. 26.119. Написать VHDL-программу для вычисления факториала и! числа и. Входные и выходные порты VHDL-модели должны быть типа std_logic_vector. С помощью синтезатора получить логическую схему в базисе FPGA. Определить значение числа п, для которого схема синтезиру- ется. Составить график увеличения сложности (выражаемой в числе про- граммируемых элементов - LOT) схемы в зависимости от числа п. Наблюда- ется ли факториальный рост сложности схемы?
26. Автоматизированный синтез логических схем. VHDL-пакеты 287 26.120* . Функция Фибоначчи fib определяется следующим образом 0,А7 = 0; fib(n) = = 1; fib(n -1) + fib(n - 2), п > 1 Написать VHDL-программу для вычисления функции Фибоначчи. В ка- честве входных и выходных данных использовать сигналы типа std_logic_vector. С помощью синтезатора получить логические схемы в базисе FPGA, аппаратно реализующие вычисление значений функции Фи- боначчи для /г=2, 3, 4, ..., 10. Определить значение числа и, для которого схема синтезируется и реализуется на одной FPGA выбранного типа. Соста- вить график увеличения сложности (выражаемой в числе программируемых элементов - LUT) схемы в зависимости от числа п. 26.121* . Написать VHDL-программу для приближенного вычисления зна- чения функции F = л/я2 +b2 «тах(((х-0.125х) + 0.5^),х) где х = тах(|а|,\b\), у = min(|a|,|Z>|). В качестве входных и выходных данных использовать сигналы типа std_logic_vector. Для реализации вычислений 0.125х и 0.5у использовать операции сдвига на соответствующее число разрядов. С помощью синтезато- ра получить логические схемы в базисе FPGA для различных значений точ- ности задания чисел х, у. Составить график увеличения сложности (выра- жаемой в числе программируемых элементов - LUT) схемы в зависимости от точности задания чисел х, у. Рассмотреть различные порядки вычислений значения функции F и оп- ределить, влияет ли порядок вычислений на сложность схемы. 26.122* . Умножение чисел А = (<73,б72,)» В = может быть выполнено традиционным образом, так, как показано ниже: X а3 ьз а2 Ь2 «1 множимое множитель а3Ь0 а2 ^0 а{Ь0 й0 60 а3 ^1 а2 Ь\ a\b\ а0 by а2 Ь2 а2 Ь2 щ Ь2 ао Ь2 + а3 ^3 а2 ^3 а\ ^3 а0 ^3 У1 УЬ У5 У4 УЗ У2 У1 Уо произведение
288 Часть 2. Проектирование логических схем с использованием языка VHDL Соответствующая логическая схема (способ 1) показана на рис. 18.6, с той лишь разницей, что на рис. 18.6 перемножаются числа 5 = Л = ('з>Г2>П>'Ь)- 1) Рассмотреть способ 2 организации вычислений для получения произ- ведения Y = (у7,Уб,...,У\,Уо)=Л х 5, приняв во внимание то, что получе- ние чисел А х *bj, с^кЬ^ щ xbh а^хЬ^, /=1,2,3, можно осущест- вить сдвигом числа А на / разрядов влево. 2) Для обоих способов написать соответствующий VHDL-код для умно- жения п-разрядных чисел А, В. 3) Провести синтез, сравнить аппаратурную сложность и задержки схем, получаемых по обоим способам реализации операции умножения для раз- личных значений п. 4) Изучить способ 3 схемной реализации синтезатором операции Y <= А * В; умножения чисел А, В типа natural, взятых из диапазона [0, /г], где Л = ]log2 и[, а через ]б/[ обозначено наименьшее целое число, большее либо равное d. 5) Сравнить способы 1- 3 по сложности получаемых схем и задержке. Сделать выводы.
27. Тестирование и верификация VHDL-моделей 27.1. Есть ли в тестирующей VHDL-программе (в test-bench) описания вход- ных и выходных портов? 27.2. В тестирующей программе могут ли тестироваться описания несколь- ких несвязанных между собой цифровых систем? 27.3. Написать процесс, генерирующий бесконечную последовательность тактов синхросигнала clock, единичное значение сигнала clock должно длиться 60 ns, нулевое значение - 40 ns. 27.4. Написать процесс, генерирующий заданное число к тактов синхросиг- нала clock, единичное значение сигнала clock должно длиться 30 ns, ну- левое значение - 70 ns. 27.5. Написать процесс, циклически генерирующий все 2П наборов булева пространства п переменных. Генерация очередного набора должна осущест- вляться по переднему фронту сигнала clock. Цикличность понимается сле- дующим образом: после генерации набора (11...1) должен генерироваться набор (00...0). 27.6. Написать параметризованную (по числу п) VHDL-программу генера- ции всех двоичных векторов длины и. Программа должна поместить сгене- рированные векторы в текстовый файл в директории проекта. 27.7. Написать VHDL-программу построчного сравнения двух текстовых двоичных (0, 1) файлов. Результат сравнения записать в текстовый файл, z-ый элемент которого равен 1, если соответствующие строки не равны, и 0, если строки равны. 27.8. Функциональная модель комбинационной схемы задана таблицей ис- тинности (табл. 3.5). Составить VHDL-модель по таблице истинности и про- вести синтез схемы. По таблице истинности составить текстовый файл ожи- даемых реакций VHDL-модели схемы. Провести моделирование синтезиро- ванной схемы, сравнить реакции модели и ожидаемые реакции. 1) Если все ожидаемые реакции совпадают с реакциями модели, выдать сообщение «ОК», если же есть несовпадающие реакции, то выдать сообще- ние «NOT». 2) Результат сравнения ожидаемых реакций с реакциями схемы запи- сать в текстовый файл, z-ый элемент которого равен 1, если соответствующие реакции не равны; z-ый элемент которого равен 0, если соответствующие ре- акции равны. 27.9. Функциональная модель комбинационной схемы задана системой ДНФ, заданной в матричной форме (табл. 3.6). Составить VHDL-модель по табл. 3.6 и провести синтез схемы. По табл. 3.6 составить текстовый файл ожидаемых реакций VHDL-модели схемы. Провести моделирование синте- зированной схемы, сравнить реакции модели и ожидаемые реакции.
290 Часть 2. Проектирование логических схем с использованием языка VHDL 1) Если все ожидаемые реакции совпадают с реакциями модели, выдать сообщение «ОК», если же есть несовпадающие реакции, то выдать сообще- ние «NOT». 2) Результат сравнения ожидаемых реакций с реакциями схемы запи- сать в текстовый файл: /-ый элемент которого равен I, если соответствующие реакции не равны; /-ый элемент которого равен 0, если соответствующие реакции равны. 27.10. Составить VHDL-модель четырехразрядного сумматора, используя тип std_logic_vector. Провести синтез схемы в библиотеке логических элементов (табл. 16.1). Провести функциональную верификацию (моделиро- вание на всем пространстве входных тестовых наборов) исходной модели и синтезированной схемы. 27.11. Провести проверку правильности работы синтезатора, сравнив три модели 1) исходную для синтеза VHDL-модель; 2) RTL-модель, являющуюся промежуточной при синтезе; 3) VHDL-модель, являющуюся структурным описанием синтезирован- ной схемы. 27.12. Пусть логическая схема, имеющая п входных полюсов, имеет в своем составе т элементов памяти, например D-триггеров. Будет ли проведена функциональная верификация схемы, если провести моделирование схемы на всех 2п различных комбинациях значений входных сигналов? 27.13. Написать тестирующую программу, осуществляющую сравнение по- ведения двух схем на всем пространстве входных тестовых наборов. Провес- ти моделирование и установить функциональную эквивалентность (неэкви- валентность) этих схем. Функции элементов схем даны в табл. 16.1. 1) схема 1 (рис. 10.12), схема 2 (рис. 10.13); 2) схема 1 (рис. 10.14), схема 2 (рис. 10.15); 3) схема 1 (рис. 10.16), схема 2 (рис. 10.17); 4) схема 1 (рис. 10.18), схема 2 (рис. 10.19); 5) схема 1 (рис. 10.20), схема 2 (рис. 10.21). 27.14. Разработать - структурную VHDL-модель схемы (рис. 8.6) задавая нулевыми задерж- ки логических элементов. Функции элементов схемы даны в табл. 16.1. - VHDL-модель системы булевых функций (табл. 27.1). Написать тестирующую программу, осуществляющую сравнение поведе- ния двух моделей. Провести функциональную верификацию моделей путем моделирования на всем пространстве входных наборов. Установить функ- циональную эквивалентность (неэквивалентность) моделей.
27. Тестирование и верификация VHDL-моделей 291 Таблица 27.1 xl х2 хЗ yl у2 ООО 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 27.15. Разработать - структурную VHDL-модель схемы (рис. 8.5) задавая нулевыми задерж- ки логических элементов. Функции элементов схемы даны в табл. 16.1. - VHDL-модель системы булевых функций (табл. 27.2) Написать тестирующую программу, осуществляющую сравнение поведе- ния двух моделей. Провести функциональную верификацию моделей путем моделирования на всем пространстве входных наборов. Установить функ- циональную эквивалентность (неэквивалентность) моделей. Таблица 27.2 Н х2 хЗ -И у2 ООО 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1 27.16. Разработать - VHDL-модель схемы (рис. 9.4), используя только логические опера- торы и операторы назначения сигнала (RTL-модель). - VHDL-модель системы булевых функций (табл. 27.3) Написать тестирующую программу, осуществляющую сравнение поведения двух моделей. Провести функциональную верификацию моделей путем мо- делирования на всем пространстве входных наборов. Установить функцио- нальную эквивалентность (неэквивалентность) моделей.
292 Часть 2. Проектирование логических схем с использованием языка VHDL Таблица 27.3 xl x2 x3 yl y2 0 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 27.17. Разработать - VHDL-модель схемы (рис. 9.5), используя только логические опера- торы и операторы назначения сигнала (RTL-модель); - VHDL-модель системы булевых функций (табл. 27.4). Написать тестирующую программу, осуществляющую сравнение поведения двух моделей. Провести функциональную верификацию моделей путем мо- делирования на всем пространстве входных наборов. Установить функцио- нальную эквивалентность (неэквивалентность) моделей. Таблица 27.4 xl x2 x3 71 yi 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 27.18. Даны три функции /, g1, g2. Функция f имеет многоуровневое представление: f = XiSj v х,52; 5, = X2S5 v x2s3; s2 = x2s4 ; s3 = хз$6 v x3s7; 5^ = Хз«5|о V Х358 ; = X45g , 5^ X45|q V X^S] ।, Sy X^Sg , = Хд5|2;59 = Х5«У]31 *5)0 = ^5» ~~ V X5, ^12 “ ^5*^14’ 513 ~ *6» ^14 = Хв •
27. Тестирование и верификация VHDL-моделей 293 1 2 Функции g , g заданы в виде ДНФ: g1=XiX4X5X6 VX|X2X3X5 VX1X2X4X5X6J g1 2 = X|X4X5X6 VX2X3X5 VXjX2X4X5X6. 1) Составить VHDL-модели функций /, g1, g2. Провести функцио- нальную верификацию трех моделей путем моделирования на всем про- странстве входных наборов. Указать наборы значений входных переменных, на которых функции /, g1, g2 принимают различные значения. Устано- вить, какие из функций равны. 2) Составить VHDL-модели функций у1=f © g1, у2=f © g2, _y3 4 5=g1 © g2. Провести моделирование. Как по функциям у1, у2, у3 опре- делить, какие из функций f, g1, g2 являются равными? 27.19. Составить структурное описание каждой из схем (рис. 10.2, рис. 10.3). Подать выходные сигналы этих схем на элемент © («сумма по модулю 2») и путем моделирования на всех входных наборах проверить функциональную эквивалентность этих схем. 27.20. Построить проверяющие тесты для нахождения неисправностей (см. задачу 14.16) с помощью моделирования исходной схемы (рис. 14.3) и схемы с константной неисправностью 1) Wj=l; 2) w2=0; 3) w3=l; 4) w4=0; 5) x2=0. 27.21. Построить проверяющие тесты для нахождения неисправностей (см. задачу 14.17) с помощью моделирования исходной схемы (рис. 14.4) и схемы с константной неисправностью 1) и>=1; 2) w=0; 3) v=l; 4) v=0; 5) A=l.
294 Часть 2. Проектирование логических схем с использованием языка VHDL 27.22. Построить проверяющие тесты для нахождения неисправностей (см. задачу 14.18) с помощью моделирования исходной схемы (рис. 14.5) и схемы с константной неисправностью 1) Wj-1; 2) Wj=0; 3) w2=l; 4) w2=0; 5) x3=0. 27.23. Для заданного числа п написать VHDL-модель устройства, генери- рующего таблицу истинности преобразователя и-разрядного двоичного кода в код Грея. Программа должна поместить правую и левую части таблицы ис- тинности в отдельные текстовые файлы в директории проекта. 27.24. Написать процесс, который позволяет осуществлять генерацию псев- дослучайной последовательности чисел, не больших 65536. 27.25. Написать VHDL-программу генерации заданного числа к псевдослу- чайных 31-разрядных двоичных чисел (векторов). Программа должна помес- тить сгенерированные векторы в текстовый файл в директории проекта. Для генерации псевдослучайных чисел использовать мультипликативный датчик двоичных чисел, работающий по рекуррентной формуле Я,+1 =513/?,(mod(231 -1)), 7?о=1.
28. Ответы, указания, решения 1. Булева алгебра. Булевы функции 1.54. Указание. Свести задачу 1.54 к задаче раскраски неориентированного графа. Задача раскраски неориентированного графа G формулируется сле- дующим образом: раскрасить вершины графа G так, чтобы смежные верши- ны графа G были раскрашены в различные цвета, а число различных цветов (красок) было минимально. 1.84. F1 = (х®у)Ф z=(xy vxy)® z = —i(xyvxy)zv(xyvxy)z= =—»(xy) & -n(xy) V xyz v xyz = (x v y)(x v y)z v xyz v xyz= =xxz v xyz v xyz v yyz v xyz v xyz = (xy v xy)z V —i(xy v xy)z = =(xyvxy)zv(xyvxy)z =(x~y)zv-i(x-y)z =(x~y)~z. 1.106. Для частичной булевой функции переменная называется потенциально несущественной, если коэффициенты разложения Шеннона по этой перемен- ной являются неортогональными, т.е. могут быть доопределены до одной и той же частичной функции. Удаление потенциально несущественного аргумента частичной функции может привести к тому, что другие потенциально несуще- ственные аргументы станут существенными. Поэтому для частичных булевых функций употребляется понятие несущественного подмножества аргументов. 1.108. Указание. Вычислить отрицание F, а затем применить принцип двойственности. 1.110* . Обозначим через Dj j ДНФ полностью определенной булевой функ- ции, область единичных значений которой совпадает с множеством 1 1, /=0, 1,...,5 (рис. 28.1). Рис. 28.1
296 28. Ответы, указания, решения Легко видеть, что ДНФ D, являются попарно ортогональными, причем £>.. о v Dj j v Dj 2 v Dj з v Dj 4 v Dj 5 =1. В табл. 28.1 множества I 1 (общие части интервалов а, Ь, с) представлены в виде множеств наборов и ДНФ. Таблица 28.1 п‘ Наборы Dw п° 0000 0010 ОНО 1000 1001 1010 1011 1111 -\(aVb\/c)= = -i(XiX4 V Х2Хз V Х(Х2Х4) п' 0001 ООН 0111 Х|ХгХзХ4 VX,X3X4 п2 0101 Х|Х2ХзХ4 п1 0100 1101 Х1Х2ХзХ4 VXX2X3X4 п* 1100 Х|Х2ХзХ4 п5 1110 XjX2X3X4 2. Логические формулы и схемы 2.8. / = g(g,,g2)=g| vg2; g,=g3&z; g2=y&z; g3=x®y. 3. Равенство формул и функций 3.18. Нет. 4. Функциональная полнота 4.8. Да. 4. 20. Да. 4. 21. Нет. 5. Минимизация булевых функций 5.1. 1)Да. 2) Нет. 3)Да.
28. Ответы, указания, решения 297 6. Оптимизация многоуровневых представлений булевых функций. Синтез каскадных схем 6.19. Диаграмма двоичного выбора для функции, заданной ДНФ D = =XiX4XsX6 v х2хзх5 v XjX2X4X5X6, дана на рис. 28.2. Для удобства дуги, со- ответствующие нулевым значениям переменных, показаны штриховыми ли- ниями, а дуги, соответствующие единичным значениям переменных, - непре- рывными линиями. Рис. 28.2.
298 28. Ответы, указания, решения Многоуровневое представление функции, соответствующее диаграмме дво- ичного выбора (рис. 28.2), имеет вид f = x\s} vXj52; Sj = x255 v x253; s2 = x2s4; s3 = x356 vx357; s4 = x3510 vx3s8; 55 = x459; s6 = х4510 v x4su; s7 = x459; 5g = X45|2 — Xs5|3 , — X$, 5ц — Xs«S]3 V X$, 5j2 -^5^14» •$13 = *6 ’ ^14 = • 6.25. Для удобства дуги, соответствующие нулевым значениям переменных, будем изображать штриховыми линиями, а дуги, соответствующие единич- ным значениям переменных, - непрерывными линиями. Диаграмма двоично- го выбора, соответствующая табл. 6.1, изображена на рис. 28.3. Рис. 28.3.
28. Ответы, указания, решения 299 Диаграмме двоичного выбора, изображенной на рис. 28.3, соответствует многоуровневое представление системы булевых функций, заданных в табл. 6.1: /’ vxj^2; f2=xi<p3vxtip4; f3 = хц/5 vx^6; = X2S1 vx2^2; \p2 = x2<p3; ip4 = X2S1 vx2(p4', ip5 = x2<p3-, ip6 = X2<p5 v x2(p6, (p2 =хзз2 VX351; ср3 = хз23 vx3s4; <р4=х3Я4; (p5 = Х3Л2 vx3s2; <p6 = X3S2; sl = x42*; s2 = X4^3 vx4l2; s4 =хдЛ4; Л1 = X5<y’; Я2 = xsft?1 vx5; Л3 = x5; Л4 - x5e»2;a)1 = x6;co2 = хь. 7. Синтез схем на основе факторизации и декомпозиции 7.23 *. Х(-1)""'С^22'. /=0 7.24 *. Многократное разложение /(*) = f(y,z) = g(hx(y),...,hp(y),z), с минимальным числом р промежуточных функций Л] (у),...,Л/; (j>) сущест- вует тогда и только тогда, когда число к различных коэффициентов разло- жения Шеннона функции f (х) по вектору аргументов у удовлетворяет не- равенствам 2^<к<2р. 7.25 *. Имеется три различных коэффициента (z), /2 (z), /3 (z) разло- жения Шеннона (табл. 28.2). Таблица 28.2 Z /(XX) /001 /ою /он /юо /|01 /по /ill ООО 0 0 0 0 1 0 1 0 001 1 1 0 0 1 1 1 0 010 0 0 1 1 0 0 0 1 011 1 1 0 0 0 1 0 0 100 1 1 0 0 0 1 0 0 101 1 1 1 1 0 1 0 1 110 0 0 0 0 1 0 1 0 111 0 0 0 0 1 0 1 0 /'(Z) /'(£) /2(г) /2(г) /3(г) /'(2) /3(2) /2(г)
300 28. Ответы, указания, решения Минимальное значение р=2. к 7.27 *. Обозначим W1 = Zu(|Jy7). Задача построения обобщенного разложения /(x) = g(^ (/),...,/(/),z) полностью определенной функции f (х) сводится к “параллельному” про- ведению к многократных декомпозиций по двухблочным покрытиям Yl, W' (если пересекаются множества Yl, JV1) либо двухблочным разбиениям (если множества У\ W1 не пересекаются), так как справедливо следующее утвер- ждение. Обобщенное разложение /(х) =g(A* (/),..,ЛЛ(/),х) где hl(yl) = (h[(ylhlp. (у‘У), i = полностью определенной функ- ции f (х) существует тогда и только тогда, когда существует к многократ- ных разложений /(х) = (y').w') f (х) = g2(^(/),.-,Aj2(/),lv2) f (x) = gk(/),...,hkpk (/),/). 8. Моделирование логических схем 8.13. l)x*=(010)->/=(10); 2) x'=(011) -У /=(01); 3) x’=(100)-> /=(11). 8.14. l)x*=(000)-> /=(00); 2)x*=(100)-> /=(00); 3)x’=(110)-» /=(00).
28. Ответы, указания, решения 301 8.15. 1) X* =(001) -Э /=(01); 2)х*=(Ю1)-» /=(01); 3)х*=(110)-> /=(01). 8.16. 1) х*=(001)-> /=(10); 2) х*=(010)-> /=(10); 3) х*=(100)-> /=(10). Рассмотрим решение для случая 1). Введем имена переменным, являющиеся выходами всех элементов схемы (рис. 8.5), при этом выходы элементов, являющиеся выходами схемы, именовать не будем - эти выходы уже имеют имена выходных полюсов схе- мы. В схеме (рис. 8.5) имеется только одна внутренняя переменная, являю- щаяся выходом элемента NO2, обозначим ее через w. Элемент NO2 реализует функцию w = A v В, на входной полюс А подается переменная xl, на вход- ной полюс В - переменная х2, следовательно w = Xj v х2 . Аналогично для других элементов:у1 = мФ х3 ; у1 = х2х3. Таким образом, имеем следующее многоуровневое представление булевых функций, реализуемых схемой: и> = Xj V х2 ; / = мФх3; / =х2х3. Подставим значения 001 для входных переменных: Х|=0; х2=0; х3=1: w = 0 v 0=1; уХ = у1 = 0&0=0. Таким образом, на входном наборе 001 реакцией схемы будет набор 10. Ответ для случая 1) записан в виде: х*=(001) -> /=(10). 8.17. i)x,=(ioi)-> /=(ю); 2)х*=(110)-> /=(01); 3)х*=(111)-> /=(10).
302 28. Ответы, указания, решения 9. Анализ логических схем 9.3. Корни уравнения (9.1) приведены в табл. 28.3. Таблица 28.3 1 1 1w* 1 w> 1 w- Решение (корень) 0 0 0 1 1 - решение 1 0 0 0 1 - 1 решение 2 0 1 0 0 1 - решение 3 0 1 0 0 - 0 решение 4 1 0 1 1 0 - решение 5 1 0 1 1 - 1 решение 6 1 1 1 0 0 - решение 7 1 1 1 0 - 0 решение 8 9.17. Таблица 28.4 xl х2 хЗ У2 ООО 1 0 0 0 1 1 1 0 10’ 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1 9.18. Таблица 28.5 xl х2 хЗ >-1 у2 ООО 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 9.19. Таблица 28.6 xl х2 хЗ .н У2 ООО 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0
28. Ответы, указания, решения 303 9.20. 9.21. 9.22. 9.23. Таблица 28.7 xl х2 хЗ У> у2 ООО 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 1 1 1 1 1 0 0 Таблица 28.8 xl х2 хЗ J'l у2 ООО 1 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 Таблица 28.9 xl х2 хЗ yl У2 ООО 1 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 1 1 0 0 1 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 0 Таблица 28.10 xl х2 хЗ yl У2 ООО 0 0 0 0 1 1 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0
304 28. Ответы, указания, решения 9.24. Таблица 28.11 xl х2 хЗ yl У2 ООО 0 0 0 0 1 0 1 0 1 0 0 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 9.25. Решение. Запишем функции элементов схемы рис. 8.5 (см. решение задачи 8.16): w = Х\ v х2 ; у} = w® х3 ; У2=х2х3. _______ Подставим вместо переменной w ее значение в формулу у1 = и>®Хз , про- ведем преобразования и получим СДНФ функции у}: у1 =(xj VX2)®X3 =(xi%2)® Х3 =X1X2~X3 = (Xj V X2)хз V XJ X2X3 = = XjX3 VX2X3 VXlX2X3 = XjX2X3 V X] X2X3 V XjX2 X3 VX1X2X3 VX1X2X3 = = XjX2X3 V Xj X2X3 v X|X2X3 V Xl X2X3 . ДНФ функции у2 преобразуем в СДНФ: у2 =Х2Х3 = Х1Х2Х3 VXjX2X3, в результате получается приведенная ниже таблица истинности (табл. 28.12). Таблица 28.12 xl х2 хЗ yl У2 ООО 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 0 1 1 0 1 0 1 1 1 0 1
28. Ответы, указания, решения 305 9.26. Таблица 28.13 xl х2 хЗ yl У2 0 0 0 0 1 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 0 0 1 1 1 1 1 0 10. Верификация логических схем 10.20. Схемы (рис. 8.2, рис. 10.7) эквивалентны; области единичных значе- ний функций, реализуемых схемами: 2,4}; М},2={1, 3, 4, 5}. 10.21. Схемы (рис. 8.3, рис. 10.8) эквивалентны; области единичных значе- ний функций, реализуемых схемами: Л/^={1,5}; Л/^2={1, 2, 3, 5}. 10.22. Схемы (рис. 8.4, рис. 10.9) эквивалентны; области единичных значе- ний функций, реализуемых схемами: A/J,i={4}; A/J,2={1, 4, 5, 6}. 10.23. Схемы (рис. 8.5, рис. 10.10) эквивалентны; области единичных значе- ний функций, реализуемых схемами: Л/}>]={1, 2, 4, 6}; A/J,2={3, 7}. 10.24. Схемы (рис. 8.6. рис. 10.11) эквивалентны; области единичных значе- ний функций, реализуемых схемами: Л/},|={1,5}; My2={0t 1,3,6}. 10.25. Схемы (рис. 10.12, рис. 10.13) не эквивалентны. 10.26. Схемы (рис. 10.14, рис. 10.15) не эквивалентны. 10.27. Схемы (рис. 10.16, рис. 10.17) не эквивалентны. 10.28. Схемы (рис. 10.18, рис. 10.19) неэквивалентны. 10.29. Схемы (рис. 10.20, рис. 10.21) не эквивалентны. 10.30. Модели поведения схем 1, 2 эквивалентны. 10.31. Модели поведения схем 1,2 эквивалентны. 10.32. Не эквивалентны. Функция J1 схемы 1 должна иметь вид = = х2хзх4 vx,x3X4, чтобы быть равной у1 табл. 10.18 10.33. Эквивалентны. 10.34. Не эквивалентны. Например, если бы функции схемы 1 имели вид /2 =X1X2X3%4 VX2X3X4, /4 = Х2Х3Х4 vx2X3, то схемы были бы экви- валентны.
306 28. Ответы, указания, решения И. Типовые комбинационные схемы. ПЛМ и ПЗУ 11.32. 5 шин. ♦ 11.65. Любой входной набор х однозначно определяет некоторое множест- во S «срабатывающих» и множество R «не срабатывающих» конъюнкций. Все такие пары множеств S, R зададим столбцами /, матрицы К: единицы столбца V1 отмечают элементы множества 5 , нули столбца V1 от- мечают элементы множества R. Для рассматриваемой системы ДНФ (табл. 11.7) матрица V имеет вид к= v1 V2 V3 V4 V5 v6 v7 V8 V9 V10 0100010000 0010011000 0001000100 0000101000 000000011 0 0110011001 а b с d е Я Каждому столбцу V1 взаимно однозначно соответствует множество л1 наборов х булева пространства которое может быть задано в виде ДНФ (табл. 28.14). Значения функций на классах л1 заданы в * / табл. 28.14. Для всех наборов х из одного класса л значения реализуемых в ПЛМ функций являются одинаковыми. Таблица 28.14 7Г1 -л (ov 6v cv d v ev q ) 0000 7Г2 000-10 010110 0101 -10000 0111 Я* 0-1011 0110 7Г5 110011 1100 Л* 010010 0111 л7 110010 1111 0-0011 0110 /г9 0-0001 0010 000-00 1-01-0 1000-0 010100 0100
28. Ответы, указания, решения 307 11.66. Указание. Провести ортогонализацию интервалов a, ...,q по пере- менным вектора у (воспользоваться решением задачи 1.109) и перекодиро- вать попарно ортогональные интервалы минимальным по длине булевым ко- дом. 11.70. Указание. Воспользоваться рис. 11.1. 11.72. Указание. Свести задачу к минимизации конечных предикатов. 1. Записать по таблице истинности систему совершенных ДНФ трех конечных предикатов с2(у^,у2), С2(У1’У2)> 51 (-У1 >У2)> гДе многозначная переменная у\ соответствует подмножеству {, Z?|}, а многозначная пере- менная у2 соответствует подмножеству {а2> Ь2} булевых переменных. 2. Получить кратчайшие ДНФ предикатов. 3. Реализовать кратчайшие ДНФ предикатов на ПЛМ с двухвходовыми дешифраторами, подавая на первый дешифратор переменные а\, Z?]; на вто- рой дешифратор - переменные а2, Ь2. 12. Триггеры. Синтез автоматов 12.34. Задания автомата (рис. 12.1, рис. 12.2) являются эквивалентными фор- мами задания поведения автомата. 12.36. Задания автомата (рис. 12.3, рис. формами задания поведения автомата. 12.4) являются эквивалентными 15. Язык VHDL 15.204. 1). Правильно. 2) . Неправильно, должно быть: а='1' and b='0' and state = idle; 3) Неправильно, должно быть: а='0' and b='l' and state = idle; 4) Правильно. 15.233. 15.235. 1) D'left; — 30 2) D'right; — 2 3) D'low; — 2 4) D'hight; — 30 5) D'ascending; -- false 1) R'left(l); — 1 2) R'low(l); -- 1 3) R' right (2) ; — 31 4)R'hight(2) ; — 31 5) R'length(1); — 4
308 28. Ответы, указания, решения 6)R'length(2); — 32 7) R'ascending(1); — true 8) R'ascending(2); — false 9) R'range(1); — 1 to 4 10) R'range(2); — 31 downto 0 11) R'reverse_range(1); — 4 downto 1 12) R' reverse_range(2); — 0 to 31 15.236. 1)new’left; — al 2)new'right; — w 3)new'low; — al 4)new'high; — w 5) new'pos(b3); — 5 6)new'val (2); — a2 7)new'succ(w); — bad 8)new'succ(b3); — w 9) new'pred(b2); — a2 10)new'leftof(al); — bad 11) new'leftof (bl); — al 12)new'rightof(w); — bad 13)new'rightof(b3); — w 15.237. sm_op'base'left; — nop sm_op'base'succ(substract); — branch 15.239. Fin := ( (1,3,1), (2,3,1), (3,3,3)); 15.240. Fin := ( (2.3, 3.4, 6.0, 11.0), (2.3, 1.44, 2.88, 11.0), (3.3, 3.7, 6.0, 3.2)); 15.241. W_1 <= CST_A (0) W_2 <= CST_A (3) W_3 <= CST_A (2) B_1 <= CST_A (2) В 2 <= CST A (2) B_3 <= CST_A (0) (2); --"01000010"; (1); — ошибочный оператор (2); — "00000010"; (2) (1); — 1 (2) (2); — 0 (2) (6);— 1 TAB A <= CST A (2); — "("00000000", "00000001", "00000010", "00000011", "00000100");
28. Ответы, указания, решения 309 ТАВ_В <= CST_A (0); -- ("01000000", "01000001", "01000010", "01000011", "01000100"); ТАВ_С (1) <= CST_A (0); — (("00000000", "00000000", ("01000000", "01000001", ("00000000", "00000000", TAB_D (2) <= CST_A (1); — (("00100000", "00100001", ("00000000", "00000000", ("00000000", "00000000", "00000000", "00000000", "00000000"), "01000010", "01000011", "01000100"), "00000000", "00000000", "00000000")); "00100010", "00100011", "00100100"), "00000000", "00000000", "00000000"), "00000000", "00000000", "00000000")); 15.242. Да. 15.244. count := 0; for index in v'range loop if v(index) then count := count + 1; end if; end loop; 15.245. Architecture Random_a of random_nty is Signal Random_s : integer; Begin Pseudo: process Variable Seed_v : integer :=17654; Constant Multiplier_c : integer :=25173; Constant Increment_c : integer :=13849; Constant Modulus__c : integer :=65536; Begin Seed_v := (Multiplier_c * Seed_v + Increment_c ) mod Modulus_c; Random_s <= Seed_v; Wait for 10 ns; End process Pseudo; End Random_a; 16. VHDL-модели логических элементов 16.1. Приведем описание элемента АЗ (табл. 29.2), реализующего функцию у = АВС: Library IEEE; use IEEE.std_logic_1164; entity A3 is
310 28. Ответы, указания, решения generic (gate_delay : Time:= 3 ns); port (А, В, C : in std_logic; Y : out std_logic); end A3; architecture beh of A3 is begin Y <= (A and В and C) after gate_delay; end architecture beh; 16.6. VHDL-описание логического элемента XOR_2 «сложение по модулю 2» без использования логических операторов: entity XOR_2 is port(xl, x2 :in BIT; у :out BIT); end F; architecture F_CASE of XOR_2 is begin process (xl,x2) variable ее : bit_vector (0 to 1); begin ee:=xl&x2; case ее is when ”00" => у <= 'O’; when "11" => у <= ’O'; when others > у <= ’1'; end case; end process; end F_CASE; 16.10. VHDL-модель двухступенчатого D-триггера установкой: library IEEE; use IEEE.std_logic_1164.all; entity FDS_1 is generic ( del : time := 945 ps); port (S: in std_logic; C: in std_logic; D: in std_logic; Q: out std_logic); end FDS_1; architecture beh of FDS_1 is begin p0:process (S,C,D) begin if (S='1‘) then Q <= '1' after del; elsif (Cevent and 0'1') then Q <= D after del;
28. Ответы, указания, решения 311 end if; end process; end beh; 16.12 . Указание. См. ответ к задаче 20.5. 17. VHDL-модели булевых функций 17.12. library ieee; use ieee. std_logic__1164 .all; entity sum_sc is port (a, b : in std_logic_vector (1 downto 0) ; s : out std_logic_vector (2 downto 0)); end; architecture BEHAVIOR of sum_sc is begin s <= ”000’’ when a & b » "0000" else "001” when a & b "0001" else ”010” when a & b t "0010" else "001” when a & b = "0100" else "010" when a & b = "0101" else ”011" when a & b = "0110" else "010" when a & b = "1000" else "011" when a & b = "1001" else ”100’’ when a & b = "1010" else »___”. end BEHAVIOR; 18. Структурные описания логических схем 18.6. Структурное описание схемы circuit 1: entity circuitl is port (Y, С, В, Xl : in bit; A : out bit); end circuitl; architecture struct_l of circuitl is component nao22 port (a, b, c, d : in bit; у : out bit); end component; component nao2 port (a, b, c : in bit; у : out bit); end component;
312 28. Ответы, указания, решения signal W, D: bit; begin m_3: NAO2 port map (b => Y, у => A, c => D, a => W); — ключевое соответствие портов metl: NAO22 port map (a => Y, b => С, с => B, d => Xl, у => W); — ключевое соответствие портов met2: NAO22 port map (Y, В, С, C, D); — позиционное соответствие портов end struct_l; Описания поведения (функциональные описания) логических элементов NAO2,NAO22: entity NA02 is port (a, b, c : in bit; у : out bit); end nao2; architecture beh_l of nao2 is begin у <=(not a ) or (not b and not c) ; end beh_l; entity NAO22 is port (a, b, c, d : in bit; у : out bit); end nao22; architecture beh_2 of nao22 is begin у <=(not a and not b) or (not c and not d); end beh_2; 18.17. Myi = { 3,4,5, 10, 13}; Л/}2={1,7, >5}, Л/}3={8,9, 10, 11, 12, 13, 14, 15}; Л/}4={4,5, 10, 12, 13}. 18.18. М^ = {3, 9, 13}; Л/}2={6, И}, Л/}3={1,8}; A/J4 = {2, 3, 6, 7, 10, 11, 14, 15}. 18.19. Л/}] = {4, 10, 14}; Л/}2 = {2, 3, 7}, Л/}3={1, 8,12,15}; Л/}4={0,4, 5, 8, 9, И, 13}. 18.20. ^={2, 13}; Л/}2={1, 3, 9, И}, Л/}3={7}; Л/}4=0 (/4=0); Л/}5={2,4, 5,6, И, 12}. 18.21. Л/}]={1,4, 5, 8}; Л/}2={1, 3, 9, 11, 15}, Л/}3 = 0 (/3=0); Л/}4={6}; Л/}5={4,6, 11, 12}.
28. Ответы, указания, решения 313 18.22. ^={0, 2, 4, 8, 9}; Л/}2={1, 3, 5,11, 15}; Л/}3=0 (/3=0); A/j,4 = {2, 6, 14}; Л/}5={0,2, 5,6,10, 11, 12, 14}. 18.23. ^={1, 5, 8, 10, 14}; МХу2={2, 8, 12}, Л/}3={0,6}; М\А={0,2, 5, 6, П. 14}. 18.24. Л/}]={0,2, 3,5, 8,10, 13}; Л/}2={1,2,4, 7,8}, Л/}3={5, 6}; Л/}4={0, 2,4, 6, 10,11, 12}. 18.25. Л/}]={3, 5, 9, 13}; Л/}2={1, 2, 7, 15}, Л/}3 = {4, 6, 8, 10, 14}; A/j.4={2,4,5, 10, 12, 13}. 18.26. Mlyi={0, 1, 2, 4, 8, 9, 10}; Л/}2={1, 2, 3, 4, 7, 8, 9, И, 14, 15}, М}3={6, 10, 12, 14}; Л/}4={0, 2, 4, 6, 9, 13}. 18.27. Л/}]={0, 1, 2, 4, 5, 6, 7, 8, 9, 10, 11, 13, 14, 15}; Л/}2 = {8, 14}, Л/}3={1,2,3,5,6, 7, 9, 11, 13, 15}; Л/}4={0, 5, 6, 10, И, 12}. 18.28. ^ = {0,3,4}; М}2={11,14}, М}3={9, И, 14}; Л/}4={2,4,5, 10, 12, 13}. 18.29. Л/}]={0,2,4, 8,10, 13}; Л/}2={4, 8}, Л/}3 = {10}; Л/}4={0,2,4, 5, 10, Н}. 18.30. М}]={3, 5, 8, 10, 13, 14, 15}; Л/}2 = {7, 8, 15}, ЛТ},3 = {13}; Л/}4={5, 12,13}. 18.34. Приведем последовательность комбинаций входных сигналов, позво- ляющих перебрать при моделировании все возможные упорядоченные пары комбинаций входных сигналов. Рассмотрим булево пространство от трех пе- ременных и воспользуемся десятичным представлением двоичных наборов сигналов. Различные комбинации будут представляться числами 0, 1,2, 3, 4, 5, 6, 7. Упорядоченная последовательность комбинаций входных сигналов: <0, 2, 0, 3, 0, 4, 0, 5, 0, 6, 0, 7, 0, 1,3, 1,4, 1,5, 1,6, 1,7, 1, 2, 4, 2, 5, 2, 6, 2, 7, 2, 3,5, 3,6, 3,7,3, 4, 6, 4, 7, 4, 5, 7, 5, 6, 7, 6, 5, 4, 3,2, 1,0>.
314 28. Ответы, указания, решения 20. Описание регулярных схем 20.4. Параметризованное описание N-разрядного сумматора adder_N: entity adder_N is generic (N : natural := 4); port (a,b : in bit_vector (0 to N-l); s : out bit_vector (0 to N-l); c : out bit); end adder_N; architecture str of adder_N is component add2 portfcl, al,a2:in BIT; c2,s2:out BIT); end component; signal c_in : bit_vector (0 to N); begin c_in (0)<='0’; adder: for i in 0 to N-l generate all_bit: add2 port map (cl=>c_in(i),al=>a(i),a2=>b(i), c2=>c_in(i+1),s2=>s(i)); end generate adder; c <= c_in(N); end str; Функциональное описание одноразрядного сумматора add2: entity add2 is port (cl,al, a2: in BIT; c2,s2: out BIT); end add2; architecture beh_l of add2 is begin s2 <= ((not cl) and (not al ) and a2 ) or ((not cl) and al and (not a2)) or ( cl and (not al)and (not a2) ) or (al and a2 and cl); c2 <= (al and cl) or (a2 and cl) or (al and a2 ); end beh_l; 20.5. Указание. Ниже приведен пример VHDL-описания для регистра shift, состоящего из восьми триггеров (N=8). Введите параметр (generic) N и соз- дайте параметризованное описание (для произвольного числа N триггеров). entity SHIFT is port ( RSTn, CLK, SI : in bit; SO : out bit); end SHIFT; architecture RTL of SHIFT is component DFF
28. Ответы, указания, решения 315 port ( RSTn, CLK, D : in bit; Q : out bit); end component; signal T : bit_vector(8 downto 0);— декларация сигнала T begin T(8) <= SI; SO <= T(0); gO : for i in 7 downto 0 generate allbit : DFF port map (RSTn => RSTn, CLK => CLK, D => T(i+1), Q => T(i)); end generate; end RTL; Описание поведения D-триггера dff, входящего в состав регистра shift: entity DFF is port ( RSTn, CLK, D : in bit; Q : out bit); end DFF; architecture RTL of DFF is begin process (RSTn, CLK) begin if (RSTn = ’O’) then Q <= 'O'; elsif (CLK'event and CLK = '1') then Q <= D; end if; end process; end RTL; 20.25. Схема сложения/вычитания. 23. VHDL-модели схем с памятью 23.1. VHDL-модель конечного автомата Мили, заданного табл. 23.1: package w__vls is type fsm_in_type is (zl, z2); type fsm_out_type is (wl, w2, w3, w4, w5); end vv__vls; package body vv_vls is end vv_vls; Library work; use work.vv_vls.all; entity FSM_A is port (z : in fsm_in_type;
316 28. Ответы, указания, решения elk : in bit; w : out fsm_out_type); end FSM_A; architecture rtl_a of fsm_a is type T_state is (31,32,33,34); signal NEXT_state : T_state; signal state : T_state; begin NS : process (state, z) begin case state is when al => if (z=zl) then NEXT_state <= a2; w <= wl; elsif (z=z2) then NEXT_state <= a4; w <= w5; end if; when a2 => if (z=zl) then NEXT_state <= a2; w <= wl; elsif (z=z2) then NEXT_state <= a3; w <= w3; end if; when a3 => if (z=zl) then NEXT_state <« al; w <* w2; elsif (z=z2) then NEXT_state <= a4; w <= w4; end if; when a4 => if (z=zl) then NEXT_state <= al; w <= w4; elsif (z=z2) then NEXT_state <= a3; w <= w5; end if; end case; end process; REG : process(elk) begin if elk = '1' then state <= NEXT_state; end if; end process; end rtl_a; 25. RTL-описания схем 25.5. Таблица 28.15 xl x2 x3 >-1 У2 0 0 0 1 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 1 1 1 0 1
28. Ответы, указания, решения 317 25.6. Таблица 28.16 xl х2 хЗ /1 У2 ООО 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 1 1 0 0 0 0 1 0 1 1 1 1 1 0 0 0 1 1 1 1 0 25.7. Таблица 28.17 xl х2 хЗ yl У2 ООО 0 0 0 0 1 0 1 0 1 0 1 0 0 1 1 0 0 1 0 0 1 1 1 0 1 0 1 1 1 0 0 1 1 1 1 1 0 26. Автоматизированный синтез логических схем. VHDL-пакеты 26.34. Таблица 28.18 X У 0000 ООО 0001 001 0010 010 ООН 011 0100 100 0101 101 оно но 0111 111 1000 ООО 1001 111 1010 но 1011 101 1100 100 1101 011 1110 010 1111 001
318 28. Ответы, указания, решения 26.37. Таблица 28.19 a b У 1- 10 100 10 1- 100 1- 01 010 -1 10 010 10 -1 010 01 1 - 010 -1 -1 001 26.38. library IEEE; use IEEE.STD_LOGIC_1164.all; entity z_26_38 is port ( a : IN std_logic_vector (3 DOWNTO 0) ; у : OUT std_logic_vector (2 DOWNTO 0)) ; end z_26_38 ; architecture functional of z_26_38 is begin y(2) <= a(3) ; у (1) <= a(2) ; y(0) <= a(l) ; end functional ; Таблица 28.20 a У 0000 000 0001 000 0010 001 0011 001 0100 010 0101 010 0110 Oil 0111 Oil 1000 100 1001 100 1010 101 1011 101 1100 110 1101 110 1110 111 1111 111
28. Ответы, указания, решения 319 26.38. Операция возведения в квадрат не является синтезируемой - синтеза- тор схему не строит. Для операции у <= а * а; табл. 28.19 является табли- цей истинности Таблица 28.21 a У 000 001 010 Oil 100 101 110 111 000000 000001 000100 001001 010000 011001 100100 110001 26.40. Операция возведения в куб не является синтезируемой - синтезатор схему не строит. 26,47. Не синтезируемый VHDL-код. Условия (хЗ = '1’), (х4 = ’1') ожидания должны быть одинаковыми. 26.71. Указание. Воспользуйтесь мультипликативным датчиком генерации случайных чисел. 26.103. Указание. Рекомендуется реализовать следующий приближенный алгоритм нахождения строчного покрытия булевой матрицы А. 1. Найти в матрице А столбец у, в котором содержится минимальное число единиц. 2. Среди строк матрицы А, содержащих единицу в столбце j, найти строку i, содержащую максимальное число единиц. Зачислить строку / в по- крытие, обнулить покрытые столбцы матрицы А, обнулить строку /. 3. Повторять шаги 1, 2 до тех пор, пока матрица А не станет нулевой. 27. Тестирование и верификация VHDL-моделей 27.16. Модели не эквивалентны по поведению. 27.17. Модели эквивалентны по поведению. 27.18. Функция g1 не равна функции /, функция g~ равна функции /. 27.23. Указание. Использовать функцию преобразования (л-1 )-разрядного ко- да Грея в я-разрядный кода Грея. 27.24. Architecture Random_a of random_nty is Signal Random_s : integer; Begin Pseudo: process
320 28. Ответы, указания, решения Variable Seed_v Constant Multiplier_c Constant Increment_c Constant Modulus_c : integer :=17654; : integer :=25173; : integer :=13849; : integer :=65536; Begin Seed_v : = (Multiplier_c + Seed_v + Increment_c ) mod Modulus_c; Random_s <= Seed_v; Wait for 10 ns; End process Pseudo; End Random a;
29. Приложение В табл. 29.1 заданы обозначения логических элементов, используемые в отечественной и зарубежной литературе. Таблица 29.1 Логическая операция Логический элемент Отечественная литература Зарубежная литература Отрицание, НЕ (1) D- —£>ю— Дизъюнкция, ИЛИ (v) 1 — Конъюнкция, И (&, л) & — 2] И-НЕ 3- 2] ^о- ИЛИ-НЕ D- Сложение по mod 2, (®) =1 ^j~^>— Эквивалентность (~) — = ДГ>>-
322 29. Приложение Таблица 29.2 Имя элемента Функция элемента Задержка (ns) Площадь (число транзи- сторов) GND у=0 1 1 VCC у = 1 1 1 N у = А 1 2 А2 у - АВ 2 4 АЗ у- АВС 3 5 А4 у = ABCD 4 6 А6 у = ABCDEF 6 10 А8 у = ABCDEFGH 8 12 ЕХ2 у — ABv АВ 5 7 МХ2 y=AVvBV 3 8 NA2 у = ~АВ 2 3 NA3 у = АВС 3 4 NA3O2 у = АВ(С’ v D) 4 5 NA4 у = ABCD 5 5 NAO2 y = A(BvC) 3 4 NAO22 y = (Av B)(Cv D) 3 5 NAO3 у = A(Bv Cv D) 5 5 NAOA2 y = A(Bv(CD\) 4 5 NEX2 у = AB v AB 5 7 NMX2 y = (AvF)(BvF) 6 6 NMX4 у = AFiV2 vBViF2 vCF,F2 vDF,F2 8 15 NO2 y = Av В 3 3 NO3 у = A v В v С 4 4 NO3A2 у = A v В v DC 5 5 NO4 у =AvBvCvD 5 5 NOA2 y=AvBC 3 4 NOA22 у = ABv CD 4 5 NOA3 y — Av BCD 5 5 NOAO2 y= Av B(C v D) 4 5 02 y= Av В 2 4 03 у= AvBvC 3 5 04 у = Av BvCv D 4 6 06 y=AvBvCvDvEvF 6 10 08 у =AvBvCvDvEvFvGvH 8 12
29. Приложение 323 Таблица 29.3 Название элемента Функция INVERTOR F = a AND2 F = OjOj OR2 F = ax v a2 M0D_2 F = at @a2 EQUAL_2 F = a, ~a2 ZAPRET_2 F = axa2 NOR_2 F = ata2 OR_3 F = Oj v a2v a3 XOR_3 F = aia2a3 v O2a3 v аха2аз NOR_3 F = axa2a3 ZAPRET_1_3 F = a\a2a3 ZAPRET_2_3 F = ai O2a3 MORETHAN_3 F = < 1, a\ +a2 +a3 > 2 0,e противном случае MORETHAN_3_2 F = < fl, ax + a-, + a3 > 2 [0,ff противном случае MOD_3 F = at Ф a2 ® a3 OR_4 F = v a2v a3v aA MOD_4 F = ax® a2® a3® aA NMOD_4 F = ax® a2® a3® aA MORETHAN_4 F = < fl, a, +a2 +я3 +a4 > 2 [0,e противном случае NOR-2,4 F = < [О, ax +a2 +a3 + aA = 2 [l,e противном случае EQUAL_2_4 F = 11, ai = аг = a3 = aA [0,e противном случае OR_5 F = ax v a2 v a3 v aA v a5 NOR_5 F = Oj v a2 v a3v a4 v a5 ZAPRET_4_5 F = a\a2Q3a4a5 EQUAL_2_6 F = 1 1, a\ = аг = аз = 04 = a5 = a6 0,e противном случае EQUAL_3_6 F=J 1, a\ = 02 = аз = aA = a5 = a6 0,e противном случае EQUAL_2_8 F = 1, ai =02 = аз = й4 = as = Об = a7 = a№ ^0,в противном случае
ЛИТЕРАТУРА 1. Бабак В. П., Корченко А. Г., Тимошенко Н. П., Филоненко С. Ф. VHDL: Справочное пособие по основам языка. М.: Издательский дом «Додэка- XXI», 2008. 224 с. 2. Баранов С. И., Скляров В. А. Цифровые устройства на программируемых БИС с матричной структурой. М.: Радио и связь, 1986. 279 с. 3. Бибило П. Н. Основы языка VHDL. Изд. 3-е, доп. М.: Издательство ЛКИ/ URSS, 2007. 328 с. 4. Бибило П. Н. Синтез логических схем с использованием языка VHDL. М.: Солон-Р, 2002. 384 с. 5. Бибило П. Н. Системы проектирования интегральных схем на основе языка VHDL. StateCAD, ModelSim, LeonardoSpectrum. M.: СОЛОН-Пресс, 2005.384 с. 6. Закревский А. Д. Параллельные алгоритмы логического управления. Изд. 2-е. М.: URSS, 2003. 200 с. 7. Закревский А. Д., Поттосин Ю. В., Черемисинова Л. Д. Логические основы проектирования дискретных устройств. М.: Физматлит, 2007. 589 с. 8. Кузелин О. М., Кнышев Д. А., Зотов Ю. В. Современные семейства ПЛИС фирмы Xilinx. Справочное пособие. М.: Горячая линия — Телеком, 2004. 440 с. 9. Мышляева И. М. Цифровая схемотехника. М.: Изд. центр «Академия», 2005. 400 с. 10. Суворова Е. А., Шейнин Ю. Е. Проектирование цифровых систем на VHDL. СПб.: БХВ-Петербург, 2003. 576 с. 11. УэйкерлиДж. Ф. Проектирование цифровых устройств. Т. 1. М.: Пост- маркет, 2002. 544 с. 12. УэйкерлиДж. Ф. Проектирование цифровых устройств. Т. 2. М.: Пост- маркет, 2002. 528 с. 13. Ashenden Р. J.y Lewis J. The Designer’s Guide to VHDL. Third Edition. Morgan Kaufmann Publishers, 2008. 909 p. 14. Chu P. P. RLT Hardware Design using VHDL. Coding for Efficiency, Portability and Scalability. Wiley-Interscience, 2006. 669 p. 15. Naylor D., Jones S. VHDL: A Logic Synthesis Approach. Charman & Hall, 1997. 339 p. 16. Perry D. L. VHDL: Programming by Example. Fourth Edition. McCraw-Hill, 2002. 476 p.
_ — - •-• URSS.ru co co URSS UWSS.ru UHSS.ru UBSS.ru UHSS.ru UWSS.ru URSS-ГИ Другие книги нашего издательства ж co co и и co 55 co GO w Логика Гладкий А. В. Введение в современную логику. Сидоренко Е.А. Логика. Парадоксы. Возможные миры. Смирнов В. А. Логические методы анализа научного знания. Шалак В. И. (ред.) Логико-философские труды В. А. Смирнова. Колмогоров А. Н., Драгалин А. Г. Математическая логика. Драгалин А. Г. Конструктивная теория доказательств и нестандартный анализ. Перминов В. Я. Развитие представлений о надежности математического доказательства. Петров Ю. А. Логические проблемы абстракций бесконечности и осуществимости. Карпенко А. С. Логики Лукасевича и простые числа. Карпенко А. С. Фатализм и случайность будущего: Логический анализ. Бежанишвили М. Н. Логика модальностей знания и мнения. Бахтияров К. И. Логика с точки зрения информатики. Финн В. К. (ред.) Автоматическое порождение гипотез в интеллектуальных системах. Финн В. К (ред.) Многозначные логики и их применения. В 2 т. Аншаков О. М. (ред.) ДСМ-метод автоматического порождения гипотез. Абачиев С. К. Традиционная лотка в современном освещении. Серия «Физико-математическое наследие: математика (основания математики и логика)» Клини С. Введение в метаматематику. Клини С. Математическая логика. Чёрч А. Введение в математическую логику. Гудстейн Р.Л. Математическая логика. Френкель А. А., Бар-Хиллел И. Основания теории множеств. Пойа Д. Математика и правдоподобные рассуждения. Лебег А. Об измерении величин. Бурбаки Н. Теория множеств. Лакатос И. Доказательства и опровержения: Как доказываются теоремы. Нагель Э., Ньюмен Дж. Р. Теорема Гёделя. Гильберт Д., Аккерман В. Основы теоретической логики. Серия «Науки об искусственном» Нейман Дж. фон. Теория самовоспроизводящихся автоматов. Дрейфус X. Чего не могут вычислительные машины: Критика искусственного разума. Финн В. К. Интеллектуальные системы и общество. Редько В. Г. (ред.) От моделей поведения к искусственному интеллекту. Саймон Г. Науки об искусственном. Гаазе-Рапопорт М. Г, Поспелов Д. А. От амебы до робота: модели поведения. Попов Э. В. Общение с ЭВМ на естественном языке. Арбиб М. Метафорический мозг. Шамис А. Л. Поведение, восприятие, мышление. Варшавский В. И., Поспелов Д. А. Оркестр играет без дирижера: Размышление об эволюции некоторых технических систем и управлении ими. URSS.ru URSS.ru URSS.ru URSS.ru
URSS.ru URSS.ru URSS.ru I сл и Другие книги нашего издательства: Математическое моделирование Тарасевич Ю. Ю. Математическое и компьютерное моделирование. Тарасевич Ю. Ю. Информационные технологии в математике. Тарасевич Ю. Ю. Перколяция: теория, приложения, алгоритмы. URSS с/э С/Э w Мышкис А.Д. Элементы теории математических моделей. Плохотников К. Э. Математическое моделирование и вычислительный эксперимент. Морозов В. В. и др. Исследование операций в задачах и упражнениях. Сухарев А. Г. Минимаксные алгоритмы в задачах численного анализа. Оптимизация Софиева Ю. Н., Цирлин А. М. Введение в задачи и методы условной оптимизации. Галеев Э. М. Оптимизация: теория, примеры, задачи. Ковалев М. М. Дискретная оптимизация (целочисленное программирование). Ковалев М. М. Матроиды в дискретной оптимизиции. Балакришнан А. Введение в теорию оптимизации в гильбертовом пространстве. Бондаренко В. А., Максименко А. Н. Геометрические конструкции и сложность в комбинаторной оптимизации. Теория игр Шикин Е. Я. От игр к играм. Математическое введение. Оуэн Г. Теория игр. Жуковский В. И., Жуковская Л. В. Риск в многокритериальных системах. Жуковский В. И. Кооперативные игры при неопределенности и их приложения. Смольяков Э. Р. Теория антагонизмов и дифференциальные игры. Смольяков Э. Р. Теория конфликтных равновесий. Теория графов Харари Ф. Теория графов. Оре О. Цзафы и их применение. Оре О. Теория графов. Березина Л. Ю. Графы и их применение. Емеличев В. А., Мельников О. И. и др. Лекции по теории графов. Мельников О. И. Незнайка в стране графов. Мельников О. И. Теория графов в занимательных задачах. Мельников О. И. Обучение дискретной математике. Родионов В. В. Методы четырехцветной раскраски вершин плоских графов. Прикладная лингвистика Хомский И., Миллер Дж. Введение в формальный анализ естественных языков. Гладкий А. В. Синтаксические структуры естественного языка. Потапова Р. К. Речь: коммуникация, информация, кибернетика. Потапова Р. К. Тайны современного Кентавра. Речевое взаимодействие. Потапова Р. К. Новые информационные технологии и лингвистика. М Потапов В. В. Динамика и статика речевого ритма. gQ Венцов А. В., Касевич В. Б. Проблемы восприятия речи. Q* Раскин В. К теории языковых подсистем. SURSS.ru URSS.ru URSS.ru URSS.ru
URSS.ru URSS.ru URSS.ru URSS.n Г—— " ' Другие книги нашего издательства: Серия «Синергетика: от прошлого к будущему» Пенроуз Р. НОВЫЙ УМ КОРОЛЯ. О компьютерах, мышлении и законах физики. Пер. с англ. URSS Майнцер К. Сложносистемное мышление: Материя, разум, человечество. Новый синтез. Пер. с англ. Хакен Г. Информация и самоорганизация. Пер. с англ. Малинецкий Г. Г. Математические основы синергетики. Малинецкий Г. Г., Потапов А. Б. Нелинейная динамика и хаос: основные понятия. Малинецкий Г. Г., Потапов А. Б., Подлазов А. В. Нелинейная динамика. Малинецкий Г. Г. (ред.) Будущее России в зеркале синергетики. Малинецкий Г. Г. (ред.) Синергетика: Исследования и технологии. Редько В. Г. Эволюция, нейронные сети, интеллект. Чернавский Д. С. Синергетика и информация (динамическая теория информации). Климонтович Ю. Л. Турбулентное движение и структура хаоса. Трубецков Д. И. Введение в синергетику. В 2 кн.: Колебания и волны; Хаос и структуры. Арнольд В. И. Теория катастроф. Быков В. И. Моделирование критических явлений в химической кинетике. Безручко Б. П. и др. Путь в синергетику. Экскурс в десяти лекциях. Данилов Ю.А. Лекции по нелинейной динамике. Элементарное введение. Князева Е. Н., Курдюмов С. П. Основания синергетики. Кн. 1,2. Анищенко В. С. Знакомство с нелинейной динамикой. Анищенко В. С. Сложные колебания в простых системах. Олемской А. И. Синергетика сложных систем: Феноменология и статистическим теория. Белецкий В. В. Очерки о движении космических тел. Тюкин И.Ю., Терехов В. А. Адаптация в нелинейных динамических системах. Баранцев Р. Г. Синергетика в современном естествознании. Баранцев Р. Г. и др. Асимптотическая математика и синергетика. Пригожин И., Стенгере И. Время. Хаос. Квант. К решению парадокса времени. Пригожин И., Стенгере И. Порядок из хаоса. Новый диалог человека с природой. Пригожин И., Николис Г. Познание сложного. Введение. Пригожин И., Гленсдорф П. Термодинамическая теория структуры, устойчивости и флуктуаций. Суздалев И. П. Нанотехнология: физико-химия нанокластеров, наноструктур и наноматериалов. Тел./факс: (499) 135-42-46, (499) 135-42-16, E-mail: URSS@URSS.ru http://URSS.ru Наши книги можно приобрести в магазинах: «Библио-Глобус» (и. Лубянка, ул. Мясницкая, 6. Тел. (495) 625-2457) «Московский дом книги» (н. Арбатская, ул. Новый Арбат, 8. Тел. (495) 203-8242) «Молодая гвардия» (и. Полянка, ул. Б. Полянка, 28. Тел. (495) 238-5001, 780-3370) «Дом научно-технической книги» (Ленинский пр-т, 40. Тел. (495) 137-6019) «Дом книги на Ладожской» (м. Бауманская, ул. Ладожская, 8, стр.1. Тел. 267-0302) «Гнозис» (м. Университет, 1 гум. корпус МГУ, комн. 141. Тел. (495) 939-4713) «У Кентавра» (РГГУ) (м. Новослободская, ул. Чаянова, 15. Тел. (499) 973-4301) «СПб. дом книги» (Невский пр., 28. Тел. (812) 448-2355) "Jssan "jssan nussan iwssan iWssan ewssan JRSS.ru URSS.ru URSS.ru URSS.ru
URSS.ru URSS.ru URSS.ru URSS.ru Уважаемые читатели! Уважаемые авторы! Наше издательство специализируется па выпуске научной и учебной литературы, в том числе монографий, журналов, трудов ученых Россий- ской академии наук, научно-исследовательских институтов и учебных заведений. Мы предлагаем авторам свои услуги на выгодных экономи- ческих условиях. При этом мы берем на себя всю работу по подготовке издания — от набора, редактирования и верстки до тиражирования и распространения. URSS Среди вышедших и готовящихся к изданию книг мы предлагаем Вам следующие: Бибило П. Н. Основы языка VHDL. Росс Эшби У. Введение в кибернетику. Бир С. Мозг фирмы. Бир С. Кибернетика и менеджмент. Бир С. Наука управления. Биркгофф Г. Математика и психология. Акофф Р, Эмери Ф. О целеустремленных системах. Саати Т. Л. Принятие решений при зависимостях и обратных связях. Саати Т. Л. Математические модели кофликтных ситуаций. Саати Т. Л. Элементы теории массового обслуживания и ее приложения. Закревскии А.Д. Параллельные алгоритмы логического управления. Закревскии А. Д. Логические уравнения. Закревскии А.Д. Логика распознавания. Евменов В. П. Интеллектуальные системы управления. Поваров Г. Н. Ампер и кибернетика. Ворожцов А. В. Путь в современную информатику. Гуц А. К. Комплексный анализ и кибернетика. Карабутов Н. Н. Адаптивная идентификация систем. Карабутов Н. Н. Структурная идентификация систем. Магазов С. С. Когнитивные процессы и модели. Магазов С. С. Лекции и практические занятия по технологии баз данных. Панюкова Т.А. GIMP и Adobe Photoshop: Лекции по растровой графике. Вязилов Е.Д. Архитектура, методы и средства Интернет-технологий. ЛандэД. В., Снарский А. А., Безсуднов И. В. Интернетика: Навигация в сложных сетях. Немытых А. П. Суперкомпилятор SCP4: Общая структура. Бабичев А. В. Распознавание и спецификация структур данных. Дикин И. И. Метод внутренних точек в линейном и нелинейном программировании. Болотов А. А. и др. Элементарное введение в эллиптическую криптографию. Кн. 1, 2. Лапин Н. И. (ред.) Социальная информатика: основания, методы, перспективы. Шамис А. Л. Пути моделирования мышления. Крылов С. М. Неокибернетика: математика эволюции и технологии будущего. Прайд В., Коротаев А. В. (ред.) Новые технологии и продолжение эволюции человека? Мищенко А. В. Апгрейд в сверхлюди. со и По всем вопросам Вы можете обратиться к нам: тел./факс (499) 135-42-16, 135-42-46 или электронной почтой URSS@URSS.ru Полный каталог изданий представлен в интернет-магазине: http://URSS.ru Научная и учебная литература СО со URSS.ru URSS.ru URSS.ru URSS.ru

Об авторе Петр Николаевич БИБИЛО Доктор технических наук, профессор, автор 240 научных работ, в том числе 9 монографий. Его основные работы отно- сятся к теории дискретных устройств и автоматизации про- ектирования дискретных устройств и цифровых сверхболь- ших интегральных схем, применению методов искусствен- ного интеллекта в системах автоматизированного проектиро- вания (САПР). По его мнению, успешное развитие микроэлектроники связано с внедрением в практику новых маршрутов проектирования на основе языков высокого уровня, таких как VHDL, созда- нием новых эффективных параллельных методов и архи- тектур для решения вычислительных и оптимизационных задач, использованием методов искусственного интеллекта. При этом он руководствуется тем, что разработка отечественных САПР цифровых схем должна вестись с учетом их интеграции с зару- бежными САПР. Автор уделяет большое внимание подготовке студентов и специалистов-разработ- чиков, читает курсы лекций в Белорусском государственном университете инфор- матики и радиоэлектроники, является инициатором создания русскоязычного Интер- нет-сайта по языку VHDL. Представляем другие книги нашего издательства: АРХИТЕКТУРА, МЕТОПЫ И СРЕДСТВА ИНТЕРНЕТ-ТЕХНОЛОГИЙ ЛЕКЦИИ ИСКУССТВЕННОМУ ИНТЕЛЛЕКТУ <Я8> ОЬРАБОГКЛ И ВИЗУАЛИЗАЦИЯ ДАННЫХ ФИЗИЧЕСКИХ ЭКСПЕРИМЕНТОВ С ПОМОЩЬЮ ПАКЕТА 8488 ID 110468 НАУЧНАЯ И УЧЕБНАЯ ЛИТЕРАТУРА Тел./факс: 7 (499) 135-42-16 Тел ./факс: 7 (499) 135^2-46 URSS E-mail: URSS@URSS.ru Каталог изданий в Интернете: http://URSS.ru Любые отзывы о настоящем издании, а также обнаруженные опечатки присылайте по адресу URSS@URSS.ru. Ваши замечания и предложения будут учтены и отражены на web-странице этой книги в нашем интернет-магазине http://URSS.ru