Выполнил: Желнин С.В. Научный руководитель: Фельдман В.М. 1. Написание технического задания Увеличение сложности микропроцессоров ведет к тому, что: 2. Составление эскизного проекта и детальной спецификации усложняется составление спецификаций устройств и интерфейсов между ними скорость выявления логических 3. Проектирование на языке описания аппаратуры(RTLмоделирование) 4. Верификация RTL-модели ошибок в RTL-описаниях снижается(достигает нескольких часов и даже дней) остаются необнаруженные 5. Синтез и физический дизайн ошибки при выпуске микропроцессора SystemC – стандартизованная библиотека С++(IEEE 1666-2005), используемая для описания аппаратуры и верификации RTLмоделей цифровых устройств Преимущества над Verilog/SystemVerilog Повышенная скорость разработки моделей цифровых устройств Высокая скорость моделирования SystemCописаний Преимущества над C/C++ Возможность совместного моделирования описаний на SystemC и Verilog Синтаксис, схожий с Verilog Иерархическая декомпозиция описываемой системы на модули Структурное соединение между модулями с использованием портов Моделирование одновременных процессов на основе событий и списков планирования Типы данных, пригодные для описания цифровой логики Разработать принципы использования языка SystemC для проектирования микропроцессоров в ЗАО «МЦСТ» Выполнить экспериментальную реализацию вычислительных устройств процессорного ядра «МЦСТ4R» с использованием SystemC Исследовать эффективность от их внедрения Составить руководство по использованию языка SystemC для разработчиков аппаратуры Уровни абстракции модели функциональных блоков Безотносительная ко времени(untimed) Все процессы выполняются за нулевое время Относительная ко времени(timed) Все процессы выполняются за конечное время Уровня регистровых передач(RTL) Детальное описание. Использование синхросигнала Уровни абстракции модели интерфейсов Уровень архитектур (используется в ЗАО «МЦСТ») Уровень транзакций Поведенческая Уровеньмодель регистровых передач (используется в ЗАО «МЦСТ») Безотносительная ко времени(untimed) Передача данных за нулевое время Уровня транзакций (Bus Cycle Accurate) Использование синхросигнала. Передача данных как транзакция Уровня портов(Pin Cycle Accurate) Использование синхросигнала. Детальное описание портов Менее детализировано Степень детализации Более детализировано Интервал между уровнями абстракций, используемых в проектах ЗАО «МЦСТ», осложняет верификации RTL-моделей Повышенная избирательность SystemC-модель всего микропроцессора SystemCописание других устройств Эталонная SystemC-модель устройства SystemCописание других устройств Верифицируемая Verilog-модель устройства Сравнение выходных сигналов тестирования Возможность тестирования Verilogмоделей отдельных устройств в совокупности с SystemC-моделью всего микропроцессора Ускорение моделирования Замена Verilog-моделей тех частей микропроцессора , которые не подвергаются тестированию, аналогами на SystemC Ранняя верификация Возможность начать тестирование Verilog-моделей устройств еще до того, как будет готова Verilogмодель всего микропроцессора Составление эскизного проекта, детальной спецификации Разработка программных тестов и симулятора системы команд Верификация SystemC-модели Разработка и уточнение SystemC-модели эталонная модель + Параллельная реализация одной Верификация RTL-модели спецификации двумя командами специалистов на языках SystemC и Verilog => повышенная вероятность обнаружения ошибок - Затруднено изменение исходной спецификации Разработка и уточнение RTLмодели Физический синтез RTLмодели Составление эскизного проекта, детальной спецификации Разработка программных тестов и симулятора системы команд + Более ранняя оценка пригодности алгоритмов, заложенных в спецификации - Необходимо задерживать начало работ по проектированию на RTL Верификация SystemC-модели Разработка и уточнение SystemC-модели эталонная модель Верификация RTL-модели Оба метода являются универсальными, и для разных проектов могут быть применены разные методы Разработка и уточнение RTLмодели Физический синтез RTLмодели 1.Устройство управления: Дешифратор команд и устройство управления ресурсами Регистровый файл и устройство управления регистровыми окнами Устройство прерываний и управления специальными регистрами 2.Целочисленный канал: Целочисленное арифметикологическое устройство Целочисленное устройство умножения Целочисленное устройство деления Структурная схема процессорного ядра «МЦСТ-4R» Test-bench back-end Time analyzer SPARC v9 Instruction Set simulator library Tests CU IU0 IU1 RF тестируемая модель устройств Test-bench front-end Скорость моделирования описаний Количество инструкций/с 12000,00 Verilog: моделирование Verilog-описания с использованием САПР ModelSim 10000,00 8000,00 SC Modelsim: моделирование SystemCописания с использованием САПР ModelSim 6000,00 4000,00 2000,00 0,00 1 2 3 4 Номер случайного теста 5 SC OSCI: моделирование SystemC-описания с использованием стандартной библиотеки SystemC(OSCI) Сравнение скорости моделирования SystemCописаний и Verilogописаний: SystemC ModelSim: в 8-11 раз выше Verilog OSCI SystemC: в 12 – 13 раз выше Verilog Время выполнения тестов 30.00 Время выполнения, с. Скорость разработки SystemC-модели в 3 раза выше скорости разработки на языке Verilog 25.00 20.00 15.00 10.00 5.00 0.00 0 Verilog 5000 10000 15000 Количество инструкций SC Modelsim 20000 SC OSCI Реализованы 2 дополнительных модуля: ALU wrapper(модуль адаптации входных сигналов для ALU c языка SystemC на Verilog) и модуль сравнения выходных сигналов Тестирование началось до SystemC-модель всего целочисленного канала SystemC-описание других устройств ALU wrapper SystemC-ALU Verilog-ALU SystemC-описание других устройств Модуль сравнения выходных сигналов того, как был готов целочисленный канал на языке Verilog Выявлено 6 ошибок в Verilog- описании SystemC описание Написано конечным пользователем Дополнительные библиотеки, не входящие в стандарт SystemC Ядро Модули Порты Процессы Интерфейсы Каналы События Предопределённые каналы Сигнал, синхросигнал, FIFO-Очередь, mutex, семафор Утилиты Типы данных Отчеты, отладочная информация 4-хзначная логика Битовые вектора Целочисленные типы и др. Язык программирования С++ 1. Подготовительная фаза (Elaboration): Создание иерархии приложения, подключение портов. 2. Фаза моделирования (Simulation): Модель вычислений основана на модели событий Модель вычислений полностью совпадает с моделью вычислений Verilog Отличается синтаксис регистрации событий по сравнению с Verilog Определены принципы использования языка SystemC для проектирования микропроцессоров в ЗАО «МЦСТ» Выполнена экспериментальная реализация вычислительных устройств процессорного ядра системы на кристалле «МЦСТ4R» с использованием SystemC Проведена верификация устройств по принципу эталонной модели и исправлены логические ошибки в Verilog-описаниях Экспериментальные результаты показали эффективность использования SystemC Составлено руководство по использованию языка SystemC для разработчиков аппаратуры