verilog语言
在verilog中,我们可以看到两个循环语句,always和for,但是小弟不晓得这两种的区别,感谢大虾的回答,小弟没有积分了,不能送给你们分了,抱歉!...
在verilog中,我们可以看到两个循环语句,always和for,但是小弟不晓得这两种的区别,感谢大虾的回答,小弟没有积分了,不能送给你们分了,抱歉!
展开
1个回答
展开全部
always 不是循环语句,always 是一个进程块。 always@(A or B or C)我们经常能看到的always语句如上面那句,当括号里的A,B或C信号发生变化的时候,这个ALWAYS模块就被激活,模块中的语句才能执行。括号里的信号称之为敏感信号列表。 所有的ALWAYs块之间是并行的关系,谁在前谁在后不影响执行的顺序。
for 是一个循环语句,但是不可以综合(编译)。for通常是用在测试文件里面。或者用于对RAM附初值。比如定义了一个RAM空间
reg [N-1:0] mem [word-1:0];
初始化时可以用for循环
integer i;
for(i=0;i<word;i=i+1)
mem[i]<=0;
这样就把RAM的内容全部定义为0了。但是FOR不能用在电路实体中。
VERILOG是硬件描述语言,用来描述硬件的结构和行为,不是软件,不是C语言,有很大的不同,没有循环这种说法。可以说VERILOG做的程序实际和硬件工程师画图是一回事,每个语句,每个模块,表示的是使用了一块芯片,然后连上线这样,硬件电路哪儿来的循环一说,要注意好好区别。
for 是一个循环语句,但是不可以综合(编译)。for通常是用在测试文件里面。或者用于对RAM附初值。比如定义了一个RAM空间
reg [N-1:0] mem [word-1:0];
初始化时可以用for循环
integer i;
for(i=0;i<word;i=i+1)
mem[i]<=0;
这样就把RAM的内容全部定义为0了。但是FOR不能用在电路实体中。
VERILOG是硬件描述语言,用来描述硬件的结构和行为,不是软件,不是C语言,有很大的不同,没有循环这种说法。可以说VERILOG做的程序实际和硬件工程师画图是一回事,每个语句,每个模块,表示的是使用了一块芯片,然后连上线这样,硬件电路哪儿来的循环一说,要注意好好区别。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询