问答 店铺
热搜: ZYNQ FPGA discuz

QQ登录

只需一步,快速开始

微信登录

微信扫码,快速开始

微信扫一扫 分享朋友圈

已有 5882 人浏览分享

开启左侧

请教一个延时模块的问题

[复制链接]
5882 3
悬赏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啊   楼主找到原因没

举报 使用道具

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

本版积分规则

0

关注

1

粉丝

2

主题
精彩推荐
热门资讯
网友晒图
图文推荐

  • 微信公众平台

  • 扫描访问手机版