system verilog基础知识总结与复习(过程块与子程序)

        本文章大多以提问的形式给出问题,并尝试解答,主要目的是为了帮助自己复习sv基础知识,不足之处还请指正,以便共同学习!

二、过程块与子程序

1、task中continue和break的区别?

        如如下代码及仿真结果所示:       

        continue: 表示终止本轮循环,进入下一轮循环

        break: 跳出整个循环

2、task与function的区别?

        function: 不可内置耗时语句

        task: 可内置耗时语句(如wait(), @(posedge clk)等)

        一般情况下,任务可以调用函数,但是函数不能调用任务。

3、always与initial的区别?

        always:在整个仿真阶段一直存在并执行,通常搭配@(*)或者@(posedge clk) 来使用。

        initial:initial块内的语句从上到下只顺序执行一次,通常用于测试平台,不可综合成电路。

        有些时候在TB中也会看到always的使用,但是在偏向于软件的测试平台,尽量使用forever来代替always的使用,比如在program中,always是完全禁用的。

4、函数中对参数的描述。

        verilog中对于task/funtion的参数描述比较冗杂,SV改进了其描述方式,使其更加简洁。      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值