Skip to content
This small utility manipulates hierarchy information of VCD. It is useful for VCDs generated by the ASI(OSCI) SystemC PoC simulator.
C++
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.gitignore
Makefile
README.md
doxygen.conf
mmap_manager.cpp
mmap_manager.h
vcd_header.cpp
vcd_header.h
vcd_hierarchy.cpp

README.md

vcd_hierarchy_manipulator

  1. About this program.

This small utility manipulates hierarchy information of VCD. This is useful for VCDs generated by the ASI(OSCI) SystemC PoC simulator, in which all signals are recorded in the same hierarchy named 'SystemC'.

This program modifies a header of VCD so that the all signals are located in its hierarchy. It can be realized with simple script written in lightweight languages like Ruby or Perl, but slower for bigger VCDs. Such scripts have to read and write whole VCD file. This is why such scripts are slow.

This program modifies header of VCD in-place. Only 1KB-100KB is read and written even with VCD > 1GB.

  1. How to build

All you need to do is just type make. % make You will find vcd_hier_manip which is executable.

I tested on Linux.

  1. How to use

% ./vcd_hier_manip dump.vcd

This program modifies dump.vcd. Please backup the original VCD if the file is important.

In rare case, this program cannot modify a header in-place if the modifed header is bigger than the original header size. In that case, use --output option to specify the output file. This option makes this tool much slower because it reads and writes whole VCD.

% ./vcd_hier_manip input.vcd --output output.vcd

Option --flatten provides reverse modification.

  1. License

This program is written by Yutestu TAKATSUKASA. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

This program is released under GPL2 in general. If you download this program from Accellera Uploads area, the license is Apache license.

  1. Bugs

This program does not support the complete specification of VCD. I tested only with SystemC 2.2 and 2.3. If you find any problem, please feel free to send comments or patches. It will be helpful if you send me a header of VCD to fix bugs. (Only header part is sufficient)

If you kindly give some feedback, please post to https://github.com/yTakatsukasa/vcd_hierarchy_manipulator/issues.

The latest version is always available at https://github.com/yTakatsukasa/vcd_hierarchy_manipulator

You can’t perform that action at this time.