JP2005086272A - Crc符号演算回路及びfcs生成回路並びにmac回路 - Google Patents

Crc符号演算回路及びfcs生成回路並びにmac回路 Download PDF

Info

Publication number
JP2005086272A
JP2005086272A JP2003313126A JP2003313126A JP2005086272A JP 2005086272 A JP2005086272 A JP 2005086272A JP 2003313126 A JP2003313126 A JP 2003313126A JP 2003313126 A JP2003313126 A JP 2003313126A JP 2005086272 A JP2005086272 A JP 2005086272A
Authority
JP
Japan
Prior art keywords
circuit
data
crc code
fcs
input
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2003313126A
Other languages
English (en)
Inventor
Hiroyuki Kusano
博幸 草野
Hisanori Terayama
久紀 寺山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003313126A priority Critical patent/JP2005086272A/ja
Publication of JP2005086272A publication Critical patent/JP2005086272A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

【課題】 演算の対象となるデータ長が変化するパラレルデータから、並列演算によるCRC符号演算を行ってFCS符号を生成するMAC回路などを提供する。
【解決手段】 バッファ回路9は送信データ7のデータ長を検定してFCS符号を生成する演算対象となるデータ長を検出し、FCS生成回路8はパラレルで入力される送信データを均等に分割した任意のビット幅で並列演算を行えるCRC符号演算回路を複数個有しており、バッファ回路から通知される演算対象となる送信データのビット幅を示すデータ長に従って、FCS生成回路はデータ長が変化する送信データのFCS符号を生成する。
【選択図】 図1



Description

