Jump to content
thomas.haber

Analog data formats used

Recommended Posts

Hello Thomas,

 

sorry for the late reply -- something has reset the e-mail notification mechanism of this forum so I did just now see your message.

 

Your wave viewer plug-in for Eclipse looks really promising!

 

 

In SystemC AMS, two trace file formats are currently supported through the sca_trace() mechanism:
 
- VCD traces for all C++ plain old data types as well as the SystemC data types. This is mostly useful to trace the discrete event signals of the digital parts of a design. In the SystemC world, frequently gtkwave is used to visualize the VCD traces.
 
- Tabular trace files in a Matlab-compatible format, which support support in theory all C++, SystemC, and user-defined data types, which have an iostream output operator defined. In practice, only tracing of scalar data types works reliably without any additional customizations. This format supports tracing during transient and frequency-domain simulation. It is particularly well suited for tracing analog signals. It can be quickly visualized using, e.g., gaw, gnuplot, or octave. The tabular trace file format is standardized in the SystemC AMS 2.0 LRM available from http://www.accellera.org.
 
However, there's is to my knowledge no trace file viewer available allowing to display in parallel VCD and tabular traces in a single worksheet. It would be great if your plug-in could fill in this gap! Especially, since many SystemC users write their models using the Eclipse IDE.
 
In a longer term, transient and frequency domain traces should be supported. Analog traces are also often further post-processed (e.g. doing an FFT, eye plots, polar plots, wave form calculations). A GUI facilitating setting up such post-processing and visualization of the results would be highly appreciated.

 

 

In general, in the analog/mixed-signal world, we're still lacking a standardized open trace file format, which supports analog *and* digital signals carrying complex data types as well as transactions modeled on higher levels of abstractions.

 

Best regards,

 

Torsten

Share this post


Link to post
Share on other sites

Hi Torsten,

 

 

many thanks,

that*s what i was looking for.

 

In fact the next feature will be 'Source Management'.

A source can be composed of multiple inputs (file,pipe,socket,.. of different formats).

This should target what you are looking for.

 

regards,

thomas

Share this post


Link to post
Share on other sites

Hello Thomas,

 


Supporting different sources (file, pipes, sockets) will be a very interesting feature for many SystemC users -- especially for monitoring long-lasting or distributed simulations.

 

I'm looking forward to test these new features in your plug-in!

 

Regards, Torsten

Share this post


Link to post
Share on other sites

Hi Thomas,

 

I am impressed! Thanks a lot for your work.

 

I fully support Torsten. As he mentioned :

 

In a longer term, transient and frequency domain traces should be supported. Analog traces are also often further post-processed (e.g. doing an FFT, eye plots, polar plots, wave form calculations). A GUI facilitating setting up such post-processing and visualization of the results would be highly appreciated.

 

will be extremely appreciated if implemented. However, I would like to add, these features should be added domain by domain after careful consideration. It means identify general requirements, like, FFT, PSD, ac, noise etc. and then implement them, second phase identify requirements for RF design (eye-diagram, IQ plot, etc) and then implement them, and so on. Group them as bundle in your gui.

 

Regards,

Sumit

Share this post


Link to post
Share on other sites

Hallo Summit,

 

thanks for your comments.

As i'm not from the rf side, i need some explanations here.

I'm confused with frequency/transient and time domain and how they interact.

If your logging in frequency domain, is there an outer time domain (periods)? or is this called transient then.

Could you give me an example ?

 

regards,

thomas

Share this post


Link to post
Share on other sites

Just cannot thank you enough for this. I am loving it  :)

 

Suggestion - if a data in VCD file is double precision, in viewer automatically make the data double. - I did not get a chance to see ur viewer, but wanna confirm this feature - if it is not there

Share this post


Link to post
Share on other sites

Hello Thomas,

 

this looks very promising! I'll give the viewer certainly a try! From what I saw from the ChangeLog, I have already a few comments:

  • Tabular trace files have the extension ".dat" in SystemC AMS (see LRM).
  • Frequency domain traces are often displayed on a log scale (f-axis: 1 Hz, 10 Hz, 100 Hz, 1000 Hz, 10000 Hz, ..., y-axis either linear or in decibel (depending on the signal type 20 * log(y) or 10 * log(y))) to get an overview of the small signal behavior over a big dynamic range. The linear scale is used to examine closer a certain frequency range.

I hope also that others will give you more feedback on this useful tool!

 

Regards, Torsten

Share this post


Link to post
Share on other sites

Hallo Torsten,

 

