verilog中begin.end中间的语句是怎么执行的
1个回答
2016-04-08 · 知道合伙人互联网行家
护肤达人IT宅族
知道合伙人互联网行家
向TA提问 私信TA
知道合伙人互联网行家
采纳数:5637
获赞数:17441
毕业于曲阜师范大学,学士学位。互联网行业2年从业经验,读过SEO相关书籍。现任爱家网SEO优化专员。
向TA提问 私信TA
关注
展开全部
条赋值语句)。其次,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
说了这么多,看一下运行结果就清楚了,把你的代码小小的修改了一下 如下:
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
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询