WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
SystemC
Тип библиотека (программирование)
Разработчик Open SystemC Initiative
Написана на С++
Операционная система Кроссплатформенный
Последняя версия 2.3
Сайт 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

Примечания

  1. About SystemC (англ.) (недоступная ссылка). — краткое описание языка SystemC. Проверено 13 августа 2009. Архивировано 28 октября 2007 года.
  2. OSCI Drafts Under Public Review (англ.). — список черновиков стандартов OSCI. Проверено 13 августа 2009. Архивировано 21 марта 2012 года.
  3. IEEE-SA GetIEEE 1666 Terms of Use (недоступная ссылка)
  4. Aldec — Technologies — SystemC Архивировано 22 марта 2009 года.
  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

См. также

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии