3.12 FIND_PATTERNダイアログ

000パターンを検索してみます。
QW1を右クリックしてFIND_PATTERNダイアログを出します。信号は、16ビット幅ですが、下位12ビット12'h000(Verilogと同じ構文)を
入力します。Baseは、0、Widthは12です。


黒カーソルを出して ->を押すと12'h000を検索してカーソルが移動します。(全く動かないときは、指定がまちがっているかパターンがないかです。) 下図のように確かに000パターンからxxx->Validになっているのが確認できました。


複数条件ので検索

Ver.120Aより、複数のFind PatternのANDでの検索が可能になりました。


例えば、「ADRS(アドレス)が8'h34でかつ、WENの立ち上がり」
   のようなAND条件でのサーチなどをサポート

します。その後、黒カーソルをだしておき、LISTVIEW(左ペイン)上のWEN,とADRSの二つを選択します。
<− −>で、当該パターン箇所に移動します。

実際の例で見ましょう。

次の例の記述でマッチする所を検索するものとします。
always @ (negedge clock) begin
 if (find_check) begin
  if (a_func==Rotate_mode) begin
    ここを検出したい。
 
  end 
 end
end

まず、複数条件のANDを取る場合には、唯一のSTROBE信号を定義してやる必要があります。
本例の場合、@(negedge clock)ですので、そのまま下図のように定義します。


NOTE:
 Veritakの内部実装では、まず@(negedge clock)を検索し、見つかったら、その時刻におけるパターンマッチ(レベル)を見ています。つまりSTROBE時刻におけるレベルを見ていることになります。その為に、STROBE信号の定義が一つだけ必要になります。


次にa_func==4'b0010(Rotate_mode)を定義します。


次に1ビット幅の信号レベルを定義します。STROBE信号ではない(レベル判定)ので、レベルをチェックします。

次にカーソルを出しておきます。(カーソルを出さないと検索開始点が定まらないので動きません。)
検索条件の3信号を選択します。

最後に検索方向を指定してやると、パターンマッチした箇所にカーソルが移動します。