文件名称:节中定义的-微积分入门Ⅰ 一元微积分 -(日)小平邦彦
文件大小:10.44MB
文件格式:PDF
更新时间:2024-07-29 18:52:26
System Verilog 中文
转换会丢失信息。如果将 shortreal 转换到它的底层位表示而不会丢失信息,那么可以使用 23.6 节中定义的 $shortrealtobits。如果从一个 shortreal 值的位表示转换回 shortreal,可以使用 23.6 节中定义的$bitstoshortreal。 结构体可以转换成保留位模式的位,这意味着它可以转换回相同的值而不会丢失信息。当非压缩数据转换到它们的压缩表 示形式的时候,压缩表示形式中的数据顺序是结构体的第一个域占据最高有效位。这与数据元素(结构体域或数组元素) 的串联具有相同的效果。为了将一个非压缩结构体或数组的压缩表示强制转换成任何其它类型(无论是压缩的还是非压缩 的),非压缩结构体或数组中的元素类型必须是有效的。 压缩类型间的类型转换并不要求显式转换,因为它们都被当作是 integral 值,但工具可以使用强制类型转换来执行更强的 类型检查。 下面的例子展示了如何使用$bits 属性来获得结构体的位尺寸($bits 系统函数将在 23.4 节中讨论),它使结构体转换到 一个压缩数组更加方便。 Copy Code typedef struct { bit isfloat; union { int i; shortreal f; } n; // 匿名类型 } tagged_st; // 命名的结构体 typedef bit [$bits(tagged_st)-1 : 0] tagbits; // tagged_st在上面定义 tagged_st a[7:0]; // 非压缩结构体数组 tagbits t = tagbits'(a[3]); // 将结构体转换成位数组 a[4] = tagged_st'(t); // 将位数组转换回结构体 注意:bit 数据类型会丢失 X 值。为了保留 X 值,需要使用 logic 类型。 联合体的位尺寸是其最大成员的尺寸。logic 类型的位尺寸是 1。 为了保持兼容性,也可以使用 Verilog 函数:$itor, $rtoi, $bitstoreal, $realtobits, $signed, $unsigned。