首先要清楚哪些语句应该被放置于硬件世界,哪些程序应该被放置于软件世界?

硬件世界:module/endmodule,interface/endinterface

软件世界:program/endprogram,class/endclass

1.always块儿:

  1. always是为了描述硬件的行为,只可以在module或者interface中使用,在使用时需要注意:哪种使用方式是时序电路描述,哪种使用方式是组合电路描述,其反复执行
  2. always中的@(event..)敏感列表是为了模拟硬件信号的触发行为,因此要根据描述的是组合电路还是时序电路定义信号触发行为

2.initial块儿:

  1. initial从名字也可以看得出来,与always在执行路径上有明显区别,即initial非常符合软件的执行方式,即只执行一次
  2. initial和always一样,无法被延迟执行,即在仿真一开始它们都会同时执行即initial和always块儿会并行执行,但这俩内部都是顺序执行
  3. initial从其执行路径的属性来看,它不应该存在于硬件设计代码中,它本身不可综合,对于描述电路没有任何帮助
  4. initial就是为了测试而生的,由于测试需要按照时间顺序的习惯即软件方式来完 成,所以initial便可以实现这一要求;但当用verilog执行简单验证时,initial也出现在module中。

SV学习笔记—区分always和initial相关推荐

  1. SV学习笔记—类型转换

    1.静态转换 静态转换操作不对转换值进行检查,格式是type'(value): program test;initial begin$display("int'(42+1.1) is&quo ...

  2. SV学习笔记—结构体及枚举类型及字符串

    目录 1.结构体 1.1 压缩结构体 1.2 非压缩结构体 1.3联合结构体 2.枚举类型 3.字符串 1.结构体 Verilog的最大缺陷之一是没有数据结构,SV中可以使用struct语句创建结构, ...

  3. SV学习笔记—数据类型

    目录 1.SV和Verilog数据类型的区别 2.SV内建数据类型 2.1SV为何要引入2值逻辑? 2.2根据2/4值逻辑,SV可将数据类型分为如下 2.3 2/4值数据的相互转化 2.4位宽不一致会 ...

  4. SV学习笔记—多态与类型转换

    0.前言 当同一操作作用于不同对象,能有不同的解释从而产生不同的结果,这就叫做多态,多态在验证中被大量使用 多态的实现基础是什么? 1.多态的实现基础是继承,没有继承就没有多态 2.多态通过子类覆盖父 ...

  5. SV学习笔记—类的封装和继承

    1.类的封装 面向对象(OOP)编程的核心思想就是封装,封装就是指将对象的属性和方法封装起来,类就是这个封装的载体.通过封装可以将程序实现细节隐藏起来,并通过public/protected/loca ...

  6. SV学习笔记—子程序

    1.子程序参数 SV对子程序的改进使参数的声明变得更方便,同时也扩展了参数传递的方式 Verilog-1995的子程序参数设置: task mytask2;//无( )output[31:0] x;r ...

  7. SV学习笔记—队列及方法

    SV引入一个新的数据类型-队列,它结合了链表和数组的优点,可以在队列中的任何地方添加或者删除元素;但队列不是数组,它的元素个数不一样,也不需要new,并且很方便添加或删除元素. 队列的声明使用[$], ...

  8. SV学习笔记—线程之间的通信(事件event、信箱mailbox、旗语semaphore)

    目录 0.前言 1.事件event 2.信箱mailbox 3.旗语semaphore 0.前言 若多个线程之间想要进行数据交换或者知道彼此的状态以决定执行什么线程,SV中通过event.mailbo ...

  9. SV学习笔记(17)

    学习目标: SV绿皮书第九章:功能覆盖率 学习内容: 1.覆盖率是衡量设计验证完备性的一个通用词语 2.覆盖率类型:代码覆盖率.断言覆盖率.漏洞率曲线.功能覆盖率 3.代码覆盖率:行覆盖率.路径覆盖率 ...

最新文章

  1. 微软,您的.net为中国程序员带来了什么?
  2. python扩展库安装
  3. PHP用redis实现多进程队列
  4. python中、变量指向的对象可以发生变化吗_python中的引用传递,可变对象,不可变对象,list注意点...
  5. sqlite sqlite3_bind_int sqlite3_bind_text
  6. 哈希表,哈希算法(C语言)
  7. 如何使用BOOTSTRAP 栅格系统?
  8. 红橙Darren视频笔记 万能Dialog builder设计模式
  9. 目标追踪论文之狼吞虎咽(5):基于张量的图嵌入半监督学习及其在判别式目标追踪的应用
  10. vue导出excel并修改样式
  11. vs2010开发activex(MFC)控件/ie插件(一)
  12. 【Latex学习】Latex中插入超链接/网址
  13. 阿里某程序员感慨:30岁阿里p7,很迷茫,40岁转行能做什么
  14. 每天学点统计学——指数
  15. linux停止nginx服务
  16. 盘点一下CSGO职业选手-光辉背后的悲情故事
  17. MySQL数据库学习·数据库的创建,修改,删除
  18. Windows开机小键盘灯不亮不能用
  19. 水果食用大全 -- 果品食疗 - 其他
  20. [工具书]常用软件注册表位置

热门文章

  1. python os.path模块
  2. 猜数字小游戏(原创)
  3. IBIS SPICE模型对比 (转帖)
  4. alpine 服务器系统,alpine系统装zerotier-one
  5. Geohash算法的概括
  6. SEO人员,做好SEO的三大要素有哪些?
  7. 四万字!掌握Flink Table一篇就够了
  8. 怎样才是理想的程序员
  9. 求生之路2 服务器显示人满,求生之路2服务器怎么设置人数
  10. 2021-12-29 网工基础(十六)动态路由OSPF基础