普通に force / release してもうまくいかない時の対策
・複数サイクルにかけて force を入れる
・FF のデータ入力だけでなく出力端子にも force を入れる
以下のようなPerlスクリプトを書いて,DATA端子とQ端子を探し force / release していました.
- #!/bin/perl
- open (IN,"$ARGV[0]");
- @INA=<IN>;
- @DATAA;
- # find wires connecterd to DFF
- for(my $i=0;$i<scalar(@INA);$i++){
- if($INA[$i] =~ /\.DATA/) {
- @sparray = split(/\s+/,$INA[$i]);
- for(my $k=0;$k<=$#sparray;$k++){
- if($sparray[$k] eq "\.DATA") {
- push (@DATAA, $sparray[$k+2]);
- }
- }
- }
- if($INA[$i] =~ /\.Q/) {
- @sparray = split(/\s+/,$INA[$i]);
- for(my $k=0;$k<=$#sparray;$k++){
- if($sparray[$k] eq "\.Q") {
- push (@DATAA, $sparray[$k+2]);
- }
- }
- }
- }
- # print force
- for(my $i=0;$i<=$#DATAA;$i++){
- printf("force TOP.$DATAA[$i]=0;\n");
- }
- printf("\#10\n");
- for(my $i=0;$i<=$#DATAA;$i++){
- printf("release TOP.$DATAA[$i];\n");
- }
0 件のコメント:
コメントを投稿