in reply to Re^4: extract text from multi-line context (Verilog::VCD)
in thread extract text from multi-line context

I'm glad you like the module!

This gets you a little further:

use warnings; use strict; use Verilog::VCD qw(:all); my $vcd= parse_vcd('sample.vcd'); my $i = 0; for my $code (keys %{ $vcd }) { for my $net (@{ $vcd->{$code}->{nets} }) { print "V$i ($net->{name}) vsource type=pwl wave=[0p 0]\n"; $i++; } } __END__ V0 (VBGOK_H) vsource type=pwl wave=[0p 0] V1 (YOUT_RC_CAL) vsource type=pwl wave=[0p 0] V2 (CLKO_RXADC_96M) vsource type=pwl wave=[0p 0] V3 (AGC_IF_CAP[2:0]) vsource type=pwl wave=[0p 0] V4 (AGC_IF_CAP[2:0]) vsource type=pwl wave=[0p 0] V5 (BBAGC_AVWIN[1:0]) vsource type=pwl wave=[0p 0] V6 (BBAGC_AVWIN[1:0]) vsource type=pwl wave=[0p 0] V7 (CKO_HFOSC_2DIV12) vsource type=pwl wave=[0p 0] V8 (XO32K_VCOUT) vsource type=pwl wave=[0p 0] V9 (YOUT_RC_CAL_PGA) vsource type=pwl wave=[0p 0] V10 (ABB_BIAS_EN) vsource type=pwl wave=[0p 0] V11 (TXMIX_EN) vsource type=pwl wave=[0p 0] V12 (BBPLL_CLKO_DIG_96M) vsource type=pwl wave=[0p 0]

If you need more help, you have to describe what your desired "wave=..." means. How does this relate to your VCD file data? How does "199p" relate to your VCD data for BBPLL_CLKO_DIG_96M? Show the code you've written and describe in detail how your actual output differs from your desired output.

Replies are listed 'Best First'.
Re^6: extract text from multi-line context (Verilog::VCD)
by herman4016 (Acolyte) on Aug 19, 2014 at 02:55 UTC

    1.the original vcd file "$dumpoff $end" "#3537871350",so 't0' is 3537871350 , output is 0p
    2. because the vcd file output will be Cadence spectre analog input ,so for example BBPLL_CLKO_DIG_96M's time squence 't0' value is '0' , and the next time squence 't1' value is '1', I want to insert time sequence t1-1 and value '0', vice versa...
    3. value '0' output is '0', value '1' output is 'VDD/2'

    so the output wave of BBPLL_CLKO_DIG_96M is
    [ 0p 0 (3537876550-3537871350-1)p 0 (3537876550-3537871350)p VDD/2 (3537881760-3537871350-1)p VDD/2 (3537881760-3537871350)p 0 (3537886970-3537871350-1)p 0 (3537886970-3537871350)p VDD/2 ...... ]
    ps. please calculate the result in ()