本発明は、ディジタル通信の誤り検出技術の1つであるCRC技術と、CRC技術を利用したEthernet(R)通信技術に関し、特にCRC符号演算回路及びFCS生成回路並びにMAC回路にする。
CRC(巡回冗長検査)はディジタル通信の誤り検出手段として広く用いられている技術である。またディジタル通信では扱うデータ速度が高速化する一方、送受信回路の動作速度は低速にし、容易な設計で安定した回路動作を得る手段として、送受信回路の内部では高速のシリアルデータを低速のパラレルデータに変換する手法が用いられている。一般的にはCRC符号演算回路もパラレルのデータ列から並列演算で求める手法が用いられる。
パラレルデータからCRC符号を演算する回路としては、下記の特許文献1に記載されたものが知られている。図9は従来のCRC符号演算回路を示している。このCRC符号演算回路は、4バイトパラレルCRC符号演算回路92、バイトパラレル→バイトシリアル変換回路93、1バイトシリアルCRC符号演算回路94、セレクタ(SEL)95、制御部96によって構成される。
特開2001−285076号公報
4バイトパラレルCRC符号演算回路92は制御部96から入力される制御タイミング信号に基づいて、外部から入力される4バイトパラレルデータの最終段の余り部分以外のデータからCRC符号をパラレルで演算し、演算結果をラッチ97AでラッチしてSEL95に出力するとともに、1バイトシリアルCRC符号演算回路94にも出力する。バイトパラレル→バイトシリアル変換回路93は制御部96から入力されるタイミング制御信号に基づいて、外部から入力される4バイトパラレルデータの最終段の余り部分を1バイトシリアルデータに変換して、1バイトシリアルCRC符号演算回路94に出力する。1バイトシリアルCRC符号演算回路94は、4バイトパラレルCRC符号演算回路92から入力される演算結果を初期値として、バイトパラレル→バイトシリアル変換回路93から入力される最終段のデータをシリアルで演算し、演算結果であるCRC符号をラッチ97B〜97DでそれぞれラッチしてSEL95に出力する。以上のようにして、可変長の4バイトパラレルデータが入力されたときは、最終段の余り部分をシリアルデータに変換してCRC符号演算を行い、CRC符号を出力するものである。
しかしながら上記従来のCRC符号演算回路では、データの最終段において1バイトシリアルCRC符号演算を行うとき、バイトパラレル→バイトシリアル変換に時間を要するため、4バイトパラレルCRC符号演算と同等の一定の時間内に演算を完了させようとした場合は、1バイトシリアルCRC符号演算の速度を高速化させる必要がある。したがって容易な設計で安定した回路動作を得ることを目的とした場合、データの最終段では充分な低速化が図れなくなるという問題が発生する。
本発明は上記従来の問題を解決するもので、高速のシリアルデータを低速のパラレルデータに変換して扱う送受信回路において、データ列の後縁まで一定の時間内に低速で演算を行い、安定した回路動作を得られるCRC符号演算回路及びFCS(フレーム検査シーケンス)生成回路並びに、上記FCS生成回路を備えたMAC(媒体アクセス制御)回路を提供することを目的とする。
上記目的を達成するために本発明は、有効なデータの領域の範囲を示すデータ長情報と、パラレルデータが入力されるCRC符号演算回路であって、並列演算によってCRC符号演算を行うことができる演算回路と、セレクタと、初期化時に初期値をロードできるラッチ回路を備え、前記パラレルデータを任意のビット幅に均等に分割し、分割したデータについてそれぞれCRC符号演算を行うことで、任意のデータ長の前記パラレルデータのCRC符号演算結果を、分割したビット単位で得ることができるCRC符号演算回路を構成したものである。
以上により、高速のシリアルデータを低速のパラレルデータに変換して扱う送受信回路において、データ列の後縁まで一定の時間内に低速で演算を行い安定した回路動作を得られるCRC符号演算回路と、CRC符号演算回路を用いて構成したFCS生成回路と、かかるFCS生成回路を備えたMAC回路が得られる。
請求項1に記載の発明は、所定のビット幅を持つパラレルデータからCRC符号を演算するCRC符号演算回路であって、
前記パラレルデータのCRC符号演算を行う範囲を示すデータ長情報と、前記パラレルデータが入力され、前記パラレルデータよりも少ないビット幅の演算データから並列演算によってCRC符号演算を行うことができる複数の演算回路と、前記複数の演算回路の出力信号から所望の信号を選択するセレクタと、前記セレクタの出力信号に応答して初期化時に初期値をロードできるラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記パラレルデータを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第1の演算回路には直前のCRC符号演算結果と、分割した前記パラレルデータの最上位にあるデータが入力され、第2の演算回路には前記第1の演算回路の出力と最上位より1つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記パラレルデータの最下位までのデータがすべての演算回路に入力され、
前記セレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか1つのCRC符号演算結果を選択し、前記ラッチ回路は前記セレクタから出力されるCRC符号演算結果を保持するとともに、前記ラッチ回路の保持するCRC符号演算結果が前記直前のCRC符号演算結果となるものであり、
データ長情報に従って分割したビット幅単位に任意のデータ長のパラレルデータをCRC符号演算することができるという作用を有する。
また、請求項2に記載の発明は、Ethernet(R)パケットの誤り検出符号であるFCSの生成回路であって、請求項1に記載のCRC符号演算回路を用いた構成においてEthernet(R)パケットのペイロード領域のデータが前記パラレルデータとして入力され、前記ラッチ回路は初期化信号の入力時にall"1"をロードし、前記ラッチ回路が出力するCRC符号演算結果を論理反転するインバータを備え、前記インバータの出力がEthernet(R)パケットのFCSとなるものであり、
データ長情報に従って分割したビット幅単位にパラレルデータのMSB側から任意のデータ長のCRC符号演算を行うことで、任意のデータ長を持つEthernet(R)パケットのFCS生成を行うことができる作用を有する。
また、請求項3に記載の発明は、MAC送信回路と、MAC受信回路と、MII終端回路を備えるMAC回路であって、前記MAC送信回路には送信データが所定のビット幅のパラレルで入力され、
前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記プリアンブルと前記同期ワードとフレーム検査シーケンス(FCS)をEthernet(R)パケットに付加するタイミングとFCS生成回路の初期化タイミングを生成するタイミング制御回路と、前記送信データと前記プリアンブルと前記同期ワードとFCSからなる前記Ethernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従ってFCSを生成する請求項2に記載のFCS生成回路を備えるものであり、
データ長情報に従って分割したビット幅単位に任意のデータ長のCRC符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータからFCSを生成し、プリアンブル、同期ワード、送信データ、FCSからなるEthernet(R)パケットを生成、出力するという作用を有する。
また、請求項4に記載の発明は、CRC符号演算を行う複数個のデータ列が時分割多重されている、所定のビット幅を持つ時分割多重データからCRC符号を演算するCRC符号演算回路であって、
前記時分割多重データのCRC符号演算を行う範囲を示すデータ長情報と、パラレルデータと、時分割多重されているデータ列のスロット位置を特定するスロット番号が入力され、前記時分割多重データよりも少ないビット幅の演算データから並列演算によってCRC符号演算を行うことができる演算回路と、第1のセレクタと、第2のセレクタと、データ列の多重数と等しい個数のラッチ回路を備え、
前記演算回路に入力されるビット幅と等しいビット幅で前記時分割多重データを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第1の演算回路には直前のCRC符号演算結果と、分割した前記時分割多重データの最上位にあるデータが入力され、第2の演算回路には前記第1の演算回路の出力と最上位の1つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記時分割多重データの最下位の演算データがすべて演算回路に入力され、
前記第1のセレクタは前記スロット番号に従って前記ラッチ回路に保持されているCRC符号演算結果の中から該当するスロット番号の直前のCRC符号演算結果を選択し、前記第2のセレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか1つのCRC符号演算結果を選択し、前記ラッチ回路は前記第2のセレクタから出力される該当するスロット番号のデータ列のCRC符号演算結果を前記スロット番号に従って保持するとともに初期化時に初期値をロードできるものであり、
スロット番号とデータ長情報に従い、時分割多重されているそれぞれのデータ列について、分割したビット幅単位に任意のデータ長のCRC符号演算を行うことができるという作用を有する。
また、請求項5に記載の発明は、Ethernet(R)パケットの誤り検出符号であるFCSの生成回路であって、請求項4に記載のCRC符号演算回路を用いた構成において、複数ポートに対応したEthernet(R)パケットのデータが時分割多重されて前記時分割多重データとして入力され、前記スロット番号は複数あるポートのいずれかの送信データであることを示し、前記ラッチ回路は初期化信号の入力時にall"1"をロードし、前記ラッチ回路が出力するCRC符号演算結果を論理反転するインバータをそれぞれ備え、
前記インバータの出力がそれぞれのポートに対応したEthernet(R)パケットのFCSとなるものであり、
スロット番号とデータ長情報に従い、時分割多重されている複数のポートのデータ列について、分割したビット幅単位に任意のデータ長のCRC符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータのFCSを複数あるポートごとに生成できるという作用を有する。
また、請求項6に記載の発明は、MAC送信回路と、MAC受信回路と、MII終端回路を備え、複数ポートに接続できるMAC回路であって、
前記MAC送信回路には複数ポートの送信データが時分割多重されて所定のビット幅の時分割多重データで入力され、各ポートごとに前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記各ポートごとに前記プリアンブルと前記同期ワードとFCSをEthernet(R)パケットへ付加するタイミングとFCS生成回路の初期化タイミングを生成するタイミング制御回路と、複数のポートごとに前記送信データと前記プリアンブルと前記同期ワードとFCSからなるEthernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従って前記FCSを生成する請求項5に記載のFCS生成回路を備えるものであり、
スロット番号とデータ長情報に従い、時分割多重されている複数ポートのデータ列について、分割したビット幅単位に任意のデータ長のCRC符号演算を行うことで、任意のデータ長を持つEthernet(R)のパケットデータから複数あるポートごとにFCSを生成し、プリアンブル、同期ワード、送信データ、FCSからなる全ポートのEthernet(R)パケットを生成、出力するという作用を有する。
本発明は、有効なデータの領域の範囲を示すデータ長情報と、パラレルデータが入力されるCRC符号演算回路であって、並列演算によってCRC符号演算を行うことができる演算回路と、セレクタと、初期化時に初期値をロードできるラッチ回路を備え、前記パラレルデータを任意のビット幅に均等に分割し、分割したデータについてそれぞれCRC符号演算を行うことで、任意のデータ長の前記パラレルデータのCRC符号演算結果を、分割したビット単位で得ることができるCRC符号演算回路を設けることにより、動作速度を低速化させるため回路内部の処理をパラレルデータで行うMAC回路において、任意のデータ長に変化するパケットデータのFCS(Ethernet(R)パケットの誤り検出符号)生成を行うことができるという効果が得られる。
<実施の形態1>
以下、本発明の実施の形態1について、図1から図4を用いて説明する。図1は本発明の実施の形態1にかかるMAC回路を示すブロック図である。図1においてMAC回路1は、MAC送信回路2とMAC受信回路3とMII(メディア・インデペンデント・インターフェイス)終端回路4から構成される。MII5から入力されるデータはMII終端回路4とMAC受信回路3を経て受信データ6に出力され、所定のビット幅を持つ送信データ7はMAC送信回路2とMII終端回路4を経てMII5に出力される。
MAC送信回路2はFCS生成回路8とバッファ回路9とタイミング制御回路10とマルチプレクサ(MUX)11から構成される。FCS生成回路8は、Ethernet(R)パケットの誤り検出符号であるフレーム検査シーケンス(FCS)を生成する回路である。バッファ回路9は、送信データ7の先頭と後縁とデータ長情報を検出するとともにプリアンブル(PR)と同期ワード(SFD)を付加するのに要する時間だけ送信データ7を遅延させて、遅延された送信データを出力する(図4参照)。タイミング制御回路10は、バッファ回路9が検出する送信データ7の先頭と後縁のタイミングから、PRとSFDとフレーム検査シーケンス(FCS)をEthernet(R)パケットに付加するタイミングとFCS生成回路8の初期化タイミングを生成する。バッファ回路9に送信データ7が入力されたとき、データの先頭を検出したことをタイミング制御回路10に通知し、タイミング制御回路10はFCS生成回路8を初期化するとともにMUX11から(PR+SFD)12を出力させる。送信データ7はPRとSFDを出力するのに要する時間だけ遅延された後、入力されたときのビット幅でバッファ回路9から出力される。遅延された送信データ(単に送信データとも言う)はMUX11からSFDに続けて出力されると同時に、FCS生成回路8に入力されFCS生成の演算が行われる。このときバッファ回路9からは送信データの有効範囲を示すデータ長も出力され、通常は送信データの後縁部を除いて所定のビット幅の送信データすべてがFCS生成の演算範囲となる。送信データ7の入力が完了したとき、バッファ回路9はデータ後縁であることを検出しタイミング制御回路10に通知するとともに、FCS生成回路8にはデータ後縁部におけるデータ長を通知する。FCS生成回路8は入力される送信データの中から、バッファ回路9から通知されたデータ長に示される有効な範囲のデータのみを演算対象としてFCSを生成する。タイミング制御回路10は入力された送信データの出力後、FCS生成回路8で生成されたFCSをMUX11から出力させ、Ethernet(R)パケットの生成、出力を完了する。
図1中のFCS生成回路8の構成について説明する前に、FCS生成回路8における演算方法について、図2を用いて説明する。図2はCRC符号演算回路を示すブロック図である。このCRC符号演算回路は、mビットのパラレルデータ21が入力されたときxビットのCRCを生成し演算結果23を出力するものである。mビットのパラレルデータ21 D[m-1:0] はnビットごとに均等に D[m-1:m-n],D[m-n-1:m-2n],…,D[n-1:0] に分割され、それぞれ演算回路24-a〜24-cに入力される。演算回路24-a〜24-cはnビットのデータの並列演算を行ってxビットのCRC符号を生成するCRC符号演算回路であり、パラレルデータ21の分割数と同数のm/n個が存在する。演算回路24-aではラッチ回路26の出力値 CRC[x-1:0] と D[m-1:m-n] について演算が行われ、演算回路24-bでは演算回路24-aの出力値 CRC(0)[x-1:0] と D[m-n-1:m-2n] について演算が行われ、このようなnビットごとのCRC符号演算を繰り返して、演算回路24-cでは演算回路24-cの1つ上位に位置する演算回路の出力値とパラレルデータ21の最下位 D[n-1:0] について演算が行われる。
すなわち演算回路24-aからはパラレルデータ21の上位nビット D[m-1:m-n] についてCRC符号演算を行った結果が得られ、演算回路24-bからはパラレルデータ21の上位2nビット D[m-1:m-2n] についてCRC符号演算を行った結果が得られ、演算回路24-cからはパラレルデータ21の全ビット D[m-1:0] についてCRC符号演算を行った結果が得られることとなる。
CRC符号演算対象となる有効なデータがパラレルデータ21のMSBからnビットごとに格納されているとき、データ長情報22は演算対象となる範囲を示し、セレクタ25はデータ長情報22に従って演算対象となっているデータ長分の演算結果を演算回路24-a〜24-cの出力値 CRC(0)[x-1:0]〜CRC(m/n)[x-1:0] の中から選択し、ラッチ回路26はセレクタ25の出力値を保持して演算結果23を出力する。
このようにして図2に示すCRC符号演算回路では、データ長情報22に従ってパラレルデータ21を分割したビット幅単位で任意のデータ長のCRC符号演算を行った演算結果23が得られる。
上述の図1のFCS生成回路8の構成を図3に示す。ここではEthernet(R)パケットにおいて扱うデータの単位が1オクテット(8ビット)、FCSは32ビットであるので、入力されるパラレルデータを32ビット、分割するビット幅を8ビットとする。
32ビットのパラレルデータ31 D[31:0] は8ビットごとに分割され、上位からそれぞれ演算回路35-a〜35-dに入力される。演算回路35-a〜35-dは、生成多項式 X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1 で表されるCRC符号を1オクテットごとに並列演算で求めるもので、一方の入力端子には直前のCRC符号演算結果であるCRC[31:0]及び上位データの演算結果であるCRC(0)[31:0]〜CRC(2)[31:0]がそれぞれ入力されている。データ長情報32は0〜3の値でパラレルデータ31の演算対象となるオクテット範囲を示し、セレクタ36はデータ長情報32が0、1、2、3と変化するとき、それぞれCRC(0)[31:0],CRC(1)[31:0],CRC(2)[31:0],CRC(3)[31:0]を出力する。ラッチ回路37はセレクタ36が出力する値を保持し、初期化信号33が入力されたときはall"1"をロードする。インバータ回路38はラッチ回路37に保持されるCRC符号演算結果をビットごとに論理反転し32ビットのFCS演算結果34を出力する。
図1に示したMAC回路において、一例として67オクテット長のデータを送信するときの動作を図4に示す。図3と同様に送信データ7は32ビット幅、FCS生成回路8において送信データを分割するときのビット幅は8ビットとする。
本発明の実施の形態1によれば、パラレルデータを均等に分割したビット幅の単位で並列演算を行う複数個の演算回路を備え、任意のデータ長のCRC符号演算が可能なCRC符号演算回路を用いたFCS生成回路を設けることにより、Ethernet(R)のパケットデータをパラレルで入力しても、オクテット単位で任意の長さに変化するパケットデータのFCSを正しく求められるMAC回路を構成することができる。
<実施の形態2>
図5は本発明の実施の形態2にかかるMAC回路を示すブロック図である。第2の実施の形態のMAC回路は複数のポートに接続できる。一例としてMAC回路の接続できるポート数を4ポートとする。図5においてMAC回路41は、MAC送信回路42とMAC受信回路43とMII終端回路44-a〜44-dから構成され、MII0〜3(45-a〜45-d)から入力されるデータはMII終端回路44-a〜44-dとMAC受信回路43を経てポート0〜3の受信データ46-a〜46-dにそれぞれ出力され、ポート0〜3の送信データ47-a〜47-dは時分割多重回路48で多重化されて所定のビット幅を持つ多重データとなってMAC送信回路42に入力され、MAC送信回路42を経て、MII終端回路44-a〜44-dで多重化時に圧縮された時間軸を伸長してからMII0〜3(45-a〜45-d)にそれぞれ出力される。
MAC送信回路42はFCS生成回路49とバッファ回路50とタイミング制御回路51とMUX52から構成される。時分割多重回路48から、ポート0〜3の送信データ47-a〜47-dが時分割多重された多重データと、多重データにおける各ポートのスロット位置を示すポート番号が出力されており、バッファ回路50はポート番号に従って各ポートごとにデータ先頭とデータ後縁を検出する。任意のポートの送信データが入力されたときバッファ回路50はデータ先頭を検出したことをタイミング制御回路51に通知し、タイミング制御回路51は任意のポートに該当するFCS生成回路49に初期値をロードするとともにMUX52の任意のポートに対応する出力端子から(PR+SFD)53を出力させる。多重データは、PRとSFDを出力するのに要する時間だけ遅延された後、入力されたときのビット幅でバッファ回路50から出力される。タイミング制御回路51はポート番号に従い、任意のポートに対応する多重データのスロットデータをMUX52からSFDに続けて出力させると同時に、FCS生成回路49において当該ポートにおけるFCS生成の演算を行わせる。このときバッファ回路50からは当該ポートのデータの有効範囲を示すデータ長も出力され、通常は送信データの後縁部を除いて所定のビット幅のデータすべてがFCS生成の演算範囲となる。任意のポートの送信データの入力が完了したとき、バッファ回路50はデータ後縁であることを検出しタイミング制御回路51に通知するとともに、FCS生成回路49にはデータ後縁部におけるデータ長を通知する。FCS生成回路49は入力されるデータの中から、バッファ回路50から通知されたデータ長に示される有効な範囲のデータのみを演算対象としてFCSを生成する。タイミング制御回路51は入力された送信データの出力後、FCS生成回路49で生成された当該ポートのFCSをMUX52から出力させ、任意のポートにおけるEthernet(R)パケットの生成、出力を完了する。
上記FCS生成回路49における演算方法について、図6を用いて説明する。図6は時分割多重されたpスロットのデータのCRC符号演算回路であって、mビットの時分割多重データ61が入力されたとき、多重されているスロットごとにxビットのCRC符号を生成し演算結果0〜p−1 64-a〜64-cに出力する。スロット番号62は時分割多重データ61におけるスロット位置を示している。mビットの時分割多重データ61 D[m-1:0] はnビットごとに均等に D[m-1:m-n],D[m-n-1:m-2n],…,D[n-1:0] に分割され、演算回路66-a〜66-cに入力される。演算回路66-a〜66-cはnビットのデータの並列演算を行ってxビットのCRC符号を生成するCRC符号演算回路であり、時分割多重データ61の分割数と同数のm/n個が存在する。第1のセレクタ65は、当該スロットにおける直前のCRC符号演算結果を、ラッチ回路68-a〜68-cに保持されている演算結果からスロット番号62に従って選択し出力する。
演算回路66-aでは第1のセレクタ65の出力値 CRC[x-1:0] と D[m-1:m-n] について演算が行われ、演算回路66-bでは演算回路66-aの出力値 CRC(0)[x-1:0] と D[m-n-1:m-2n] について演算が行われ、このようなnビットごとのCRC符号演算を繰り返して、演算回路66-cでは演算回路66-cの1つ上位に位置する演算回路の出力値と時分割多重データ61の最下位 D[n-1:0] について演算が行われる。
すなわち演算回路66-aからは時分割多重データ61の上位nビット D[m-1:m-n] についてCRC符号演算を行った結果が得られ、演算回路66-bからは時分割多重データ61の上位2nビット D[m-1:m-2n] についてCRC符号演算を行った結果が得られ、演算回路66-cからは時分割多重データ61の全ビット D[m-1:0] についてCRC符号演算を行った結果が得られることとなる。CRC符号演算対象となる有効なデータが時分割多重データ61のMSBからnビットごとに格納されているとき、データ長情報63が演算対象となる範囲を示し、第2のセレクタ67はデータ長情報63に従って演算対象となっているデータ長分の演算結果を演算回路66-a〜66-cの出力値 CRC(0)[x-1:0]〜CRC(m/n)[x-1:0] の中から選択し、ラッチ回路68-a〜68-cはスロット番号62に従って所定の1回路に第2のセレクタ67の出力値を保持してスロット0〜p−1の演算結果64-a〜64-cを出力する。
このようにして図6に示すCRC符号演算回路からは、スロット番号62とデータ長情報63に従って、時分割多重データ61に多重されているスロットごとに任意のデータ長のCRC符号演算を行った演算結果64-a〜64-cが得られることとなる。
図5のFCS生成回路49の構成を図7に示す。ここでは入力されるパラレルデータを32ビット、分割するビット幅を8ビットとする。32ビットの時分割多重データ71にはポート0〜3のデータが多重されており、ポート番号72は時分割多重データ71におけるポート0〜3のデータのスロット位置を示している。ここでポート番号72は、前記図5においてタイミング制御回路51から出力されているものとする。時分割多重データ71 D[31:0] は8ビットごとに分割され、上位からそれぞれ演算回路77-a〜77-dに入力される。演算回路77-a〜77-dは、生成多項式 X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X+1 で表されるCRC符号を1オクテットごとに並列演算で求める回路で、一方の入力端子には直前のCRC符号演算結果であるCRC[31:0]及び上位データの演算結果であるCRC(0)[31:0]〜CRC(2)[31:0]がそれぞれ入力されている。第1のセレクタ76は、当該ポートにおける直前のCRC符号演算結果を、ポートごとにラッチ回路79-a〜79-dに保持されている演算結果からポート番号72に従って選択し出力する。
データ長情報73は0〜3の値で時分割多重データ71の演算対象となるオクテット範囲を示し、第2のセレクタ78はデータ長情報73が0、1、2、3と変化するとき、それぞれCRC(0)[31:0],CRC(1)[31:0],CRC(2)[31:0],CRC(3)[31:0]を出力する。ラッチ回路79-a〜79-dは、ポート番号72に従って第2のセレクタ78が出力する当該ポートのデータの演算結果を保持し、ポート0〜3の初期化信号75-a〜75-dが入力されたときはそれぞれall"1"をロードする。インバータ回路80-a〜80-dはラッチ回路79-a〜79〜dに保持されるCRC符号演算結果をビットごとに論理反転し、32ビットのポート0〜3のFCS74-a〜74-dをそれぞれ出力する。
前記の図5に示したMAC回路41において、一例としてポート0から67オクテット長のデータ、ポート1から65オクテット長のデータを送信するときの動作を図8に示す。図7と同様にポート0〜3の送信データ47-a〜47-dは32ビット幅、FCS生成回路49において送信データを分割するときのビット幅は8ビットとする。
本発明の実施の形態2によれば、パラレルデータを均等に分割したビット幅の単位で並列演算を行う複数個の演算回路を備え任意のデータ長のCRC符号演算が可能なCRC符号演算回路を用いたFCS生成回路を設けることにより、複数ポートのデータを時分割多重し所定のビット幅で入力しても、多重されたポートごとにオクテット単位で任意の長さに変化するEthernet(R)パケットのFCSを正しく求められるMAC回路を構成することができる。
なお、説明に用いた各種データのビット幅を示す数値、Ethernet(R)のポート数を示す数値は一例であって、本発明で用いることのできる数値を限定するものではない。
以上のように本発明は、動作速度を低速化させるため回路内部の処理をパラレルデータで行うMAC回路において、任意のデータ長に変化するパケットデータのFCS生成を行うことができるので、デジタル通信における誤り検出の1つであるCRC技術を利用したEthernet(R)通信に利用することができる。
本発明の実施の形態1にかかるMAC回路を示すブロック図 本発明の実施の形態1におけるCRC符号演算回路を示すブロック図 本発明の実施の形態1におけるFCS生成回路のブロック図 本発明の実施の形態1にかかるMAC回路の動作説明のためのタイミングチャート 本発明の実施の形態2にかかるMAC回路を示すブロック図 本発明の実施の形態2におけるCRC符号演算回路のブロック図 本発明の実施の形態2におけるFCS生成回路のブロック図 本発明の実施の形態2にかかるMAC回路の動作説明のためのタイミングチャート 従来のCRC符号演算回路のブロック図
符号の説明
1、41 MAC回路
2、42 MAC送信回路
3、43 MAC受信回路
4 MII終端回路
5 MII(メディア・インデペンデント・インターフェイス)
6 受信データ
7 送信データ
8、49 FCS生成回路
9、50 バッファ回路
10、51 タイミング制御回路
11、52 MUX(マルチプレクサ)
12、53 PR+SFD
21、31 パラレルデータ
22、32 データ長情報
23 演算結果
24-a〜24-c、66-a〜66-c 並列演算を行うCRC符号演算回路
25、36 セレクタ
26、37 ラッチ回路
33 ラッチ回路の初期化信号
34 FCS演算結果
35-a〜35-d、77-a〜77〜d 並列演算を行う32ビットCRC符号演算回路
38 インバータ回路
44-a〜44-d ポート0〜3のMII終端回路
45-a〜45-d ポート0〜3のMII
46-a〜46-d ポート0〜3の受信データ
47-a〜47〜d ポート0〜3の送信データ
48 時分割多重回路
61、71 時分割多重データ
62 スロット番号
63 データ長情報
64-a〜64-c スロット0〜p-1 の演算結果
65、76 第1のセレクタ
67、78 第2のセレクタ
68-a〜68-c スロット0〜p-1 のラッチ回路
72 ポート番号
73 データ長情報
74-a〜74-d ポート0〜3のFCS
75-a〜75-d ポート0〜3のラッチ回路の初期化信号
79-a〜79-d ポート0〜3のラッチ回路
80-a〜80-d ポート0〜3のインバータ回路
91 従来のCRC符号演算回路
92 従来のCRC符号演算回路の4バイトパラレルCRC符号演算回路
93 従来のCRC符号演算回路のバイトパラレル→バイトシリアル変換回路
94 従来のCRC符号演算回路の1バイトシリアルCRC符号演算回路
95 従来のCRC符号演算回路のセレクタ(SEL)
96 従来のCRC符号演算回路の制御部

Claims (6)

  1. 所定のビット幅を持つパラレルデータからCRC符号を演算するCRC符号演算回路であって、
    前記パラレルデータのCRC符号演算を行う範囲を示すデータ長情報と、前記パラレルデータが入力され、前記パラレルデータよりも少ないビット幅の演算データから並列演算によってCRC符号演算を行うことができる複数の演算回路と、前記複数の演算回路の出力信号から所望の信号を選択するセレクタと、前記セレクタの出力信号に応答して初期化時に初期値をロードできるラッチ回路を備え、
    前記演算回路に入力されるビット幅と等しいビット幅で前記パラレルデータを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第1の演算回路には直前のCRC符号演算結果と、分割した前記パラレルデータの最上位にあるデータが入力され、第2の演算回路には前記第1の演算回路の出力と最上位より1つ下位に位置するデータが入力されるという動作が繰り返されて、分割した前記パラレルデータの最下位までのデータがすべての演算回路に入力され、
    前記セレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか1つのCRC符号演算結果を選択し、前記ラッチ回路は前記セレクタから出力されるCRC符号演算結果を保持するとともに、前記ラッチ回路の保持するCRC符号演算結果が前記直前のCRC符号演算結果となるよう構成されているCRC符号演算回路。
  2. Ethernet(R)パケットの誤り検出符号であるFCSの生成回路であって、請求項1に記載のCRC符号演算回路を用いた構成においてEthernet(R)パケットのペイロード領域のデータが前記パラレルデータとして入力され、前記ラッチ回路は初期化信号の入力時にall"1"をロードし、前記ラッチ回路が出力するCRC符号演算結果を論理反転するインバータを備え、前記インバータの出力がEthernet(R)パケットのFCSとなるよう構成されているFCS生成回路。
  3. MAC送信回路と、MAC受信回路と、MII終端回路を備えるMAC回路であって、
    前記MAC送信回路には送信データが所定のビット幅のパラレルで入力され、
    前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記プリアンブルと前記同期ワードとフレーム検査シーケンスをEthernet(R)パケットに付加するタイミングとFCS生成回路の初期化タイミングを生成するタイミング制御回路と、前記送信データと前記プリアンブルと前記同期ワードとFCSからなる前記Ethernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従ってFCSを生成する請求項2に記載のFCS生成回路を備えるMAC回路。
  4. CRC符号演算を行う複数個のデータ列が時分割多重されている、所定のビット幅を持つ時分割多重データからCRC符号を演算するCRC符号演算回路であって、
    前記時分割多重データのCRC符号演算を行う範囲を示すデータ長情報と、パラレルデータと、時分割多重されているデータ列のスロット位置を特定するスロット番号が入力され、前記時分割多重データよりも少ないビット幅の演算データから並列演算によってCRC符号演算を行うことができる演算回路と、第1のセレクタと、第2のセレクタと、データ列の多重数と等しい個数のラッチ回路を備え、
    前記演算回路に入力されるビット幅と等しいビット幅で前記時分割多重データを均等に分割し、前記演算回路は分割数と等しい個数を持っているものとし、第1の演算回路には直前のCRC符号演算結果と、分割した前記時分割多重データの最上位にあるデータが入力され、第2の演算回路には前記第1の演算回路の出力と最上位の1つ下位に位置するデータが入力されるという構成が繰り返されて、分割した前記時分割多重データの最下位の演算データがすべて演算回路に入力され、
    前記第1のセレクタは前記スロット番号に従って前記ラッチ回路に保持されているCRC符号演算結果の中から該当するスロット番号の直前のCRC符号演算結果を選択し、前記第2のセレクタは前記データ長情報の値に従って複数個ある演算回路から出力されるいずれか1つのCRC符号演算結果を選択し、前記ラッチ回路は前記第2のセレクタから出力される該当するスロット番号のデータ列のCRC符号演算結果を前記スロット番号に従って保持するとともに初期化時に初期値をロードできるよう構成されているCRC符号演算回路。
  5. Ethernet(R)パケットの誤り検出符号であるFCSの生成回路であって、請求項4に記載のCRC符号演算回路を用いた構成において、複数ポートに対応したEthernet(R)パケットのデータが時分割多重されて前記時分割多重データとして入力され、前記スロット番号は複数あるポートのいずれかの送信データであることを示し、前記ラッチ回路は初期化信号の入力時にall"1"をロードし、前記ラッチ回路が出力するCRC符号演算結果を論理反転するインバータをそれぞれ備え、
    前記インバータの出力がそれぞれのポートに対応したEthernet(R)パケットのFCSとなるよう構成されているFCS生成回路。
  6. MAC送信回路と、MAC受信回路と、MII終端回路を備え、複数ポートに接続できるMAC回路であって、
    前記MAC送信回路には複数ポートの送信データが時分割多重されて所定のビット幅の時分割多重データで入力され、各ポートごとに前記送信データの先頭と後縁とデータ長情報を検出するとともにプリアンブルと同期ワードを付加するのに要する時間だけ前記送信データを遅延させるバッファ回路と、前記バッファ回路が検出する前記送信データの先頭と後縁のタイミングから、前記各ポートごとに前記プリアンブルと前記同期ワードとFCSをEthernet(R)パケットへ付加するタイミングとFCS生成回路の初期化タイミングを生成するタイミング制御回路と、複数のポートごとに前記送信データと前記プリアンブルと前記同期ワードとFCSからなるEthernet(R)パケットを組み立てるマルチプレクサと、前記バッファ回路が出力する前記送信データと前記データ長情報に従って前記FCSを生成する請求項5に記載のFCS生成回路を備えるMAC回路。
