|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
各位大神,在这里想请教一下关于sv中代码描述的一些问题。
因为我只对verilog非常熟,因此对软件编程有的时候不是很理解,关于它的执行顺序有的不明白。在verilog中都是在一些过程块中,添加语句组,语句都是放在begin...end 或者fork...jion中,但是我看sv的代码中很多都是很随意的感觉,并没有都放在语句组中。如:
initial
tie_score=0;
always @(posedge both_ready)
begin
。。。。
end
function rps_c clone;
clone=new;
clone.rps=this.rps;
endfunction
task rps_randomize();
bit[1:0] temp;
temp=$urandom_range(3);//实现随机激励产生。
$display("tmp is %b",temp);
if (temp=='b00)
temp=2'b01;
case (temp)
'b01:rps=ROCK;
'b10:rps=PAPER;
'b11:rps=SCISSORS;
endcase
endtask
如上,在function或者task中都没有用到语句组,那么在执行的时候按顺序从下向下么。是不是在这里只要没有用到fork...join,就没有像verilog中的并行性这样的概念了?
在initial中,最外围没有begin。。end,那其中的语句时并行的,还是从上向下一条一条执行。还有在initial中,能不加语句组吗?(begin...end 或者 fork...join) |
|