条赋值语句)。其次,for语句在这里,其实是一个时钟只执行一次,就是说第一个下降沿 q[2]<=q[1],第二个下降沿q[3]<=q[2],这样理解下来,其实begin。。。end之间只有一条语句,也就没有什么顺序不顺序,先后次序的事情了
说了这么多,看一下运行结果就清楚了,把你的代码小小的修改了一下 如下:
module eeee (clk,a,q);
input clk;
input a;
output[6:0]q;
reg [6:0]q;
reg [2:0]p;
always @(negedge clk) begin
q[1] <= a;
for(p=1;p<6;p=p+1)
q[p+1]<=q[p];
end