avatar image

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
  • Monday December 6, 2021, 11:27 pm
  • Proudly celebrating 15+ years online.
  • Donate now to become a lifetime supporting member of the site and get a non-expiring license key for all of our programs.
  • donate

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - wnitzan [ switch to compact view ]

Pages: [1]
DC Member Programs and Projects / SOC hardware modeling with SystemC
« on: February 23, 2020, 05:45 PM »
I designed a template for System-on-a-Chip (SOC) hardware modeling, using the SystemC library.
I also wrote a utility library, that provides extra functionality for such simulations.


This is an example of an untimed simulation of 3 modules: Master, Producer and Consumer.
The Master programs the Producer to send a given number of packets to the Consumer, and the Consumer to expect that many packets from the Producer. Once the Consumer received the said packets, it sends a Done signal to the Master, which then either repeats the cycle or ends the simulation.

Small as it is, this example demonstrates:
1. The use of blocking events and blocking interfaces to control "hardware" modules.
2. The definition of memory addressable registers with the use of generic base classes for Register and Field, and
3. The control of debugging print-out messages via command line options and/or a simple text file.

I built this on Linux, using non-recursive Makefiles, but any other building method and OS should work too.
I posted a description of this work, and a downloadable ZIP file with all the code on:

I hope you find this useful!

Embarking on this journey, I had several objectives in mind:
1. I wanted to develop C++ programs on Linux.
2. I wanted a systematic method for building those programs using Makefiles.
3. The method should work for non-trivially sized programs, i.e. programs whose code spans multiple directories and files.
4. I intended those programs to make use of libraries, that I will write myself and also obtain from other sources.
5. I wished for a simple modular approach:
 - Adding another component to a library or a program will follow a well defined procedure, with short and simple Makefiles.
 - Likewise when one component wishes to include (make use of) another component.
6. I wished that header file dependencies are automatically discovered, instead of manually entered.
7. I wished that the method supported multiple independent build types for a given program, specifically, building both debug and release versions.
8. I wanted to call make from the source directory, and have the build performed in the appropriate directory, based on the build type.

Fortunately for me, others before me had one or more of these objectives in mind, too.
Thus, I combined ideas and code from multiple sources, and produced an example code to satisfy the above objectives.
I published the method and code on .

In the downloadable example, I demonstrate the building of a library (tinylib), and a project (tinyproj) that uses it.
The "heavy lifting" code, that builds these items, is encapsulated in a set of common helper Makefiles, thus leaving the top-level Makefiles small and simple to understand and edit.

I hope you find it useful!

A special gift (actually a tool) to all of us (mostly for electric and electronic hardware designers) for the new year!  :-*

May your new year be full of hugs and free of bugs.

Now at version 2.7!

A free, GUI-based, digital and analog (mixed-signal) timing diagram drawing software for Windows 10 (and Linux via Wine).
Intended primarily for documentation purposes, electronic hardware designers can use Waveme to draw a timing diagram,
and then export it to an image file (BMP, PNG, SVG or TIFF) or a PDF document.

Waveme can be used to draw waveforms, gaps, arrows, labels, value-lines and time axis (see attached images).
Both, digital and analog signals can be drawn.
Highly customizable, with a wealth of keyboard shortcuts.


Google group for questions, bug reports, feature requests, and general discussion:!forum/waveme

Waveme is distributed as a 64-bit single-file executable, it doesn't require installation,
and there are no changes to the registry nor configuration files.

Please note that because it is an unsigned executable file, a browser will issue you a warning, and it might be flagged by antivirus programs.
Avoid false-positive, by always confirming with Google's

Hope you find it useful!

Webcam Video Diary / Recording video chat (Skype/Google)?
« on: January 15, 2012, 02:34 PM »
Thank you for making such valuable programs available to the public.

Do you plan on extending the program to record a video chat,
e.g. while using Skype or Google?

Thank you for making SC. It's vast but the good UI and help make it easy to find your way around.

There are 2 feature enhancements I'm interested in:
1. The option of saving images in an uncompressed format, BMP and PPM.
2. Auto-capture faster than once per second. Though, I'm not sure how fast is feasible...  :-\

Pages: [1]