Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


  • Moderator: ssm
  • Protocol: sdo
  • Attendees:
    • als
    • andy
    • nre
    • rvh
    • ssm
    • lgr
    • cds
    • peu
    • mek
    • frylan
    • kolja
  • Start: 15:00
  • End:


Table of Contents

Analysis of Dynamic Ticks (andy)

  • Close to finishing
  • Implementation complete, now need to decide what tests should be conducted
  • May want to vary compiler strategy (rvh)
    • Try priority-based and state-based approach for Raspberry Pi and Atmega (unavailable for FPGA)
    • Test 3 (maximum RPM) with software approach may result in higher RPM than netlist?
  • Demonstrator features 2 interleaving disks to show that controls are precise enough to avoid collisions

Current Progress on Lustre and Related (lgr)

  • Compiling is tedious: SCADE → Lustre → SCCharts → Hostcode with SCADE → Lustre being a manual step so far
  • Can now transform SCADE → Lustre automatically
  • Automatically creates code structure for Lustre node
  • Automatically detects types and input / output variables
  • Substitute out local variables if they are not required
    • Remove SCADE variables introduced for each connection to reduce visual clutter
    • What if a connection has multiple targets? (rvh) → Will result in multiple occurences of the variable's equation.
    • Readability up for discussion
    • Include this as an option, but not the standard (rvh)
    • Needs more work, technical steps need more research and examples to adapt synthesis (ssm)
  • Resulting dataflow SCChart looks rather similar to SCADE model
  • SCADE will connect output and output's value in the next tick with a backloop and a PRE operator
    • SCCharts variant currently does not do that (see images)
    • May want to change that (rvh)
  • Merge this to master branch.
  • Initialization operator Lustre: Uses left side in first tick, then right side
  • This operator exists in KExpressions too, however stacked initializations did not work as expected before
    • Use separate regions for each operator
    • May be possible to optimize this to reduce the number of regions (als)
      • However, this introduces more complexity due to the streams being more complex in some cases
  • Lustre fby can be expressed using initialization and pre
    • Use optimized generation for stacked fby operators
      • May want to use manually saved values instead of using pre for some cases for performance reasons (als)
      • Some of these operators only make sense if variables are unavailable → should not invest too much into optimizing them (als)
  • More Lustre operators: At most one, nor, implies
  • Use these in a future release?
    • Introducing new operators always comes with some overhead (als, ssm)
    • More features never hurt (rvh)
    • Makes no sense to leave these out because they are not required, but leave init in
      • Need init to create dataflow initialization such as in ABRO (ssm)
    • Try to avoid using these operators wherever using sequential constructivity is more convenient (rvh)
      • May want to handle this in the fby transformation on SCCharts level
    • This remains open for future discussion
  • When operator now uses update instead of conditional

Various (nre)

  • Generating OSGI model for pragmatics and semantics now works
    • Can now view all bundles and their dependencies
    • Semantics will work as soon as a layout bug is fixed
  • When expanding nodes in OSGI model, the selected node will remain exactly where it is without zooming out or moving the diagram
  • Feedback from S&B: KIELER uses scrolling for zoom, clicking and dragging for panning
    • E.G. Browser: Scrolling pans up and down, shift + scrolling left and right, ctrl + scrolling zooms.
      • Browsers only have one dimension to move through, e.g. Google Maps uses the same as Kieler → Makes more sense (cds, rvh)
    • Use this as an alternative control mode?
      • May lead to even more requests and confusion (cds)
    • Perhaps use vertical and horizontal scrolling using Ctrl and Shift?
      • Must stay close to common software, e.g. Inkscape, Powerpoint, etc.
    • Conclusion: Leave default as it is

Orga (ssm)


Bitbucket Problems (sdo)

  • Too many user
  • Alex will find a solution
  • Everybody panic!!!

Circuit Layout in Dataflow Synthesis (kolja)

  • Hardware synthesis is now based on the Netlist
  • Problems:
    • Registers are there multiple times
    • And gate has output ports to NORTH, it should be EAST
    • If one variable is written to after its read it is visualized as output
    • Registers are initialized to 0, this is currently not visualized
    • Order of expression still has relevance, this should be fixed
    • Binary OR should be the same as logical OR
    • Negation sign in actors and triangle in register should be bigger
  • Visualization: Mark wires that are true as red, numbers are shown

Release of Everything (nre)

  • KEITH should be released
  • Agenda
    • ELK release (only one open bug)
    • Pragmatic release + LS mergen
    • Semantic release + LS mergen
    • Pragmatic de-eclipsification release later
  • OSGi release
    • Suggestion: Release in pragmatic as feature (cds thinks this is good)
    • Suggestion: Put it in open-kieler (cds)
    • Everything else is discussed in a smaller group
  • Extend OSGi tool to C++ Module System (as thesis)(cds: nothing to do with our research, rvh maybe)

Selfloops (cds)

  • Use the simple solution as often as possible, try to reduce code complexity
  • Use different routing slots for spline self-loops instead of trying to calculate the best solution
  • Problems:
    • Spline self-loops:
      • Spline labels will not work with too many self-loops
    • Self-loops between the same ports are drawn in the same routing segment (this is no problem for SCCharts)
  • Splines, polyline and orthogonal works
  • Self-loop label are now counted to the size of the node
  • TODO for release.
    • Fix remaining tickets
    • Aks elk people
    • Ask Alex to test everything
    • Release planned this year

KiCo CLI (als)

    • KiCo is now available as a command-line tool, with kico and all languages from KIELER
    • One is able to
      • set the compilation system
      • set an output directory
      • set verbose
      • one is able to save all intermediary results
      • set properties
      • use pattern for input files
    • Tasks
      • Order intermediary results by number (such as the pragmatic)
      • After pragmatic de-eclipsification use this to generate pdfs, svgs, pngs
      • only show public systems
      • Suggestion: Flag for output language for listing systems
    • One executable for each OS and for Java 8
    • Only SCCharts only CLI compiler is also delivered
    • mek might be able to use this tool

Deferred & weak suspend (kolja)

  • Deferred was translated via deferred guard
    • Problem: Cannot be scheduled for some cases (if immediate transition back to state that was active before deferred transition was active)
  • Solution:
    • Split state that is reached by deferred in deferred state and original state where the deferred state has only delayed outgoing transitions
    • Do this only if it is otherwise not schedulable, since this transformation is expensive
    • Private variables are upped one level to be used in both states
  • Weak suspend should work now with the new deferred implementation
  • Problem with weak suspend
    • entry and exit action are executed every tick
  • Solution
    • Put entry and exit actions in own state before/after the state they refer to
  • Shallow deferred does not regard actions
    • It should do this somehow