我试图将未知数量的字节附加到单个大型数组中。我应该使用哪种数组类型?我正在尝试这个
UPDATE
其中temp_i是输入srting。我的最终目标是将输入字符串转换为其ASCII值的二进制表示形式,并将它们连接成一个大型数组。 我很难选择使用动态或关联的数组,或者我是否可以使用队列。
任何帮助都会非常明显。
答案 0 :(得分:1)
当索引值不连续或排序无意义时,您使用关联数组。这里不适用。
在向阵列添加或删除一个元素时使用队列。如果将arr
声明为队列,则可以编写
string temp_i;
bit [7:0] arr[$];
int len;
len = temp_i.len();
for(int i=0,i<len;i++)
arr.push_back(temp_i.getc(i));
如果您的字符串很小,或者您计划将多个字符串连接在一起,则队列是您的最佳选择。但是,如果您只计划将一个字符串转换为数组,那么使用比特流转换为动态数组将是最有效的。
string temp_i;
typedef bit [7:0] uint8_da_t[]; // typedef required for cast to target
uint8_da_t arr; // using typedef not required here, but A VERY GOOD IDEA
arr = uint8_da_t'(temp_i);
答案 1 :(得分:0)
它应该是可综合的代码还是测试平台? 以上都不是可综合的。
你会在不同的世界中以不同的方式做到这一点。