SystemVerilog之面向对象

0 引言
SystemVerilog相比Verilog新增了一些关键语法,比如类。对于类和对象,与python c++ java中完全一致,面向对象(搜索引擎)编程的思想也完全一致。
1 变量特性
在SV中诸如class,program等等的软件语言,生成的内容都为动态变量,从仿真开始后的某个时间点开始,某个时间点结束。而硬件语言例如wire,reg生成的变量均为静态变量,生成真正的逻辑电路,会随着工程的运行一直伴随到底,而动态变量当仿真结束时一切也就灰飞烟灭。
2 类的特殊要求
在class中不允许出现硬件语言,类中可以用task或者function定义方法,但是绝不能出现reg和wire之类的硬件语言定义变量。凡是涉及用某些方法对对象进行处理,一定会用到new来建立动态存储空间。

  • 未完待续

<写在最后> 面向对象的个人理解
做FPGA设计一段时间了,经常会出现重复同一功能多次的情况,每当设计到这种时候都在犹豫要不要封装成一个独立模块去做,一开始觉得接口复杂,可能不方便,但是当一个比较冗长的部分重复多次时就会真香,封装模块可真方便。所有技术的发展都不是空穴来风,通信协议的发展如此,编程的思想也是如此。当然设计的初衷可能不同,通信协议的复杂发展在最初很大程度上都是为了收费增加了算法的复杂度,个人认为面向对象编程的产生也是由“封装思想”转变而来,整体化便于后续的优化也便于对于不同模块公共部分的复用。所以说类可以理解为定义了特定形式的某些变量(logic)以及对这些变量的针对性处理方法,这也是类和结构体的最大不同,结构体仅仅是不同数据类型的简单集合,内部不能包含数据的处理方法,类则可以。最后一定要注意,类中的变量不要声明为硬件类型,类中的变量不要声明为硬件类型,类中的变量不要声明为硬件类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值