Рекомендуем

Основы компьютерного проектирования и моделирования радиоэлектронных средствТрухин М.П. Основы компьютерного проектирования и моделирования радиоэлектронных средств
Программа схемотехнического моделирования Micro-CAP 8Амелина С.А., Амелин М.А. Программа схемотехнического моделирования Micro-CAP 8
Systemview 6.0 (SystemVue).Системное проектирование радиоэлектронных устройствЗлатин И.Л. Systemview 6.0 (SystemVue).Системное проектирование радиоэлектронных устройств

Книга

SystemC. Моделирование электронных систем

Учебное пособие для вузов
Тиражирование книги начато в 2018 г.
320 стр.
Формат 60х90/16 (145x215 мм)
Исполнение: в мягкой обложке
ISBN 978-5-9912-0722-5
ББК 32.85я73
УДК 004.434:004.94+621.38(075.8)
Аннотация

Рассмотрены вопросы практического использования языка SystemC, который находит все более широкое применение для моделирования сложных электронных систем на разных уровнях абстракции: системное описание, уровень транзакций, уровень регистровых пересылок и т.д. Являясь надстройкой к языку С++, SystemC успешно применяется для проектирования «систем на кристалле», верификации сложных систем, разработок смешанных аналогово-цифровых систем.

Изложена методика установки библиотек, подробное описание языка и даны многочисленные примеры программ с решениями в средах Eclipse и Microsoft Visual Studio. Отдельная глава посвящена описанию моделирования на уровне транзакций TLM-2.0. Приложение содержит справочные сведения о языке С++ и методику установки SystemC в среде Microsoft Visual Studio.

Для бакалавров и магистров, обучающихся по направлению «Информатика и вычислительная техника» и изучающих дисциплину «Технологии проектирования устройств и систем вычислительной техники средствами САПР», будет полезно разработчикам современных электронных систем.

Оглавление

1. Проблемы проектирования систем на кристалле
1.1. Цели SystemC
1.2. Уровни моделирования в SystemC
1.3. Краткая история создания и развития SystemC
1.4. Методология проектирования SystemC
1.5. Стандартные графические обозначения
1.6. Как изучать эту книгу

2. Установка SystemC в интерактивных средах разработки Eclipse и Micrisoft Visual Studio
2.1. Установка SystemC в Eclipse c компилятором Cygwin
2.1.1. Краткие сведения об Eclipse
2.1.2. Cygwin
2.1.3. Установка Cygwin
2.1.4. Загрузка программы SystemC-2.3.1
2.1.5. Компиляция SystemC-2.3.1 в Cigwin64
2.1.6. Создание переменных сред для SystemC
2.1.7. Запуск Eclipse и настройки рабочего пространства
2.1.8. Создание нового проекта С++ 4
2.1.9. Создание проекта «Hello-SystemC»
2.2. Как работать в Eclipse CDT
2.2.1. Главное меню, перспективы, workspace
2.2.2. Перспективы в Eclipce.
2.3. Программа GTKWave
2.3.1. Главное окно GTKWave
2.3.2. Маркеры и масштабы
2.3.3. Главное меню.
2.3.4. Установка и использование GTKWave
2.4. Установка SystemC-2.3.1 в операционной системе Ubuntu 16.04
2.4.1. Полезные команды для работы в терминале Ubuntu
2.4.2. Установка SystemC-2.3.1a
2.4.3. Установка JAVA в Ubuntu
2.4.4. Установка Eclipse в Ubuntu
2.4.5. Установка GTKWave
2.5. Об установке SystemC в Microsoft Visual Studio

3. Основы языка SystemC-2.3.1
3.1. SystemC — надстройка к языку С++
3.2. Ядро моделирования (Kernel)
3.3. Состав ядра языка SystemC (Core Language)
3.4. Инициализация процесса
3.5. Модель времени в SystemC
3.6. Модули SC MODULE
3.6.1. Порты модулей
3.6.2. Сигналы модуля
3.6.3. Создание экземпляров модулей
3.6.4. Внутренние переменные
3.7. Конструктор SC CTOR
3.8. Альтернативные конструкторы: SC HAS PROCESS
3.9. Процессы
3.9.1. Процесс SC THREAD
3.9.2. Процесс SC METHOD 10
3.9.3. Процесс SC CTHREAD 10
3.10. Глобальное и локальное наблюдение
3.11. Порты и сигналы
3.11.1. Чтение и запись портов и сигналов
3.11.2. Массив порты и сигналы
3.11.3. Привязка сигналов
3.11.4. Разрешенные логические векторы
3.11.5. Разрешенные векторные сигналы
3.12. Тактирование
3.13. Время
3.14. События
3.14.1. Функция wait()
3.14.2. Next trigger()
3.15. Методы
3.15.1. Методы sc start() и sc stop()
3.15.2. Метод wait()
3.15.3. Метод sc time stamp()
3.16. Динамическая чувствительность для SC METHOD: next trigger()
3.17. Статическая чувствительность для процессов
3.18. Типы данных и операторы
3.18.1. Тип sc bit
3.18.2. Тип sc logic
3.18.3. Битовый вектор произвольной длины sc bv
3.18.4. Беззнаковые и знаковые целые с фиксированной точностью sc int < n> и sc uint < n>
3.18.5. Знаковые и беззнаковые типы целых с произвольной точностью sc bigint и sc biguint
3.18.6. Логический вектор произвольной длины sc lv
3.19. Оператор сравнения
3.20. Трассировка определенного пользователем типа
3.22. Типы с фиксированной точкой
3.23. Каналы и интерфейсы
3.23.1. Канал sc mutex
3.23.2. Канал sc semaphore
3.23.3. Канал sc fifo
3.23.4. Иерархические каналы
3.24. Коммуникации в SystemC
3.25. Моделирование уровня транзакций
3.26. Моделирование и отладка с помощью SystemC
3.26.1. Планировщик SystemC
3.26.2. Контроль моделирования
3.26.3. Расширенные методы техники контроля моделирования
3.27. Трассировка осциллограмм
3.27.1. Создание файла трассировки
3.27.2. Трассировка скалярной переменной и сигналов
3.27.3. Трассировка переменных и сигналов совокупного типа
3.27.4. Трассировка переменных и массивов сигналов
3.27.5. Отладка SystemC

