Logging and Tracing 3 - Combining multiple sources and live data

In the first two articles it was assumed that all log data comes from one file. But the fact is that complex systems with multiple domains/cores usually have more than a single log! - e.g. a hardware log (systemC), firmware traces from multiple cores and DSPs and application logs. Also it would be convenient, if we could see and analyse the log while simulation/debugging is ongoing. We could re-load any-time we are stepping - but live data from a an interface, port, socket should be nicer !

This article is based on impulse version 1.3/1.4

Combine multiple sources

To merge multiple sources - can be files or other kind of sources - impulse has a mechanism called Ports.

First step to create a new port is to make the Signals Port view visible (Window > Show View > Impulse > Signal Ports).

Click on the root node and add a Multiport Adapter. Then drag&drop the log resources ( that you want to add) on to the new port.

If you right-click on one of the resources of the node and click View/Edit, you can select the serializer and its configuration.

To open impulse, just double-click on the port. You will see impulse with a slightly different look.

Instead of the reload button you find:

Icon Function Description
(or symbol of port) Edit Port Opens the port editor
Connect Enables the user to connect to a port without starting streaming/aquisition. Depending on the port design, the port may:
  • Connect to external drivers and data sources
  • Defines all signals
  • Show 'current' data in the value column of the tree
Start/Stop Streaming Connects to the port and starts streaming/acquisition. To end streaming press again.
Single / Multiple For scope like ports, this button selects if the acquisition process is:
  • Single / 1-shot
  • Multiple / Auto mode
Start/Stop Update If the port generates a floating diagram, this button allows the user to start/stop updating the diagram. To stop the diagram you may also move a cursor.

As we are using resources only in this example, we just need to press the Start/Stop Streaming button to reload the resource content.

Getting live data

To get live data - we just need to select another kind of port - instead of resources you might use the serial interface, a tcp port or a pipe (see 06 Ports).

The device under test needs to be adapted accordingly. If you have used files before, the easiest migration path is to use pipes instead.

You can merge different types, so a resource with a pipe adapter and a tcp socket is no problem.

After opening the port, the other new buttons come into the game. Press Start Streaming to record the simulation, press Stop Update (or just move the cursor) to halt the diagrams and analyse the input. Press Start Update to continue updating with the latest data.

Next article will handle the case, if the available ports and data formats don't fit to your environment/requirement - how to get your data into impulse ?