Verilog中task和function使用

  • 概述
  • task使用
  • function使用
  • task和function比较

1.概述

task和function具备将程序中反复使用的语句结构聚合起来的能力,功能类似于C语言的子函数;通过task和function语句结构来替代重复性大的语句可以有效地简化程序结构。

2.task

2.1 task基本语法

  • task声明:
task <任务名>;
	端口及数据类型生命语句
	begin 过程语句; end
endtask
  • task调用:
<任务名> (端口1,端口2,...,端口N);
  • “端口及数据类型声明语句”包括此任务的端口定义语句和变量类型定义语句,任务接受的输入值和返回的输出值都通过此端口,而且端口命名的排序很重要,一旦确定就不要随意改动了
  • “过程语句”是一段用来完成任务操作的过程语句,其调用必须在主程序的过程结构中;
  • 任务语句中不能出现由always或initial引导的过程语句结构;
  • 在任务中无法描述时序电路,可综合的任务语句结构只能描述组合电路;
  • 任务调用使用任务名旁标注端口表,**任务调用时和定义时的端口变量的位置应该完全对应

2.2 task使用demo

  • 设计中使用,通过task生成比较单元:
module Ex(C1,D1,C2,D2,S,D);
input[3:0] C1,D1,C2,D2;
input S;
output[3:0] D;
reg[3:0] out1,out2;

task CMP;
input[3:0] A,B;
output[3:
  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值