tesk在Verilog中能有多随意?

本文探讨了Verilog中的task如何灵活地封装代码,包括输入端口、输出数据和内部调用功能。任务定义涉及端口声明、程序描述,并提到了六点注意事项,如禁止在task内使用initial和always语句,以及可以调用其他任务和函数。举例说明了含有task的交通信号灯例子,尽管某些操作不可综合,但在仿真中仍能展示其效果。
摘要由CSDN通过智能技术生成

tesk在Verilog中能有多随意?

任务就是封装在task-endtask之间的一段语句。通过调用来实现其功能
有输入端和返回数据的输出端
任务可以彼此调用,任务还可以调用函数

任务定义
task task-id;
[declaration]
procedural-statement
endtask
task-id是任务名;可选项declaration是端口声明语句和变量声明语句;procedural-statement程序描述,具体为该任务要实现的功能

调用形式:task-id[(端口1,…,端口N)];任务名加顺序对应的端口

在定义任务时,注意六点:
1、在第一行task语句中不能列出端口名称。
2、任务的输入、输出和双向端口数量不受限制,甚至可以没有输入、输出和双向端口。
3、在任务定义的描述语句中,可以出现不可综合操作符合语句,但这样会造成任务不可综合。
4、在任务中可以调用其他的任务或函数,也可以调用自身。
5、在任务定义结构中不可出现initial和always语句。
6、在任务定义中可以出现“disable中止语句“,将中断正在执行的任务,但其是不可综合的。当任务被中断后,程序流程将返回调用任务的地方继续执行。

夏闻宇老师书上交通信号灯的例子:

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值