limin's profile0.13纳米猪PhotosBlogLists Tools Help

Blog


    February 02

    一年前写的注释添加工具,翻出来居然看不懂了

    05年12月,工作前两周。最后一门课程的练习。那时候还对逻辑设计抱着一些美好的幻想。
    到今天,已经14个月了,只是学习了一堆接口方面的知识,阅读修改了无数的古老代码。
    剩下的是一些经验,如果到其他领域的公司一无是处。
    Cadence的仿真和验证工具没有碰过,居然总用到看电路图的Allegro..太讽刺了。。
    在架构方面没有得到什么东西。也许现在这个地方永远都不会有先进的架构出现,中国的公司就永远跟在别人后面吧。
    #! /usr/bin/perl
    @SysTime=localtime time;
    ##################
    #
    #   @SysTime
    #  [0]  [1]  [2]  [3]  [4]      [5]       [6]         [7]    [8]
    #  Sec  Min Hour  Day  Month-1  year-1900 week_day    days
    #
    ###################
    $openfile='b01.v';
    $FileTime=sprintf("%04u%02u%02u%02u%02u",@SysTime[5]+1900,@SysTime[4]+1,@SysTime[3],@SysTime[2],@SysTime[1]);
    $savefile=$openfile."_comment_".$FileTime.".log";
    printf #savefile;
    open ($fopen,'<',$openfile) or die "Error: Can NOT open $openFile !\n";
    open ($fsave,'>',$savefile) or die "Error: Can NOT open $saveFile !\n";
    $casefloor=0;
    $i=0;
    while($line=<$fopen>)
    {chop($line);
     if($line=~/case /)
      {$casefloor++;
       $casenum=0;
       $statename=$line;
         $statename=~s/case//;
         $statename=~tr/()/ /;
         $statename=~tr/ //d;
       }
     else
      {if($line=~/:/ and $line!~/\[/)
          {$i++;
           $casenum++;
           $casename=$line;
            $casename=~s/:.*/ /;
            $casename=~tr/ //d;
            @case[$i]="case".$casenum.":".$casename.$casefloor;
        else
           { if($line=~/endcase/)
            {$level--;}
            
      }  
     }
    }
    for ($j=0;$j<$i;$j++)
    printf @case[$j];
     
    close($fopen);
    open ($fopen,'<',$openfile) or die "Error: Can NOT open $openFile !\n";
    $level=-1;
    $modify=1;
    while($line=<$fopen>) 
    {
       #chop($line);
      chop($line);
     if($line=~/case /)
        {$level++;
         
         $statename=$line;
         $statename=~s/case//;
         $statename=~tr/()/ /;
         $statename=~tr/ //d;
         $newline=$line."     // Start of state machine ".$statename." (level ".$level.")\n";
         printf $newline;
         printf $fsave ("%s\n",$newline);
         }
       
      else
        {if ($line=~/:/ and $line!~/\[/)
        {
         #printf $line;
         $casename=$line;
       
         $casename=~s/:.*/ /;
         $casename=~tr/ //d;
       
         #printf $casename;
         $newline=$line."     //case ".$casename." for state machine ".$statename." (level ".$level.")\n";
         printf $newline;
         printf $fsave ("%s\n",$newline);
        }     
         else
           { if($line=~/endcase/)
              { $newline=$line."\n//------------\n// End of state machine ".$statename." (level ".$level.")\n//-----------\n";
                $level--;
                printf $newline;
                printf $fsave ("%s\n",$newline); }     
              else
              { $modify=0;
               printf $line."\n" ;
               printf $fsave ("%s\n",$line);  }
            }
         }
      
       
    }
    close($fopen);
    close($fsave);