<数字小IP设计>四,task的使用。

Verilog中的task块的使用非常值得仔细思考。

task可以加入时序控制逻辑,可以没有输入也可以没有输出,甚至可以没有输入输出。task的使用也非常灵活,可以连续调用,也可以互相调用。在task 后加上[automatic]后可以并行调用,系统可以自动生成相应的变量,非常方便。

之前在GPIO模块中我们使用了reg_bus作为系统与模块通讯的桥梁。在对GPIO进行测试的时候,我们需要模仿系统与模块的通讯行为,但是GPIO模块挂载的附加功能越多,我们需要进行的访问动作也越多。这种需要重复进行且大部分动作相同的行动就可以利用task进行统一,对于设计本身也是非常方便的。下面我举例一个task,根据不同配置可以分别模仿对特定寄存器的写入、读出。

task write (input reg [7:0] reg_ad_i, input reg [31:0] reg_wd_i);
reg reg_ck_i, reg_cs_i, reg_we_i, reg_re_i;
reg [3:0
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值