- •Встроенные микропроцессорные системы
- •Оглавление
- •2. Программное обеспечение встроенных систем ……….
- •Введение
- •Модуль 1
- •Аппаратные средства встроенных систем
- •1.2. Элементы архитектуры процессоров встроенных систем
- •1.2.1. Множество команд
- •1.2.3.1. Адресное пространство
- •1.2.3.2. Порядок байт
- •1. 2.3.3. Когерентность памяти
- •1. 2.3.4. Защита памяти
- •1. 2. 4. Модель прерываний
- •1.2. 5.Модель управления памятью
- •1.2.5.1. Страничная организация памяти
- •1.2.5.2. Сегментация памяти
- •1.3. Типы процессоров
- •1.4. Формы параллелизма в процессорах
- •1.4.1. Конвейеризация
- •1.4.2. Параллелизм уровня команд
- •1.5.Технологии памяти
- •1.5.1. Оперативная память
- •1.5.1. 1. Статическое озу
- •1.5.2. Постоянное запоминающее устройство (rom)
- •1.6. Иерархия памяти
- •1.6.1. Распределение или карта памяти
- •1.6.2. Блокнотная и кэш память
- •1.6.2.1. Кэш-память прямого отображения
- •1.6.2.2. Ассоциативная по множеству кэш-память
- •1.6.2.3. Обновление кэш-памяти.
- •1.6.2.4. Протокол когерентности кэширования с обратной записью
- •1.7. Магистраль микропроцессорной системы
- •1.8. Базовые устройства ввода-вывода встроенных систем
- •1.8.1. Порты ввода-вывода общего назначения
- •1.7.2. Таймер-счетчик
- •1.8.3. Импульсно-кодовая модуляция.
- •1.8.4. Многоканальный аналого-цифровой преобразователь
- •1.9. Базовые последовательные интерфейсы ввода-вывода
- •1.9.2. Последовательный интерфейс spi
- •1.9.4.1. Введение в usb
- •1.9.4.2. Интерфейс Open Host Controller для usb
- •Вопросы для самоконтроля
- •Модуль 2
- •1.10. Язык проектирования аппаратуры vhdl
- •1.10.2. Введение в vhdl
- •1.10.2.1. Программирование на vhdl для моделирования и синтеза [19]
- •1.10.2.2. Entity и architecture
- •1.10.2.3. Операторы присваивание и process [19]
- •1.10.2.4. Цикл моделирования vhdl
- •1.10.2.5. Многозначная логика и стандарт ieee 1164
- •1.11. Проектирование устройств ввода-вывода и контроллеров
- •1.12. Интегрированная среда разработки аппаратных средств
- •Вопросы для самоконтроля
- •Модуль 3
- •2. Программное обеспечение встроенных систем
- •2.1 Модель вычислений
- •2.2 Автомат с конечным числом состояний
- •2.3. Асинхронный язык проектирования sdl
- •2.4. Синхронный язык проектирования Lustre
- •2.5. Многозадачность.
- •2.5.1. Язык программирования Си
- •2.5.2. Потоки
- •2.5.2.1. Реализация потоков
- •2.5.2.2. Взаимное исключение
- •2.5.2.3. Взаимная блокировка
- •2.5.2.4. Модели непротиворечивости памяти
- •2.5.2.5. Проблемы с потоками
- •2.5.3. Процессы и передача сообщений
- •2.6. Интегрированная среда разработки прикладного программного
- •2.6.2. Комплект программ Telelogic Tau sdl Suite
- •2.6.3. Средства разработки программного обеспечения
- •2.7.1. Моделирование, эмуляция и макетирование
- •2.7.2. Формальная верификация
- •2.7.3. Оценка производительности
- •2.7.3.1. Оценка wcet
- •2.7.3.2. Исчисление реального времени
- •1 2 3 E
- •2.7.4. Модели энергии и мощности
- •2.7.5. Тепловая модель
- •Вопросы для самоконтроля
- •Заключение
- •Задания
- •1. Конвейеризация
- •2. Иерархия памяти
- •3. Базовые устройства ввода-вывода встроенных систем
- •5. Многозадачность
- •6. Валидация и оценка проекта
- •Библиографический список
- •Встроенные микропроцессорные системы
1.10.2.5. Многозначная логика и стандарт ieee 1164
Во многих случаях может быть целесообразным или необходимым использовать для моделирования цифровых устройств логику с числом значений больше двух. Например, в системе могут бать электрические сигналы различной «силы», и может потребоваться вычислить «силу» и логический уровень в результате соединения двух или более таких источников сигналов. Использование дискретного множества «сил» позволяет избежать необходимости решать уравнения Кирхгофа и получить результат с требуемой точностью.
Сигнал с одной силой (две логических величины). Это простейший случай с двумя логическими значениями ‘0’ и ‘1’ и одной силой для каждого значения означает, что если соединить сигналы один со значением ‘0’, а другой со значением ‘1’, то ничего не будет известно об уровне результирующего сигнала. Сигнал одой силы достаточен для систем, в которых нет таких соединений.
Сигнал с двумя силами (три или четыре логических величины). Во многих схемах некоторый проводник может быть не соединен с землей, источником питания или с другим узлом схемы. Например, могут содержать схемы с открытым коллектором (истоком), или для выхода с тремя состояниями (‘0’, ‘1’ и ’Z’) при одном из вариантов управления оба транзистора закрыты (не проводят, т.е. Z состояние). В результате выход будет отключен от полюсов источника. Очевидно, что сила сигнала у отключенных таким образом выходов меньше в состоянии ’Z’ по сравнению с ‘0’ и ‘1’. Если сигнал со значением ’Z’ соединен с другим сигналом, то этот другой сигнал будет доминировать. Функцию, выполняющую вычисление результирующей величины при таких соединениях, называют функцией разрешения.
Во многих случаях трехзначное множество значений {’0’,’1’,’Z’} дополняется значением ’X’, представляющем неизвестную величину такой же силы как ‘0’ и ‘1’. Функция разрешения для этого случая получается весьма простой и может быть наглядно представлена с помощью схемы частичного порядка, как на рис. 54. Определим операцию sup над двумя сигналами, которая возвращает верхнее значение двух сигналов. Верхнее значение c двух сигналов a и b является наислабейшей величиной, для которой сохраняется c ≥ a и c ≥ b. Например, sup (’Z’, ’0’)=’0’, sup(’Z’,’1’)=’1’.
Рис. 54. Граф частичного порядка для значений из множества {’0’,’1’,’Z’, ’X’}
Сигнал с тремя силами (семь логических величины). Во многих случаях двух сил сигналов недостаточно, например, когда верхний МОП транзистор комплиментарного каскада является транзистором с обеднением. Эффект от этого транзистора подобен резистору низкой проводимости на пути к источнику питания (протекает маленький ток). Этот транзистор вместе с нижним транзистором управляют величиной выходного сигнала схемы, которая может быть вычислена с помощью функции разрешения. Нижний транзистор обеспечивает выход значениями ’0’ или’Z’. Транзистор с обеднением обеспечивает значение сигнала слабее, чем для ’0’ и ’1’, а его уровень соответствует ’1’. Это значение транзистора с обеднением обозначают, как ’H’ – слабая логическая ’1’. Подобным образом определяется слабый логический ’0’ - ’L’, результат взаимодействия слабых сигналов – слабая логическая неопределенность, обозначаемая как ’W’. В результате получаем три силы и семь значений величины сигнала {’0’, ’1’, ’L’, ’H’, ’W’, ’X’, ’Z’}. Граф частичного порядка представлен на рис. 55.
Рис. 55. Граф частичного порядка для значений из множества
{’0’, ’1’, ’L’, ’H’, ’W’, ’X’, ’Z’}.
В VHDL предопределена только двузначная логика (тип dit). Поэтому был разработан стандарт IEEE 1164, содержащий девять значений {’0’, ’1’, ’L’, ’H’, ’X’, ’W’, ’Z’, ’U’, ’-’}, где ’U’ обозначает неинициализированное значение, используемое при моделировании сигналов без точной инициализации. Символ ’-’ обозначает «беззаботный вход» или вход не имеет значения для описания булевых функций. В качестве примера рассмотрим условный параллельный оператор присвоения сигнала select подобный операторам switch и case языков программирования.
П
f
<=
select
a
& b
& c
-- & обозначает объединение ’1’
when
"10-"
--соответствует первому терму ’1’
when
"-11"
-- соответствует второму терму ’X’
when
"000";
Это должно легко моделироваться. К сожалению, получим не то, что хотели. Всякий раз, когда средства разработки VHDL оценивают подобный оператор, они проверяют выражение в пункте select (в примере a & b & c) на значения из пунктов when, в частности "10-". Т.к. значение ’-’ никогда не присваиваются сигналам эта проверка никогда не даст истины. Приведенное нереализуемое удобство плата за гибкость введения девятизначного множества значений, но все-таки стало можно моделировать схемы с обедненными МОП транзисторами.