新手求救,要命啊。。。。。
reg cnt;always @ (posedge clk or negedge rst_n)
if(!rst_n) cnt <= 25'd0;
else cnt <= cnt+1'b1;
reg num;
always @ (posedge clk or negedge rst_n)
if(!rst_n) num <= 4'd0;
else if(cnt == 25'h1ffffff) num <= num+1'b1;
在这样一段分频后,加上
reg a;
always @(num) begin
a=a+1'b1;
end
这样为什么a不动作啊。换成a=num后a动作。
求救啊。。。。。。
师傅们别光看不帮忙啊。。。。 最后一段程序改成下面的试一下:
always @(posedge num or negedge num or negedge rst_n) begin
if(!rst_n)a<=0;
else a<=a+1;
end 你试试改成always@(num)?? 谢谢楼上二位的回复。结果是不行的。
我也不知道怎么回事。即使在num引出wire也不可以。
可能是分频次数太多,cpld块分布不允许太多次分频。 回复【楼主位】hzr0071
-----------------------------------------------------------------------
你用了"always @(num)"这种不对边沿敏感的声明
用了描述组合逻辑的表达式(表达式还和敏感目标无关)
赋值对象a还是个reg
完全没看懂你想让a干什么,先把这个说明一下吧 哦,我好像记起来了,我曾经也遇到过相同的问题,a没有初值啊,你让它从多少开始加?得加上复位,而且最关键的是组合逻辑里不能自加,综合不出来,仿真不出来
页:
[1]