Skip to content
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

Merged
merged 13 commits into from
Jan 11, 2021
Merged

Feature/pounder timestamping #196

merged 13 commits into from
Jan 11, 2021

Conversation

ryan-summers
Copy link
Member

@ryan-summers ryan-summers commented Dec 9, 2020

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.

@jordens
Copy link
Member

jordens commented Dec 9, 2020

Is there a way we can merge this without regression on existing v1.0 Pounders? Maybe this is the time for #[cfg(feature = pounder_v1_1)] or similar?

@ryan-summers
Copy link
Member Author

Is there a way we can merge this without regression on existing v1.0 Pounders? Maybe this is the time for #[cfg(feature = pounder_v1_1)] or similar?

Yeah, that shouldn't be too hard. I'll add this to the checklist above.

@dtcallcock
Copy link

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.

@jordens
Copy link
Member

jordens commented Dec 9, 2020

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.

src/timers.rs Show resolved Hide resolved
src/design_parameters.rs Outdated Show resolved Hide resolved
@ryan-summers ryan-summers marked this pull request as ready for review January 6, 2021 13:46
@ryan-summers ryan-summers merged commit 1307ddb into quartiq:master Jan 11, 2021
@ryan-summers ryan-summers deleted the feature/pounder-timestamping branch January 11, 2021 09:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants