闲庭信步使用SV搭建图像测试平台:第九课——初步使用类
(本系列只需要modelsim即可完成数字图像的处理,每个工程都搭建了全自动化的仿真环境,只需要双击top_tb.bat文件就可以完成整个的仿真,大大降低了初学者的门槛!!!!如需要该系列的工程文件请关注知识星球:成工fpga,https://t.zsxq.com/DMeqH,关注即送200GB学习资料,链接已置顶!)
我们都知道system verilog和verilog最大的区别就是system verilog支持面向对象的编程,也就是可以使用类(class),但是很多使用system verilog开发的人员应该都没有使用过类。因为在system verilog中,类只能在搭建仿真测试环境中用,而不能用在可综合的逻辑代码中。
众所周知,类用于封装数据成员(类属性)和方法(类方法),而在在system verilog中,类方法包括function和task,前面的章节,我们已经建立的几个task,那把这些task封装成类即可。
如下所示,我们将前期的几个task封装成image_class,但是注意一点,class必须要有一个new函数,虽然new函数可以不做任何的事情,其实new函数就是为后续class的例化动态的分配内存。
虽然定义了类,但是类并不占用任何的内存,定义类就像完成了大楼图纸的设计,并没有开始大楼的建造。只有例化了类,并且调用了new函数,才能为类动态的分配内存,同时调用类的构造函数完成类的初始化和构建,才可以使用类的成员和方法;也是在这个时候,大楼才能拔地而起,人们才能入住。
如下所示,先例化了image_class类为ims,在initail块中,先通过new函数完成ims类的内存分配和构造,然后直接调用类中的各种方法也就是task即可。
所以类的使用也就是这么简单,成工不会把很简单的事情故意说的很复杂,如果大家想对类进行更深入的学习,可以找相关的资料自学一下。
双击sim文件夹下的top_tb.bat文件,完成系统的自动化仿真。
打开img文件夹就可以看到生成的测试图案。