-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/pounder timestamping #196
Feature/pounder timestamping #196
Conversation
Is there a way we can merge this without regression on existing v1.0 Pounders? Maybe this is the time for |
Yeah, that shouldn't be too hard. I'll add this to the checklist above. |
Given sinara-hw/Pounder#84 (comment), it's not clear that more than ~2 boards were ever made. If you already patched one to v1.1 and it'll be straightforward to do the other(s), it might not be worth it. |
It's worth it for us. |
This PR implements timestamping using the external pounder SYNC_CLK to drive an internal timer. This addresses the IO architecture in #147 and the timestamping logic outlined in #170
This finalizes the asynchronous IO architecture and timestamp acquisition features.
These changes require a hardware revision of Pounder before they can be used:
TODO:
Testing
I manually updated the
process()
function to record timestamps and calculate delays between each sample. Visual inspection showed a nominal 40 tick delay between each sample, where each tick corresponds to 32ns (1/4 of a 125MHz clock). Given that the ADCs were configured to sample every 128 ticks of a 100MHz clock, the delays of both clocks align to ~1.28uS/sample, which indicates that the pounder clock is correctly timestamping ADC samples.