Si vous avez deux PLL appelés PLL1 et PLL2 et une source d’horloge en cours d’exécution gratuite à partir d’une broche appelée sysclk.
Si PLL1 utilise sysclk pour tirer une reconfig_clk de 50 MHz et affirme pll1_locked signal après reconfig_clk est panthélisé.
Si PLL2 utilise sysclk pour générer unclk fixe de 125 MHz et affirme pll2_locked signal une fois que leclk fixe est valide.
Pour le cœur PCIe, le bloc de reconfiguration doit être maintenu en réinitialisation jusqu’à ce que ces deux horloges soient stables. Par conséquent, sa offset_cancellation_reset d’entrée doit être réglée jusqu’à ce que les pll1_locked et les pll2_locked soient revendiqués. Par conséquent, offset_cancellation est l’inversion de pll1_locked et de pll2_locked.
Dans Verilog, la logique va ressembler à ce qui suit :
assigner offset_cancellation_reset = ! (pll1_locked et pll2_locked) ;
Lorsque le bloc de reconfiguration est hors de la réinitialisation, il commence à offset_cancellation processus de configuration côté RX de l’émetteur-récepteur et d’affirmation de drapeau « BUSY ». Une fois cette procédure terminée, le contrôleur de bloc de reconfiguration déboite l’indicateur BUSY.