巡回冗長検査CRC32の ハード/ソフト最適分割の検討 電子情報デザイン学科 B4 伊藤大喜 2009/2/27 研究背景・目的 • LSIの開発環境の高度化に伴い、ハード/ソフト協調 設計の技術が求められている。 • 巡回冗長検査CRCをはじめとしたエラー検出はファ イルの送受信の処理時間に大きく影響する。 ハード、ソフトでCRC32を設計し、最適な分割案を 検討する。 研究の流れ アルゴリズムを理解 動作をC言語で記述 モジュール分割案を考案 ハードウェア設計 モジュールを考慮したC言語記述 ハード/ソフトの分割案を検討 CRC(Cyclic Redundancy Check)32とは 2進数とみなす 送信データ + 送信データ CRC CRC 生成多項式で割る チェックビットとして 付加して送信 送信データ CRC 余りが0ならデータは正 しく受信出来ている 送信側 名称 生成多項式 主な用途 CRC-1 x+1 パリティビット CRC-16 x16+x15+x2+x1+1 SDLC、USB CRC-30 x30+x29+x21+x20 +x15+x13+x12+x11+x8+x7+x6+x2+x1+1 CRC-32 x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1 CDMA V.42, MPEG-2, PNG CRC32のアルゴリズム 例 : 入力ビット列 : 11010011101100 除数ビット列 : 1011 EX-OR 結果 00000000000010 10010011101100 1011 00100011101100 00000000000010 CRC32のモジュール分割案 ・ memoryモジュール 入力するビット列を保持しておき、他モジュールにその値を1ビットずつ送信。 値が終了すればその合図としてbit_countを返す。 ・ calculatorモジュール memoryモジュールから値を受け取り、bit_countを受け取れば受信を終了。 そこから演算を開始し、除数ビット列の終端が入力ビット列の終端まで達した ら演算終了。 memory 信号名 方向 幅(bit) 詳細 out_data output 8 送信データ bit_count output 1 受信停止信号 memoryの信号線 data bit_count calculator モジュール図 信号名 方向 幅(bit) 詳細 in_data input 8 受信データ bit_count input 1 受信停止信号 calculatorの信号線 実験結果・考察 memory 27% calculator 73% 負荷割合 分類 ハードウェア処理部 A ソフトウェア処理部 memory, calculator 回路規模 実行クロック数 0 126597 B memory calculator 457 - C calculator memory 1999 - D memory, calculator 2456 324 分割パターンと結果 まとめ • ハードウェア・ソフトウェアでの設計 C言語、verilog記述方法の習得 • 結果を用いた分割パターンの検討 ハードウェア化、ソフトウェア化による効果と 性能向上におけるハード/ソフト分割の重要性 今後の課題 • MicroBlazeを用いFPGA上への実装を行 い、より精密な予測を行う。
© Copyright 2024 ExpyDoc