JP5091911B2 - コード変換回路およびカウンタ - Google Patents

コード変換回路およびカウンタ Download PDF

Info

Publication number
JP5091911B2
JP5091911B2 JP2009118981A JP2009118981A JP5091911B2 JP 5091911 B2 JP5091911 B2 JP 5091911B2 JP 2009118981 A JP2009118981 A JP 2009118981A JP 2009118981 A JP2009118981 A JP 2009118981A JP 5091911 B2 JP5091911 B2 JP 5091911B2
Authority
JP
Japan
Prior art keywords
code
numerical value
conversion circuit
gray code
gray
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.)
Expired - Fee Related
Application number
JP2009118981A
Other languages
English (en)
Other versions
JP2010268302A (ja
Inventor
和憲 山下
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.)
Kawasaki Microelectronics Inc
Original Assignee
Kawasaki Microelectronics Inc
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 Kawasaki Microelectronics Inc filed Critical Kawasaki Microelectronics Inc
Priority to JP2009118981A priority Critical patent/JP5091911B2/ja
Publication of JP2010268302A publication Critical patent/JP2010268302A/ja
Application granted granted Critical
Publication of JP5091911B2 publication Critical patent/JP5091911B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Manipulation Of Pulses (AREA)

Description

本発明は、非同期式回路に組み込まれるコード変換回路およびカウンタに関する。
非同期式回路の1つである非同期式FIFOにおいて、書き込み用のクロックと読み出し用のクロックとで互いに動作周波数や位相が異なる場合、このFIFOが空の状態であることを示すエンプティ信号やフルの状態であることを示すフル信号を確実に制御するためには、書き込み用のアドレスと読み出し用のアドレスとの同期化を適切に行なう必要がある。このために、非同期式のFIFOには、グレイコードを採用した書き込み用のアドレスや読み出し用のアドレスをカウントするカウンタが好適に組み込まれる。先ず、グレイコードを採用したカウンタ以外の、バイナリコードを採用したカウンタについて、図7を参照して説明する。
図7は、従来の、バイナリコードを採用したカウンタの構成を示す図である。
図7に示すカウンタ100には、4つのフリップフロップ111,112,113,114からなる第1のレジスタ110と、加算回路120と、4つのフリップフロップ131,132,133,134からなる第2のレジスタ130とが備えられている。
第1のレジスタ110のクロック端子には、所定の動作周波数および所定の位相を有するクロックClk_Aが入力される。一方、第2のレジスタ130のクロック端子には、クロックClk_Aが有する動作周波数および位相とは異なる動作周波数および位相を有するクロックClk_Bが入力される。
第1のレジスタ110からは4ビットのバイナリコードで表わされるデータcount[3:0]が出力される。このデータcount[3:0]は、加算回路120および第2のレジスタ130のデータ端子に入力される。加算回路120は、入力されたデータcount[3:0]を1つインクリメントして第1のレジスタ110のデータ端子に入力する。第1のレジスタ110のデータ端子に入力されたデータcount[3:0]は、クロックClk_Aの立ち上がりで取り込まれ、これにより第1のレジスタ110から、値が1つインクリメントされたデータcount[3:0]が出力される。
第2のレジスタ130は、データ端子に入力されたデータcount[3:0]を、クロックClk_Bの立ち上がりで取り込んで、4ビットのバイナリコードで表わされるデータcount_Clk_B[3:0]を出力する。このデータcount_Clk_B[3:0]は、クロックClk_Bで動作する図示しない回路に向けて出力される。
図8は、図7に示すカウンタの動作波形を示す図である。
図8には、第1のレジスタ110に入力されるクロックClk_Aと、第1のレジスタ110から出力される4ビットのバイナリコードで表わされるデータcount[3:0]が示されている。ここでは、このデータcount[3:0]を10進数で表示したうちの、数値‘7’から数値‘10’までの遷移状態が示されている。
また、図8には、データcount[3:0]を構成する各ビットそれぞれのデータcount[3],count[2],count[1],count[0]も示されている。さらに、図8には、第2のレジスタ130に入力されるクロックClk_Bと、第2のレジスタ130から出力される4ビットのバイナリコードで表わされるデータcount_Clk_B[3:0]が示されている。
ここで、4ビットのバイナリコードで表わされるデータcount[3:0]が数値‘7’から数値‘8’に遷移するにあたり、データcount[3:0]を構成する各ビットそれぞれのデータcount[3],count[2],count[1],count[0]は、‘0111’から‘1000’と4ビット全てが変化する。このため、クロックClk_Bの、丸で囲んだ立ち上がりエッジのタイミングでは、本来は第2のレジスタ130には数値‘7’もしくは数値‘8’が取り込まれるべきであるのに対し、クロックスキューや配線長等による遅延差に起因して各ビット間に生じる、‘0111’から‘1000’に遷移する途中における数値‘0’が取り込まれてしまうという問題が発生する。この問題を解消するために、グレイコードが用いられる。このグレイコードの一例を表1に示す。
Figure 0005091911
この表1には、10進数の数値‘0’〜‘15’に対応する、4ビットで表わしたグレイコードが示されている。グレイコードは、隣り合うコードハミング距離が全て1であるという特性を有する。ここで、表1に示すグレイコードを、図7に示すカウンタ100に適用したカウンタの構成について、図9を参照して説明する。
図9は、表1に示すグレイコードが適用されたカウンタの構成を示す図である。
図9に示すカウンタ200には、図7に示すカウンタ100を構成する第1,第2のレジスタ110,130および加算回路120と、グレイコード・バイナリコード変換回路210と、バイナリコード・グレイコード変換回路220と、グレイコード・バイナリコード変換回路230とが備えられている。
グレイコード・バイナリコード変換回路210は、第1のレジスタ110からの4ビットのグレイコードで表わされるデータcount_g[3:0]を入力し、入力されたデータcount_g[3:0]を4ビットのバイナリコードで表わされるデータcount[3:0]に変換して加算回路120に出力する。
加算回路120は、入力されたデータcount[3:0]を1つインクリメントしてバイナリコード・グレイコード変換回路220に出力する。
バイナリコード・グレイコード変換回路220は、加算回路120からの4ビットのデータcount[3:0]を入力し、入力されたデータcount[3:0]を4ビットのグレイコードに変換して第1のレジスタ110に出力する。
第1のレジスタ110は、入力されたグレイコードをクロックClk_Aでサンプリングして、値が1つインクリメントされた4ビットのグレイコードで表わされるデータcount_g[3:0]を出力する。
第2のレジスタ130は、第1のレジスタ110からのデータcount_g[3:0]をクロックClk_Bでサンプリングして4ビットのグレイコードで表わされるデータを出力する。このデータは、グレイコード・バイナリコード変換回路230に入力される。グレイコード・バイナリコード変換回路230は、この4ビットのグレイコードで表わされるデータを入力し、入力されたデータを4ビットのバイナリコードで表わされるデータcount_Clk_B[3:0]に変換して図示しない回路に向けて出力する。
図10は、図9に示すカウンタの動作波形を示す図である。
図10には、第1のレジスタ110に入力されるクロックClk_Aと、第1のレジスタ110から出力される4ビットのグレイコードで表わされるデータcount_g[3:0]が示されている。ここでは、このデータcount_g[3:0]を10進数で表示したうちの、数値‘7’から数値‘10’までの遷移状態が示されている。
また、図10には、4ビットのグレイコードで表わされるデータcount_g[3:0]を構成する各ビットそれぞれのデータcount_g[3],count_g[2],count_g[1],count_g[0]も示されている。さらに、図10には、第2のレジスタ130に入力されるクロックClk_Bと、第2のレジスタ130を経由してグレイコード・バイナリコード変換回路230から出力される4ビットのバイナリコードで表わされるデータcount_Clk_B[3:0]が示されている。
ここで、グレイコードは、隣り合うコードハミング距離が全て1であるという特性を有するため、数値‘7’から数値‘8’に遷移するにあたり、データcount_g[3:0]を構成する各ビットそれぞれのデータcount_g[3],count_g[2],count_g[1],count_g[0]は、表1に示すように‘0100’から‘1100’と1ビットのみ変化する。このため、クロックClk_Bの、丸で囲んだ立ち上がりエッジのタイミングでは、各ビットにクロックスキューや配線長等による遅延差が生じた場合であっても、第2のレジスタ130には前回の数値‘7’もしくは今回の数値‘8’が取り込まれることとなる。この図10では、前回の数値‘7’が取り込まれた例が示されている。
ところで、グレイコードを使用する場合にはコード長が2のべき乗でなければならないという制限がある。2のべき乗でないと最大値から0に遷移する時に2ビット以上が変化してしまうからである。表1に示すグレイコードにおけるコード長は16(0〜15)である。即ち、2の4乗(2)である。ここで、表2に、2のべき乗でないグレイコードを示す。
Figure 0005091911
表2に示すグレイコードは、コード長が14(0〜13)であるため、13から0に遷移するところで3ビットが変化してしまう。
コード長が2のべき乗でないグレイコードを適用した回路が、例えば特許文献1に提案されている。この特許文献1では、識別ビットをグレイコードの最上位ビットの上に付加し、識別ビットが1であるとき、グレイコードの下位ビットが変化しても出力のバイナリコードにグリッチノイズが出ないように、組み合わせ回路で対策している。
特開昭61−13109号公報
しかし、特許文献1に提案された、出力のバイナリコードにグリッチノイズが出ないように組み合わせ回路で対策する技術を、非同期回路に適用するには細かい遅延調整を行なう必要がある。近年の半導体設計では、配置,配線を自動で行なうため期待通りのタイミングで回路が生成されない可能性があり、従って特許文献1に提案された細かい遅延調整を行なう必要がある技術を適用するのは実用的でない。
また、非同期転送を行なうためには、グレイコードのままで動作周波数や位相が異なるクロックヘの乗せ換えを行なう必要があり、従って特許文献1に提案された識別ビットをグレイコードの最上位ビットの上に付加する技術を非同期転送が行なわれる回路に適用することは困難である。
さらに、特許文献1に提案された技術は、任意の分割数(コード長)に適用可能とあるが、例として挙げられている4ビットで7分割する以外の、5ビット以上で多数の分割数に適用する場合、組み合わせ回路での適用方法をその都度考える必要があり、設計の手間がかかるとともに回路規模も増大する恐れがある。
本発明は、上記事情に鑑み、設計の手間が削減されるとともに回路規模の増大が抑えられたコード変換回路およびカウンタを提供することを目的とする。
上記目的を達成する本発明のコード変換回路は、
数値0から、2n−1以上2−2以下のいずれかの奇数の数値Mまでの間の各数値をnビットで表わしたバイナリコードをnビットのグレコードに変換するバイナリコード・グレイコード変換回路と、上記グレイコードを数値0から数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードに変換するグレイコード置き換え回路とを備えたことを特徴とする。
ここで、n+1ビットの上記疑似グレイコードをnビットのグレイコードに変換する通常グレイコード変換回路と、そのグレイコードをnビットのバイナリコードに変換するグレイコード・バイナリコード変換回路を備えたことが好ましい。
本発明のコード変換回路は、上記構成のため、数値0から奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードを、バイナリコードに変換して出力することができる。ここで、疑似グレイコードは、コード長が2のべき乗でないグレイコードであって最大値から0に遷移する場合であっても、2ビット以上が変化することはなく、1ビットのみの変化で済む。従って、特許文献1に提案された、出力のバイナリコードにグリッチノイズが出ないように組み合わせ回路で対策する技術と比較し、細かい遅延調整を行なう必要はなく、また多数のコード長に適用する場合であっても、組み合わせ回路での適用方法をその都度考える必要はなく、設計の手間が削減されるとともに回路規模の増大を抑えることができる。
また、上記グレイコード・バイナリコード変換回路で変換されたバイナリコードが{(M+1)/2}以上の数値であったときにその数値から{(M+1)/2}を減じたバイナリコードを出力するとともに、{(M+1)/2}未満の数値であったときにそのバイナリコードを素通りさせる数値変換回路を備えたことも好ましい態様である。
このようにすると、コード長が奇数の場合であっても、数値0から奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードを、バイナリコードに変換して出力することができる。
また、上記目的を達成する本発明のカウンタは、
数値0から、2n−1以上2−2以下のいずれかの奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードを第1のクロックで取り込む第1のレジスタと、
上記第1のレジスタから上記疑似グレイコードを読み出してその疑似グレイコードに対応するバイナリコードに変換する第1のコード変換回路と、
上記第1のコード変換回路で得られたバイナリコードを循環的にカウントアップ又はカウントダウンするトグル計数回路と、
上記トグル計数回路からカウントアップ又はカウントダウンされたバイナリコードを受け取って、対応する疑似グレイコードに変換して上記第1のレジスタに向けて出力する第2のコード変換回路とを有することを特徴とする。
本発明のカウンタは、数値0から奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードを、バイナリコードに変換してカウントアップ又はカウントダウンし、対応する疑似グレイコードに変換して格納するものである。ここで、疑似グレイコードは、コード長が2のべき乗でないグレイコードであって最大値から0に遷移する場合であっても、2ビット以上が変化することはなく、1ビットのみの変化で済む。従って、特許文献1に提案された技術と比較し、設計の手間が削減されるとともに回路規模の増大を抑えることができる。
ここで、上記第1のレジスタに格納されている、上記疑似グレイコードをその第1のレジスタから受け取って上記第1のクロックとは非同期の第2のクロックで取り込む第2のレジスタと、
上記第2のレジスタから上記疑似グレイコードを読み出して対応するバイナリコードに変換する第3のコード変換回路とをさらに備えたことが好ましい。
このようにすると、疑似グレイコードを、対応するバイナリコードに変換することができる。
また、上記第3のコード変換回路で変換されたバイナリコードが{(M+1)/2}以上の数値であったときにその数値から{(M+1)/2}を減じたバイナリコードを出力する数値変換回路をさらに有することも好ましい態様である。
このような数値変換回路を有すると、コード長が奇数の場合であっても、数値0から奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードで表わされた数値を得ることができる。
本発明によれば、設計の手間が削減されるとともに回路規模の増大が抑えられたコード変換回路およびカウンタを提供することができる。
本発明の第1実施形態のカウンタの構成を示す図である。 本発明の第2実施形態のカウンタの構成を示す図である。 本発明のカウンタの一実施形態が適用された非同期式FIFOの書き込み用ポートおよび読み出し用ポートにおける信号を示す図である。 図3に示すFIFOのブロック図である。 比較例としてのシステム構成を示す図である。 本発明が適用されたシステム構成を示す図である。 従来の、バイナリコードを採用したカウンタの構成を示す図である。 図7に示すカウンタの動作波形を示す図である。 表1に示すグレイコードが適用されたカウンタの構成を示す図である。 図9に示すカウンタの動作波形を示す図である。
以下、図面を参照して本発明の実施の形態を説明する。
図1は、本発明の第1実施形態のカウンタの構成を示す図である。
尚、図1に示すカウンタ1には、本発明のコード変換回路の一例が組み込まれている。また、表3に、前述した表2に示す2のべき乗でない4ビットのグレイコードと、このグレイコードの最上位ビット側に1ビットが付加されてコード幅が5ビットの置き換え後グレイコード(本発明にいう疑似グレイコードの一例に相当)を示す。以下では、2のべき乗でないグレイコードを通常のグレイコード、置き換え後グレイコードを疑似グレイコードと称する。
Figure 0005091911
図1に示すカウンタ1には、5つのフリップフロップ11_1,11_2,11_3,11_4,11_5からなる第1のレジスタ11が備えられている。この第1のレジスタ11には、表3に示す10進数の数値0から数値13(本発明にいう奇数の数値Mの一例に相当)までの間の各数値を5ビット(本発明にいうn+1ビットの一例に相当)で表わした、隣り合う数値間および数値13と数値0との間のハミング距離が全て1の疑似グレイコードで表わされた数値が、クロックClk_Aの立ち上がりで格納される。格納された数値は、第1のレジスタ11から5ビットの疑似グレイコードで表わされたデータcount[4:0]として出力される。
また、カウンタ1には、通常グレイコード変換回路12_1およびグレイコード・バイナリコード変換回路12_2を有する第1のコード変換回路12と、加算回路13と、バイナリコード・グレイコード変換回路14_1およびグレイコード置き換え回路14_2を有する第2のコード変換回路14とが備えられている。
加算回路13が、本発明のトグル計数回路の一例に相当する。
通常グレイコード変換回路12_1は、第1のレジスタ11から出力された5ビットの疑似グレイコードで表わされたデータcount_g[4:0]を、4ビットのグレイコードで表わされる通常のグレイコードに変換する。変換された通常のグレイコードは、グレイコード・バイナリコード変換回路12_2に入力される。
グレイコード・バイナリコード変換回路12_2は、入力された通常のグレイコードをバイナリコードに変換して、データcount[3:0]として加算回路13に出力する。
加算回路13は、データcount[3:0]で構成されるバイナリコードを、数値0と数値13との間で循環的にカウントアップしたバイナリコードを生成して、バイナリコード・グレイコード変換回路14_1に出力する。
バイナリコード・グレイコード変換回路14_1は、加算回路13からバイナリコードを受け取って、対応する4ビットのグレイコードに変換してグレイコード置き換え回路14_2に出力する。
グレイコード置き換え回路14_2は、例えば、グレイコードに対応する疑似グレイコードのテーブルを備え、入力された4ビットのグレイコードの最上位ビット側に1ビットを付加したコード幅が5ビットの疑似グレイコードに置き換える。このようにして、表3に示す疑似グレイコードを生成する。詳細には、表3に示す数値‘9’から‘10’の遷移において、最上位ビットのみ0から1に遷移するが他の最上位ビットは変化しないように最上位ビット側に1ビットが付加される。また、数値‘10’以降では、最上位ビットは1のままに保持された状態で、他の1になっているビットが1つずつ0にされていき、最大値である数値‘13’から数値‘0’への遷移時に最上位ビットが0にされる。
ここで、「通常のグレイコード」では、数値‘13’から数値‘0’への遷移においては3ビットが同時に変化してしまうが、「置き換え後グレイコード」であれば1ビットしか変化しない。これにより、隣り合うコードのハミング距離が1であるというグレイコードの特性を維持したまま、コード長が2のべき乗でないコードを作り出すことができる。
さらに、カウンタ1には、5つのフリップフロップ15_1,15_2,15_3,15_4,15_5からなる第2のレジスタ15と、通常グレイコード変換回路16_1およびグレイコード・バイナリコード変換回路16_2を有する第3のコード変換回路16が備えられている。
第2のレジスタ15では、第1のレジスタ11からの5ビットの疑似グレイコードで表わされたデータcount[4:0]が、クロックClk_Aが有する動作周波数および位相とは異なる動作周波数および位相を有するクロックClk_Bの立ち上がりで格納される。格納されたデータcount[4:0]は、通常グレイコード変換回路16_1に入力される。
通常グレイコード変換回路16_1は、第2のレジスタ15から出力された5ビットの疑似グレイコードで表わされたデータcount_g[4:0]を、4ビットのグレイコードで表わされる通常のグレイコードに変換する。変換された通常のグレイコードは、グレイコード・バイナリコード変換回路16_2に入力される。
グレイコード・バイナリコード変換回路16_2は、入力された通常のグレイコードをバイナリコードに変換して、表3に示すデータcount_Clk_B[3:0]として図示しない外部回路に向けて出力する。
上述した図1にカウンタ1では、コード長M+1が14(0〜13)、即ち、コード長が偶数の例で説明した。ここで、コード長が奇数の場合は、以下に説明する図2に示すカウンタ2が用いられる。
図2は、本発明の第2実施形態のカウンタの構成を示す図である。
尚、図1に示すカウンタ1の構成要素と同じ構成要素には同一の符号を付し、異なる点について説明する。また、表4に、最上位ビット側に1ビットが付加されてコード幅が5ビットの置き換え後グレイコード(本発明にいう疑似グレイコードの他の一例に相当)を示す。
Figure 0005091911
表4には、コード長が奇数の場合、例えば、コード長が(M+1)/2、即ち、7(0〜6)の場合の例が示されている。コード長が奇数の場合は、倍の長さのコード長M+1(0〜6+0〜6=14)のものが用いられる。即ち、表3に示すコード長が14のものと同じコード長のものが用いられる。
図2に示すカウンタ2は、図1に示すカウンタ1と比較し、数値変換回路21が追加されている。数値変換回路21は、減算器21_1と、マルチプレクサ21_3と、比較回路21_2とを有する。
この数値変換回路21は、第3のコード変換回路16でバイナリコードが7以上の数値(本発明の{(M+1)/2}以上の数値の一例に相当)であったときに、その数値から7を減じた数値(本発明の{(M+1)/2}を減じた数値の一例に相当)に変換するものである。具体的には、第3のコード変換回路16でバイナリコードが7以上の数値であるか否かを比較回路21_2で比較し、比較した結果、数値7未満であった場合は、マルチプレクサ21_3で素通りさせる。一方、数値7以上であった場合は、減算器21_1でその数値から7を減算し、減算した数値をマルチプレクサ21_3から出力させる。このようにして、マルチプレクサ21_3から表4に示すデータcount_Clk_B[3:0]を図示しない外部回路に向けて出力する。
次に、本発明のカウンタの一実施形態が適用された非同期式FIFOについて説明する。
図3は、本発明のカウンタの一実施形態が適用された非同期式FIFOの書き込み用ポートおよび読み出し用ポートにおける信号を示す図である。
図3に示すFIFO3は、非同期で先入れ動作と先出し動作とを行なうデータバッファであり、図3の左側には書き込み用ポートの信号が示されており、また図3の右側には読み出し用ポートの信号が示されている。
FIFO3の書き込み用ポートには、書き込みクロックWCLKと、書き込みを許可するための書き込み信号WENと、書き込みデータWDとが入力される。また、FIFO3の書き込み用ポートからは、書き込みデータWDがフルの状態にあることを示すフル信号FULLが出力される。
また、FIFO3の読み出し用ポートには、読み出しクロックRCLKと、読み出しを許可するための読み出し信号RENが入力される。また、FIFO3の読み出し用ポートからは、読み出しデータRDと、読み出しデータRDが空の状態にあることを示すエンプティ信号EMPTYが出力される。
ここで、書き込みクロックWCLKと読み出しクロックRCLKは、互いに動作周波数および位相が異なっている。
図4は、図3に示すFIFOのブロック図である。
尚、図4に示す一点鎖線の左側は書き込み用ポート側を示し、右側は読み出し用ポート側を示す。
図4に示すFIFO3には、書き込み用ポートと読み出し用のポートとの2つのポートを有するRAM31が備えられている。
また、このFIFO3の書き込み用ポート側には、書き込みアドレスカウンタ32_1と、WCLK同期回路32_2と、グレイコード・バイナリコード変換回路32_3,32_4と、比較回路32_5とが備えられている。ここで、書き込みアドレスカウンタ32_1が、本発明のカウンタの一実施形態に相当する。
一方、読み出し用ポート側には、読み出しアドレスカウンタ33_1と、RCLK同期回路33_2と、グレイコード・バイナリコード変換回路33_3,33_4と、比較回路33_5とが備えられている。ここで、読み出しアドレスカウンタ33_1が、本発明のカウンタの他の一実施形態に相当する。
このFIFO3では、WCLK同期回路32_2が読み出しアドレスカウンタ33_1からの値(読み出しアドレス)を書き込みクロックWCLKで取り込むとともに、RCLK同期回路33_2が書き込みアドレスカウンタ32_1からの値(書き込みアドレス)を読み出しクロックRCLKで取り込むことにより、読み出しアドレスと書き込みアドレスとの同期化が行なわれている。
また、このFIFO3では、書き込み信号WENが入力された状態(書き込み許可状態)で書き込みデータWDがRAM31に1つ書き込まれると、書き込みアドレスカウンタ32_1がインクリメントされる。また、読み出し信号RENが入力された状態(読み出し許可状態)で読み出しデータRDがRAM31から1つ読み出されると、読み出しアドレスカウンタ33_1がインクリメントされる。
ここで、FIFO3は、非同期式であり、また書き込みクロックWCLKと読み出しクロックRCLKとは互いに動作周波数や位相が異なっている。このため、このFIFO3では、フルの状態であることを示すフル信号FULLと、空の状態であることを示すエンプティ信号EMPTYを確実に制御するために、疑似グレイコードを使用して書き込みアドレスと読み出しアドレスとの同期化が行なわれている。具体的には、フル信号FULLとエンプティ信号EMPTYの制御は、書き込みアドレスカウンタ32_1の値(書き込みアドレス)と読み出しアドレスカウンタ33_1の値(読み出しアドレス)とを比較することにより行なわれている。詳細には、フル信号FULLの制御は、書き込みアドレスカウンタ32_1の値をグレイコード・バイナリコード変換回路32_3を経由して比較回路32_5の一方に入力するとともに、WCLK同期回路32_2の値をグレイコード・バイナリコード変換回路32_4を経由して比較回路32_5の他方に入力し、書き込みアドレスと読み出しアドレスとを比較することにより行なわれる。一方、エンプティ信号EMPTYの制御は、読み出しアドレスカウンタ33_1の値をグレイコード・バイナリコード変換回路33_3を経由して比較回路33_5の一方に入力するとともに、RCLK同期回路33_2の値をグレイコード・バイナリコード変換回路33_4を経由して比較回路33_5の他方に入力し、読み出しアドレスと書き込みアドレスとを比較することにより行なわれる。
ここで、書き込みアドレスカウンタ32_1,読み出しアドレスカウンタ33_1の示す範囲は、このFIFO3が有する段数(ここでは、4097段とする)と同じである。仮に、書き込みアドレスカウンタ32_1,読み出しアドレスカウンタ33_1に本発明のカウンタの一実施形態を適用しない場合、即ち、通常のグレイコードを用いた場合は、FIFOの段数は必然的に2のべき乗に制限される。このため、FIFOとして4097の段数が必要な場合は、8192の段数を実装することとなる。一方、本実施形態の非同期式FIFO3では、本発明のカウンタの一実施形態が適用されているため、FIFO3の段数は2のべき乗に制限されることもなく、4097段で済む。従って、設計の手間が削減されるとともに回路規模の増大が抑えられている。
また、カウンタの値をCPUから読み出すシステムの場合も、このカウンタに本発明が適用されていると、このカウンタの値をCPUから即座に読み出すことができる。以下、詳細に説明する。先ず、比較例としてのシステム構成について説明する。
図5は、比較例としてのシステム構成を示す図である。
図5に示すシステム300には、バイナリコードが適用されたカウンタ301と、マルチプレクサ302と、退避レジスタ303と、バスI/F304,307と、同期回路305と、バス306と、CPU308とが備えられている。カウンタ301および退避レジスタ303には、カウンタクロックcounter_clkが入力される。また、バスI/F304,307およびCPU308には、バスクロックbus_clkが入力される。
ここで、カウンタ301が仕様上ある特定の範囲内での遷移しか許可されておらず、かつその範囲が2のべき乗でない場合は、このカウンタ301に通常のグレイコードを適用しても、カウンタ301の値が0に戻る際に2ビット以上が変化してしまう。このため、カウンタ301に通常のグレイコードを適用しても無意味である。従って、ここでは、カウンタ301にバイナリコードが適用されている。このカウンタ301の値は、マルチプレクサ302を経由して退避レジスタ303に退避される。ここで、CPU308からバスリード信号BUSRが発生し、このバスリード信号BUSRがバスI/F307,バス306,バスI/F304を経由して同期回路305に入力されると、マルチプレクサ302はカウンタ301から退避レジスタ303ヘの退避を停止して退避レジスタ303の値をCPU308に返すように動作する。この動作は1サイクルでは終了しないので、CPU308からのバスリード信号BUSRを待たせるために十分なサイクル数のウェイトが必要とされる。ウェイト数はカウンタクロックcounter_clkとバスクロックbus_clkの周波数比に依存するので、カウンタクロックcounter_clkの周波数が遅い場合、ウェイト数も大きくする必要があり、CPU308のパフォーマンスを悪化させる要因になりやすい。
図6は、本発明が適用されたシステム構成を示す図である。
図6に示すシステム4には、疑似グレイコードが適用されたグレイコードカウンタ41と、同期回路42と、通常グレイコード変換回路43と、グレイコード・バイナリコード変換回路44と、バスI/F45,47と、バス46と、CPU48とが備えられている。グレイコードカウンタ41および同期回路42には、カウンタクロックcounter_clkが入力される。また、同期回路42およびバスI/F45,47およびCPU48には、バスクロックbus_clkが入力される。
このシステム4には、疑似グレイコードが適用されたグレイコードカウンタ41および通常グレイコード変換回路43が備えられているため、構成が簡素化されている。また、CPU48からの読み出しに対しては、同期回路42の出力を、通常グレイコード変換回路43,グレイコード・バイナリコード変換回路44,バスI/F45を経由してバイナリコード化したものをバス46上に即座に返すことができるので、ウェイト操作は必要なく、読み出しに対して即座に応答することができる。
1,2,4 カウンタ
3 FIFO
11 第1のレジスタ
11_1,11_2,11_3,11_4,11_5,15_1,15_2,15_3,15_4,15_5 フリップフロップ
12 第1のコード変換回路
12_1,16_1,43 通常グレイコード変換回路
12_2,16_2,32_3,32_4,33_3,33_4,44 グレイコード・バイナリコード変換回路
13 加算回路
14 第2のコード変換回路
14_1 バイナリコード・グレイコード変換回路
14_2 グレイコード置き換え回路
15 第2のレジスタ
16 第3のコード変換回路
21 数値変換回路
21_1 減算器
21_2,32_5,33_5 比較回路
21_3 マルチプレクサ
31 RAM
32_1 書き込みアドレスカウンタ
32_2 WCLK同期回路
33_1 読み出しアドレスカウンタ
33_2 RCLK同期回路
41 グレイコードカウンタ
42 同期回路
45,47 バスI/F
46 バス
48 CPU

Claims (6)

  1. 数値0から、2n−1以上2−2以下のいずれかの奇数の数値Mまでの間の各数値をnビットで表わしたバイナリコードをnビットのグレコードに変換するバイナリコード・グレイコード変換回路と、
    前記グレイコードを数値0から数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードに変換するグレイコード置き換え回路とを備えたことを特徴とするコード変換回路。
  2. n+1ビットの前記疑似グレイコードをnビットのグレイコードに変換する通常グレイコード変換回路と、該グレイコードをnビットのバイナリコードに変換するグレイコード・バイナリコード変換回路を備えたことを特徴とする請求項1記載のコード変換回路。
  3. 前記グレイコード・バイナリコード変換回路で変換されたバイナリコードが{(M+1)/2}以上の数値であったときに該数値から{(M+1)/2}を減じたバイナリコードを出力するとともに、{(M+1)/2}未満の数値であったときに該バイナリコードを素通りさせる数値変換回路を備えたことを特徴とする請求項2記載のコード変換回路。
  4. 数値0から、2n−1以上2−2以下のいずれかの奇数の数値Mまでの間の各数値をn+1ビットで表わした、隣り合う数値間および数値Mと数値0との間のハミング距離が全て1の疑似グレイコードを第1のクロックで取り込む第1のレジスタと、
    前記第1のレジスタから前記疑似グレイコードを読み出して該疑似グレイコードに対応するバイナリコードに変換する第1のコード変換回路と、
    前記第1のコード変換回路で得られたバイナリコードを循環的にカウントアップ又はカウントダウンするトグル計数回路と、
    前記トグル計数回路からカウントアップ又はカウントダウンされたバイナリコードを受け取って、対応する疑似グレイコードに変換して前記第1のレジスタに向けて出力する第2のコード変換回路とを有することを特徴とするカウンタ。
  5. 前記第1のレジスタに格納されている、前記疑似グレイコードを該第1のレジスタから受け取って前記第1のクロックとは非同期の第2のクロックで取り込む第2のレジスタと、
    前記第2のレジスタから前記疑似グレイコードを読み出して対応するバイナリコードに変換する第3のコード変換回路とをさらに備えたことを特徴とする請求項4記載のカウンタ。
  6. 前記第3のコード変換回路で変換されたバイナリコードが{(M+1)/2}以上の数値であったときに該数値から{(M+1)/2}を減じたバイナリコードを出力する数値変換回路をさらに有することを特徴とする請求項5記載のカウンタ。
JP2009118981A 2009-05-15 2009-05-15 コード変換回路およびカウンタ Expired - Fee Related JP5091911B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009118981A JP5091911B2 (ja) 2009-05-15 2009-05-15 コード変換回路およびカウンタ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009118981A JP5091911B2 (ja) 2009-05-15 2009-05-15 コード変換回路およびカウンタ

Publications (2)

Publication Number Publication Date
JP2010268302A JP2010268302A (ja) 2010-11-25
JP5091911B2 true JP5091911B2 (ja) 2012-12-05

Family

ID=43364903

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009118981A Expired - Fee Related JP5091911B2 (ja) 2009-05-15 2009-05-15 コード変換回路およびカウンタ

Country Status (1)

Country Link
JP (1) JP5091911B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020021988A (ja) * 2018-07-30 2020-02-06 ソニーセミコンダクタソリューションズ株式会社 固体撮像装置、コード変換装置、コード変換方法、及びプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3088302B2 (ja) * 1996-08-19 2000-09-18 日本電気株式会社 バイナリカウンタ読み出し回路
US6314154B1 (en) * 1999-11-04 2001-11-06 Vlsi Technology, Inc Non-power-of-two Gray-code counter and binary incrementer therefor
US6337893B1 (en) * 1999-11-04 2002-01-08 Philips Electronics North America Corp. Non-power-of-two grey-code counter system having binary incrementer with counts distributed with bilateral symmetry
JP2003283331A (ja) * 2002-03-25 2003-10-03 Oki Electric Ind Co Ltd グレイコード・カウンタ
JP2004304381A (ja) * 2003-03-31 2004-10-28 Matsushita Electric Ind Co Ltd カウンタ装置およびカウント方法
US6970113B1 (en) * 2004-08-30 2005-11-29 Agilent Technologies, Inc. Method for generation of even numbered reduced gray codes

Also Published As

Publication number Publication date
JP2010268302A (ja) 2010-11-25

Similar Documents

Publication Publication Date Title
CN111367495B (zh) 一种异步先入先出的数据缓存控制器
US6263410B1 (en) Apparatus and method for asynchronous dual port FIFO
EP2149083B1 (en) Fifo buffer
JP3645584B2 (ja) データ転送同期装置
US9330740B1 (en) First-in first-out circuits and methods
JP4068427B2 (ja) データインバージョン回路及び半導体装置
CN110832779A (zh) 脉冲数字转换器
JP5091911B2 (ja) コード変換回路およびカウンタ
US6075833A (en) Method and apparatus for counting signal transitions
US7692564B2 (en) Serial-to-parallel conversion circuit and method of designing the same
CN111399802B (zh) 多电源域多时钟域先进先出队列、集成电路芯片及计算机设备
US20070177698A1 (en) Signal Transfer Across Circuits Operating in Different Clock Domains
EP3531560B1 (en) A binary-to-gray conversion circuit, related fifo memory, integrated circuit and method
US7668983B2 (en) System for designing data structures
JP4217208B2 (ja) Fifoメモリ
JP4569163B2 (ja) データ入出力装置およびデータ入出力方法
JP3201352B2 (ja) 同期化回路
JP4189729B2 (ja) タイマーカウント値の非同期読み出し方法及びタイマー
JP4107716B2 (ja) Fifo型記憶装置
JP4355383B2 (ja) データ蓄積量監視装置
KR100557561B1 (ko) Fifo 저장 장치
JP3471275B2 (ja) 同期化回路
Zhang Optimization of Asynchronous FIFO Design Difficulties Using Verilog HDL
JP2002204448A (ja) ドット・デ・インタリーブ回路
CN116760985A (zh) Dsc编码器的视频输入电路、dsc编码器系统及视频输入方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120228

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120613

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120815

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120815

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120911

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120914

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 5091911

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees