电力电子转战数字IC20220607day18——SV过程块

过程块

SV中要清楚哪些程序对应硬件,哪些程序对应软件

module endmodule, interface/endinterface被视为硬件世界

program/endprogram, class/endclass被视为软件世界

所有测试语句放在一个initial,用begin/end包住

函数function

​​​​定义一个变量double,输入是a,返回值是2a

function int double(input a);
return 2*a;
endfunction
initial begin
$display("double of %0d is %0d", 10, double(10));
end 

默认的数据类型是logic

数组可以作为形式参数传递

可以return返回,也可以void functino()不返回

只有数据变量可以在形式参数列表中被声明为ref,而net类型不能被声明为ref

使用ref时可以用const限定ref声明的参数,保护数据对线只读不写

声明参数时可以给如默认数值,input [7:0] addr=0

任务task

 

无法通过return返回结果,只能通过output,input,ref返回

可以置入耗时语句,比如@event, wait event, #delay。function不能

建议:

需要耗时语句用task,否则用function,只做纯粹的数字或逻辑运算

用task调用task,调用function两种都可以用

typedef struct{
bit [1:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值