私は、VHDLでイーサネット10GE MACデザインを生成しました。今私はCRCを実装しようとしています。私はVHDLで64ビット並列CRC-32ジェネレータを持っています。並列RC-32計算イーサネット10GE MAC
仕様:
- データバスが64ビットで
- コントロール・バスは、(データバイトを検証する)、8ビットの
問題です:私の流入、さんは言ってみましょう
パケット長は14バイトです(パディングなしと仮定)。
CRCは1クロックサイクルで最初の8バイトで計算されますが、残りの6バイトでCRCを計算しようとすると、0が追加されるため結果が正しくありません。
64ビットパラレルCRCジェネレータを使用して任意の長さのバイト長のCRCを生成する方法はありますか?
Iが異なるパラレルCRCジェネレータ(8ビットパラレルCRC、16ビットのパラレルCRC発生器など)を使用した:私が試したもの
。しかし、これは多くのFPGAリソースを消費します。私はちょうど64ビット並列CRCジェネレータを使用してリソースを節約したいと思います。
Googleグループのcomp.lang.vhdl [Ethernet CRC-32](https://groups.google.com/forum/#!topic/comp.lang.vhdl/WHsU0PxD28E)を参照してください。 – user1155120
明確にするために、パケット全体を受信し、格納してからCRCを計算していますか?または、受信したすべての64ビットブロックからCRCを徐々に計算しようとしていますか? – gsm
@gsmパケット全体を格納していません。私は毎クロックごとに入ってくるパケットのCRC32を計算しようとしています。 – Tushar