Опубликован: 06.09.2012 | Уровень: для всех | Доступ: платный | ВУЗ: Московский государственный университет путей сообщения
Лекция 2:

Модели цифровых устройств

< Лекция 1 || Лекция 2: 123 || Лекция 3 >

Монтажная логика

Логическое моделирование выполняется при предположении, что информация обрабатывается логическими элементами и передается в схеме другим элементам в одном направлении (от входов к выходам в самом элементе, от выходов элемента к входам других элементов в схеме). Но эти предположения не всегда выполняются. Например, достаточно часто при некоторых технологиях используется "монтажная логика". При этом выходы логических элементов соединяются непосредственно и в месте соединения реализуется логическая функция И (или ИЛИ в зависимости от используемой технологии и мощности соединяемых элементов). Такой элемент называется "проводным (монтажным) И (ИЛИ)". Для того чтобы подобные ситуации могли обрабатываться в процессе логического моделирования в схему вводится дополнительный фиктивный логический элемент И (ИЛИ), как это показано на рис.2.12 . Здесь на рис.2.12 а) представлена исходная схема, а рис.2.12 б) – преобразованная схема с фиктивным элементом. Следует отметить, что логическое значение на выходе фиктивного элемента при этом всегда правильное, но значения на его входах при такой модели не всегда соответствует реальной схеме. В этой модели входы фиктивного элемента могут иметь различные значения (например, A=0\ и\ B=1 для схемы рис. 2.12б), хотя очевидно, что в реальной схеме они принимают одинаковое значение. При корректном моделировании после вычисления значения выхода фиктивного элемента С его надо присвоить также и обоим входам A, B. На рис. 2.12б) это показано пунктирными стрелками. Следует отметить, что введение подобных фиктивных элементов нарушает соответствие между моделью и реальной схемой, что может, например, привести к ошибочной интерпретации результатов моделирования неисправной схемы или построения тестов. Более корректно такие ситуации (и многие другие) моделируются на уровне электрических схем.

Моделирование монтажной логики фиктивным элементом

Рис. 2.12. Моделирование монтажной логики фиктивным элементом

Модели уровня ЯРП

В настоящее время для описания функционирования дискретных устройств широко используются специализированные языки описания цифровой аппаратуры – HDL, которые стали стандартным инструментом при проектировании ДУ [ 2.7 ] . Сейчас вопрос стоит не в том - использовать или не использовать эти языки, а какой именно язык следует использовать при проектировании данного ДУ. Современные языки позволяют описывать ДУ на структурном (вентильном) и функциональном (поведенческом) уровне. В настоящее время они больше используются для описания ДУ на функциональном или уровне регистровых передач. Использование таких языков позволяет существенно сократить срок проектирования и повысить размерность проектируемых ДУ. Следует отметить, что в настоящее время часто срок жизни (эксплуатации) цифровых систем меньше срока его проектирования. В настоящее время наиболее популярными являются языки проектирования SpecC, VHDL (Very high speed integrated circuits HDL) и Verilog HDL.

Рассмотрим основные конструкции этих языков. В них входы, выходы, внутренние состояния и регистры ДУ представляются соответствующими переменными. Как правило, эти переменные должны быть объявлены в начале описания устройства. Например, порты описываются следующим образом:

Port(x1,x2:in BIT; -входные\\
     y:out BIT); -выходные.

Два регистра могут быть описаны следующим образом:

REGISTER R1[1->32], R2[16] ,

где в квадратных скобках указана их разрядность. Аналогичные описания существуют и для других типов устройств (переменных). Так память из 32-разрядных 256 элементов описывается с помощью объявления

MEMORY[1->256:32]

Обработка и пересылка может быть описана следующим образом:

C\Leftarrow A+B

где выполняется сложение содержимого двух регистров A и B и пересылка результата в регистр С.

Для описания функционирования ДУ обычно используется следующие группы операторов ЯРП.

  1. Логические операторы: AND, OR, NOT, NAND, NOT, XOR, EQUIV. Эти операторы обычно выполняются над регистрами или некоторыми их разрядами.
  2. Операторы сравнения: больше (>), меньше (<), больше или равно (\ge), меньше или равно(\leqslant), равно (=), не равно (!=). Эти операторы выполняются над векторами или скалярными переменными. Результатом является логическое значение 1 или 0.
  3. Арифметические операторы: сложение (+), вычитание (-), умножение (*), деление (/), инкремент, декремент (используются, в основном, для моделирования функционирования счетчиков ).
  4. Битовые операции: правый сдвиг (SR), левый сдвиг (SL), циклический правый сдвиг (RR), циклический левый сдвиг (RL) и конкатенация (сцепление). Эти операторы выполняются над векторными переменными.
  5. Операция пересылки A\Leftarrow B содержимого регистра B в регистр А. Эта операция может быть унарной (выполняется над одним операндом, например, A\Leftarrow !B ), или бинарной (выполняется над двумя операндами, например,  A\Leftarrow B+C ). Единичная задержка неявно ассоциируется с операцией пересылки. Произвольная задержка должна быть указана явно (например,  A\Leftarrow B-C\ Delay\ 10).
  6. Условные операторы:
    • бинарный: IF\ C\ THEN\ B1\ ELSE\ B2\ IFEND;

      где С является условием, а B1 и B2 – блоки, состоящие из операторов.

    • оператор ветвления типа CASE:
      TEST (E0);\\
   CASE E0:B0;\\
   CASE E1:B1;\\
   CASE E2:B2;\\
   . . .\\
   CASE En:Bn;\\
   TESTEND;\\

      где E являются выражениями и B – блоки. Таким образом, может быть описан, например, дешифратор.

