SystemVerilog中美元投方法的作用是什么

  介绍

这篇文章给大家介绍SystemVerilog中美元投方法的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

美元投是SystemVerilog中的内建方法。

美元投可以对不同的内建类型进行转换,用的更多的是不同层次之间类的转换。在这种父类与子类之间的转换里,父类站的高,子类在底下,从父类向子类的转换,称为向下类型转换,而子类向父类的转换称为向上类型转换。向上类型转换是安全的,而反之则是不安全的。原因在于子类既然继承了父类,就拥有父类的一切属性,除此之外,龙生九子,各有不同,子类还有自己独特的个性,这些是父类没有的。当进行向上类型转换时,相当于父类的句柄指向子类对象,这样的话句柄仍然能对子类对象与父类相同的属性进行访问。但是反过来,如果向下类型转换也那么自由,当试图把子类的句柄指向父类的对象会发生什么呢?父类本来划好了一小块地盘,但是因为子类含有比父类更丰富的属性,它很有可能会访问父类并不包含的资源,这时就找不到该资源,越界了,因此会有错误。父类就好像上海,子类相当于长三角地区,包含但不仅仅是上海,因此父类能到的地方子类都可以到,反之不行,因此把子类的句柄给父类没关系,但反之不行,所以向下类型是需要有严格的类型检查的,阻止非法转换。

ex1:

<节>
 <代码>类父亲; <代码>,代码,字符串m_name;  <代码> 
<代码>,新(字符串,函数名), <代码>,,,m_name=名字; <代码>,代码,endfunction:新 <代码>
<代码>,,空白打印()函数; <代码>,,,显示美元(“你好% s" m_name); <代码>,,endfunction:打印 <代码> endclass:父亲 <代码>
<代码>类child1延伸父亲; <代码>,,字符串area1=癹iangzhehu" <代码>
<代码>,新(字符串,函数area1); <代码>,,代码,super.new (area1); <代码>,代码,endfunction:新 <代码> endclass: child1 <代码>
<代码>类child2延伸父亲; <代码>,,字符串area2=皊hanghai" <代码>
<代码>,新(字符串,函数area2); <代码>,,代码,super.new (area2); <代码>,代码,endfunction:新 <代码> endclass: child2 <代码>
<代码>
<代码>程序最高; <代码>,,父亲f; <代码>,,child1 c10, c11、c12; <代码>,,child2甜,c21 c22; <代码>
<代码>,,最初开始 <代码>,,,,,,f=new (“shanghai"); <代码>,,,,,代码,f.print(); <代码>,,,,,,c10=new (“jiangzhehu"); <代码>,,,,,,f=10大; <代码>,,,,,代码,f.print(); <代码>,,,,,,甜=new (“changsanjiao"); <代码>,,,,,代码,f=甜; <代码>,,,,,代码,f.print(); <代码>,,,,,甜。area2=皕hejiang" <代码>,,,,,美元,投(c21 f); <代码>,,,,,代码,c21.print(); <代码>,,,,,,显示美元(“% s", c21.area2); <代码>,,,,,代码,c22=甜; <代码>,,,,,代码,c22.print(); <代码>,,,,,,显示美元(“% s", c22.area2); <代码>,,,,,甜。area2=癶angzhou" <代码>,,,,,代码,c21.print(); <代码>,,,,,,显示美元(“% s", c21.area2); <代码>,,,,,代码,c22.print(); <代码>,,,,,,显示美元(“% s", c22.area2); <代码>
<代码>,,结束代码 <代码> endprogram :,
  

仿真结果如下:

<节>
 #, Hello 上海#,Hello  jiangzhehu #, Hello  changsanjiao #, Hello  changsanjiao #, has 浙江#,Hello  changsanjiao #, has 浙江#,Hello  changsanjiao #, has 杭州#,Hello  changsanjiao #, has 杭州
  

请注意,不能直接把美元投(c21 f);前提是先把子类赋给父类才行。

使用演员也不能把甜给c10。

关于SystemVerilog中美元投方法的作用是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。

SystemVerilog中美元投方法的作用是什么