Similar presentations:
SystemC 2020 (1)
1. Проектирование и верификация цифровых устройств с помощью SystemC
2. Зачем изучать HDL-языки сегодня?
Hardware description language (HDL) —специализированный язык программирования,
используемый для описания структуры и
поведения цифровых логических схем.
Зачем изучать HDLязыки сегодня?
1.
Языки описания аппаратуры (HDL) нужны
для разработки “прошивок” FPGA / ASIC /
SoC
2.
FPGA / ASIC vs CPU/GPU:
+ Производительность/Ватт
− Сложность реализации, “другая”
логика вычислений
3.
Altera и Xilinx выпускают системы-накристалле (SoC) ARM+FPGA
3. Что такое SystemC?
• SystemC – язык моделирования ипроектирования цифровых устройств,
основанный на C++ (фактически
выполнен в виде библиотеки для C++)
• Развивается с 2000 года, последняя
версия – 2.3.3 (11.05.2018)
4. Уровни представления аппаратуры
5. Gates
6. Сравнение языков описания аппаратуры
7. Классический процесс разработки
Классический процесс подразумевает созданиеалгоритма/модели сначала в программной реализации.
При ручном кодировании в HDL требуется тщательный
контроль ошибок:
Классический
процесс
разработки
8. Инкрементальное улучшение модулей
9. Процесс разработки при системном проектировании
10. Основные компоненты SystemC
11. Состав библиотеки SystemC
12. XOR
13. NAND header file
14. NAND source code file
15. XOR header file
16. XOR header file
17. XOR source code file
18. Соединение модулей: сигналы
• объявление:sc_signal<sc_uint<4> > ctr_val;
• соединение:
module1.ctr_in(ctr_val);
module2.ctr_out(ctr_val);
• Каждый порт должен быть
подключён к одному сигналу, иначе
не будет работать симуляция. Сигнал
не может быть подключён к
нескольким выходным портам.
• особый сигнал – осциллятор:
sc_clock clk("clk", 5, SC_PS);
19. Симулятор SystemC
Кроме исследуемого модуля, создаётсямодуль теста, который:
• генерирует входные сигналы для
модуля
• проверяет выходные сигналы модуля
20. Симулятор SystemC
21. Симулятор SystemC: запись временных диаграмм
22. Симулятор SystemC: просмотр временных диаграмм
23. Синтез SystemC
• Verilog, VHDL - стандарты де-фактодля представления на уровне RTL
• Под синтезом SystemC понимается
трансляция на уровень RTL
Verilog/VHDL из исходных кодов
SystemC
24. Синтез SystemC
Проприетарные и “умные” (трансляция не с RTL-уровняSystemC):
• Catapult C
• Forte DS
Синтез SystemC
• Xilinx Vivado HLS
Open-Source и “глупые” (трансляция с RTL-уровня
SystemC на RTL-уровень Verilog/VHDL):
• Sc2v
• sc2vhdl
• sysc2v
25. Синтезируемое подмножество SystemC
НЕ синтезируются конструкции SystemCдля симуляции:
• sc_thread
• sc_start
• sc_main
• sc_trace
26. Синтезируемое подмножество SystemC
НЕ синтезируются конструкции C++:Синтезируемое
подмножество
SystemC
• объявления классов отличных от
SC_MODULE
• динамическое выделение памяти и
указатели
• исключения
• рекурсия
• функции стандартной библиотеки
• наследование
• вещественные типы данных
27. Транслятор sc2v
Транслирует SystemC RTL в Verilog RTLТранслятор sc2v
Каждый SystemC-модуль должен
состоять из .h файла с объявлениями
портов, сигналов и процессов и .cppфайла c определением процессов
Использование: sc2v.bat <имя модуля>
28. Транслятор sc2v
Поддерживаемые типы данных:• bool
• sc_uint<>
• sc_int <>
• sc_biguint <>
• sc_bigint<>
29. Транслятор sc2v
Ограничения:• нет поддержки функций
• при записи в порт надо всегда
использовать метод .write()
• нет поддержки портов inout
• нет поддержки guard define
• нет поддержки clk.pos() (надо
использовать sensitive_pos)
30. Обзор лабораторных работ
1. Ознакомление с библиотекойSystemC + индивидуальное задание
Обзор лабораторных
работ
2. Синтез RTL-моделей устройств на
SystemC
3. Высокоуровневое моделирование
обработки потоков данных с
использованием языка SystemC
electronics