Конечные автоматы могут быть описаны двумя способами. При первом (функциональном) подходе языковыми средствами с помощью условных операторов описывается непосредственно таблица переходов и выходов автомата [ 2.7 ] . При втором (структурном) подходе фактически автомат представляется и описывается структурной моделью рис. 2.5.

В соответствии с трактовкой понятия времени ЯРП можно разделить на две категории: процедурные и непроцедурные языки. Процедурные ЯРП похожи на обычные языки программирования (такие как Паскаль, С и т.п.), где операторы и утверждения языка выполняются последовательно таким образом, что результат выполненного оператора становится доступным для следующих операторов. Например, при выполнении операторов A=B; С=A содержимое переменной (регистра) С станет равным содержимому переменной B. Поэтому некоторые процедурные ЯРП являются расширением обычных языков программирования (например, С, HDL). С другой стороны операторы и утверждения непроцедурных языков выполняются параллельно. В непроцедурных языках выполнение операторов A=B; B=A соответствует обмену содержимым регистров A и B. Современные языки описания аппаратуры часто являются смешанными, то есть имеют как процедурные так и не процедурные средства описания и интерпретации.

Ключевые термины:

Комбинационные схемы – схемы из логичесчких элементов, которые реализуют систему булевых функций и, как правило, не имеют обратных связей.

Последовательтностные схемы – схемы из логичесчких элементов, которые реализуют конечный автомат и, как правило, имеют обратные связи.

Функциональный модели – учитывают только логику функционирования ЦУ и не принимают во внимание внутреннюю организацию устройства.

Структурные модели – описывают внутреннюю организацию устройства в виде логических схем.

Бинарная диаграмма (альтернативный граф)ациклический ориентированный граф, который представляет булевы функции.

Языки регистровых передач – специализированные языки описания цифровых устройств, примером которых являются:VHDL, VERILОG и т.п.

Краткие итоги

В данной лекции вводятся основные модели ЦУ, которые в дальнейшем используются в курсе лекций.

В разделе 2.1 рассматриваются функциональные модели , которые абстрагируются от внутренней организации устройства и учитывают только логику функционирования. Раздел 2.1.1 описывает функциональные модели комбинационных схем в виде системы булевых функций. В разделе 2.1.2 представлены функциональные модели схем с памятью в виде конечных автоматов. Раздел 2.1.3 посвящен функциональным моделям в виде бинарных диаграмм .

В разделе 2.2 описаны структурные модели в виде логических схем. В разделе 2.2.1 приведен пример внешнего описания схемы на простом специализированном языке. Раздел 2.2.2 посвящен свойствам структурных моделей , включая ранжирование элементов схемы.

Раздел 2.3 посвящен моделям уровня языков регистровых передач , где приведены основные типы операторов ЯРП.

Вопросы и упражнения

  1. Чем отличаются комбинационные устройства от последовательностных?
  2. Чем отличаются функциональные модели от структурных ?
  3. Приведите функциональные модели для комбинационных схем .
  4. Чем отличаются таблицы истинности от примитивных кубов?
  5. Могут ли приведенные ниже кубы быть примитивными кубами функции f(x_1,x_2,x_3,x_4)?
    0 x 1 x 0
    x 1 0 1 0
    1 x 1 1 0
    0 1 0 x 1
    x 0 1 0 1
  6. Рассмотрите булеву функцию, определенную примитивными кубами:
  7. X 1 0 | 0 , 1 1 x | 0 , x 0 x |1 , 0 1 1 | 1. Найдите значение этой функции на следующих входных наборах: 10u, 01u, u1u, u01.
  8. Приведите функциональные модели для схем с памятью.
  9. Что такое автомат Мили и как его можно описать?
  10. Приведите каноническую модель схемы с памятью.
  11. Чем отличается асинхронный автомат от синхронного?
  12. Что такое альтернативные графы (бинарные диаграммы) ?
  13. Постройте альтернативный граф булевой функции из упражнения 5.
  14. Постройте альтернативный граф для функций:
  15. f(a,b,c,d,e,g)=ab \lor cd \lor eg \\ f(a,b,c,d)=a \oplus b \oplus c \oplus d
  16. Постройте таблицу переходов-выходов синхронного автомата с одним входом и одним выходом, который распознает входную последовательность x=1111.
  17. Постройте граф переходов-выходов этого автомата
  18. Постройте также схему для распознавания таких перекрывающихся последовательностей и дает на входную последовательность x=1100111111101 выходную последовательность y=0000000111100.
  19. Напишите ЯРП модели для D-триггера с передним фронтом переключения.
< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Дмитрий Медведевских
Дмитрий Медведевских

Добрый день  можно поинтересоваться где брать литературу предложенную в курсе ?Большинство книг я не могу найти  в известных источниках

Андрей Баранов
Андрей Баранов
Донецк, Донецкий национальный технический университет, 2019
Андрей Чернов
Андрей Чернов
Россия, Ростов-на-Дону, Ростовский институт инженеров железнодорожного транспорта, 1993