@Matt Venn on the ICs slowly going uncontrolled, have you looked at the user clock to make sure it’s stable? A decent, plus very easy+fast, measurement is to normal trigger on an edge of the clock (50% posedge) and make sure there is enough horizontal space to see five periods of the clock. Put scope into infinite persistence. On the posedge that is five periods away from trigger measure how much it varies in time and divide by clock period. It should be a fairly small fraction. If you can’t see the user clock directly you can try measuring it indirectly too. You’d have to be a bit careful there though to make sure you’re actually measuring the clock. So, for example, if you pick a data signal with high activity factor as a proxy, then a good result means the clock is good but a bad result doesn’t necessarily mean the clock is bad.