ここにコードの小さな例があります:
まず、文字列からバイト動的配列を作成する例。バイトの動的配列には、各文字の ASCII コード番号表現が含まれています。利点は、これはたとえばランダム化できるが、文字列はランダム化できないことです。
(例えば作成
for(i=0;i<stringvar.len(); i++) begin
byte_din_array = {byte_din_array ,stringvar[i]}; //stringvar[i] will return empty byte if the index would be beyond the string length
//The advantage of using stringvar[i] instead of stringvar.atoi(i) is that
//the string can have all ASCII characters and not just numbers.
//Disadvantage is that the byte contains the ASCII CODE "number"
//representation of the character and that is not human readable
end
)。
バイトの動的配列を連結文字列に変換する例を次に示します。以前の動的配列を使用して、xfer 内で (制約付きで) 部分的にランダム化したか、post_randomize で変更した可能性があります。
function string convert_byte_array2string(byte stringdescriptionholder[]);
automatic string temp_str="";
automatic byte byte_temp;
automatic string str_test;
for ( int unsigned i = 0; i<stringdescriptionholder.size(); i++) begin
i=i;//debug breakpoint
byte_temp = stringdescriptionholder[i];
str_test = string'(byte_temp); //the "string cast" will convert the numeric ASCII representation in a string character
temp_str = {temp_str,str_test};
end
return temp_str;
endfunction