Verilog中的函数

Verilog 中的函数

Verilog HDL与大多数可编程语言一样,将使用率很高的代码,按照软件工程的思想,写成函数,这样,该函数可以被多次调用。

Verilog中函数常用语三种情况:

  • 1. 数学算术操作 Mathematical Manipulation
  • 2. 组合逻辑 Combinational Logic Sequences
  • 3. 数据的转换 Conversions of Data

 

Verilog中的函数与C语言中的函数的主要不同之处是:在Verilog中,调用函数时,需要将一个或则多个自变量传给函数;经过0时间的仿真,将函数的结果返回给调用点。

 

遵循的规则

 

函数至少要有一个输入量和一个输出量。

函数只能在always或initial块中调用。

函数不能同时包含always和initial块,不能含有任何延迟以及时间或事件控制的描述。

函数可以使用本地变量作为输入。

函数不能使用wire数据类型。

函数只能用行为级来描述。

函数中的数据的实际操作限定在begin和end之间。

 

原文:http://www.see.ed.ac.uk/~gerard/Teach/Verilog/me5cds/me95cab0.html

 

 

任务与函数的不同

任务和函数可以按照相同的方式来调用,但是它们之间有很大的不同。

函数

任务

函数不能调用任务,但是可以调用其他函数。

任务既可以调用函数,也可以调用其他任务。

执行函数使用的仿真时间为0。(函数的编译时间不会增加?)

执行任务的仿真时间为0,但是按照需要,仿真时间可能不为0。

函数中,不能含有含有延迟,以及事件和时序控制声明语句。

任务中可以包含任何声明。

调用函数时,必须至少传递一个变量。

任务可以使用多个或者不使用变量,其变量的数据端口可以是output 、input或 inout。

函数只能返回一个值,而且不能使用output和inout描述。

任务不能返回任何数值,但是可以通过output、inout传递多个值。

 

原文:http://www.see.ed.ac.uk/~gerard/Teach/Verilog/me5cds/me95cab2.html

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值