Verilog -- FPGA/EPLD软件自己复位程序

当FPGA/EPLD无复位管脚时,软件自己给自己复位,代码如下

module soft_rst_n
(
    input                 clk                 , //work clk=25M,周期是40ns
    input                 i_reset             , //命令复位信号
    output reg            o_rst_n               //输出复位信号,低有效。
);

    reg  [21:0]           cnt                 ;//计数器          
    parameter             cnt_low=30          ;//计数器数值   


always @ (posedge clk)  begin
    if(i_reset==1)
        cnt <= 23'd0                          ;
    else if(cnt < cnt_low)
        cnt <= cnt+1'b1                       ;
    else if(cnt == cnt_low)
        cnt <= cnt                            ;
    else
        cnt <= 23'd0                          ; //给cnt赋初值
 
end


always @ (posedge clk)  begin
    if(cnt == cnt_low)
        o_rst_n <= 1'b1                       ;//当计数器达到cnt_low时,拉高信号
    else
        o_rst_n <= 1'b0                       ;
end

endmodule

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值