-
Notifications
You must be signed in to change notification settings - Fork 3
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
Crc core: add purely combinatorial CRC engine #10
Comments
You could add a version of the |
Is it not just polynomial multiplication in a finite field? There must be a reason why Edit: it looks like the polynomial of |
What would be trivial to add is a type level bool. Regarding |
Yup: https://en.wikipedia.org/wiki/AES3 AES is pretty similar to S/PDIF but for professional broadcasting. S/PDIF does not include a CRC in its channel word; just the parity in each sample that covers both audio and metadata (this parity is also in AES but they added a CRC for the metadata). |
Does it have to be type-level? I think in general we're okay with constant term-level arguments to configure things like this. I don't want to call out our SPI slave as an example, with its current deficiencies... but it does have pretty much exactly this. I'd rather only move to the type level if it actually achieves something compared to term level; not just "well this needs to be a constant"; we have plenty of terms that need to be constant in a synthesisable design. |
I personally prefer having circuit configuration constants be type level. But it's not super important for me. |
Currently, the CRC engine assumes that data is fed into it over multiple cycles. This is true for calculating the CRC over an Ethernet frame, but it is not the case for some other use cases. Apart from adding resource overhead to such use cases, the delay of 1 cycle makes it a pain to use. That's why there is a need to add a purely combinatorial function that has no residue. Note that we will probably need to add new types for its parameters, as the matrix sizes do not match.
An example:
The text was updated successfully, but these errors were encountered: