(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-04
(45)【発行日】2022-07-12
(54)【発明の名称】デコーダ回路およびデコーダ回路の設計方法
(51)【国際特許分類】
H03M 7/16 20060101AFI20220705BHJP
【FI】
H03M7/16
(21)【出願番号】P 2018154599
(22)【出願日】2018-08-21
【審査請求日】2021-02-10
(73)【特許権者】
【識別番号】591128453
【氏名又は名称】株式会社メガチップス
(74)【代理人】
【識別番号】100152984
【氏名又は名称】伊東 秀明
(72)【発明者】
【氏名】原田 真吾
【審査官】北村 智彦
(56)【参考文献】
【文献】特開昭62-175020(JP,A)
【文献】特開平11-274935(JP,A)
【文献】米国特許出願公開第2010/0201557(US,A1)
【文献】特開2010-199770(JP,A)
【文献】特開2003-046388(JP,A)
【文献】特開平05-218880(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03M 7/16
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
n(nは、2以上の整数)ビットのバイナリ入力BIN<n-1:0>をデコードして、2
nビットのサーモメータ出力THM(n)<2
n-1:0>に変換するnビットのデコーダ回路であって、
選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAを出力する2
n個の基本回路と、
(n-1)ビットのデコーダ回路と、を備え、
前記サーモメータ出力THM(n)<2
n-1:2
(n-1)>に対応する上位側の2
(n-1)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<n-1>が連結して入力され、前記上位側の2
(n-1)個の基本回路の入力信号IAとして、前記(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットがそれぞれ入力され、
前記上位側の2
(n-1)個の基本回路は、前記サーモメータ出力THM(n)<2
n-1:2
(n-1)>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、全てのビットに‘0’を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、前記サーモメータ出力THM(n-1)<2
(n-1)-1:0>を出力し、
前記サーモメータ出力THM(n)<2
(n-1)-1:0>に対応する下位側の2
(n-1)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<n-1>および‘1’が連結して入力され、前記下位側の2
(n-1)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットがそれぞれ入力され、
前記下位側の2
(n-1)個の基本回路は、前記サーモメータ出力THM(n)<2
(n-1)-1:0>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、前記サーモメータ出力THM(n-1)<2
(n-1)-1:0>を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、全てのビットに‘1’を出力し、
前記(n-1)ビットのデコーダ回路は、n≧3である場合に、m(mは、n≧m≧3の整数)をnから3として、(m-1)ビットのデコーダ回路を備え、n=2である場合に、1ビットのデコーダ回路を備え、
mをnから3として、前記(m-1)ビットのデコーダ回路は、2
(m-1)個の前記基本回路と、(m-2)ビットのデコーダ回路と、を備え、
前記1ビットのデコーダ回路は、サーモメータ出力THM(1)<1:0>として、前記バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、前記バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する、デコーダ回路。
【請求項2】
前記基本回路は、第1インバータと、第2インバータと、出力選択回路と、を備え、
前記第1インバータは、第1P型MOSトランジスタと、第1N型MOSトランジスタと、を備え、前記第1P型MOSトランジスタのゲートおよび前記第1N型MOSトランジスタのゲートには前記入力信号IAが入力され、前記第1P型MOSトランジスタのドレインおよび前記第1N型MOSトランジスタのドレインが内部ノードに接続され、
前記出力選択回路は、第2P型MOSトランジスタと、第3P型MOSトランジスタと、第2N型MOSトランジスタと、第3N型MOSトランジスタと、を備え、前記第2P型MOSトランジスタは、電源と前記第1P型MOSトランジスタのソースとの間に接続され、前記第3P型MOSトランジスタは、電源と前記内部ノードとの間に接続され、前記第2N型MOSトランジスタは、前記第1N型MOSトランジスタのソースとグランドとの間に接続され、前記第3N型MOSトランジスタは、前記内部ノードとグランドとの間に接続され、前記第2P型MOSトランジスタのゲートおよび前記第3N型MOSトランジスタのゲートには前記選択信号S<1>が入力され、前記第2N型MOSトランジスタのゲートおよび前記第3P型MOSトランジスタのゲートには前記選択信号S<0>が入力され、
前記第2インバータの入力端子には前記内部ノードが接続され、前記第2インバータからは前記出力信号OAが出力される、請求項1に記載のデコーダ回路。
【請求項3】
前記1ビットのデコーダ回路は、前記選択信号S<1:0>として‘01’が入力され、前記出力信号OAとして、前記バイナリ入力BIN<0>を出力する1個の基本回路を備え、
前記サーモメータ出力THM(1)<1>として、‘0’を出力し、
前記サーモメータ出力THM(1)<0>として、前記1個の基本回路から前記バイナリ入力BIN<0>を出力する、請求項1または2に記載のデコーダ回路。
【請求項4】
前記1ビットのデコーダ回路は、前記バイナリ入力BIN<0>を出力するバッファを備え、
前記サーモメータ出力THM(1)<1>として、‘0’を出力し、
前記サーモメータ出力THM(1)<0>として、前記バッファから前記バイナリ入力BIN<0>を出力する、請求項1または2に記載のデコーダ回路。
【請求項5】
n(nは、2以上の整数)ビットのバイナリ入力BIN<n-1:0>をデコードして、2
nビットのサーモメータ出力THM(n)<2
n-1:0>に変換するnビットのデコーダ回路の設計方法であって、
選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAを出力する基本回路を設計するステップと、
サーモメータ出力THM(1)<1:0>として、前記バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、前記バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する1ビットのデコーダ回路を設計するステップと、
n≧3である場合に、m(mは、n≧m≧3の整数)が3からnになるまで、2
(m-1)個の前記基本回路と、(m-2)ビットのデコーダ回路と、を用いて、(m-1)ビットのデコーダ回路
の設計
を繰り返すステップと、
2
n個の前記基本回路と、(n-1)ビットのデコーダ回路と、を用いて、nビットのデコーダ回路を設計するステップと、を含み、
前記nビットのデコーダ回路を設計するステップは、
前記サーモメータ出力THM(n)<2
n-1:2
(n-1)>に対応する上位側の2
(n-1)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<n-1>を連結して入力し、前記上位側の2
(n-1)個の基本回路の入力信号IAとして、前記(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットをそれぞれ入力するステップと、
前記サーモメータ出力THM(n)<2
(n-1)-1:0>に対応する下位側の2
(n-1)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<n-1>および‘1’を連結して入力し、前記下位側の2
(n-1)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットをそれぞれ入力するステップと、を含み、
前記(m-1)ビットのデコーダ回路を設計するステップは、
前記サーモメータ出力THM(m-1)<2
(m-1)-1:2
(m-2)>に対応する上位側の2
(m-2)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<m-2>を連結して入力し、前記上位側の2
(m-2)個の基本回路の入力信号IAとして、(m-2)ビットのデコーダ回路から出力されるサーモメータ出力THM(m-2)<2
(m-2)-1:0>の各ビットをそれぞれ入力するステップと、
前記サーモメータ出力THM(m-1)<2
(m-2)-1:0>に対応する下位側の2
(m-2)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<m-2>および‘1’を連結して入力し、前記下位側の2
(m-2)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(m-2)<2
(m-2)-1:0>の各ビットをそれぞれ入力するステップと、を
含み、
前記上位側の2
(n-1)
個の基本回路は、前記サーモメータ出力THM(n)<2
n
-1:2
(n-1)
>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、全てのビットに‘0’を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、前記サーモメータ出力THM(n-1)<2
(n-1)
-1:0>を出力し、
前記下位側の2
(n-1)
個の基本回路は、前記サーモメータ出力THM(n)<2
(n-1)
-1:0>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、前記サーモメータ出力THM(n-1)<2
(n-1)
-1:0>を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、全てのビットに‘1’を出力する、デコーダ回路の設計方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バイナリコードを表すnビットのバイナリ入力をデコードして、サーモメータコードを表す2nのサーモメータ出力に変換するデコーダ回路およびデコーダ回路の設計方法に関する。
【背景技術】
【0002】
電流型DAC(デジタルアナログ変換器)のアナログ出力のリニアリティを保つために、デコーダ回路により、バイナリコードを表すnビットのバイナリ入力、例えば8ビットのバイナリ入力を、サーモメータコードを表す2nビットのサーモメータ出力、例えば256ビットのサーモメータ出力に変換し、この2nのサーモメータ出力を用いてDACの動作を制御することが行われている。
【0003】
例えば、4ビットのバイナリ入力BIN<3:0>をデコードして、16ビットのサーモメータ出力THM<15:0>に変換する4ビットのデコーダ回路の真理値表は表1で表される。
【0004】
【0005】
4ビットのデコーダ回路の実現方法として、下記方法(1)および(2)が知られている。
方法(1):表1に示す真理値表に従って論理回路を構成する方法。
方法(2):16個のAND回路を用いて、表1に示す4ビットのバイナリ入力BIN<3:0>の全ての状態のANDをとり、実際に入力されるバイナリ入力BIN<3:0>の状態に対応する1つのAND回路から下位側の全てのサーモメータ出力THMを‘1’に設定する方法。
【0006】
まず、方法(1)は、表1の真理値表を満たす、例えば下記の代数式を作成し、これに応じて具体的な4ビットのデコーダ回路を実現する。
T0=B3+B2+B1+B0
T1=B3+B2+B1
T2=B3+B2+B1*B0
T3=B3+B2
T4=B3+B2*(B1+B0)
T5=B3+B2*B1
T6=B3+B2*B1*B0
T7=B3
T8=B3*(B2+B1+B0)
T9=B3*(B2+B1)
T10=B3*(B2+B1*B0)
T11=B3*B2
T12=B3*B2*(B1+B0)
T13=B3*B2*B1
T14=B3*B2*B1*B0
T15=0
ここで、B3~B0はバイナリ入力BIN<3:0>を表し、T15~T0はサーモメータ出力THM<15:0>を表す。なお、T15、つまり、サーモメータ出力THM<15>は、表1の真理値表に示すように、バイナリ入力BIN<3:0>の状態に関わらず常に‘0’である。
【0007】
図10は、(1)の方法により作成されたデコーダ回路の構成を表す一例の回路図である。方法(1)により生成されたデコーダ回路は、高速に動作するが、設計が面倒であり、回路構成が複雑になる。
図10のデコーダ回路のように、4ビット程度であれば、その構成はそれほど複雑ではないが、8ビット程度にもなると、その構成は非常に複雑になってくる。また、方法(1)により生成されたデコーダ回路の回路規模は、バイナリ入力BINのビット数nに対して、2
nではなく、n×2
nに比例して大きくなることが容易に想像できる。
【0008】
続いて、
図11は、(2)の方法により作成されたデコーダ回路の構成を表す一例の回路図である。
図11に示すデコーダ回路は、特許文献1の
図3に示されたコード変換部50であり、2進コード発生部20のnビットの2進コード値BCをデコードして2n個の値DCを出力するデコーダ51と、デコーダ51の出力値を温度計コード値TCに変換する温度計コード変換部52とを備えている。
【0009】
図11に示すコード変換部50においては、まず、デコーダ51により、実際に入力される2進コード値BCの状態に対応する1つのNAND回路NDの出力だけが‘0’になり、この1つのNAND回路NDに対応する1つの温度計コード値TCが‘1’になる。その後、温度計コード変換部52の数珠つなぎに接続されたNOR回路およびINV回路により、この1つの温度計コード値TCよりも下位側の全ての温度計コード値TCとして、順次‘1’が出力される。
【0010】
図11に示すコード変換部50において、デコーダ51を構成するNAND回路NDは、2進コード値BCのビット数によって、その入力本数が変わり、8ビットの場合には8入力NAND回路が必要になる。8入力NAND回路をそのまま実現するのは現実的ではないため、例えば2つの4入力NAND回路の出力を2入力NOR回路およびINV回路に入力することにより、8入力NAND回路相当の回路を実現する必要がある。デコーダ51の回路規模は、2進コード値BCのビット数nに対し、n×2
n(または、これ以上)に比例して大きくなる。
【0011】
一方、温度計コード変換部52の回路規模は、2nに比例するだけなので、方法(1)により生成されたデコーダ回路に比べると、回路全体としての規模は大きくはないが、いずれにしても2進コード値BCのビット数の変化に対するフレキシビリティさには欠ける。また、数珠つなぎに接続されたNOR回路群から、最下位の温度計コード値TCが出力されるまでの出力伝播遅延時間が非常に大きくなり、高速化には絶対的に不利な回路である。
【0012】
ここで、本発明に関連性のある先行技術文献としては、特許文献1の他にも特許文献2~6等がある。
【先行技術文献】
【特許文献】
【0013】
【文献】特開2003-46388号公報
【文献】特開昭61-165130号公報
【文献】特開昭62-178015号公報
【文献】特開平2-26413号公報
【文献】特開平7-235869号公報
【文献】特開2008-141676号公報
【発明の概要】
【発明が解決しようとする課題】
【0014】
従って、本発明の第1の目的は、非常に簡潔で、かつプリミティブな回路を用意し、プリミティブな回路を組み合わせるだけで異なるビット数のバイナリ入力に対応することができるデコーダ回路およびデコーダ回路の設計方法を提供することにある。
また、本発明の第2の目的は、バイナリ入力のビット数の増加に対して、回路規模の増大をn×2nよりも十分に小さくすることができるデコーダ回路およびデコーダ回路の設計方法を提供することにある。
さらに、本発明の第3の目的は、クリティカルパス長を極力短くすることができるデコーダ回路およびデコーダ回路の設計方法を提供することにある。
【課題を解決するための手段】
【0015】
上記目的を達成するために、本発明は、n(nは、2以上の整数)ビットのバイナリ入力BIN<n-1:0>をデコードして、2nビットのサーモメータ出力THM(n)<2n-1:0>に変換するnビットのデコーダ回路であって、
選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAを出力する2n個の基本回路と、
(n-1)ビットのデコーダ回路と、を備え、
前記サーモメータ出力THM(n)<2n-1:2(n-1)>に対応する上位側の2(n-1)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<n-1>が連結して入力され、前記上位側の2(n-1)個の基本回路の入力信号IAとして、前記(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットがそれぞれ入力され、
前記上位側の2(n-1)個の基本回路は、前記サーモメータ出力THM(n)<2n-1:2(n-1)>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、全てのビットに‘0’を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、前記サーモメータ出力THM(n-1)<2(n-1)-1:0>を出力し、
前記サーモメータ出力THM(n)<2(n-1)-1:0>に対応する下位側の2(n-1)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<n-1>および‘1’が連結して入力され、前記下位側の2(n-1)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットがそれぞれ入力され、
前記下位側の2(n-1)個の基本回路は、前記サーモメータ出力THM(n)<2(n-1)-1:0>として、前記バイナリ入力BIN<n-1>=‘0’の場合に、前記サーモメータ出力THM(n-1)<2(n-1)-1:0>を出力し、前記バイナリ入力BIN<n-1>=‘1’の場合に、全てのビットに‘1’を出力し、
前記(n-1)ビットのデコーダ回路は、n≧3である場合に、m(mは、n≧m≧3の整数)をnから3として、(m-1)ビットのデコーダ回路を備え、n=2である場合に、1ビットのデコーダ回路を備え、
mをnから3として、前記(m-1)ビットのデコーダ回路は、2(m-1)個の前記基本回路と、(m-2)ビットのデコーダ回路と、を備え、
前記1ビットのデコーダ回路は、サーモメータ出力THM(1)<1:0>として、前記バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、前記バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する、デコーダ回路を提供する。
【0016】
ここで、前記基本回路は、第1インバータと、第2インバータと、出力選択回路と、を備え、
前記第1インバータは、第1P型MOSトランジスタと、第1N型MOSトランジスタと、を備え、前記第1P型MOSトランジスタのゲートおよび前記第1N型MOSトランジスタのゲートには前記入力信号IAが入力され、前記第1P型MOSトランジスタのドレインおよび前記第1N型MOSトランジスタのドレインが内部ノードに接続され、
前記出力選択回路は、第2P型MOSトランジスタと、第3P型MOSトランジスタと、第2N型MOSトランジスタと、第3N型MOSトランジスタと、を備え、前記第2P型MOSトランジスタは、電源と前記第1P型MOSトランジスタのソースとの間に接続され、前記第3P型MOSトランジスタは、電源と前記内部ノードとの間に接続され、前記第2N型MOSトランジスタは、前記第1N型MOSトランジスタのソースとグランドとの間に接続され、前記第3N型MOSトランジスタは、前記内部ノードとグランドとの間に接続され、前記第2P型MOSトランジスタのゲートおよび前記第3N型MOSトランジスタのゲートには前記選択信号S<1>が入力され、前記第2N型MOSトランジスタのゲートおよび前記第3P型MOSトランジスタのゲートには前記選択信号S<0>が入力され、
前記第2インバータの入力端子には前記内部ノードが接続され、前記第2インバータからは前記出力信号OAが出力されることが好ましい。
【0017】
また、前記1ビットのデコーダ回路は、前記選択信号S<1:0>として‘01’が入力され、前記出力信号OAとして、前記バイナリ入力BIN<0>を出力する1個の基本回路を備え、
前記サーモメータ出力THM(1)<1>として、‘0’を出力し、
前記サーモメータ出力THM(1)<0>として、前記1個の基本回路から前記バイナリ入力BIN<0>を出力することが好ましい。
【0018】
また、前記1ビットのデコーダ回路は、前記バイナリ入力BIN<0>を出力するバッファを備え、
前記サーモメータ出力THM(1)<1>として、‘0’を出力し、
前記サーモメータ出力THM(1)<0>として、前記バッファから前記バイナリ入力BIN<0>を出力することが好ましい。
【0019】
また、本発明は、n(nは、2以上の整数)ビットのバイナリ入力BIN<n-1:0>をデコードして、2nビットのサーモメータ出力THM(n)<2n-1:0>に変換するnビットのデコーダ回路の設計方法であって、
選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAを出力する基本回路を設計するステップと、
サーモメータ出力THM(1)<1:0>として、前記バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、前記バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する1ビットのデコーダ回路を設計するステップと、
n≧3である場合に、m(mは、n≧m≧3の整数)が3からnになるまで、2(m-1)個の前記基本回路と、(m-2)ビットのデコーダ回路と、を用いて、(m-1)ビットのデコーダ回路を設計するステップと、
2n個の前記基本回路と、(n-1)ビットのデコーダ回路と、を用いて、nビットのデコーダ回路を設計するステップと、を含み、
前記nビットのデコーダ回路を設計するステップは、
前記サーモメータ出力THM(n)<2n-1:2(n-1)>に対応する上位側の2(n-1)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<n-1>を連結して入力し、前記上位側の2(n-1)個の基本回路の入力信号IAとして、前記(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットをそれぞれ入力するステップと、
前記サーモメータ出力THM(n)<2(n-1)-1:0>に対応する下位側の2(n-1)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<n-1>および‘1’を連結して入力し、前記下位側の2(n-1)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットをそれぞれ入力するステップと、を含み、
前記(m-1)ビットのデコーダ回路を設計するステップは、
前記サーモメータ出力THM(m-1)<2(m-1)-1:2(m-2)>に対応する上位側の2(m-2)個の基本回路の選択信号S<1:0>として、‘0’および前記バイナリ入力BIN<m-2>を連結して入力し、前記上位側の2(m-2)個の基本回路の入力信号IAとして、(m-2)ビットのデコーダ回路から出力されるサーモメータ出力THM(m-2)<2(m-2)-1:0>の各ビットをそれぞれ入力するステップと、
前記サーモメータ出力THM(m-1)<2(m-2)-1:0>に対応する下位側の2(m-2)個の基本回路の選択信号S<1:0>として、前記バイナリ入力BIN<m-2>および‘1’を連結して入力し、前記下位側の2(m-2)個の基本回路の入力信号IAとして、前記サーモメータ出力THM(m-2)<2(m-2)-1:0>の各ビットをそれぞれ入力するステップと、を含む、デコーダ回路の設計方法を提供する。
【発明の効果】
【0020】
本発明によれば、複数の基本回路および1ビットのデコーダ回路という、複数のプリミティブな回路を組み合わせるだけで、nビットのデコーダ回路を実現可能である。また、nビットのデコーダ回路の回路規模は、例えば基本回路の個数=(2×2n)-3に比例し、従来回路のn×2nよりも回路規模の増大を大幅に小さくすることができる。さらに、クリティカルパス長も、バイナリ入力BINのビット数であるnに比例してしか増えないため、十分に小さくすることができる。
【0021】
また、バイナリ入力BINのビット数に応じて、複数の基本回路および1ビットのデコーダ回路を組み合わせてnビットのデコーダ回路を設計することができる。また、基本回路および1ビットのデコーダ回路というプリミティブな回路の出力遅延時間を計測しておけば、バイナリ入力BINのビット数に応じて、nビットのデコーダ回路の出力遅延時間を容易に算出できる。そのため、非常に容易に設計を行うことができ、バイナリ入力BINのビット数を変える場合も、短時間で設計変更を行うことが可能である。
【図面の簡単な説明】
【0022】
【
図1】本発明のデコーダ回路の構成を表す第1実施形態のブロック図である。
【
図2】基本回路の構成を表す一実施形態の回路図である。
【
図3】1ビットのデコーダ回路の構成を表す第1実施形態の回路図である。
【
図4】1ビットのデコーダ回路の構成を表す第2実施形態の回路図である。
【
図5】本発明のデコーダ回路の構成を表す第2実施形態のブロック図である。
【
図6】本発明のデコーダ回路を設計する手順を表す一実施形態のフローチャートである。
【
図7】(m-1)ビットのデコーダ回路を設計する手順を表す一実施形態のフローチャートである。
【
図8】nビットのデコーダ回路を設計する手順を表す一実施形態のフローチャートである。
【
図9】特許文献2の第2図に示された桁上げ信号発生回路の構成を表す回路図である。
【
図10】4ビットのデコーダ回路の構成を表す一例の回路図である。
【
図11】特許文献1の
図3に示されたコード変換部の構成を表す回路図である。
【発明を実施するための形態】
【0023】
以下に、添付の図面に示す好適実施形態に基づいて、本発明のデコーダ回路およびデコーダ回路の設計方法を詳細に説明する。
【0024】
本発明のデコーダ回路は、例えばnビット(nは、2以上の整数)の電流型DACを搭載するプロダクトにおいて、そのDACのアナログ出力のリニアリティを保つために、入力となるnビットのバイナリコードを表すバイナリ入力BINを、出力となる2nビットのサーモメータコードを表すサーモメータ出力THMに変換し、このサーモメータ出力THMを用いてDACを制御するために使用することが可能である。
【0025】
まず、nビットのバイナリ入力BIN<n-1:0>から、2nビットのサーモメータ出力THM(n)<2n-1:0>に変換するnビットのデコーダ回路を設計する際の基本アルゴリズムを以下に説明する。
【0026】
ここで、バイナリ入力BIN<n-1:0>は、最下位ビット(LSB)がバイナリ入力BIN<0>であり、最上位ビット(MSB)がバイナリ入力BIN<n-1>となるnビットのバス表記の信号である。同様に、サーモメータ出力THM(n)<2n-1:0>は、最下位ビットがサーモメータ出力THM(n)<0>であり、最上位ビットがサーモメータ出力THM(n)<2n-1>となる2nビットのバス表記の信号である。
【0027】
また、(n-1)ビットのバイナリ入力BIN<n-2:0>から、2(n-1)ビットのサーモメータ出力(n-1)<2(n-1)-1:0>に変換する(n-1)ビットのデコーダ回路は既にあるものとする。
【0028】
nビットのバイナリ入力BIN<n-1:0>の最上位ビットであるバイナリ入力BIN<n-1>の状態によって、各サーモメータ出力THM(n)<2n-1:0>に対し、以下のアルゴリズムに従って操作を行う。
【0029】
最上位ビットであるバイナリ入力BIN<n-1>=‘0’の場合
サーモメータ出力THM(n)<2n-1:2(n-1)>:全てのビットに‘0’を出力する。
サーモメータ出力THM(n)<2(n-1)-1:0>:(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2(n-1)-1:0>をスルーさせてそのまま出力する。
【0030】
最上位ビットであるバイナリ入力BIN<n-1>=‘1’の場合
サーモメータ出力THM(n)<2n-1:2(n-1)>:(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2(n-1)-1:0>をスルーさせてそのまま出力する。
サーモメータ出力THM(n)<2(n-1)-1:0>:全てのビットに‘1’を出力する。
【0031】
なお、nビットのデコーダ回路を設計する際には、前述のように、既に(n-1)ビットのデコーダ回路が存在している必要があるが、これはn=2の場合から成立する。すなわち、最も基本となる1ビットのデコーダ回路さえあれば、上記アルゴリズムに従って2ビットのデコーダ回路を設計することができ、さらに、3ビット、4ビット、5ビット、…、と増やしていけば、任意のnビットのデコーダ回路を設計可能である。
【0032】
【0033】
表2は、1ビットのデコーダ回路の動作、つまり、バイナリ入力BIN<0>とサーモメータ出力THM(1)<1:0>との関係を表す真理値表である。
【0034】
【0035】
表3は、2ビットのデコーダ回路の動作、つまり、2ビットのバイナリ入力BIN<1:0>と4ビットのサーモメータ出力THM(2)<3:0>との関係を表す真理値表である。
【0036】
表2および表3に示すように、2ビットのデコーダ回路の真理値表のサーモメータ出力THM(2)<3:0>の4×4の領域のうち、左上の2×2の領域は、全て‘0’であり、右下の2×2の領域は、全て‘1’である。また、右上の2×2の領域および左下の2×2の領域は、1ビットのデコーダ回路の真理値表のサーモメータ出力THM(1)<1:0>と同じ値になっている。
【0037】
これは、バイナリ入力BINのビット数が増えても常に同じであり、例えば4ビットの場合には、前述の表1のようになる。つまり、4ビットのデコーダ回路の真理値表のサーモメータ出力THM(4)<15:0>の16×16の領域のうち、左上の8×8の領域は、全て‘0’であり、右下の8×8の領域は、全て‘1’である。また、右上の8×8の領域および左下の8×8の領域は、後述する表5に示す、3ビットのデコーダ回路の真理値表のサーモメータ出力THM(3)<7:0>と同じ値になる。
【0038】
つまり、1ビットのデコーダ回路を用い、前述のアルゴリズムに従って、2ビットのデコーダ回路を設計し、さらに、3ビット、4ビット、5ビット、…、と増やしていけば、任意のnビットのデコーダ回路を容易に設計できることが分かる。
【0039】
以下、本発明のデコーダ回路の具体例を挙げて説明する。
【0040】
図1は、本発明のデコーダ回路の構成を表す第1実施形態のブロック図である。
図1に示すデコーダ回路10は、バイナリコードを表す2ビットのバイナリ入力BIN<1:0>をデコードして、サーモメータコードを表す4ビットのサーモメータ出力THM(2)<3:0>に変換する2ビットのデコーダ回路である。
2ビットのデコーダ回路10は、4個の基本回路12a、12b、12c、12dと、1ビットのデコーダ回路14と、を備えている。
【0041】
基本回路12a、12b、12c、12dは、それぞれ、2ビットの選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAをそのまま出力する。
なお、入力信号IAをそのまま出力するとは、出力信号OAとして、入力信号IAをスルーさせて、入力信号IAと同じ値の信号を出力することを意味する。
【0042】
上位側の2ビットのサーモメータ出力THM(2)<3:2>に対応する上位側の2個の基本回路12a、12bの選択入力端子S<1>には、‘0’固定となる1ビットのデータ1’b0が入力され、選択入力端子S<0>には、バイナリ入力BIN<1:0>の最上位ビットであるバイナリ入力BIN<1>が入力される。1’b0は、VerilogのHDL(Hardware Discription Language:ハードウェア記述言語)での記述例であり、1ビットの2進数の‘0’を表す。これ以降も同様に記載されている。つまり、上位側の2個の基本回路12a、12bの選択信号S<1:0>として、‘0’およびバイナリ入力BIN<1>が、{1’b0,BIN<1>}として、連結して入力される。
【0043】
また、上位側の基本回路12aの信号入力端子IAには、1ビットのデコーダ回路14から出力されるサーモメータ出力THM(1)<1>が入力され、上位側の基本回路12bの信号入力端子IAには、サーモメータ出力THM(1)<0>が入力される。つまり、上位側の2個の基本回路12a、12bの入力信号IAとして、サーモメータ出力THM(1)<1:0>の各ビットがそれぞれ入力される。
【0044】
一方、下位側の2ビットのサーモメータ出力THM(2)<1:0>に対応する下位側の2個の基本回路12c、12dの選択入力端子S<1>には、バイナリ入力BIN<1>が入力され、選択入力端子S<0>には、‘1’固定となる1ビットのデータ1’b1が入力される。つまり、下位側の2個の基本回路12c、12dの選択信号S<1:0>として、バイナリ入力BIN<1>および‘1’が、{BIN<1>,1‘b1}として入力される。
【0045】
また、下位側の基本回路12cの信号入力端子IAには、サーモメータ出力THM(1)<1>が入力され、下位側の基本回路12dの信号入力端子IAには、サーモメータ出力THM(1)<0>が入力される。つまり、下位側の2個の基本回路12c、12dの入力信号IAとして、サーモメータ出力THM(1)<1:0>の各ビットがそれぞれ入力される。
【0046】
基本回路12a、12b、12c、12dの信号出力端子OAからは、出力信号OAとして、サーモメータ出力THM(2)<3:0>が出力される。
【0047】
図2は、基本回路の構成を表す一実施形態の回路図である。
図2に示す基本回路12aは、第1インバータと、第2インバータ16と、出力選択回路と、を備えている。
なお、基本回路12b、12c、12dの構成も基本回路12aの構成と同じである。
【0048】
第1インバータは、入力信号IAの反転信号を内部ノードAに出力するものであり、第1P型MOSトランジスタ(以下、PMOSともいう)18aと、第1N型MOSトランジスタ(以下、NMOSともいう)18bと、を備えている。
第1PMOS18aのゲートおよび第1NMOS18bのゲートには入力信号IAが入力される。第1PMOS18aのドレインおよび第1NMOS18bのドレインが内部ノードAに接続されている。
【0049】
出力選択回路は、選択信号S<1:0>の設定に応じて、内部ノードAにおける内部信号として、‘0’を出力するか、‘1’を出力するか、または入力信号IAの反転信号を出力するかを切り替えるものであり、第2PMOS20aと、第3PMOS20bと、第2NMOS22aと、第3NMOS22bと、を備えている。
第2PMOS20aは、電源と第1PMOS18aのソースとの間に接続され、第3PMOS20bは、電源と内部ノードAとの間に接続されている。また、第2NMOS22aは、第1NMOS18bのソースとグランドとの間に接続され、第3NMOS22bは、内部ノードAとグランドとの間に接続されている。第2PMOS20aのゲートおよび第3NMOS22bのゲートには選択信号S<1>が入力され、第2NMOS22aのゲートおよび第3PMOS20bのゲートには選択信号S<0>が入力される。
【0050】
第2インバータ16は、内部ノードAにおける内部信号の反転信号を出力信号OAとして出力する。第2インバータ16の入力端子には内部ノードAが接続され、第2インバータからは出力信号OAが出力される。
【0051】
【0052】
表4は、基本回路12aの動作、つまり、2ビットの選択信号S<1:0>と出力信号OAとの関係を表す真理値表である。
【0053】
表4に示すように、基本回路12aにおいて、選択信号S<1:0>=‘00’の場合、PMOS20a、20bはオン状態になり、NMOS22a、22bはオフ状態になる。この場合、入力信号IAに関わらず、内部ノードAはPMOS20bを介してチャージアップされて‘1’になり、さらに内部ノードAにおける内部信号は第2インバータ16により反転されて、出力信号OAは、‘0’固定、つまり、‘0’になる。
【0054】
選択信号S<1:0>=‘01’の場合、PMOS20aおよびNMOS22aはオン状態になり、PMOS20bおよびNMOS22bはオフ状態になる。この場合、入力信号IAは第1インバータにより反転されて内部ノードAに出力され、さらに内部ノードAにおける内部信号は第2インバータにより反転され、出力信号OAは、入力信号IAがスルーの状態になる。つまり、出力信号OAとして、入力信号IAがそのまま出力される。
【0055】
選択信号S<1:0>=‘11’の場合、PMOS20a、20bはオフ状態になり、NMOS22a、22bはオン状態になる。この場合、入力信号IAに関わらず、内部ノードAはNMOS22bを介してディスチャージされて‘0’になり、さらに内部ノードAにおける内部信号は第2インバータにより反転されて、出力信号OAは、‘1’固定、つまり、‘1’になる。
【0056】
選択信号S<1:0>=‘10’の場合、PMOS20aおよびNMOS22aはオフ状態になり、PMOS20bおよびNMOS22bはオン状態になる。この場合、電源からPMOS20bおよびNMOS22bを介してグランドに直流電流が流れるため、選択信号S<1:0>=‘10’の入力は禁止となっている。
【0057】
図1に示す2ビットのデコーダ回路10において、基本回路12a、12bの選択入力端子S<1>には1ビットのデータ1’b0が入力され、選択信号S<1>=‘0’固定になる。また、基本回路12c、12dの選択入力端子S<0>には1ビットのデータ1’b1が入力され、選択信号S<0>=‘1’固定になる。つまり、選択信号S<1:0>=‘10’となる選択信号S<1:0>は入力されないように構成されている。
【0058】
なお、基本回路12aとしては、表4に示す真理値表を実現する任意の構成の基本回路を利用可能である。
【0059】
例えば、
図9に示すように、特許文献2の第2図に示された桁上げ信号発生回路において、A1、B1、およびNEG C1を、それぞれ、選択信号S<1>、選択信号S<0>、および入力信号IAと置き換えれば、表4に示す真理値表を実現する基本回路を生成できる。しかしながら、本発明に係る基本回路12aは、バイナリコードからサーモメータコードへの変換に特化し、選択信号S<1:0>=‘10’の入力を禁止することにより、回路規模の大幅な簡略化を実現している点が大きく異なる。
【0060】
続いて、1ビットのデコーダ回路14は、1ビットのバイナリ入力BIN<0>をデコードして、2ビットのサーモメータ出力THM(1)<1:0>に変換する。
1ビットのデコーダ回路14のバイナリ入力端子BINには、バイナリ入力BIN<0>が入力される。1ビットのデコーダ回路14のサーモメータ出力端子THM(1)<1:0>からは、2ビットのサーモメータ出力THM(1)<1:0>が出力される。
【0061】
1ビットのデコーダ回路14は、前述の表2に示すように、サーモメータ出力THM(1)<1>として、常に‘0’を出力する。また、サーモメータ出力THM(1)<0>として、バイナリ入力BIN<0>をそのまま出力する。言い換えると、サーモメータ出力THM(1)<1:0>として、バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する。
【0062】
次に、1ビットのデコーダ回路14の構成について具体例を挙げて説明する。
【0063】
図3は、1ビットのデコーダ回路の構成を表す第1実施形態の回路図である。
図3に示す1ビットのデコーダ回路14aは、
図2に示す基本回路12aと同じ構成の1個の基本回路を備えている。
1個の基本回路の選択入力端子S<1>には、‘0’固定となる1ビットのデータ1’b0が入力され、選択入力端子S<0>には、‘1’固定となる1ビットのデータ1’b1が入力される。つまり、1個の基本回路の選択信号S<1:0>として、‘01’が入力される。また、1個の基本回路のバイナリ入力端子BINには、バイナリ入力BIN<0>が入力される(
図1参照)。
サーモメータ出力THM(1)<1>には、‘0’固定となる1ビットのデータ1’b0が接続されている。
【0064】
1ビットのデコーダ回路14aにおいて、サーモメータ出力THM(1)<1>は、‘0’固定、つまり‘0’である。つまり、1ビットのデコーダ回路14aは、サーモメータ出力THM(1)<1>として、表2に示すように、常に‘0’を出力する。
また、選択信号S<1:0>=‘01’の場合、PMOS20aおよびNMOS22aがオン状態、PMOS20bおよびNMOS22bがオフ状態であり、1個の基本回路は、出力信号OAとして、入力信号IAをスルーさせてそのまま出力する。つまり、1ビットのデコーダ回路14aは、サーモメータ出力THM(1)<0>として、表2に示すように、バイナリ入力BIN<0>をそのまま出力する。
【0065】
このように、1ビットのデコーダ回路14aは、選択信号S<1:0>=‘01’に固定することにより、基本回路12aをバッファとして使用して、その出力信号OAを、サーモメータ出力THM(1)<0>として出力し、さらに、サーモメータ出力THM(1)<1>として、‘0’固定を出力することにより、簡単に実現できる。この場合、1ビットのデコーダ回路として専用の回路を設計することなく、1個の基本回路だけを利用して、nビットのデコーダ回路14aを実現可能である。
【0066】
図4は、1ビットのデコーダ回路の構成を表す第2実施形態の回路図である。
図4に示す1ビットのデコーダ回路14bは、直列に接続された2個のインバータ24a、24b、つまり、バッファを備えている。
前段のインバータの入力端子、つまり、1ビットのデコーダ回路14bのバイナリ入力端子BINにはバイナリ入力BIN<0>が入力され(
図1参照)、後段のインバータの出力端子からは、サーモメータ出力THM(1)<0>が出力される。
サーモメータ出力THM(1)<1>には、‘0’固定となる1ビットのデータ1’b0が接続されている。
【0067】
1ビットのデコーダ回路14bにおいて、サーモメータ出力THM(1)<1>は、‘0’固定、つまり‘0’である。つまり、1ビットのデコーダ回路14bは、サーモメータ出力THM(1)<1>として、表2に示すように、常に‘0’を出力する。
また、1ビットのデコーダ回路14bは、インバータ24a、24bによりバイナリ入力BIN<0>を2回反転し、サーモメータ出力THM(1)<0>として、表2に示すように、バッファからバイナリ入力BIN<0>をそのまま出力する。
【0068】
1ビットのデコーダ回路14bは、バッファの出力信号を、サーモメータ出力THM(1)<0>として出力し、さらに、サーモメータ出力THM(1)<1>として、‘0’固定を出力することにより、簡単に実現できる。この場合、2個のインバータ23a、24bからなるバッファのみという、非常にシンプルな回路で1ビットのデコーダ回路を実現可能である。
【0069】
なお、1ビットのデコーダ回路14としては、表2に示す真理値表を実現する任意の構成の1ビットのデコーダ回路を利用可能である。
【0070】
次に、2ビットのデコーダ回路10の動作を説明する。
【0071】
2ビットのデコーダ回路10において、バイナリ入力BIN<1>=‘0’の場合、上位側の2個の基本回路12a、12bの選択入力端子S<1:0>には、選択信号S<1:0>として、‘0’およびバイナリ入力BIN<1>、つまり、{1’b0,BIN<1>}=‘00’が入力される。この場合、2個の基本回路12a、12bの信号出力端子OAからは、サーモメータ出力THM(2)<3:2>として、前述の表3に示すように、‘00’が出力される。
【0072】
また、バイナリ入力BIN<1>=‘0’の場合、下位側の2個の基本回路12c、12dの選択入力端子S<1:0>には、選択信号S<1:0>として、バイナリ入力BIN<1>および‘1’、つまり、{BIN<1>,1’b1}=‘01’が入力される。この場合、2個の基本回路12c、12dの信号出力端子OAからは、サーモメータ出力THM(2)<1:0>として、表3に示すように、1ビットのデコーダ回路14から出力されるサーモメータ出力THM(1)<1:0>がそのまま出力される。
つまり、サーモメータ出力THM(2)<1:0>として、バイナリ入力BIN<0>=‘0’の場合、‘00’が出力され、バイナリ入力BIN<0>=‘1’の場合、‘01’が出力される。
【0073】
バイナリ入力BIN<1>=‘1’の場合、上位側の2個の基本回路12a、12bの選択入力端子S<1:0>には、選択信号S<1:0>として、‘0’およびバイナリ入力BIN<1>、つまり、{1’b0,BIN<1>}=‘01’が入力される。この場合、2個の基本回路12a、12bの信号出力端子OAからは、サーモメータ出力THM(2)<3:2>として、表3に示すように、1ビットのデコーダ回路14から出力されるサーモメータ出力THM(1)<1:0>がそのまま出力される。
つまり、サーモメータ出力THM(2)<3:2>として、バイナリ入力BIN<0>=‘0’の場合、‘00’が出力され、バイナリ入力BIN<0>=‘1’の場合、‘01’が出力される。
【0074】
また、バイナリ入力BIN<1>=‘1’の場合、下位側の2個の基本回路12c、12dの選択入力端子S<1:0>には、選択信号S<1:0>として、バイナリ入力BIN<1>および‘1’、つまり、{BIN<1>,1’b1}=‘11’が入力される。この場合、2個の基本回路12c、12dの信号出力端子OAからは、サーモメータ出力THM(2)<1:0>として、表3に示すように、‘11’が出力される。
【0075】
次に、
図5は、本発明のデコーダ回路の構成を表す第2実施形態のブロック図である。
図5に示すデコーダ回路26は、3ビットのバイナリ入力BIN<2:0>をデコードして、8ビットのサーモメータ出力THM(3)<7:0>に変換する3ビットのデコーダ回路である。
3ビットのデコーダ回路26は、8個の基本回路12e、12f、12g、12h、12i、12j、12k、12lと、2ビットのデコーダ回路10と、を備えている。
【0076】
上位側の4ビットのサーモメータ出力THM(3)<7:4>に対応する上位側の4個の基本回路12e、12f、12g、12hの選択入力端子S<1>には、‘0’固定となる1ビットのデータ1’b0が入力され、選択入力端子S<0>には、バイナリ入力BIN<2:0>の最上位ビットであるバイナリ入力BIN<2>が入力される。つまり、上位側の4個の基本回路12e、12f、12g、12hの選択信号S<1:0>として、‘0’およびバイナリ入力BIN<2>が、{1’b0,BIN<2>}として、連結して入力される。
【0077】
また、上位側の基本回路12eの信号入力端子IAには、2ビットのデコーダ回路10から出力されるサーモメータ出力THM(2)<3>が入力され、上位側の基本回路12fの信号入力端子IAには、サーモメータ出力THM(2)<2>が入力され、上位側の基本回路12gの信号入力端子IAには、サーモメータ出力THM(2)<1>が入力され、上位側の基本回路12hの信号入力端子IAには、サーモメータ出力THM(2)<0>が入力される。つまり、上位側の4個の基本回路12e、12f、12g、12hの入力信号IAとして、サーモメータ出力THM(2)<3:0>の各ビットがそれぞれ入力される。
【0078】
一方、下位側の4ビットのサーモメータ出力THM(3)<3:0>に対応する下位側の4個の基本回路12i、12j、12k、12lの選択入力端子S<1>には、バイナリ入力BIN<2>が入力され、選択入力端子S<0>には、‘1’固定となる1ビットのデータ1’b1が入力される。つまり、下位側の4個の基本回路12i、12j、12k、12lの選択信号S<1:0>として、バイナリ入力BIN<2>および‘1’が、{BIN<2>,1’b1}として、連結して入力される。
【0079】
また、下位側の基本回路12iの信号入力端子IAには、サーモメータ出力THM(2)<3>が入力され、下位側の基本回路12jの信号入力端子IAには、サーモメータ出力THM(2)<2>が入力され、下位側の基本回路12kの信号入力端子IAには、サーモメータ出力THM(2)<1>が入力され、下位側の基本回路12lの信号入力端子IAには、サーモメータ出力THM(2)<0>が入力される。つまり、下位側の4個の基本回路12i、12j、12k、12lの入力信号IAとして、サーモメータ出力THM(2)<3:0>の各ビットがそれぞれ入力される。
【0080】
基本回路12e、12f、12g、12h、12i、12j、12k、12lの信号出力端子OAからは、サーモメータ出力THM(3)<7:0>が出力される。
【0081】
基本回路12e、12f、12g、12h、12i、12j、12k、12lの構成は、2ビットのデコーダ回路10で用いられているものと同じであり、
図2に示す通りである。
【0082】
続いて、2ビットのデコーダ回路10は、
図1に示すものであり、2ビットのバイナリ入力BIN<1:0>をデコードして、4ビットのサーモメータ出力THM(2)<3:0>に変換する。
2ビットのデコーダ回路10のバイナリ入力端子BIN<1:0>には、バイナリ入力BIN<1:0>が入力される。2ビットのデコーダ回路10のサーモメータ出力端子THM(2)<3:0>からは、4ビットのサーモメータ出力THM(2)<3:0>が出力される。
【0083】
次に、3ビットのデコーダ回路26の動作を説明する。
【0084】
【0085】
表5は、3ビットのデコーダ回路26の動作、つまり、3ビットのバイナリ入力BIN<2:0>と8ビットのサーモメータ出力THM(3)<7:0>との関係を表す真理値表である。
【0086】
3ビットのデコーダ回路26において、バイナリ入力BIN<2>=‘0’の場合、上位側の4個の基本回路12e、12f、12g、12hの選択入力端子S<1:0>には、選択信号S<1:0>として、‘0’およびバイナリ入力BIN<2>、つまり、{1’b0,BIN<2>}=‘00’が入力される。この場合、4個の基本回路12e、12f、12g、12hの信号出力端子OAからは、サーモメータ出力THM(3)<7:4>として、表5に示すように、‘0000’が出力される。
【0087】
バイナリ入力BIN<2>=‘0’の場合、下位側の4個の基本回路12i、12j、12k、12lの選択入力端子S<1:0>には、選択信号S<1:0>として、バイナリ入力BIN<2>および‘1’、つまり、{BIN<2>,1’b1}=‘01’が入力される。この場合、4個の基本回路12i、12j、12k、12lの信号出力端子OAからは、サーモメータ出力THM(3)<3:0>として、表5に示すように、2ビットのデコーダ回路10から出力されるサーモメータ出力THM(2)<3:0>がそのまま出力される。
つまり、サーモメータ出力THM(3)<3:0>として、バイナリ入力BIN<1:0>=‘00’の場合、‘0000’が出力され、バイナリ入力BIN<1:0>=‘01’の場合、‘0001’が出力され、バイナリ入力BIN<1:0>=‘10’の場合、‘0011’が出力され、バイナリ入力BIN<1:0>=‘11’の場合、‘0111’が出力される。
【0088】
バイナリ入力BIN<2>=‘1’の場合、上位側の4個の基本回路12e、12f、12g、12hの選択入力端子S<1:0>には、選択信号S<1:0>として、‘0’およびバイナリ入力BIN<2>、つまり、{1’b0,BIN<2>}=‘01’が入力される。この場合、4個の基本回路12e、12f、12g、12hの信号出力端子OAからは、サーモメータ出力THM(3)<7:4>として、表5に示すように、2ビットのデコーダ回路10から出力されるサーモメータ出力THM(2)<3:0>がそのまま出力される。
つまり、サーモメータ出力THM(3)<3:0>として、バイナリ入力BIN<1:0>=‘00’の場合、‘0000’が出力され、バイナリ入力BIN<1:0>=‘01’の場合、‘0001’が出力され、バイナリ入力BIN<1:0>=‘10’の場合、‘0011’が出力され、バイナリ入力BIN<1:0>=‘11’の場合、‘0111’が出力される。
【0089】
バイナリ入力BIN<2>=‘1’の場合、下位側の4個の基本回路12i、12j、12k、12lの選択入力端子S<1:0>には、選択信号S<1:0>として、バイナリ入力BIN<2>および‘1’、つまり、{BIN<2>,1’b1}=‘11’が入力される。この場合、4個の基本回路12i、12j、12k、12lの信号出力端子OAからは、サーモメータ出力THM(3)<3:0>として、表5に示すように、‘1111’が出力される。
【0090】
なお、nビットのバイナリ入力BIN<n-1:0>をデコードして、2nビットのサーモメータ出力THM(n)<2n-1:0>に変換するnビットのデコーダ回路の構成も同様である。
【0091】
nビットのデコーダ回路は、2n個の基本回路と、(n-1)ビットのデコーダ回路と、を備える。
【0092】
サーモメータ出力THM(n)<2n-1:2(n-1)>に対応する上位側の2(n-1)個の基本回路の選択信号S<1:0>として、‘0’およびバイナリ入力BIN<n-1>が、{1’b0,BIN<n-1>}として、連結して入力される。また、上位側の2(n-1)個の基本回路の入力信号IAとして、(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットがそれぞれ入力される。
【0093】
そして、上位側の2(n-1)個の基本回路は、サーモメータ出力THM(n)<2n-1:2(n-1)>として、バイナリ入力BIN<n-1>=‘0’の場合に、サーモメータ出力THM(n)<2n-1:2(n-1)>の全てのビットに‘0’を出力し、バイナリ入力BIN<n-1>=‘1’の場合に、サーモメータ出力THM(n-1)<2(n-1)-1:0>を出力する。
【0094】
一方、サーモメータ出力THM(n)<2(n-1)-1:0>に対応する下位側の2(n-1)個の基本回路の選択信号S<1:0>として、バイナリ入力BIN<n-1>および‘1’が、{BIN<n-1>,1’b1}として、連結して入力される。また、下位側の2(n-1)個の基本回路の入力信号IAとして、サーモメータ出力THM(n-1)<2(n-1)-1:0>の各ビットがそれぞれ入力される。
【0095】
そして、下位側の2(n-1)個の基本回路は、サーモメータ出力THM(n)<2(n-1)-1:0>として、バイナリ入力BIN<n-1>=‘0’の場合に、サーモメータ出力THM(n-1)<2(n-1)-1:0>を出力し、バイナリ入力BIN<n-1>=‘1’の場合に、サーモメータ出力THM(n)<2(n-1)-1:0>の全てのビットに‘1’を出力する。
【0096】
また、(n-1)ビットのデコーダ回路は、n≧3である場合に、m(mは、n≧m≧3の整数)をnから3として、(m-1)ビットのデコーダ回路を備え、n=2である場合に、1ビットのデコーダ回路を備える。
さらに、mをnから3として、(m-1)ビットのデコーダ回路は、2(m-1)個の基本回路と、(m-2)ビットのデコーダ回路と、を備える。
【0097】
次に、
図6~
図8のフローチャートを参照しながら、本発明のデコーダ回路の設計方法に従って、nビットのデコーダ回路を設計する手順を説明する。
【0098】
まず、選択信号S<1:0>の設定に応じて、出力信号OAとして、‘0’を出力するか、‘1’を出力するか、または入力信号IAを出力する基本回路を設計する(
図6のステップS1)。例えば、
図2に示す基本回路12aを設計する。
【0099】
また、サーモメータ出力THM(1)<1:0>として、バイナリ入力BIN<0>=‘0’の場合に、‘00’を出力し、バイナリ入力BIN<0>=‘1’の場合に、‘01’を出力する1ビットのデコーダ回路を設計する(
図6のステップS2)。例えば、
図3に示す1ビットのデコーダ回路14aまたは
図4に示す1ビットのデコーダ回路14bを設計する。例えば、
図2に示す基本回路12aを設計し、
図3に示す1ビットのデコーダ回路14aまたは
図4に示す1ビットのデコーダ回路14bを設計する。
【0100】
続いて、n≧3である場合に、m(mは、n≧m≧3の整数)が3からnになるまで、2
(m-1)個の基本回路と、(m-2)ビットのデコーダ回路と、を用いて、(m-1)ビットのデコーダ回路を設計する(
図6のステップS3)。
【0101】
ここで、(m-1)ビットのデコーダ回路を設計する場合、サーモメータ出力THM(m-1)<2
(m-1)-1:2
(m-2)>に対応する上位側の2
(m-2)個の基本回路の選択信号S<1:0>として、‘0’およびバイナリ入力BIN<m-2>を、{1’b0,BIN<m-2>}として、連結して入力する(
図7のステップS31)。
【0102】
また、上位側の2
(m-2)個の基本回路の入力信号IAとして、(m-2)ビットのデコーダ回路から出力されるサーモメータ出力THM(m-2)<2
(m-2)-1:0>の各ビットをそれぞれ入力する(
図7のステップS32)。
【0103】
一方、サーモメータ出力THM(m-1)<2
(m-2)-1:0>に対応する下位側の2
(m-2)個の基本回路の選択信号S<1:0>として、バイナリ入力BIN<m-2>および‘1’を、{BIN<m-2>,1’b1}として、連結して入力する(
図7のステップS33)。
【0104】
また、下位側の2
(m-2)個の基本回路の入力信号IAとして、サーモメータ出力THM(m-2)<2
(m-2)-1:0>の各ビットをそれぞれ入力する(
図7のステップS34)。
【0105】
図6のフローチャートに戻って、(n-1)ビットのデコーダ回路の設計が終了した後、2
n個の基本回路と、(n-1)ビットのデコーダ回路と、を用いて、nビットのデコーダ回路を設計する(
図6のステップS4)。
【0106】
ここで、nビットのデコーダ回路を設計する場合、サーモメータ出力THM(n)<2
n-1:2
(n-1)>に対応する上位側の2
(n-1)個の基本回路の選択信号S<1:0>として、‘0’およびバイナリ入力BIN<n-1>を、{1’b0,BIN<n-1>}として、連結して入力する(
図8のステップS41)。
【0107】
また、上位側の2
(n-1)個の基本回路の入力信号IAとして、(n-1)ビットのデコーダ回路から出力されるサーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットをそれぞれ入力する(
図8のステップS42)。
【0108】
一方、サーモメータ出力THM(n)<2
(n-1)-1:0>に対応する下位側の2
(n-1)個の基本回路の選択信号S<1:0>として、バイナリ入力BIN<n-1>および‘1’を、{BIN<n-1>,1’b1}として、連結して入力する(
図8のステップS43)。
【0109】
また、下位側の2
(n-1)個の基本回路の入力信号IAとして、サーモメータ出力THM(n-1)<2
(n-1)-1:0>の各ビットをそれぞれ入力する(
図8のステップS44)。
【0110】
例えば、n=4である場合、まず、4個の基本回路と、1ビットのデコーダ回路と、を用いて、
図1に示す2ビットのデコーダ回路10を設計する。続いて、8個の基本回路と、2ビットのデコーダ回路と、を用いて、
図5に示す3ビットのデコーダ回路26を設計する。その後、16個の基本回路と、3ビットのデコーダ回路26と、を用いて、4ビットのデコーダ回路を設計する。n≧5の場合も同様にして、nビットのデコーダ回路を設計することができる。
【0111】
上記のように、本発明に係るnビットのデコーダ回路は、2n個の基本回路と、(n-1)ビットのデコーダ回路と、の組み合わせによって実現できる。
【0112】
そのため、複数の基本回路および1ビットのデコーダ回路という、複数のプリミティブな回路を組み合わせるだけで、nビットのデコーダ回路を実現可能である。また、nビットのデコーダ回路の回路規模は、例えば1ビットのデコーダ回路14aを使用した場合、基本回路12の個数=(2×2n)-3に比例し、従来回路のn×2nよりも回路規模の増大を大幅に小さくすることができる。さらに、クリティカルパス長も、バイナリ入力BINのビット数であるnに比例してしか増えないため、十分に小さくすることができる。
【0113】
また、バイナリ入力BINのビット数に応じて、複数の基本回路および1ビットのデコーダ回路を組み合わせてnビットのデコーダ回路を設計することができる。また、基本回路および1ビットのデコーダ回路というプリミティブな回路の出力遅延時間を計測しておけば、バイナリ入力BINのビット数に応じて、nビットのデコーダ回路の出力遅延時間を容易に算出できる。そのため、非常に容易に設計を行うことができ、バイナリ入力BINのビット数を変える場合も、短時間で設計変更を行うことが可能である。
【0114】
以上、本発明について詳細に説明したが、本発明は上記実施形態に限定されず、本発明の主旨を逸脱しない範囲において、種々の改良や変更をしてもよいのはもちろんである。
【符号の説明】
【0115】
10、26 デコーダ回路
12a、12b、12c、12d、12e、12f、12g、12h、12i、12j、12k、12l 基本回路
14、14a、14b デコーダ回路
16 第2インバータ
18a 第1PMOS
18b 第1NMOS
20a 第2PMOS
20b 第3PMOS
22a 第2NMOS
22b 第3NMOS
24a、24b インバータ