SystemC | это... Что такое SystemC? (original) (raw)

SystemC

Тип библиотека (программирование)
Разработчик Open SystemC Initiative
Написана на С++
Операционная система Кроссплатформенный
Последняя версия 2.3
Сайт http://www.systemc.org

SystemC — язык проектирования и верификации моделей системного уровня, реализованный в виде C++ библиотеки с открытым исходным кодом.[1] Библиотека включает в себя ядро событийного моделирования, что позволяет получить исполняемую модель устройства. Язык применяется для построения транзакционных и поведенческих моделей, а также для высокоуровневого синтеза.

Язык SystemC использует ряд понятий, схожих с теми, которые имеют языки описания аппаратуры VHDL и Verilog: интерфейсы, процессы, сигналы, событийность, иерархия модулей. Стандарт SystemC не вносит ограничения на использование языка C++ при описании моделей систем.

Разработан черновик стандарта на синтез SystemC, целью которого является определить подмножество языков С++ и SystemC, пригодное для поведенческого и RTL синтеза.[2]

Содержание

Стандарты

Пример

Пример описания модели сумматора:

#include "systemc.h" // подключение заголовочного файла библиотеки SystemC

SC_MODULE(adder) // декларация модуля (класса) { sc_in a, b; // порты sc_out 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 или шин.

Базовые каналы:

Интерфейсы (interface)

Порты используют интерфейсы для общения через каналы.

События (events)

Должны быть описаны во время инициализации. Позволяют синхронизировать процессы.

Типы данных

SystemC содержит несколько типов данных, поддерживающих моделирование аппаратуры.

Расширение стандартных типов:

Логические типы:

Типы чисел с фиксированной точкой (Fixed point types):

Список приложений, поддерживающих SystemC

Примечания

  1. About SystemC (англ.). — краткое описание языка SystemC.(недоступная ссылка — история) Проверено 13 августа 2009.
  2. OSCI Drafts Under Public Review (англ.). — список черновиков стандартов OSCI. Архивировано из первоисточника 21 марта 2012. Проверено 13 августа 2009.
  3. IEEE-SA GetIEEE 1666 Terms of Use
  4. Aldec — Technologies — SystemC
  5. Cadence C-to-Silicon Compiler
  6. System Studio
  7. Catapult C Synthesis — Correct-by-Construction, High-Quality RTL, 10-100x Faster — Mentor Graphics
  8. Cynthesizer Closes the ESL-to-Silicon Gap
  9. Calypto | SLEC System
  10. JEDA Products | ESL Model Validation Automation
  11. SystemCrafter — Products

См. также