您的位置:首页 > 其它

verilog中的while的用法和例子

2012-09-29 09:39 344 查看
while 循环语句实现的是一种“条件循环” ,只有在指定的循环条件为真时才会重复执行

循环体,如果表达式条件在开始不为真(包括假、x 以及 z) ,那么过程语句将永远不会被执

行。while 循环的语法为:

while (循环执行条件表达式) begin

语句块

end

在上述格式中, “循环执行条件表达式”代表了循环体得到继续重复执行时必须满足的

条件,通常是一个逻辑表达式。在每一次执行循环体之前,都需要对这个表达式是否成立进

行判断。 “语句块”代表了被重复执行的部分,可以为单句或多句。

While 语句在执行时,首先判断循环执行条件表达式是否为真,如果真,执行后面的语

句块, 然后再重新判断循环执行条件表达式是否为真, 为真的话, 再执行一遍后面的语句块,

如此不断,直到条件表达式不为真。因此,在执行语句中,必须有改变循环执行条件表达式

的值的语句,否则循环就变成死循环。

module mult_8b_while(

a, b, q

);

parameter bsize = 8;

input [bsize-1 : 0] a, b;

output [2*bsize-1 : 0] q;

reg [2*bsize-1 : 0] q, a_t;

reg [bsize-1 : 0] b_t;

reg [bsize-1 : 0] cnt;

always @(a or b) begin

q = 0;

a_t = a;

b_t = b;

cnt = bsize;

while(cnt > 0) begin

if (b_t[0]) begin

q = q + a_t;

end

else begin

q = q;

end

cnt = cnt - 1;

a_t = a_t << 1;

b_t = b_t >> 1;

end

end

endmodule
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: