3

Verilog シミュレーションで、連結、置換、比較などの文字列の基本操作を実行する必要があります。どうしてそれが可能でしょうか?組み込みのサポートはありますか?

前もって感謝します。

4

3 に答える 3

4

SystemVerilog構文をサポートする最新のシミュレーターにアクセスできる場合は、stringデータ型があります。文字列は連結して比較できます。IEEE Std(1800-2009)を参照してください。

于 2012-09-12T02:13:21.783 に答える
4

Verilog には文字列データ型はありませんが、Verilog は文字列リテラルをサポートし、それらをバイト ベクトルとして使用します。これは仕様の例です:

module string_test;
reg [8*14:1] stringvar;
initial begin
  stringvar = "Hello world";
  $display ("%s is stored as %h", stringvar,stringvar);
  stringvar = {stringvar,"!!!"};
  $display ("%s is stored as %h", stringvar,stringvar);
  end
endmodule

文字列は reg データ型を使用するため、通常の演算子を使用して文字列を操作できますが、各文字は 8 ビットを使用することに注意してください。

5.2.3.1 文字列操作

一般的な文字列操作のコピー、連結、および比較は、Verilog HDL 演算子でサポートされています。コピーは簡単な割り当てで提供されます。連結は、連結演算子によって提供されます。比較は等値演算子によって提供されます。ベクトル reg で文字列値を操作する場合、8 ビットの ASCII コードを維持するために、reg は少なくとも 8*n ビット (n は ASCII 文字の数) である必要があります。

検索などの操作が必要な場合は、いくつかのタスクまたは関数を作成する必要があります。

于 2012-09-12T01:17:34.423 に答える