在Virtex-5 FPGA芯片中使用CRC硬模塊
CRC模塊
CRC 的硬件實(shí)現使用一個(gè)簡(jiǎn)單的 LFSR。這種電路雖然實(shí)現起來(lái)簡(jiǎn)單,但對于一個(gè)n位數據流來(lái)說(shuō),要占用n個(gè)時(shí)鐘周期來(lái)計算CRC值。在必須以較高速度處理數據幀的高速數據網(wǎng)絡(luò )應用中,這樣的延遲是無(wú)法忍受的。這類(lèi)高速網(wǎng)絡(luò )應用迫切需要對并行數據流實(shí)現CRC生成和校驗。
Virtex-5 LXT/SXT器件中實(shí)現的CRC模塊可幫助設計人員加速校驗和計算。
Virtex-5 LXT/SXT器件中的 CRC硬模塊基于CRC32多項式。Virtex-5 FPGA含有CRC32和 CRC64 兩種硬模塊,能以一個(gè)時(shí)鐘周期的延遲為4位和8位數據輸出生成CRC。其界面簡(jiǎn)單易用。硬模塊對給定的消息流起著(zhù)CRC計算器的作用,同時(shí)提供一些針對 CRC的參數作為輸入。CRC的比較功能已經(jīng)超出硬模塊的范圍,應集成到FPGA架構中。
FPGA 中的每個(gè)CRC硬模塊異步計算一個(gè)32位校驗和。
圖2是說(shuō)明硬模塊架構的模塊級圖。CRC硬模塊提供一個(gè)位反演和字節反轉的輸出。
圖3所示為CRC硬模塊的應用概況。在發(fā)射器上,CRC經(jīng)計算后附加到給定數據包的尾部。在接收器上,對連帶發(fā)射器所附加的CRC一起接收到的整個(gè)數據包重新計算CRC。
評論