SystemVerilog函数和任务
时间:2022-07-22
本文章向大家介绍SystemVerilog函数和任务,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
- Verilog中函数与任务区别:
任务可以消耗时间,函数不能消耗时间;
函数里不能带有#10延时语句或者@(posedge clk)、wait(ready)的阻塞语句;
函数不能调用任务;
函数必须有返回值,并且返回值必须被使用;
1.函数(与C语言类似)
- 函数的参数可以声明为input、output、inout、ref;
- Void函数不返回数值;
- 函数可以调用函数,但必须立即返回,即不能发生阻塞、等待行为;
- 如果调用具有返回值的函数,但没有使用该返回值,应添加void‘()进行转换;
void’(some_function());
2.任务
- 任务的定义可以指定参数input、output、inout、ref;任务没有返回值;
- 任务可以消耗仿真时间;
- 任务可以调用其他任务或者函数;
3.任务和函数区别
- 函数不会消耗仿真时间,而任务可能会消耗仿真时间;
- 函数无法调用任务,而任务可以调用函数;
- 一个函数只能返回一个数值,而任务不会返回数值;
- 函数可以作为一个表达式中的操作数,而该操作数的值即函数的返回值;
4.参数传递
- input、output、inout参数在调用方法时属于值传递,即传递过程中,外部变量的值会经过拷贝,赋值给形式参数;
- 值传递的过程只会出现在方法的调用时和返回时;
- ref参数在传递时不会发生值拷贝,而是将变量指针传递到方法中,因此在方法内部对于参数的任何操作会立即影响到外部变量;
- 为了避免外部传入的ref参数会被方法修改,可以添加const修饰符,表示变量是只读变量;
- SV允许方法声明输入参数时指定参数的默认值;
- SV允许类似于模块例化,可以由参数位置在调用方法时传递参数,也可以由参数名字映射的方式来传递参数;
END
- 关于R安装中文分词包安装不上的问题install.packages("tm")
- dataguard备库的数据文件的迁移实战(r8笔记第24天)
- Hive的left join、left outer join和left semi join三者的区别
- 52. Socket Server 自定义协议的简单实现 | 厚土Go学习笔记
- dataguard备库的数据文件的迁移(r8笔记第22天)
- 46. 实现一个简单的网络爬虫 | 厚土Go学习笔记
- 45. sync.Mutex 互斥和互斥锁 | 厚土Go学习笔记
- golang进度条
- 44. goroutine、channel、time的例子 | 厚土Go学习笔记
- AVL二叉树
- Golang:使用 httprouter 构建 API 服务器
- dataguard中需要注意的一些数据文件操作(r8笔记第21天)
- 42. select 的默认分支 | 厚土Go学习笔记
- 执行计划变化导致CPU负载高的问题分析 (r8笔记第20天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android启动页用户相关政策弹框的实现代码
- 10个好用的 HTML5 特性
- Android实现签名涂鸦手写板
- Android 开发使用Activity实现加载等待界面功能示例
- 详解Android使用CoordinatorLayout+AppBarLayout+CollapsingToolbarLayou实现手指滑动效果
- Android开发自定义控件之折线图实现方法详解
- Android Studio实现长方体表面积计算器
- android studio实现简单的计算器功能
- Android小程序实现个人信息管理系统
- Flutter 使用Navigator进行局部跳转页面的方法
- Android小程序实现简易QQ界面
- Android小程序实现音乐播放列表
- 详解Android10的分区存储机制(Scoped Storage)适配教程
- Android自定义View实现可拖拽缩放的矩形框
- Android实现掷骰子效果