>>Tabular trace files have the extension ".dat" in SystemC AMS (see LRM).

unfortunately many files got the ending dat. So i choose something more specific ?!?.

But you can add  *.dat to the content preferences -  so it should be identified.

 

>>Frequency domain traces are often displayed on a log scale

For the value axis this is quite easy to implement. 

For the time /frequency axis its unfortunately more complicated, but i will keep it in mind.

 

Next release will enable multi sources.

 

regards,

thomas

Share this post


Link to post
Share on other sites

Just cannot thank you enough for this. I am loving it  :)

 

Suggestion - if a data in VCD file is double precision, in viewer automatically make the data double. - I did not get a chance to see ur viewer, but wanna confirm this feature - if it is not there

For VCD files this should be already inside. I'm just wondering concerning tabular files ?!? Will have a look.

Share this post


Link to post
Share on other sites

Dear Thomas,

 

I was able to install your plug in on my Eclipse 3.7.2 install. Associating *.dat to Impulse required me to find pane in Windows->Preference; General -> Content Types -> Element -> Record. Now the .dat files are opened by Impulse, but not correctly interpreted as tabular trace files. In fact, not a single signal is recognized.

 

I also noted that a configuration is associated to the file base name and not the extension. This leads to conflict if there are a VCD and a tabular trace file with the same base name.

 

Changing the height of a signal trace is a bit cumbersome for the moment, as you have to right click on the signal to "Edit" it to set the Preferred height in pixels. It would be

 

Regarding log frequency scales, you may find the following Wikipedia article a good starting point:

 

http://en.wikipedia.org/wiki/Decade_(log_scale)

 

It's an important feature for any AMS designer, who is interested in doing frequency domain analyses.

 

Otherwise, the plug in looks really promising. I'm looking forward to follow it's further evolution!

 

Regards, Torsten

 

PS: As a test case for a tabular trace file, you may use the following file snippet:

 

=== Start of file: source_rectifier_sink.dat ===

 

%time sig_1 sig_2
0 0 0
0.001 0.463525491562 0.463525491562
0.002 0.881677878439 0.881677878439
0.003 1.21352549156 1.21352549156
0.004 1.42658477444 1.42658477444
0.005 1.5 1.5
0.006 1.42658477444 1.42658477444
0.007 1.21352549156 1.21352549156
0.008 0.881677878439 0.881677878439
0.009 0.463525491562 0.463525491562
0.01 1.83690953073e-16 1.83690953073e-16
0.011 -0.463525491562 0.463525491562
0.012 -0.881677878439 0.881677878439
0.013 -1.21352549156 1.21352549156
0.014 -1.42658477444 1.42658477444
0.015 -1.5 1.5
0.016 -1.42658477444 1.42658477444
0.017 -1.21352549156 1.21352549156
0.018 -0.881677878439 0.881677878439
0.019 -0.463525491562 0.463525491562
0.02 -3.67381906147e-16 3.67381906147e-16
=== End of file: source_rectifier_sink.dat ===

Share this post


Link to post
Share on other sites

Hi Torsten.

 

thanks for the feedback.

 

>> Now the .dat files are opened by Impulse, but not correctly interpreted as tabular trace files. In fact, not a single signal is recognized.

Yes, what i said was not correct (not fully correct). There was another check in the serializer (from before content integration). Has been removed and works now !

I checked with your file.

 

>>I also noted that a configuration is associated to the file base name and not the extension. This leads to conflict if there are a VCD and a tabular trace file with the >> same base name.

No , when a file is opened again, it starts with the same configuration selected last time. 

When a file is new and opened the first time, it searches for a configurations that  fits most to the file (same signal names and pathes).

The name of the configuration is just a name and initially set to the signals name (when doing dnd).

 

 

>>Changing the height of a signal trace is a bit cumbersome for the moment, as you have to right click on the signal to "Edit" it to set the Preferred height in pixels. It >>would be

 

I guess there is some text missing ?!?

 

>> Regarding log frequency scales, you may find the following Wikipedia article a good starting point:

 

Yes i understand. In the meanwhile i found a good solution for this. I'll try out next week. 

 

Next release will be end of this week or beginning of next.

 

regards,

thomas

 

 

 

Share this post


Link to post
Share on other sites

Hello Thomas,

 

Thanks for your detailed reply. I will check out the new Impulse version once it gets released. Regarding my incomplete comment:

 

"Changing the height of a signal trace is a bit cumbersome for the moment, as you have to right click on the signal to "Edit" it to set the Preferred height in pixels. It would be..."

 

