SV芯片验证之字符串类型

编程入门 行业动态 更新时间:2024-10-10 10:27:46

SV芯片验证之<a href=https://www.elefans.com/category/jswz/34/1771434.html style=字符串类型"/>

SV芯片验证之字符串类型

在SV中,string类型用来表示可变长度的字符串

字符串类型变量的存储单位为byte类型(8-bit,一个字节),它的内存是动态分配的,因而无需担心它的内存空间管理分配问题。

不同于C函数,SV中的字符串结尾没有“空字符”即null字符“\0”

一、字符串常见的使用方式

***字符串常见使用方式***
typedef logic [15:0] r_t; 
// 此处的logic未声明类型,即默认为变量类型,然后将其自定义为r_t,r_t是个变量类型而不是变量r_t r; //r是变量类型r_t声明的一个变量integer i = 2;string b = ""; //等同于 string b;string a = {"Hi", b}; //把两个字符串拼接到一起r = r_t'(a); 
//显式转换。把a这个字符串类型用r_t这个变量类型转换成变量类型,然后赋值给变量r。b = string'(r); 
//显式转换。把r这个变量类型用string这个字符串类型转换成字符串类型,然后赋值给变量b。b = "Hi"; //赋值b = {5{"Hi"}}; //5个"Hi"a = {i{"Hi"}}; //将i=2带入,2个“Hi”a = {i{b}}; //此处的b不清楚是5个Hi还是1个Hia = {a, b}; //拼接a = {"Hi", "+", b}; //拼接三个字符串到一起b = {"H", ""}; //拼接a[0] = "h"; //赋值a[0] = "cough"; 
//即便把字符串“cough”赋值给a[0],但最终a[0]的值还是h,前面的coug就被截取掉了。a[0]只有一个字节8bit的大小,而一个字母h的大小就是一个字节,刚刚好。

二、字符串的内建方法

1、str.len(): 返回字符串的长度

2、str.putc(i, c): 将字符串里的第i个字符替换成字符c,等同于str[i] = c

3、str.getc(i): 返回第i个字符

4、str.substr(i, j): 将从第i个字符到第j个字符的字符串返回

5、str.atoi(), .atohex(), .atooct(), .atobin(): 将字符串看成十进制、十六进制、八进制、二进制,然后转换成十进制整型

str = "12345";

int i = str.atoi(); //将字符串“12345”看成是十进制,然后转换成十进制整型12345,最后赋值给i

此处的字符串是“12345”,是十进制的格式,所以选择str.atoi();如果字符串是“1100”二进制格式,那么就选择用str.atobin()。

string value = “1001”

value.atoi() = 1001 //将字符串“1001”看成是十进制,然后转换成十进制整型

value.atobin() = 1001 //将字符串“1001”看成是二进制,然后转换成十进制整型

内建方法.size()通常是给数组array使用的,如array.size()

更多推荐

SV芯片验证之字符串类型

本文发布于:2024-02-07 04:20:38,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1752876.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:字符串   芯片   类型   SV

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!