4. Практическое программирование в SystemC
4.1. Два основных стиля
4.2. Традиционный шаблон
4.3. Рекомендуемая альтернативная форма шаблона
4.4. Описание библиотек SystemC
4.5. Еще одно приветствие в SystemC
4.6. Базовый пример канала связи для сложных моделей
4.7. Использование SystemC для RTL синтеза устройств
4.8. Испытательные программы Testbench
4.8.1. Основные конструкции испытательных программ
4.8.2. Сигналы
4.9. Пример моделирования D-триггера с испытательной программой
4.10. Программы First counter и Testbench
4.11. Пример мультиплексора MUX
4.12. Базовый пример моделирования простой шины на уровне транзакций

5. Моделирование на уровне транзакций в SystemC
5.1. Концепции моделирования
5.2. Инициаторы, цели и сокеты
5.3. Общая полезная нагрузка и блокирующий транспорт
5.4. Временная аннотация
5.5. Взаимодействие и базовый протокол
5.6. Интерфейсы TLM-2.0
5.7. Исходный код и документация
5.8. Моделирование на уровне транзакций, варианты использования и абстракция
5.9. Стили кодирования
5.9.1. Стиль untimed
5.9.2. Стиль Loosely-timed и временная развязка
5.9.3. Характеристика свободно-временных и приближенно-временных стилей кодирования
5.9.4. Переключение между свободно-временным и приближенно-временным моделированием
5.10. Мосты транзакций
5.11. Интерфейсы DMI и отладки
5.12. Комбинированные интерфейсы и сокеты
5.13. Пространства имен
5.14. Заголовочные файлы и номера версий
5.15. Информация о версии программного обеспечения
5.16. Примеры использования основных интерфейсов TLM-2.0
5.16.1. Транспортные интерфейсы
5.16.2. Блокирующий транспортный интерфейс
5.16.3. Определение класса блокирующего интерфейса
5.16.4. Аргумент шаблона TRANS
5.16.5. Правила
5.16.6. График последовательности сообщений — блокировка транспорта
5.16.7. График последовательности сообщений — временная развязка
5.16.8. Схема последовательности сообщений — квантование времени
5.16.9. Неблокирующий транспортный интерфейс
5.16.10. Определение класса неблокирующего интерфейса
5.16.11. Аргументы шаблона TRANS и PHASE
5.16.12. Запросы nb transport fw и nb transport bw
5.16.13. Аргумент trans
5.16.14. Фазовый аргумент
5.16.15. Возвращаемое значение tlm sync enum
5.16.16. Диаграмма последовательности сообщений с использованием пути назад
5.16.17. Схема последовательности сообщений с использованием обратного пути
5.16.18. Диаграмма последовательности сообщений — раннее завершение
5.16.19. График последовательности сообщений — аннотация времени
5.16.20. Аннотации синхронизации с транспортными интерфейсами
5.16.21. Примеры стилей кодирования
5.17. Интерфейс прямой памяти
5.18. Примеры программ с использованием TLM-2.0
5.18.1. Пример блокирующего интерфейса 31
5.18.2. Пример неблокирующего интерфейса at 1 phase
5.19. Выводы: Основные характеристики TLM-2

Приложение А. Введение в язык С++
А.1. Краткое введение в язык С++
А.1.1. Происхождение языка С++
А.1.2. Первая программа в С++
А.2. Переменные С++
А.2.1. Типы данных
А.3. Операторы С++
А.4. Конструкции ветвления
А.5. Массивы в С++
А.6. Функции в С++
А.7. Указатели в С++ . Статические и динамические переменные
А.7.1. Пример использования статических переменных
А.7.2. Пример использования динамических переменных
А.8. Запуск из командной строки
А.9. Структуры в С++
А.10. Классы в С++
А.10.1. Модификаторы доступа public и private
А.11. Создание объекта через указатель
А.12. Конструктор и деструктор класса
А.13. Векторы в C+ +
А.14. Наследование классов в C+ +
А.15. Дополнительные вопросы по С+ +

Приложение Б. Установка SystemC-2.3.1 в среде Microsoft Visual Studio 2012
Б.1. Системные требования и указания от Accellera
Б.2. Создание библиотек SystemC-2.3.1
Б.3. Системные переменные
Б.4. Создание SystemC Application
Б.5. Установка свойств проекта
Б.6. Компиляция и проверка проекта

Литература