Zynq7000 SoC器件中的复位系统包括由硬件、看门狗定时器、JTAG控制器和软件生成的复位。每个模块和系统都包括一个由复位系统驱动的复位。硬件复位由上电复位信号(PS_POR_B)和系统复位信号(PS_SRST_B)驱动。
在PS中,有三个看门狗定时器可以生成复位。JTAG控制器可以生成一个只复位PS的调试部分的复位和一个系统级的复位。软件可以生成单独的子模块复位或系统级复位。
一、启动流程
完整的复位序列如图26-3所示。前两步由外部系统和PS逻辑控制,只有当上电复位(POR)撤销时,PS逻辑才开始响应。当PS处于工作状态时,POR之后的任何类型的复位都可能发生。这些复位会插入到流程图中的相应位置。
POR信号可以异步地断言或撤销。当POR信号被撤销时,它会被条件化,以便能够干净地传播到时钟模块输入逻辑,如果启用的话,还会传播到PLL时钟电路。
有一个BOOT_MODE绑定引脚用于选择在所有PLL启用和所有PLL禁用(旁路)之间进行选择。当PLL被旁路时,启动过程需要更长的时间。
当POR_N被释放后,eFUSE控制器从复位状态中恢复。它会自动将某些数据应用于PLL,并为PS中的某些RAM提供冗余信息。这些活动对用户是不可见的,也不会受到用户的影响。完成这项活动需要50微秒到100微秒的时间。如果PLL被启用,那么POR信号在这个阶段会被延迟,直到PLL时钟锁定。如果选择了PLL旁路模式,则POR信号不会被延迟。在BootROM开始执行之前,内部RAM会被硬件写入零以清除所有地址。
二、复位源
1、上电复位
PS支持外部上电复位信号。上电复位是整个芯片的主复位。这个信号会重置设备中所有能够被重置的寄存器。当PS_POR_B保持低电平时,所有PS的I/O都保持在三态,并且大多数MIO引脚上都启用了弱上拉。每个MIO引脚的上拉是由MIO_PIN_xx [PULLUP]位独立控制的。
PS_POR_B复位引脚在低电平状态下保持,直到所有PS电源达到所需的电压水平并且PS_CLK处于活动状态。它可以异步断言,并在内部同步和过滤。该滤波器可防止高电平毛刺在信号应保持低电平时进入PS。当信号应保持高电平时,它不会过滤低电平毛刺。检测到的任何低电平毛刺都会立即导致设备复位。
PS_POR_B信号通常连接到电源的电源良好信号。当PS_POR_B被撤销时,系统会采样引导模式引脚并开始其内部初始化过程。
2、外部系统复位
上电复位会清除所有的调试配置。外部系统复位允许用户在不影响调试环境的情况下,重置设备内的所有功能逻辑。例如,用户之前设置的断点,在外部系统复位后仍然有效。当PS_SRST_B保持低电平时,所有PS的I/O都保持在三态。
出于安全考虑,系统复位会清除PS内的所有内存内容,包括OCM。PL在系统复位时也会被重置。系统复位不会重新采样引导模式绑定引脚。
如果此引脚在系统中未使用,应将其拉高。
3、系统软件复位
用户可以通过断言软件复位来重置整个系统。通过断言PSS_RST_CTRL[SOFT_RST],整个系统将被重置,其最终结果与用户按下PS_SRST_B引脚相同(除了REBOOT_STATUS寄存器的值不同)。与其他系统复位一样,所有的RAM都会被清除,PL也会被重置。
4、看门狗定时器复位
是由看门狗定时器在启用且定时器到期时内部生成的。PS中有三个不同的看门狗定时器:一个系统级定时器(SWDT)和两个Arm内核中的私有定时器(AWDT0和AWDT1)。系统级定时器复位信号始终会重置整个系统,而私有看门狗定时器可以仅重置其所在的Arm内核,或者整个系统。
6、调试复位
有两种类型的调试复位起源于调试访问端口(DAP)控制器:调试系统复位和调试复位。
调试系统复位是来自Arm DAP并由JTAG控制的命令。这会导致系统复位,就像外部系统复位一样。
调试复位会重置SoC调试块中的某些部分,包括JTAG逻辑。PS不支持外部TRST,尽管它支持使用TMS断言复位序列。JTAG逻辑仅在上电复位或从Arm调试访问端口(DAP)控制器(JTAG)断言CDBGRSTREQ时重置。JTAG TCK时钟域中的所有逻辑都由该信号重置。
三、复位带来的影响
当PS被复位时,所有PS外设都会被复位。此外,通过SLCR中的可编程位,还可以在软件控制下断言单个外设复位。
大多数外设都有能力重置该外设内的每个时钟域。例如,以太网控制器可以重置接收(RX)侧、发送(TX)侧或互联侧。每个时钟域都可以单独复位。各个外设可能在这些块内有其自己的复位定义。
外设复位不会导致RAM内存清除逻辑被激活以清除设计中的所有内存。
四、PL通用用户复位
有四个独立的复位信号FCLKRESETN[3:0]被路由到PL,可以用作PL逻辑的通用复位信号。这些复位信号在PS完成其启动序列并且用户代码撤销它们之前不会被移除。它们可以通过slcr.FPGA_RST_CTRL寄存器进行控制。在存在活动的总线事务时,连接到PS的PL逻辑不得被复位,因为未完成的事务可能会在PS中留下待处理的事务。
该复位信号与相同编号的FCLK有一定的关联,但时序上必须被视为对PL的异步复位。如果用户需要同步复位,用户必须在PL中自行同步它。(FCLK需要切换以使复位从PS传播出去。)