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.
Please also see http://forums.accellera.org/topic/1481-scopes-in-systemc-vcd-files/
2) How to build
All you need to do is just type make.
You will find vcd_hier_manip which is executable.
I tested on Linux.
3) 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.
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.
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