SystemVerilog 中是否有连接字符串队列的函数?
Is there a function to concatenate a queue of strings in SystemVerilog?
一般来说,可以这样做:
string a;
a = {a, " first"};
a = {a, " second"};
a = {a, " third"};
据我了解,这意味着 a
每次都会为连接的字符串连续重新分配。是否有一个神奇的 join
函数可以像这样工作从而提高性能?
string a;
string a_q[$];
a_q = '{"first", "second", "third"};
a = a_q.join(); // a = {a_q} doesn't work as {a_q} returns another queue;
您可以使用比特流转换:(LRM 第 6.24.3 节比特流转换)
a = string'(a_q);
一般来说,可以这样做:
string a;
a = {a, " first"};
a = {a, " second"};
a = {a, " third"};
据我了解,这意味着 a
每次都会为连接的字符串连续重新分配。是否有一个神奇的 join
函数可以像这样工作从而提高性能?
string a;
string a_q[$];
a_q = '{"first", "second", "third"};
a = a_q.join(); // a = {a_q} doesn't work as {a_q} returns another queue;
您可以使用比特流转换:(LRM 第 6.24.3 节比特流转换)
a = string'(a_q);