SystemC

SystemC
SystemC
Тип

библиотека (программирование)

Разработчик

Open SystemC Initiative

Написана на

С++

Операционная система

Кроссплатформенный

Последняя версия

2.3

Сайт

http://www.systemc.org

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], синтез.

Примечания

  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

См. также



Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Полезное


Смотреть что такое "SystemC" в других словарях:

  • SystemC — is often thought of as a hardware description language like VHDL and Verilog, but is more aptly described as a system description language , since it exhibits its real power during transaction level modeling and behavioral modeling. SystemC is a… …   Wikipedia

  • SystemC — ist eine Modellierungs und Simulationssprache insbesondere für die Entwicklung von komplexen elektronischen Systemen, die sowohl Hardware als auch Softwarekomponenten enthalten. Im Gegensatz zu reinen Hardwarebeschreibungssprachen (wie VHDL und… …   Deutsch Wikipedia

  • SystemC — es frecuentemente descrito como un lenguaje de descripción de hardware como son VHDL y Verilog, pero es más adecuado describirlo como un lenguaje de descripción de sistemas, puesto que es realmente útil cuando se usa para modelar sistemas a nivel …   Wikipedia Español

  • SystemC — es frecuentemente descrito como un lenguaje de descripción de hardware como son VHDL y Verilog, pero es más adecuado describirlo como un lenguaje de descripción de sistemas, puesto que es realmente útil cuando se usa para modelar sistemas a nivel …   Enciclopedia Universal

  • SystemC — Introduction SystemC est souvent présenté comme un langage de description de matériel, au même titre que VHDL ou verilog. En fait, SystemC est un langage de description de plus haut niveau, puisqu il permet une modélisation de systèmes au niveau… …   Wikipédia en Français

  • Hardware description language — In electronics, a hardware description language or HDL is any language from a class of computer languages and/or programming languages for formal description of electronic circuits. It can describe the circuit s operation, its design and… …   Wikipedia

  • Transaction-level modeling — (TLM) is a high level approach to modeling digital systems where details of communication among modules are separated from the details of the implementation of functional units or of the communication architecture. Communication mechanisms such… …   Wikipedia

  • NCSim — Incisive Developer(s) Cadence Design Systems Operating system Cross platform Type Simulator License proprietary …   Wikipedia

  • Juzzle — est une plateforme de développement open source de mise au point et d exploitation de simulateurs, utilisée depuis de nombreuses années dans les domaines de la simulation scientifique par la communauté industrielle française. Cet environnement se …   Wikipédia en Français

  • Verilog — Класс языка: Язык описания аппаратуры Появился в: 1983 1984 Автор(ы): Phil Moorby, Prabhu Goel Расширение файлов: .v Verilog, Verilog HDL (англ. Verilog Hardwar …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»