SystemC
| Тип | |
|---|---|
| Разработчик | |
| Написана на |
С++ |
| Операционная система | |
| Последняя версия |
2.3 |
| Сайт |
SystemC — язык проектирования и верификации моделей системного уровня, реализованный в виде C++ библиотеки с открытым исходным кодом.[1] Библиотека включает в себя ядро событийного моделирования, что позволяет получить исполняемую модель устройства. Язык применяется для построения транзакционных и поведенческих моделей, а также для высокоуровневого синтеза.
Язык SystemC использует ряд понятий, схожих с теми, которые имеют языки описания аппаратуры VHDL и Verilog: интерфейсы, процессы, сигналы, событийность, иерархия модулей. Стандарт SystemC не вносит ограничения на использование языка C++ при описании моделей систем.
Разработан черновик стандарта на синтез SystemC, целью которого является определить подмножество языков С++ и SystemC, пригодное для поведенческого и RTL синтеза.[2]
Содержание |
Стандарты[править]
- IEEE Std. 1666-2005 IEEE Standard SystemC Language Reference Manual[3]
Пример[править]
Пример описания модели сумматора:
#include "systemc.h" // подключение заголовочного файла библиотеки SystemC SC_MODULE(adder) // декларация модуля (класса) { sc_in<int> a, b; // порты sc_out<int> sum; void do_add() // процесс { sum = a + b; } SC_CTOR(adder) // конструктор { SC_METHOD(do_add); // регистрация процесса do_add в ядре моделирования sensitive << a << b; // список чувствительности процесса do_add } };
Особенности языка[править]
Модули (module)[править]
Модули - базовые строительные блоки в SystemC. Модель в SystemC обычно состоит из нескольких модулей, которые общаются через порты.
Сигналы (signal)[править]
Сигналы в SystemC являются эквивалентом посылки по проводу (wire).
Порты (port)[править]
Через порты происходит общение модуля с внешним миром (обычно с другими модулями).
Процессы (process)[править]
Процессы - главные вычислительные элементы. Процессы выполняются параллельно.
Каналы (channel)[править]
Через каналы в SystemC происходит общение элементов. Каналы могут быть простыми проводами или сложными соединительными механизмами наподобие очередей FIFO или шин.
Базовые каналы:
- signal
- buffer
- fifo
- mutex
- semaphore
Интерфейсы (interface)[править]
Порты используют интерфейсы для общения через каналы.
События (events)[править]
Должны быть описаны во время инициализации. Позволяют синхронизировать процессы.
Типы данных[править]
SystemC содержит несколько типов данных, поддерживающих моделирование аппаратуры.
Расширение стандартных типов:
- sc_int<> 64-разрядное знаковое целое число
- sc_uint<> 64-разрядное беззнаковое целое число
- sc_bigint<> знаковое целое число произвольной разрядности
- sc_biguint<> беззнаковое целое число произвольной разрядности
Логические типы:
- sc_bit 2-значный бит
- sc_logic 4-значный бит
- sc_bv<> вектор (одномерный массив) из sc_bit
- sc_lv<> вектор sc_logic
Типы чисел с фиксированной точкой (Fixed point types):
- sc_fixed<> templated signed fixed point
- sc_ufixed<> templated unsigned fixed point
- sc_fix untemplated signed fixed point
- sc_ufix untemplated unsigned fixed point
Список приложений, поддерживающих SystemC[править]
- Aldec Active-HDL, Riviera[4], совместное моделирование.
- Cadence Design Systems C-to-Silicon Compiler[5], синтез.
- Synopsys System Studio[6], моделирование, анализ, верификация.
- Mentor Graphics Catapult C Synthesis[7], синтез.
- Forte Design Systems Cynthesizer[8], синтез.
- Calypto SLEC System[9], анализ кода.
- Jeda Validation Tools Suite[10], анализ кода.
- SystemCrafter SystemCrafter SC[11], синтез.
Примечания[править]
- ↑ About SystemC (англ.)(недоступная ссылка — история). — краткое описание языка SystemC. Проверено 13 августа 2009.
- ↑ OSCI Drafts Under Public Review (англ.). — список черновиков стандартов OSCI. Архивировано из первоисточника 21 марта 2012. Проверено 13 августа 2009.
- ↑ IEEE-SA GetIEEE 1666 Terms of Use
- ↑ Aldec — Technologies — SystemC
- ↑ Cadence C-to-Silicon Compiler
- ↑ System Studio
- ↑ Catapult C Synthesis — Correct-by-Construction, High-Quality RTL, 10-100x Faster — Mentor Graphics
- ↑ Cynthesizer Closes the ESL-to-Silicon Gap
- ↑ Calypto | SLEC System
- ↑ JEDA Products | ESL Model Validation Automation
- ↑ SystemCrafter — Products
См. также[править]
| Это заготовка статьи об электронике. Вы можете помочь проекту, исправив и дополнив её. |

