0
use Class::Struct;

    struct (TimingStruct => {
        _timingSense  => '$',
        _timingType   => '$',
        _relatedPin   => '$',
        _whenCond     => '$'
      });

    struct (OutPinStruct => {
        _outPinName   => '$',
        _outFunction  => '$',
        _timingarray  => '@', #_timingarc => 'TimingStruct'
      });

    my @tarray = ();
    my $t;

    $t = TimingStruct->new(_timingSense => 'Unate',
                           _timingType  => 'Wave',
                           _relatedPin  => 'CO',
                           _whenCond    => 'A ^ B'
                         );
    push(@tarray, $t);
    $t = TimingStruct->new(_timingSense => 'Combinational',
                           _timingType  => 'Rising',
                           _relatedPin  => 'ICO',
                           _whenCond    => 'A ^ B ^ CI'
                         );

    push(@tarray, $t);

    my $op = OutPinStruct->new(_outPinName => "CO",
                               _outFunction => "A ^ B ^ CI",
                               _timingarray => \@tarray);


    print $op->_outPinName  . "\n";
    print $op->_outFunction . "\n";
    print $op->_timingarray . "\n";
    my $t = ${${$op->_timingarray}[0]}[0];
    print "\$t = \$op->_timingarray = $t->_timingSense() \n";
    my @t = {$op->_timingarray};
    print "\@t = \@{\$op->_timingarray} = $$t[1] \n";

Every output pin can have many timing-arcs and the OutPinStruct has a array to hold the timing-arcs. I'm not sure about de-referencing arrays(_timingarray) could someone tell me what is it that I'm doing wrongly?

Thanks.

1
  • Can you be more specific about what is going wrong? Commented Jul 30, 2010 at 16:10

1 Answer 1

0

$op->_timingarray is a "list of hashes". In general the keys to a hash are unordered and you cannot lookup the hash values through a numbered index. The elements you can access are

$op->_timingarray->[0]{'TimingStruct::_whenCond'}
$op->_timingarray->[0]{'TimingStruct::_timingSense'}
$op->_timingarray->[0]{'TimingStruct::_relatedPin'}
$op->_timingarray->[0]{'TimingStruct::_timingType'}
$op->_timingarray->[1]{'TimingStruct::_whenCond'}
$op->_timingarray->[1]{'TimingStruct::_timingSense'}
$op->_timingarray->[1]{'TimingStruct::_relatedPin'}
$op->_timingarray->[1]{'TimingStruct::_timingType'}
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.