FPGA内部产生复位信号可以吗

[复制链接]
2314|5
 楼主| mryw 发表于 2015-3-26 19:10 | 显示全部楼层 |阅读模式
reg[15:0] count;
always@(posedge clk)
begin
        if(count == 16'd65550)
                count <= count;
        else
                count <= count + 1'b1;
end
//---------------------------------------------
always@(posedge clk)
begin
        if(count < 16'd65550)
                rst_n <= 1'b0;
        else
                rst_n <= 1'b1;
end
由于所使用的板子没有外部复位按键,想通过如上方式产生一个开始是低电平0,随后一直是高电平1的信号,但是使用modelsim仿真发现信号一直是高电平1,这是怎么回事呢?很着急啊
liudanwei 发表于 2015-3-26 20:50 | 显示全部楼层
就是给所有信号一个初态呗
jefferchen 发表于 2015-3-31 23:09 | 显示全部楼层
pll lock信号可以作为复位
3008202060 发表于 2015-3-31 23:26 | 显示全部楼层
可以啊
chenzhi658 发表于 2015-4-2 15:19 | 显示全部楼层
kaiseradler 发表于 2015-3-27 09:42
65550的16进制数是1000E为17位数,你定义为16位数明显溢出!

有道理,你想延长久点,可以多计数器串联;你如果用PLL的话,直接用pll lock信号作为复位信号,这样更稳定。
wolfskin 发表于 2015-4-15 23:39 | 显示全部楼层
reg变量定义时要赋初值,之后才能正确仿真
您需要登录后才可以回帖 登录 | 注册

本版积分规则

17

主题

66

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部