[X]关闭

请教一个延时模块的问题

文档创建者:mkelehk
浏览次数:4318
最后更新:2016-11-02
悬赏1积分未解决
搞不明白下面延时模块注释部分与当前部分有什么区别,使用当前代码仿真时,count是x,使用注释部分却正常!!
module system_delay
#(
        parameter SYS_DELAY_TOP = 23'd2500000        //50ms
)
(
        input clk,
        input rst_n,
        
        output delay_done
);

reg [22:0] count;
always @ (posedge clk or negedge rst_n)

/*
begin
        if(!rst_n)
                count <= 23'd0;
        else if(count < SYS_DELAY_TOP - 1'b1)
                count <= count + 1'b1;
        else
                count <= SYS_DELAY_TOP - 1'b1;
end

assign delay_done = (count == SYS_DELAY_TOP - 1'b1)? 1'b1 : 1'b0;
*/

begin
        if(!rst_n)
                count <= 23'd0;
        else if(count == SYS_DELAY_TOP)
                count <= SYS_DELAY_TOP;
        else
                count <= count + 1'b1;
end

assign delay_done = (count == SYS_DELAY_TOP)? 1'b1 : 1'b0;

endmodule



发表评论已发布 3

母子平安

发表于 2016-9-2 14:25:29 | 显示全部楼层

这个没法解释,复位部分都一样
回复

使用道具 举报

shiwuge

发表于 2016-9-5 14:35:26 | 显示全部楼层

把else if 下面的那句话换成 count 《= count 试试
回复

使用道具 举报

Yeran

发表于 2016-11-2 23:01:05 | 显示全部楼层

复位正常应该就不能是X啊   楼主找到原因没
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则