1、当SRIO进行初始化时,首先会port-initialized(端口成功初始化)拉高随后link-initialized(链路被成功初始化)拉高。特别注意的是link-initialized表示已接收到七个连续的无差错控制符号,并且已经发送了15个连续符号。如下仿真图所示。
2、Link_reset我们应该监视phy_rcvd_link_reset信号,该信号表示PHY已经接收到四个链接(目前还不知道怎么计数)请求重置设备控制符号,并且正在重置内核仿真图如下。
3、当收端的phy_rcvd_link_reset拉高的同时log_rst也会拉高,仿真图如下。
4、当发端发送link_reset时,收端拉高phy_rcvd_link_reset脉冲后,收端的link_initialized拉低,过一个log_clk周期后port_initialized拉低,仿真图如下。
5、发端的port_initialized在过了一段时间后开始拉低,随后一个log_clk周期后发端的link_initialized拉低。仿真图如下。
6、当发端和收端的sys复位信号与发端的link_reset同时拉高时,发端和收端都是link_initialized先拉低随后port_initialized在拉低。仿真图如下。
7、当只拉高发端的sys复位信号时,并且与发端的link_reset同时拉高,收端的link_initialized并不会拉高。仿真图如下。
8、当发端的sys_rst与发端的link_reset同时拉高时,并且一段时间后发端sys_rst先拉低,收端的link_initialized也不会拉高。仿真图如下。
通过6、7、8可以得出发端的sys_rst复位会影响收端的phy_rcvd_link_reset信号的产生,所以只需要将发端的link_reset拉高维持一段时间后,确保收端phy_rcvd_link_reset信号产生后,开始拉低发端的link_reset,同时检验link_reset的下降沿,当link_reset下降沿到来时,拉高发端的sys_rst,仿真图如下所示。