JP2003313126A 2003-09-04 2003-09-04 Crc符号演算回路及びfcs生成回路並びにmac回路 Withdrawn JP2005086272A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003313126A JP2005086272A (ja) 2003-09-04 2003-09-04 Crc符号演算回路及びfcs生成回路並びにmac回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003313126A JP2005086272A (ja) 2003-09-04 2003-09-04 Crc符号演算回路及びfcs生成回路並びにmac回路

Publications (1)

Publication Number Publication Date
JP2005086272A true JP2005086272A (ja) 2005-03-31

Family

ID=34414178

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003313126A Withdrawn JP2005086272A (ja) 2003-09-04 2003-09-04 Crc符号演算回路及びfcs生成回路並びにmac回路

Country Status (1)

Country Link
JP (1) JP2005086272A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166031A (ja) * 2005-12-09 2007-06-28 National Institute Of Advanced Industrial & Technology Crc値の算出装置
JP2013219818A (ja) * 2007-09-18 2013-10-24 Samsung Electronics Co Ltd 複数の巡回冗長検査(crc)を生成するための方法及び装置
CN112036117A (zh) * 2020-08-28 2020-12-04 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN116861493A (zh) * 2023-08-31 2023-10-10 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007166031A (ja) * 2005-12-09 2007-06-28 National Institute Of Advanced Industrial & Technology Crc値の算出装置
JP2013219818A (ja) * 2007-09-18 2013-10-24 Samsung Electronics Co Ltd 複数の巡回冗長検査(crc)を生成するための方法及び装置
CN112036117A (zh) * 2020-08-28 2020-12-04 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN112036117B (zh) * 2020-08-28 2023-06-20 西安微电子技术研究所 一种适用于多种位宽并行输入数据的crc校验控制系统
CN116861493A (zh) * 2023-08-31 2023-10-10 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备
CN116861493B (zh) * 2023-08-31 2024-03-29 上海芯联芯智能科技有限公司 一种校验码生成方法、处理器及电子设备

Similar Documents

Publication Publication Date Title
JP4764973B2 (ja) Crc値の算出装置
US8225187B1 (en) Method and apparatus for implementing a cyclic redundancy check circuit
US8468439B2 (en) Speed-optimized computation of cyclic redundancy check codes
US5781129A (en) Adaptive encoder circuit for multiple data channels and method of encoding
EP1670199B1 (en) Design of channel alignment, error handling, and clock routing using hard-wired blocks for data transmission within programmable logic integrated circuits
CN107154836B (zh) 一种基于fpga的并行循环冗余crc校验方法
KR102068384B1 (ko) 모듈식 및 스케일러블 순환 중복 검사 계산 회로
JP4831018B2 (ja) 並列巡回符号生成装置および並列巡回符号検査装置
US10248498B2 (en) Cyclic redundancy check calculation for multiple blocks of a message
WO2006098015A1 (ja) データ変換装置及びデータ変換方法
WO2007075106A1 (en) Fast low-density parity-check code encoder
US9246491B2 (en) Method and apparatus for performing pipelined operations on parallel input data with feedback
JP2005086272A (ja) Crc符号演算回路及びfcs生成回路並びにmac回路
US5408476A (en) One bit error correction method having actual data reproduction function
US11804855B2 (en) Pipelined forward error correction for vector signaling code channel
JP2003078421A (ja) 符号系列の先頭位置検出方法とその装置、それを用いた復号方法とその装置
KR100474722B1 (ko) 디지털 통신시스템에서 데이터 프레임을 동기화하는 방법
JPH08265173A (ja) 誤り訂正符号の符号器及び復号器
US7047479B1 (en) Parallel CRC formulation
KR100433632B1 (ko) 병렬 crc 계산장치 및 그 방법
KR102000268B1 (ko) 복호화 장치 및 복호화 방법
JP2002077306A (ja) ビット列検出回路
US6981206B1 (en) Method and apparatus for generating parity values
JP4945800B2 (ja) デマルチプレクサ回路
US20070075735A1 (en) xB/yB coder programmed within an embedded array of a programmable logic device

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20061107