User Tools

Site Tools


synthesis:features

Features

The following table gives an overviev on the C++/SystemC™ features supported by the fossy synthesis tool.

C++/Systemc™ feature Comment
Translation units Only one translation unit allowed
Modules
Members: signals, sub-modules, ctors, HAS_PROCESS
Ports/Signals: sc_signal, sc_in, sc_out, sc_inout, sc_in_clk
Ports/Signals: sc_out_clk, sc_inout_clk Not supported, but deprecated anyway.
Ports/Signals: *_resolved, *_rv Not supported.
Ctor: w/ and w/o SC_CTOR macro
Deriving
Datatypes
Integral types
Integral promotion, arithmetic conversion
Operators
Compounds: arrays, enums, class/struct/unions No pointers and no references supported.
SysC: sc_int, sc_uint, sc_bigint, sc_biguint
SysC: fixed-point types
SysC: sc_bv
SysC: sc_logic Converted to sc_bv<1> internally.
SysC: sc_lv
SysC: arithmetic operators
SysC: bitwise operators
SysC: relational oparators
SysC: shift operators
SysC: assignment operators No chained assignments, LHS must be side effect-free.
SysC: bit select operators
SysC: part select operators Reverse ranges not supported.
SysC: concatenation operators Assignment to concats not supported.
SysC: conversion to C integral (to_int(), to_bool() etc.)
SysC: additional methods: iszero(), sign(), bit(), reverse(), etc. accepted, but not fully implemented
Declarations
typedef
enums
aggregates No support for aggregate inits.
arrays
references Copy-in copy-out support for functions/methods.
pointers Pointers allowed for sub-module instantiation only.
Expressions new/delete not supported, no chained assignments.
Functions
Statements
Processes No SC_THREAD supported.
Sub-module instantiation No support for positional port binding.
Namespaces
Classes
Member functions
Member vars
Inheritance
Abstract classes
Constructors Restrictions on default arguments.
Overloading
Templates
Pre-processing directives
synthesis/features.txt · Last modified: 2014-12-11 15:14 (external edit)