如何设计FPGA复位电路

复位对于FPGA设计很重要,一些很奇怪而找不到原因的问题很有可能是由于复位造成的,本人就因为没理解好复位情况而受困扰几天。

复位信号可以是高电平也可以是低电平复位。并且电路分外部信号的硬件电路复位和内部信号的软件复位。 

外部硬件复位:

若用到外部信号复位,最好留一个全局时钟的引脚,当IO口够时不管用不用到外部复位,最好是预留一个外部复位端口。

内部软件复位:

一般内部软件复位不是必须有的,这个主要看你程序运行情况,及外围电路的需要,若外围电路有需要上电一段时间后才正常运行的,那就最好加入一个内部的软件复位,主要在一段延时前复位后才正常运行程序。 

Eg:上电后延时多少才复位就看你自己的需要,可以修改

reg [15:0]clkcnt=16'd0;

always@(posedge CLKL)

begin

    if(clkcnt==16'hFFFF)

 begin

      clkcnt <= 16'hFFFB;

    end

    else

    begin 

      clkcnt <= clkcnt + 1'b1;

    end    

end

always@(negedge CLKL)

begin

    if(clkcnt<16'hFFFA)

 begin

      RST_n <= 1'b1;

    end

    else

    begin 

      RST_n <= 1'b0; // icon_control0

    end    

End 

若不用复位: 不用复位可能会引起的一个问题是仿真时出现一堆的X。这个问题可以通过在HDL文件中为寄存器赋初值解决。

永不止步步 发表于04-05 10:11 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67417个|学分:363341个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号