It would be more convenient if the user could change the height of a signal trace using the mouse directly in the trace window by positioning the mouse in between two traces, clicking and holding the left mouse button and moving the mouse up or down.

 

Regards, Torsten

Share this post


Link to post
Share on other sites

>> It would be more convenient if the user could change the height of a signal trace using the mouse directly in the trace window by positioning the mouse in between two traces, clicking and holding the left mouse button and moving the mouse up or down.

 

This is in general an open issue: Problem is that tree control under windows does not support  different item heights. Solution could be like gtkwave additional "height extention items" but i don't like that idea too much.

 

 

Version 0.5.3 is now out !

See http://toem.de/index...-and-noteworthy

Share this post


Link to post
Share on other sites

Hi Torsten,

 

i was thinking about the geometry for analog signals.

As i wrote, one problem is that win32 does not support different height items.

 

But i think something different could be more useful.

You might have seen that in the config tree, the context menu allows to "Go Into" a folder item.

After that only the folder and its children are visible.

 

Additionally to folders there could be

  * diagrams

  * charts

  * any other information

 

In the normal view you see the children of the diagram as normal signals (when not collapsed).

If you "Go Into" the diagram or chart, the diagram will get a full screen geometry

independent from the tree items.

 

Maybe difficult to explain and understand.

 

Tomorrow i will release 0.5.4. It will contain streaming vie pipes and sockets. So you can see the waves while simulating.

 

Regards,

thomas

Share this post


Link to post
Share on other sites

Hello Thomas,

 

I second your opinion that the "analog height extensions" by GTKWave are a very unsatisfying/cumbersome to handle solution.

 

I think that I understand your "Go into" idea. It certainly makes sense to be able to easily switch to a mode, where a signal/group of signal is displayed in a diagram with full screen geometry. Also organizing groups of traces into several tabs may be very convenient -- especially if the displayed results anyway belong to different parts of your system, different analyses, different result representation.

 

Still, the problem remains that an analog designer needs to be able to easily assign different heights to different signal panes to address the different dynamic properties of the signals. Also analog designers frequently want to plot the several signals with different colors in the same pane to be able to evaluate the phase relations between different signals. Good tracing tools even allow two different y-axes in the same pane so that related voltage and current variables from the same branch (more generally the across (effort) and through (flow) variables) can be displayed.

 

I will have a look on the new version of your plug-in once I find some time in the coming days.

 

Best regards, Torsten

Share this post


Link to post
Share on other sites

Hallo Thorsten,

 

your are right. Not only for analog signals, but also for transactions it will be usefull to simple resize the item height.

To do so i had to exchange the tree:

 

http://toem.de/index.php/blog/152-impulse-new-and-noteworthy

 

For the axis problem i'am current thinking about a general non-linear axis, that also support time warps .

 

regards,

thomas

Share this post


Link to post
Share on other sites

Hello Thomas,

 

This new resizing feature looks very promising. I'll give it soon a try to provide you with more feedback! I'm also aware that some colleagues started to look into your plug-in. Maybe they will provide further comments in this thread.

 

Regards,

 

Torsten

Share this post


Link to post
Share on other sites

Hello Thomas,

 

I checked out your new version of Impuls (0.5.5 and 0.5.6). It seems to be quite stable on Eclipse Indigo. However, on Eclipse Kepler, the Impulse plug in crashes frequently with the following error message:

 

Unhandled event loop exception

    java.lang.StackOverflowError

 

This happens when I try to maximize the Impulse tab, when double-clicking on the tab with the trace file name. After that, Eclipse closes the workbench.

 

Thanks, for implementing the resizing of the trace pane height using the mouse! It is very convenient.

 

Also, the capability for grouping traces together into one trace pane is nice. Currently, you display each signal on its own y-axis. Especially for analog signals, it would be nice they would be plotted by default against the same y-axis. Having the possibility to assign an individual additional y-axis for another group of signals in the same pane is always useful for signals with small amplitude.

 

Displaying the y-axis in the plot pane would be also nice. You could, e.g., display y1 on the left side of the pane and y2 on the right side of the pane.

 

Another useful feature could be the capability to define small labels associated to a point on the trace that is displaying the x and y value at that point.

 

Thanks for this very useful tool! I'm looking forward to its further improvements!

 

Regards,

 

Torsten

Share this post


Link to post
Share on other sites

>> I checked out your new version of Impuls (0.5.5 and 0.5.6). It seems to be quite stable on Eclipse Indigo. However, on Eclipse Kepler, the Impulse plug in crashes frequently with the following error message:Unhandled event loop exception


    java.lang.StackOverflowError


 


