verilog中不支持的值类型是

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了verilog中不支持的值类型是相关的知识,希望对你有一定的参考价值。

参考技术A 逻辑型。变量中位的数值类型Verilog变量中每个位的数值类型有四种,分别为1、0、Z、X,Verilog数据类型有两大类数据类型为线网类型、寄存器类型。其中在使用过程中,不支持使用的数值类型为逻辑型,因为如果没有驱动元件连接到线网,线网的缺省值为Z,只能在always语句使用,受限制性非常大。

Python中不可变类型和可变类型详解

什么是不可变类型

变量对应的值中的数据是不能被修改,如果修改就会生成一个新的值从而分配新的内存空间。

 

# int为不可变类型
n = 5
print(id(n))

 140707604042688

n+=1
print(id(n))
140707604042720


b = False
print(id(b))

b = not b
print(id(b))

什么是可变类型

列表(list)字典(dict)

变量对应的数值中的数据可以被修改,但是内存地址保持不变

name = [jac,maj,asd]
print(id(name))

name.append(kjaa)
print(id(name))

1631174812232
1631174812232

字典

stu = {name:jac,age:12}
print(id(stu))


stu.update({sex:boy})
print(id(stu))
print(stu)

3073182890456
3073182890456

为什么生成以上两种情况

因为python中的值是通过引用(地址值)传递的

不可变类型的值一旦被修改后会创建一个内存空间并且生成新的地址值,

可变类型的值会在原内存空间中被修改。

 

 

不可变类型执行过程分析

i = 5
# 开辟内存空间存放5,并且将地址赋值给i变量
print(id(i))
j = i
# 将id(i)的地址赋值给j,j指向到同一个内存空间
print(id(j))
j+=1
# 因为改变了j的数值,所以就麻烦了,因为j是不可变对象,所以一旦改变就会自动开阔一个新的地址空间
print(i)
print(j)

图解

技术图片

 

 可变类型执行过程和内存分析

技术图片

 

以上是关于verilog中不支持的值类型是的主要内容,如果未能解决你的问题,请参考以下文章

verilog入门-----数据类型

GO语言学习——复合数据类型 数组

在.Net中如何判断一个属性是值类型还是引用类型

Java是值传递还是引用传递?

python中不可变的组合数据类型

String是值传递还是引用传递