Verilog里一个always语句的问题
比如说我在always语句里面写一个循环语句always@(a)beginfor(i=0;i<8;i++)beginb=b+1;endc=c+1;end我的问题就是说我在...
比如说我在always语句里面写一个循环语句
always@(a) begin
for(i=0;i<8;i++) begin
b=b+1;end
c=c+1;
end
我的问题就是说我在always里面写for的循环语句那我是不是在for语句写好之后要写一个begin 然后循环体写完之后再写一个end 表示其中这是一个循环语句。这个begin 和end 是不是要写? 展开
always@(a) begin
for(i=0;i<8;i++) begin
b=b+1;end
c=c+1;
end
我的问题就是说我在always里面写for的循环语句那我是不是在for语句写好之后要写一个begin 然后循环体写完之后再写一个end 表示其中这是一个循环语句。这个begin 和end 是不是要写? 展开
展开全部
begin...end是用来界定多条语句的 和for循环无关
如果你需要在“一步”操作中执行多条语句 就需要用begin...end
如果只有一条语句(以分号结尾)则可写可不写
比如
initial
begin
for (i=0;i<8;i++)
mem[i] = i;//begin...end可写可不写
done = 1;
end
这次循环操作就是把mem初始化为递增数(执行8次赋值) 而done的赋值只执行一次
再如
always @(a)
#1
$display("a = %0d.", a);
和
always @(a)
begin
#1;
$display("a = %0d.", a);
end
第二段代码认为有两步(两个分号) 因此需要写begin...end
如果你需要在“一步”操作中执行多条语句 就需要用begin...end
如果只有一条语句(以分号结尾)则可写可不写
比如
initial
begin
for (i=0;i<8;i++)
mem[i] = i;//begin...end可写可不写
done = 1;
end
这次循环操作就是把mem初始化为递增数(执行8次赋值) 而done的赋值只执行一次
再如
always @(a)
#1
$display("a = %0d.", a);
和
always @(a)
begin
#1;
$display("a = %0d.", a);
end
第二段代码认为有两步(两个分号) 因此需要写begin...end
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |