文章目录
一、面向对象
1.1术语
- class:包含属性+方法(function、task)的基本构件模块;
- object:类的一个实例(对象),能够在内存中开放出一个空间进行操作,也就是类的例化;
- handle:对象在内存中开辟了一段空间进行操作,handle是像一个把手一样,是能够打开这段空间的钥匙。Verilog如果要找到设计中的实例,是通过层次化的索引来找到的。而sv中通过handle就可以索引对象的方法和变量了。不像c语言中可能会有指向指针的指针,sv中handle只能指向class,这与c不一样的地方;
- property:存储
- 类里面不能由always和initial:硬件的世界开始就存在,软件是例化后动态存在。所以不能直接使用always和initial。
1.2 三大特性和五大原则
- 封装:把抽象的数据和对数据进行的操作封装在一起;
- 继承:让一个类获取另一个类型的属性的方式,分为实现继承和接口继承;
- 多态:同一个行为具有多个不同的表现形式或者形态的能力,同一消息可以根据发送对象的不同而采用多种不同的行为方式,类似多个儿子都继承父亲的基因,但是不同儿子可能都有一个可变基因,会表现出不同的能力;
五大原则
- 开闭原则:对扩展开放,对修改关闭;不修改源代码的情况下改变模块的行为&