2015-10-17 94 views
0

我想在verilog设计中使用循环,出于某种原因for循环的初始值没有设置正确。 我尝试在verilog中编写一个简单的for循环并检查模拟。我仍然得到错误的初始值。Verilog For循环:错误的初始值

这是简单的for循环我想:

integer j; 
always @(posedge clk) 
begin 
    for (j=0; j< 16; j=j+1) 
    begin 
    count <= count+1; 
    end 
end 

在模拟中,j的第一个转变是从X到16 有人能帮助我吗?

+1

这**的**循环的一个时钟周期内完成即** **Ĵ增量从0到16,在一个时钟周期。因此,你只能看到j的最终值,它是16,最初是** j = x **,因为它之前没有被初始化。 – ssgr

回答

0

由于ssjr在评论中表示always @(posedge clk)表示一个触发器,其中包含的所有内容都是在一个时钟周期的模拟中完成的。

数到15,你可能有:

reg [3:0] count; 
always @(posedge clk) begin 
    if (count < 5'd15) begin 
    count <= count+1; 
    end 
end