FPGA如果没有外部复位信号,如何产生复位信号,初始化所有寄存器?

您所在的位置:网站首页 pll公式里没有合适的怎么办 FPGA如果没有外部复位信号,如何产生复位信号,初始化所有寄存器?

FPGA如果没有外部复位信号,如何产生复位信号,初始化所有寄存器?

2023-09-12 04:39| 来源: 网络整理| 查看: 265

对于FPGA,没有专用的复位引脚。它的任意一个I/O口都可以用作复位引脚。但是,作为if复位,最希望该引脚由全局时钟驱动,到达每个寄存器的时间时间是一样的。

如果没有外部复位信号,该如何对所有寄存器初始化?有两种方法,第一种使用PLL的locked信号;第二种是写一个自复位信号。

一、可以使用PLL的locked信号。使用PLL锁相环倍频时钟时,PLL锁相环的locked信号上电为低;当PLL输出信号稳定的时候,locked信号会被拉高。也可以设置多少个时钟之后,locked被拉高。此时,PLL锁相环的输入时钟为全局时钟。即完成上电复位操作。

PLL实例化如下:

wire sys_rst_n; PLL_Control PLL_Control_inst( .CLK_IN1(sys_clk_i), .CLK_OUT1(clk_100M), .LOCKED(sys_rst_n) );

其中sys_rst_n作为全局复位信号。 

PLL锁相环的设置参考博客:《锁相环PLL》https://blog.csdn.net/weixin_38621214/article/details/83757242

二、自复位信号

module RST_INER( clk_100M, Rst_n ); input clk_100M; output Rst_n; //============================================================== wire clk_100M; reg Rst_n; //============================================================== parameter INNER_CNT_END=9'd128; reg [8:0] rst_inner_cnt; always @(posedge clk_100M) if(rst_inner_cnt


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3