HomeLinksSite map
Solutions > Methodology 
  


Notations | Abstractions | More Information


Capture Information Through Graphics and C Code

Models created with CoFluent Studio combine the MCSE graphical notations and C code.
Graphical notations are dedicated to structural high-level descriptions while text is preferred to describe detailed behaviors. The C language was chosen because of its large-scale acceptance in the embedded software and hardware communities. However, developers can write algorithms in C++, VHDL or SystemC if they want.

With the graphical symbols available with CoFluent Studio, developers can describe any software or hardware design possible. Their representation is easy to understand, their meaning is intuitive to both electronic and computer science engineers and their semantics is clear and unambiguous.

Models provide a description of embedded systems at a high abstraction level that facilitates system-level hardware/software co-design, accelerates simulation and enables automatic code generation.

Functional (timed-behavioral) or application model


Click to enlarge
Behavioral graphical notations
Graphical descriptions for the functional model include organizational and behavioral viewpoints.
 
Organizational viewpoint
Structures are base organizational elements in a functional model. They include sub-structures or elementary components called functions and their communication links. Structures are hierarchical and can be refined into multiple sub-structure levels. Leaf structural elements are functions. Functions are elementary components and have their own thread of execution and can be assimilated to processes. All functions in a model execute independently, in full parallelism and asynchronously from each other. Each function communicates with its environment through input/output ports. A function can have different behaviors (internal descriptions) defined in separate configurations.



Communication links are of 3 types:
- Shared variables describe data exchanges between functions with no temporal dependencies
- Synchronizations (or events) describe temporal dependencies between functions
- FIFO channels (or message queues) describe a data transfer following a synchronized producer/consumer mode
 
Behavioral viewpoint
The behavior for each leaf function in the structural hierarchy is described in a macroscopic flow diagram that mixes data and control processing. Operations are elementary (lowest granularity level) computation blocks made of pure sequential algorithms processing internal and environmental data (with no external synchronization). The behavior of a function is a composition of operations and inputs/outputs based on usual operators: sequence, alternative, concurrency, iteration and conditional execution. The behavioral model is represented according to 2 axes: vertical axis for the control flow (time ordering) and horizontal axis for the data flow (communications).
Note that complex operations (called activities) can be refined into full behavioral descriptions.

Executive structure or platform model


Click to enlarge
Functional and architectural graphical notations
The executive structure represents the system’s hardware architecture at a high abstraction level.
The executive structure has to support the system’s functional model. Later in the design process, functional elements are mapped to executive elements. There must be at least one executive host/correspondence for each mapped functional element.
The executive structure model is composed of structural and communications elements. Inter-related processors and shared memories communicate with 2 kinds of relations (communication links): communication nodes and signals.
 
A processor is a physical processing unit capable of executing functions. There are 2 kinds of processors: software (typically a programmable microprocessor/microcontroller running a real-time operating system) and hardware (typically an ASIC or FPGA).
Shared memories represent non-volatile data storage areas.
Communication nodes represent processor-to-processor and processor-to-memory communication links of 3 kinds: point-to-point (e.g. serial or parallel link), bus or router.
Signals are inter-processor synchronization events (typically an interrupt).


Home - Company - Solutions - Partners - Resources - Contact Us
Legal Information