Guest
Hi,
I learn blocking procedure assignment with a tutorial, which said:
1. Evaluated and assigned in a single step
2. Execution flow within the procedure is blocked until the assignment is completed
3. Evaluations of concurrent statements in the same time step are blocked
until the assignment is completed
A bad example was given:
//swap bytes in word
always @(posedge clk)
begin
word[15:8] = word[ 7:0];
word[ 7:0] = word[15:8];
end
I think that the bad example violates item 2 above, but it seems more
complicated than I first saw blocking assignment. Could you explain it to me
in more detail?
Thanks,
I learn blocking procedure assignment with a tutorial, which said:
1. Evaluated and assigned in a single step
2. Execution flow within the procedure is blocked until the assignment is completed
3. Evaluations of concurrent statements in the same time step are blocked
until the assignment is completed
A bad example was given:
//swap bytes in word
always @(posedge clk)
begin
word[15:8] = word[ 7:0];
word[ 7:0] = word[15:8];
end
I think that the bad example violates item 2 above, but it seems more
complicated than I first saw blocking assignment. Could you explain it to me
in more detail?
Thanks,