Author(s): Йенс Спарсё (Jens Sparsø), Стив Фербер (Steve Furber)
Publisher: Kluwer
Year: 2001
Введение 6
Благодарности 8
Предисловие 9
PART I Проектирование асинхронных схем – вводное руководство 14
Chapter 1 Введение 15
1.1 Почему рассматриваются асинхронные схемы? 15
1.2 Цели и предпосылки 16
1.3 Тактирование против квитирования 16
1.4 План части I 18
Chapter 2 Основные понятия 19
2.1 Протоколы квитирования 19
2.1.1 Протоколы со связными данными 19
2.1.2 4-фазный двухпроводный протокол 20
2.1.3 2-фазный двухроводный протокол 22
2.1.4 Другие протоколы 22
2.2 C-элемент Мюллера и принцип индикации 23
2.3 Конвейер Миллера 24
2.4 Способы реализации схем 25
2.4.1 4-фазный конвейер со связными данными 25
2.4.2 2-фазный конвейер со связными данными (Микроконвейер) 26
2.4.3 4-фазный двухпроводный конвейер 28
2.5 Теория 30
2.5.1 Основы speed-independence 30
2.5.2 Классификация асинхронных схем 31
2.5.3 Изохронные ветвления 32
2.5.4 Взаимодействе схем 32
2.6 Тестирование 33
2.7 Заключение 34
Chapter 3 Статические структуры потоков данных 35
3.1 Введение 35
3.2 Конвейеры и кольца 36
3.3 Построение блоков 36
3.4 Простой пример 37
3.5 Применение простых колец 39
3.5.1 Последовательные схемы 39
3.5.2 Итеративные вычисления 40
3.6 Конструкции FOR, IF и WHILE 40
3.7 Более сложный пример: GCD 42
3.8 Ссылки на дополнительные примеры 43
3.8.1 Маломощный банк фильтров 43
3.8.2 Асинхронный микропроцессор 43
3.8.3 Высокочастотный конвейерный векторный умножитель 44
3.9 Заключение 44
Chapter 4 производительность 45
4.1 Введение 45
4.2 Качественная оценка производительности 45
4.2.1 Пример 1: FIFO как сдвиговый регистр 45
4.2.2 Пример 2: сдвиговый регистр с параллельной загрузкой 47
4.3 Количественное представление производительности 48
4.3.1 Задержки, пропускная сопсобность и длина волны 48
4.3.2 Длительность цикла в кольце 50
4.3.3 Пример 3: производительность 3-стадийного кольца 51
4.3.4 Заключительные примечания 52
4.4 Анализ графа зависимостей 52
4.4.1 Пример 4: граф звисимостей для конвейера 53
4.4.2 Пример 5: Граф зависимостей для 3-стадийного конвейра 54
4.5 Заключение 56
Chapter 5 реализации механизма квитирования в схемах 57
5.1 Защелка (latch) 57
5.2 Fork, join и merge 57
5.3 Функциональные блоки - основы 59
5.3.1 Введение 59
5.3.2 Прозрачность для механизма квитирования 60
5.3.3 Сложение с последовательным переносом 62
5.4 Функциональнве блоки со связными данными 63
5.4.1 Использование соответствующих задержек 63
5.4.2 Выбор задержек 64
5.5 Двухпроводные функциональные блоки 64
5.5.1 Delay insensitive minterm synthesis (DIMS) 64
5.5.2 Null Convention Logic 66
5.5.3 Реализация на транзисторном уровне CMOS 67
5.5.4 Сумматор Мартина 68
5.6 Гибридные функциональные блоки 69
5.6.1 Залючение – проектирование функциональных блоков 70
5.7 MUX и DEMUX 71
5.8 Взаимное исключение, арбитраж и метастабильность 72
5.8.1 Взаимное исключение 72
5.8.2 Арбитраж 73
5.8.3 Вероятности метастабильности 74
5.9 Заключение 75
Chapter 6 управляющие SPEED-INDEPENDENT схемы 76
6.1 Введение 76
6.1.1 Последовательные асинхронные схемы 76
6.1.2 Источники ошибок 77
6.1.3 Модели задержек 77
6.1.4 Фундаментальный принцип и принцип вход-выход построения схем 78
6.1.5 Синтез схем фундаментального типа 78
6.2 Графы переходов 79
6.2.1 Сети Петри и STG 80
6.2.2 Несколько часто используемых фрагментов STG 81
6.3 Базовая процедура синтеза 84
6.3.1 Пример 1: C-элемент 84
6.3.2 Пример 2: Схема с выбором 84
6.3.3 Пример 2: Источники ошибок в реализациях с простыми вентилями 86
6.4 Реализация припомощи вентилей с памятью 87
6.4.1 Введение 87
6.4.2 Области возбуждения и спокойствия 88
6.4.3 Пример 2: Использование элементов с памятью 88
6.4.4 Ограничение монотонного покрытия 89
6.4.5 Топологии схем на элементах с памятью 90
6.5 Инициализация 91
6.6 Заключение о процессе синтеза 91
6.7 Petrify: инструмент для минтеза SI схем по STG 92
6.8 Примеры проектов, синтезированных при помощи Petrify 93
6.8.1 Пример 2, переработанный 93
6.8.2 Управляющие схемы для 4-фазной защелки со связными данными 95
6.8.3 Управляющая схема для 4-фазного компонента MUX со связными данными 97
6.9 Заключение 100
Chapter 7 Улучшенные 4-фазные протоколы и схемы со связными данными 101
7.1 Каналы и протоколы 101
7.1.1 Типы каналов 101
7.1.2 Data-validity схемы 101
7.1.3 Обсуждение 103
7.2 Проверка статических типов 103
7.3 Более совершенные управляющие схемы защелок 104
7.4 Заключение 106
Chapter 8 языки и инструментарий высокого уровня 107
8.1 Введение 107
8.2 Параллелизм и передача сообщений в CSP 108
8.3 Tangram: примеры программ 109
8.3.1 2-местный сдвиговй регистр 109
8.3.2 2-местное FIFO 109
8.3.3 Вычисление НОД при помощи выражений while и if 110
8.3.4 Вычисление НОД при помощи команд блокировки 110
8.4 Tangram: синтакс- зависимая компиляция 110
8.4.1 2-местный сдвиговый регистр 111
8.4.2 2-местное FIFO 112
8.4.3 Вычисление НОД на блокируемых повторениях 112
8.5 Процесс трансляции Martin-а 114
8.6 Использование VHDL для асинхронного проектирвоания 115
8.6.1 Введение 115
8.6.2 VHDL против CSP-подобных языков 115
8.6.3 Взаимодействие каналов при проектировании 116
8.6.4 Пакет абстрактного канала 118
8.6.5 Пакет реального канала 121
8.6.6 Разделение на управление и обработку данных 122
8.7 Заключение 123
приложение: VHDL пакеты каналов 125
PART II BALSA – система синтеза асинхронной аппаратуры 129
Chapter 9 Введение в BALSA 130
9.1 Обзор 130
9.2 Основные концепции 131
9.3 Набор интсрументальных средств и процесс проектирваония 132
9.4 Начало 133
9.4.1 Одноместный буфер 133
9.4.2 2-местный буфер 136
9.4.3 Параллельная композиция и использование модулей 137
9.4.4 Размещение мноджества структур 137
9.5 Вспомогательные средства Balsa 138
9.5.1 Создание Makefile 138
9.5.2 Вычисление необходимых ресурсов 139
9.5.3 Просмотр графа схемы квитирвоания 139
9.5.4 Моделирование 140
Chapter 10 Язык BALSA 143
10.1 Типы данных 143
10.2 Способы определения типов 145
10.3 команды и управление потоком 146
10.4 Бинарные/унарные операторы 149
10.5 Структура программы 149
10.6 Примеры схем 150
10.7 Выбор каналов 155
Chapter 11 построение библиотечных компонентов 156
11.1 Параметрическое описание 156
11.1.1 Определение буфера с переменной длиной 156
11.1.2 Конвейеры переменных ширины и глубины 156
11.2 Рекурсивные определения 157
11.2.1 n-входовый мультиплексор 157
11.2.2 Счетчик кол-ва 159
11.2.3 сдвигатель в Balsa 160
11.2.4 Дерево арбитража 162
Chapter 12 Простой контроллер DMA 164
12.1 Общие регистры 164
12.2 Регистры каналов 165
12.3 Структур аконтроллера DMA 165
12.4 Описание в Balsa 168
12.4.1 Дерево арбитража 168
12.4.2 Модуль передач 168
12.4.3 Модуль управления 169
PART III Крупные асинхронные проекты 174
Chapter 13 DESCALE: a Design Experiment for a Smart Card Application consuming Low Energy (экспериментальный проект по малопотребляющим приложениям для смарт карт) 175
13.1 Введение 175
13.2 VLSI программирование асинхронных схем 176
13.2.1 Инструментарий Tangram-а 176
13.2.2 Технологии квитирования 177
13.2.3 GCD алгоритм 179
13.3 Альтернативы асинхронным схемам 182
13.4 Бесконтактные смарткарты 182
13.5 Цифровая схема 185
13.5.1 МК 80C51 186
13.5.2 Модуль предвыборки 187
13.5.3 DES сопроцессор 189
13.6 Результаты 191
13.7 Тестирование 192
13.8 Модуль источника питания 193
13.9 Выводы 194
13.9.1 Благодарности 194
Chapter 14 Асинхронный декодер VITERBI.* 195
14.1 Введение 195
14.2 Декодер Viterbi 195
14.2.1 Сверточное кодирование 195
14.2.2 Принцип декодирования 196
14.3 Системные параметры 198
14.4 Обзор системы 198
14.5 Path Metric Unit (PMU) 199
14.5.1 Node pair design in the PMU 199
14.5.2 Показатели переходов 202
14.5.3 Синхронизация временных интервалов 203
14.5.4 Определение глобального победителя 204
14.6 The History Unit (HU) 205
14.6.1 Principle of operation 206
14.6.2 History Unit backtrace example. 206
14.6.3 History Unit implementation 208
14.7 Results and design evaluation 210
14.8 Conclusions 211
14.8.1 Acknowledgement 212
14.8.2 Further reading 212
Chapter 15 Процессоры * 213
15.1 Введение в процессоры семейства Amulet 213
15.1.1 Amuletl (1994) 213
15.1.2 Amulet2e (1996) 214
15.1.3 Amulet3i (2000) 214
15.2 Прочие асинхронные микропроцессоры 215
15.3 Процессоры как примеры проектирования 217
15.4 Методы реализации процессоров 217
15.4.1 Конвейеризация процессоров 217
15.4.2 Архитектуры асинхронных конвейеров 218
15.4.3 Детерминизм и недетерминизм 220
15.4.4 Зависимости 223
15.4.5 Исключения 231
15.5 Memory - a case study 234
15.5.1 Последовательный доступ 234
15.5.2 Amulet3i RAM 236
15.5.3 КЭШ 238
15.6 Большие асинхронные системы 241
15.6.1 Система на кристалле (SoC DRACO) 241
15.6.2 Межсоединение 241
15.6.3 Balsa и контроллер DMA 242
15.6.4 Настройка временных задержек 243
15.6.5 Заводские испытания 244
15.7 Заключение 244
Эпилог 246
Справочная литература 248