两种写发,感觉应该更稳定,却出现了问题

2020-02-06 12:30发布

本帖最后由 z894811350 于 2015-12-1 13:39 编辑

第一种
reg     aa;
wire    aa_rising;
wire    aa_falling;
always @(posedge sys_clk)
begin
    if(rst_l==1'b0)
         begin
             aa_r<=1'b0;
         end
         else if(bb==1'b0)
             aa_r<=aa;
end
assign  aa_rising =(aa_r==1'b0 && (aa==1'b1))?1'b1:1'b0;
assign  aa_falling=(aa_r==1'b1 && (aa==1'b0))?1'b1:1'b0;
图像正常
第二种
reg     [3:0]    aa;
wire    aa_rising;
wire    aa_falling;
always @(posedge sys_clk)
begin
    if(rst_l==1'b0)
         begin
             aa_r<=4'd0;
         end
         else if(bb==1'b0)
             aa_r[3:0]<={aa[2:0],aa};
end
assign  aa_rising =(aa_r==4'b0011)?1'b1:1'b0;
assign  aa_falling=(aa_r==4'b1100)?1'b1:1'b0;
图像乱了
时钟是125M
哪位帮助解释一下这两种写法什么情况会出现问题
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
z894811350
1楼-- · 2020-02-07 10:17
feihufuture 发表于 2015-12-2 16:04
1 125m时钟不低了,要注意了
2 注意建立时间和保持时间的时序问题

时序不懂啊!就是规范着写代码;
后面也遇到类似的情况,感觉小代码低频采低频无所谓了,随意采;
高频采低频,还是要滤波,为了稳定不能差资源啊

一周热门 更多>