SystemVerilogでは、文字列を扱うstringというタイプも導入されました。
string name = "Verification Evangelist";のように文字列の変数を定義し、初期値を代入できます。
次のようなstringはいろいろなタスク(task)や関数(function)をサポートしています。
function int len() : 文字列の長さ task putc(int i, string s) : 指定した位置(i)の文字を文字列(s)の最初の文字で置き換え task putc(int i, byte c) : 指定した位置(i)の文字を文字(c)で置き換え function getc(int i) : 指定した位置(i)の文字を返す function string toupper() : 大文字に変換した文字列を返す function string tolower() : 小文字に変換した文字列を返す function int compare(string s) : 引数の文字列と比較する(ANSI Cのstrcmpと同じ) function int icompare(string s) : 引数の文字列と小文字大文字の区別無しに、比較する (ANSI Cのstrcmpと同じ) function string substr(int i, int j) : 指定した位置(iからjまで)の文字列を返す function integer atoi() function integer atohex() function integer atooct() function integer atobin() : 文字列を整数(10進数,16進数,8進数,2進数)に変換する function real atoreal() : 文字列を浮動小数点数に変換する task itoa(integer i) : 10進数を文字列するに変換する task hextoa(integer i) : 16進数を文字列するに変換する task octtoa(integer i) : 8進数を文字列するに変換する task bintoa(integer i) : 2進数を文字列するに変換する task realtoa(real r) : 浮動小数点数を文字列するに変換する今見ているのは、SystemVerilog 3.1aを見ているので、IEEE 1800-2005/2009とは違うかもしれません。
なぜか引数の型と戻り値がintegerなのが納得できません。
どうして、intでは、ないのでしょうか?
どうして、intでは、ないのでしょうか?
検証、Verification、SystemVerilog