Unfortunately i was not able to reproduce. Would it be possible to send me trace log ?


I checked in windows8 and Linux. It could be also related to the wave file ?? ot configuration ??


 


>> Also, the capability for grouping traces together into one trace pane is nice. Currently, you display each signal on its own y-axis. Especially for analog signals, it would be nice they would be plotted by default against the same y-axis. Having the possibility to assign an individual additional y-axis for another group of signals in the same pane is always useful for signals with small amplitude.


 


You can select multiple signals and edit the scale configuration for them. Default is that all signals are painted to their extends.


 


>> Displaying the y-axis in the plot pane would be also nice. You could, e.g., display y1 on the left side of the pane and y2 on the right side of the pane.


Something like this will definetely come.


 


>> Another useful feature could be the capability to define small labels associated to a point on the trace that is displaying the x and y value at that point.


You mean for all points ?


There is that annotated mode that displays a rectangle around the point. You would prefer to add values ?


I'm currently in favour of a hover mechanism !?!


 


thanks for your inputs,


thomas

Share this post


Link to post
Share on other sites

Hello Thomas,

 

Thanks for your quick reply.

 

>> I checked out your new version of Impuls (0.5.5 and 0.5.6). It seems to be quite stable on Eclipse Indigo. However, on Eclipse Kepler, the Impulse plug in crashes frequently with the following error message:Unhandled event loop exception

    java.lang.StackOverflowError

 

Unfortunately i was not able to reproduce. Would it be possible to send me trace log ?

I checked in windows8 and Linux. It could be also related to the wave file ?? ot configuration ??

 

Sorry, I forgot to mention that I use Eclipse IDE for C/C++ Developers Kepler Release (Build Id 20130614-0229) on OS X :

 

OS X Mountain Lion 10.8.4 x86_64 (Darwin Kernel Version 12.4.0)

 

 

java version "1.6.0_51"
Java SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
Java HotSpot 64-Bit Server VM (build 20.51-b01-457, mixed mode)

 

 

Besides Impulse, I didn't install any other additional plug-in.

 

The error happens after opening a trace file (in my case .dat tabular trace file) yet without an attached configuration. I add the contained signals for display, which creates the configuration and displays the signals. Then, I double click on the Impulse tab to maximize it. It reproducibly crashes directly after the maximization has entered into effect. As the crash log is very long, I'll sent it separately.

 

>> Also, the capability for grouping traces together into one trace pane is nice. Currently, you display each signal on its own y-axis. Especially for analog signals, it would be nice they would be plotted by default against the same y-axis. Having the possibility to assign an individual additional y-axis for another group of signals in the same pane is always useful for signals with small amplitude.

 

You can select multiple signals and edit the scale configuration for them. Default is that all signals are painted to their extends.

I see. To facilitate the correct setting of the scale configuration, you may consider to display for all analog signals, there minimum and maximum values.

 

>> Displaying the y-axis in the plot pane would be also nice. You could, e.g., display y1 on the left side of the pane and y2 on the right side of the pane.

Something like this will definetely come.

 

>> Another useful feature could be the capability to define small labels associated to a point on the trace that is displaying the x and y value at that point.

You mean for all points ?

No, just for selected key points indicated by the user: He could e.g. right click on a trace at a certain point. Select something like "Add label..." and then, he can add optionally some explicative text, which would be displayed along with the x and y values.

 

There is that annotated mode that displays a rectangle around the point. You would prefer to add values ?

The annotated node displaying the actually written samples with small rectangles is fine as it is.

I'm currently in favour of a hover mechanism !?!

I think, this is a separate useful feature.

 

thanks for your inputs,

thomas

Best regards,

 

Torsten

Share this post


Link to post
Share on other sites

Thanks for the log.

In fact its something cocoa specific.

The update of another composite, forces the composite itself to be redrawn. - Very strange --

I will take care for a fix this week.

 

>>No, just for selected key points indicated by the user: He could e.g. right click on a trace at a certain point. Select something like "Add label..." and then, he can add optionally some explicative text, which would be displayed along with the x and y values.

 

This gets in the direction of markers.

Not started in impusle but already in the framework.

A possibility to add bookmarks, texts, a relation to other signals, or here a value attatched.

Do you see this as part of the configuration or the wave file?

- do you want to see his markers again after new simulation at the same position but maybe with different value ?

- or do you see it as part of this specific wave file (a kind of analysis).

 

regards,

thomas

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...