(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-06
(45)【発行日】2023-10-17
(54)【発明の名称】超高精度デジタルパルス信号発生回路及び方法
(51)【国際特許分類】
H03K 5/06 20060101AFI20231010BHJP
H03K 7/08 20060101ALI20231010BHJP
【FI】
H03K5/06
H03K7/08
(21)【出願番号】P 2022552173
(86)(22)【出願日】2021-01-29
(86)【国際出願番号】 CN2021074318
(87)【国際公開番号】W WO2021179836
(87)【国際公開日】2021-09-16
【審査請求日】2022-08-25
(31)【優先権主張番号】202010168931.8
(32)【優先日】2020-03-12
(33)【優先権主張国・地域又は機関】CN
【早期審査対象出願】
(73)【特許権者】
【識別番号】522340624
【氏名又は名称】湖南轂梁微電子有限公司
【氏名又は名称原語表記】HUNAN GREAT-LEO MICROELECTRONICS CO., LTD.
【住所又は居所原語表記】F21, Shengdajinxi International Financial Center, No. 288, Section 1, Furong Middle Road Changsha, Hunan 410000 (CN)
(74)【代理人】
【識別番号】110001139
【氏名又は名称】SK弁理士法人
(74)【代理人】
【識別番号】100130328
【氏名又は名称】奥野 彰彦
(74)【代理人】
【識別番号】100130672
【氏名又は名称】伊藤 寛之
(72)【発明者】
【氏名】陳 虎
(72)【発明者】
【氏名】許 野
(72)【発明者】
【氏名】万 江華
【審査官】及川 尚人
(56)【参考文献】
【文献】米国特許出願公開第2014/0062551(US,A1)
【文献】中国特許出願公開第110176927(CN,A)
【文献】特開2010-246092(JP,A)
【文献】特開2011-139365(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K 5/00-5/26
H03K 7/08
H03K 3/00-3/86
(57)【特許請求の範囲】
【請求項1】
パルスエッジ制御回路と、静的キャリブレーション回路と、動的キャリブレーション回路とを含む超高精度デジタルパルス信号発生回路であって、
前記パルスエッジ制御回路が、入力ピンInput上の信号に遅延を発生させ、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を制御し、パルスの幅を制御し、超高精度パルスを生成するために用いられ、
前記パルスエッジ制御回路が、遅延チェーン、遅延制御回路、及び遅延補償回路を含み、前記遅延制御回路が、シフト制御レジスタとセレクタを含み、前記シフト制御レジスタが、入力ピンInputからの信号が出力ピンに到達するまでに通過する遅延ユニットの数を制御し、前記遅延補償回路が、導入された遅延の影響を相殺するために用いられ、
前記静的キャリブレーション回路は、システムの電源投入・動作開始時に、システム動作クロック周期とパルスエッジ制御回路における遅延ユニットの遅延との関係を示すステップサイズを計算して、ステップサイズを保存するために用いられ、
前記ステップサイズは、信号が1システムクロック周期内に伝播・通過する遅延ユニットの数であり、
前記静的キャリブレーション回路が、
キャリブレーションカウンタと、
キャリブレーションカウンタの値を比較して、ステップサイズを決定する、第1コンパレータと、
前記パルスエッジ制御回路における遅延制御回路を多重化する、遅延制御回路と、
前記パルスエッジ制御回路における遅延補償回路を多重化する、遅延補償回路と、
を含み、
前記動的キャリブレーション回路は、入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジが到来する際に、ステップサイズを動的かつリアルタイムに計算するために用いられ、
動的かつリアルタイムに計算されたステップサイズに応じて、入力ピンInput上のパルス信号に対する超高精度パルスの時間オフセット量を変更・制御し、
前記動的キャリブレーション回路が、
クロックエッジが到来する際に前記遅延チェーンにおける各遅延ユニットの出力値を記録する機能を有する、サンプリング回路と、
前記サンプリング回路から連続する2組の値を選択して、2つのキャリブレーションベクトルを形成するための、キャリブレーション制御回路と、
各キャリブレーションベクトルのキャリブレーション位置を計算し、ステップサイズを算出し、ここで、キャリブレーション位置とは、サンプリング回路によって前記遅延チェーンにおける各遅延ユニットの出力値をサンプリングする際に、入力ピンInput上の信号が遅延チェーンで伝播・通過する最後の遅延ユニットの位置である、第2コンパレータと、
を含むことを特徴とする、超高精度デジタルパルス信号発生回路。
【請求項2】
前記遅延チェーンが、直列の一連の遅延ユニットDLLによって構成され、前記セレクタが、シフト制御レジスタの値に基づいて、遅延ユニットの出力から1つを選択して、出力ピンOutputに接続し、前記遅延補償回路は、Inputピン上の信号が遅延チェーンに入る前、またはOutputピン上の信号が出力される前に配置されることを特徴とする、請求項1に記載の超高精度デジタルパルス信号発生回路。
【請求項3】
前記遅延チェーンの長さが2
n-1であり、すなわち、2
n-1個の遅延ユニットDLLを含み、ここで、n=1、2、...、各遅延ユニットDLLのパラメータが同じであることを特徴とする、請求項2に記載の超高精度デジタルパルス信号発生回路。
【請求項4】
前記キャリブレーションカウンタが、2つのキャリブレーションカウンタSTA_CAL_CNT1[2n:1]、STA_CAL_CNT2[2n:1]を含み、カウンタSTA_CAL_CNT1がシステムクロックドメインで動作し、カウンタSTA_CAL_CNT2の動作クロックが出力ピンOutputで生成される信号であり、
前記第1コンパレータが、キャリブレーションカウンタSTA_CAL_CNT1、STA_CAL_CNT2の値を比較し、ステップサイズを決定するために用いられることを特徴とする、請求項1~3のいずれかに記載の超高精度デジタルパルス信号発生回路。
【請求項5】
前記サンプリング回路が2段のレジスタSAP_REG1[2
n-1:1]、SAP_REG2[2
n-1:1]で構成され、各段に2
n-1個のサンプリングレジスタが含まれ、クロックエッジが到来する際に遅延チェーンにおける各遅延ユニットの出力値を記録する機能を有し、
前記キャリブレーション制御回路が、サンプリング回路のSAP_REG2レジスタから連続する2組の値を選択して、2つのキャリブレーションベクトルを形成するために用いられ、2つのキャリブレーション制御レジスタCAL_CNTL_REG1[n:1]、CAL_CNTL_REG2[n:1]、2つのセレクタMUX2、MUX3、及び2つのキャリブレーションベクトルレジスタCAL_VEC1[m:1]、CAL_VEC2[m:1]を含み、CAL_CNTL_REG1、CAL_CNTL_REG2の値を、それぞれα、β(αとβはいずれも≦2
n-mの範囲である)とすると、次のようになる:
CAL_VEC1[i]=SAP_REG2[α+i]、i=1、2、...、m (2)
CAL_VEC2[i]=SAP_REG2[β+i]、i=1、2、...、m (3)
ことを特徴とする、請求項1~3のいずれかに記載の超高精度デジタルパルス信号発生回路。
【請求項6】
ユーザプログラムによって読み取り、パルスエッジの位置を正確に制御するために必要なシフト制御レジスタSHIFT_CNTL_REGの値を算出するように、第1コンパレータ及び第2コンパレータによって算出されたステップサイズの結果を保存する、ステップサイズレジスタSTEP_SIZE_REG[n:1]をさらに含むことを特徴とする、請求項1~3のいずれかに記載の超高精度デジタルパルス信号発生回路。
【請求項7】
消費電力制御レジスタPM_CNTL_REG[n:1]をさらに含み、ここで、PM_CNTL_REG[3:1]が、回路の消費電力を節約するために、動的キャリブレーション回路、静的キャリブレーション回路のクロック及び遅延チェーンの入力をオフにし、PM_CNTL_REG[n:4]が、回路の消費電力を節約するために、入力ピンInput上で1回の動的キャリブレーションを実行するためのパルス周期数を制御することを特徴とする、請求項1~3のいずれかに記載の超高精度デジタルパルス信号発生回路。
【請求項8】
請求項1~7のいずれかに記載の回路を用いた超高精度デジタルパルス信号発生方法であって、
静的キャリブレーション法、動的キャリブレーション法により正確なステップサイズをユーザプログラムに提供して、入力ピンInput上のパルス信号に対する超高精度パルスの時間オフセット量を算出することで、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を正確に制御して、パルスの幅を正確に制御するという目的を達成し、ユーザプログラムによって算出された時間オフセット量の情報は、シフト制御レジスタSHIFT_CNTL_REGに書き込まれ、Inputピン上の入力信号が出力ピンOutputに到達するまでに通過する遅延ユニットの数を制御するために用いられることを特徴とする、超高精度デジタルパルス信号発生方法。
【請求項9】
静的キャリブレーション法を含み、
前記静的キャリブレーション法が、
パルスエッジ制御回路における遅延チェーンの入力を出力に接続することで、遅延チェーンが発振回路を構成し、出力ピンOutputに周期的なクロック信号を発生させる、ステップS101と、
遅延制御回路におけるシフト制御レジスタSHIFT_CNTL_REGの値Ωを設定し、出力ピンOutput上のクロック信号の周期を決定する、ステップS102と、
静的キャリブレーションのタイムスパン値Φを設定し、キャリブレーションカウントを開始し、Φの単位が1つのシステムクロック周期数であり、キャリブレーションカウンタSTA_CAL_CNT1、STA_CAL_CNT2が、静的キャリブレーションの開始と同時に0からカウントを開始し、STA_CAL_CNT1の値がΦに増加すると、STA_CAL_CNT1、STA_CAL_CNT2がカウントを停止する、ステップS103と、
第1コンパレータによってカウンタSTA_CAL_CNT1とSTA_CAL_CNT2の値を比較し、ステップサイズを決定して、ステップサイズレジスタSTEP_SIZE_REGに保存する、ステップS104と、
を含むことを特徴とする、請求項8に記載の超高精度デジタルパルス信号発生方法。
【請求項10】
動的キャリブレーション法を含み、
前記動的キャリブレーション法が、以下のステップを含む。
ステップS201:入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジに動的キャリブレーションの位置を設定する;立ち上がりエッジで実行するように設定し、次に、パルスエッジ制御回路における遅延チェーン上の各遅延ユニットの出力を、それぞれμ、λ番目のシステムクロック立ち上がりエッジでサンプリングし、ここで、μ、λ=1、2、3、...、その結果をSAP_REG2[2
n-1:1]に保存する。
ステップS202:ステップサイズレジスタSTEP_SIZE_REGにおけるStep_Sizeの初期値に従って、次のように設定し、ここで、Step_Sizeはステップサイズである。
CAL_CNTL_REG1=α=μ×Step_Size-Δ1 Δ1=1,2,3,...,Step_Size/2 (6)
CAL_CNTL_REG2=β=λ×Step_Size-Δ2 Δ2=1,2,3,...,Step_Size/2 (7)
ここで、Δ1は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでμ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ1個前の位置へ繰り上げることを示し、Δ2は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでλ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ2個前の位置へ繰り上げることを示す。
ステップS203:キャリブレーションベクトルCAL_VEC1、CAL_VEC2の値をそれぞれα、βとしてラッチし、入力ピンInput上の立ち上がりエッジまたは立ち下がりエッジの伝播位置を記録し、次のようになる。
CAL_VEC1[i]=SAP_REG2[α+i]α≦2
n-m、i=1,2,...,m (8)
CAL_VEC2[i]=SAP_REG2[β+i]β≦2
n-m、i=1,2,...,m (9)
ステップS204:まず、キャリブレーション完了条件を設定し、キャリブレーション完了条件として、CAL_VEC1、CAL_VEC2に値が「0」、「1」のビットが同時に存在すると、次のようになる。
ここで、CAL_VEC1に「1」の値、「0」の値が同時に存在することは、CAL_VEC1に、パルス立ち上がりエッジ後のμ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置、すなわち、1ビット目の「0」値の位置が記録されていることを意味し、CAL_VEC2に「1」の値、「0」の値が同時に存在することは、CAL_VEC2に、パルス立ち上がりエッジ後のλ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置、すなわち、1ビット目の「1」値の位置が記録されていることを意味する。
次に、第2コンパレータによって、式(10)、(11)を満たすCAL_VEC1における1ビット目の「0」値の位置、CAL_VEC2における1ビット目の「1」値の位置を見つけて、ステップサイズレジスタSTEP_SIZE_REGを更新する。2つの位置をそれぞれP1、P2とすると、次のようになる。
(λ-μ)×Step_Size=P2-P1 (12)
Step_Size=int((P2-P1)/(λ-μ)) (13)
ステップS205:ステップS204における式(10)、(11)の条件が満たされない場合、ステップS204における式(10)、(11)の条件が満たされるまで、Δ1、Δ2の値を変更してステップS202~ステップS204を繰り返すことを特徴とする、請求項8に記載の超高精度デジタルパルス信号発生方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、主にデジタル信号プロセッサ技術の分野、特に超高精度デジタルパルス信号発生回路及び方法に関するものである。
【背景技術】
【0002】
パルス幅変調(PWM、Pulse Width Modulation)は、デジタル出力を利用してアナログ信号のレベルを制御する方法であり、その機能は数学的にはデジタル-アナログ変換器(Digital-to-Analog Converter)と等価である。PWM技術は、周波数変換技術の核心技術の一つであり、測定、通信、電源/モーターの電力/速度制御及び変換などの多くの分野で広く応用され、典型的な応用としては、送電網の電力変換、周波数変換エアコン、スイッチング(デジタル)電源、ロボットモーターサーボ制御、スマートメーターなどがある。
【0003】
一般的に、デジタル信号プロセッサ(Digital Signal Processor、DSP)や他の集積回路においてパルス信号の幅を変調するために用いられるPWM回路は、1)カウンタ値を生成するための同期デジタルカウンタと、2)カウンタ値とプログラム可能な閾値を比較するためのデジタルコンパレータとの2つの典型的な部分を含む。カウンタ値が第1のプログラム可能な閾値に達する時、パルス信号(例えば、電圧または電流信号)が生成され、カウンタ値が第2のプログラム可能な閾値に達する時、前記パルス信号がオフされる。そこで、パルス信号の幅は、カウンタとコンパレータによって変調されることができる。
図1に、いくつかの典型的なPWM波形が示されている。
【0004】
カウンタはシステムクロックドメインで動作するため、従来のPWM回路によって生成されるパルスの時間精度は、システムクロック周期Tsysによって制限される。例えば、回路のシステムクロック周波数が100MHzである場合、パルスの精度は10nsである。しかし、高精度モーター制御、スイッチング電源制御、無停電電源(UPS)、及びデジタル-アナログ変換やPWM機能を必要とする他の用途などの高精度な用途においては、パルス精度が150ps以下に達することが要求される。150psのパルス精度を達成するには、従来のPWMのシステムクロック周波数は少なくとも6.7GHzである必要がある。集積回路のプロセス、消費電力、コストなどの要因の制限により、これを達成することはほとんど不可能である。
【0005】
システムクロック周波数を上げることなく高精度パルスを実現するには、通常遅延チェーンを使用して行われる。すなわち、信号に特定の遅延(例えば、150ps)を生成できる複数の専用回路ユニット(遅延ユニット)を直列に接続して遅延チェーンを構成し、遅延チェーンでの信号の経路(通過する遅延ユニットの数)を制御することにより、パルス信号の幅を正確に制御する。遅延ユニットの遅延δは、回路の動作電圧、温度、集積回路の製造プロセスなどの要因によって変化するため、回路動作中に、遅延チェーンでの制御信号の経路のパラメータやオフセット量を正確に計算するには、システムクロック周期と遅延ユニットの遅延δとの関係(ステップサイズStep_Size)を継続的に計算またはキャリブレーションする必要がある。Tsysとδとの関係は、次のように表される。
Step_Size=Tsys/δ (1)
【0006】
現在、業界では米国TI社、米国ADI社だけが、システムクロック周波数を上げることなく、時間精度150ps級の超高精度PWMパルスを実現している。米国TI社は、純粋なソフトウェアの時間精度キャリブレーション法を採用しており、ユーザプログラムは、ステップサイズStep_Sizeを計算するために、一連のキャリブレーションプログラムを周期的に実行する必要がある。キャリブレーションプログラムは、一定のハードウェアリソースとシステム実行時間を消費するだけでなく、固定モードと周期でキャリブレーションするしかできなく、時間精度の変化を適時に反映することができない。ADI社は、全ハードウェアを採用してキャリブレーションメカニズムを実現するが、キャリブレーションを実現するために、エッジをシフトするように遅延チェーンに基づいて別途の遅延ユニットを追加する必要があり、回路の物理的設計の複雑度を増加させるだけでなく、追加された遅延ユニット自体も電圧、温度、プロセスなどの要因の影響を受け、さらにキャリブレーション後の時間精度に影響を与える。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明が解決しようとする技術的問題は、従来技術に存在する技術的問題を目指して、本発明は、構造が簡単で、実現が容易であり、精度が高く、サポートされるパルス周波数範囲が広い超高精度デジタルパルス信号発生回路及び方法を提供することにある。
【課題を解決するための手段】
【0008】
上記の技術的問題を解決するために、本発明は、以下の技術的手段を採用する。
【0009】
入力ピンInput上の信号に一定量の遅延を発生させ、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を正確に制御して、パルスの幅を正確に制御し、超高精度パルスを生成する、パルスエッジ制御回路と、
システムの電源投入・動作開始時に、システム動作クロック周期とパルスエッジ制御回路における遅延ユニットの遅延との関係を示すステップサイズ情報を計算して、ステップサイズ情報を保存し、ここで、前記ステップサイズ情報は、信号が1システムクロック周期内に伝播・通過する遅延ユニットの数である、静的キャリブレーション回路と、
入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジが到来する際に、ステップサイズ情報を動的に計算する、動的キャリブレーション回路と、
を含む超高精度デジタルパルス信号発生回路である。
【0010】
本発明の回路のさらなる改良として、前記パルスエッジ制御回路は、遅延チェーン、遅延制御回路、及び遅延補償回路を含む。前記遅延チェーンは、直列の一連の遅延ユニットDLLによって構成され、前記遅延制御回路は、シフト制御レジスタとセレクタを含み、前記シフト制御レジスタは、入力ピンInputからの信号が出力ピンに到達するまでに通過する遅延ユニットの数を制御する。前記セレクタは、シフト制御レジスタの値に基づいて、遅延ユニットの出力から1つを選択して、出力ピンOutputに接続する。前記遅延補償回路は、Inputピン上の信号が遅延チェーンに入る前、またはOutputピン上の信号が出力される前に配置され、導入された遅延の影響を相殺するために使用される。
【0011】
本発明の回路のさらなる改良として、前記遅延チェーンにおける遅延ユニットDLLの数は2n-1であり、ここで、n=1、2、...、各遅延ユニットDLLのパラメータは同じである。
【0012】
本発明の回路のさらなる改良として、前記静的キャリブレーション回路は、
システムクロックドメインで動作する、キャリブレーションカウンタSTA_CAL_CNT1[2n:1]と、
動作クロックが出力ピンOutputで生成される信号である、キャリブレーションカウンタSTA_CAL_CNT2[2n:1]と、
キャリブレーションカウンタSTA_CAL_CNT1とSTA_CAL_CNT2の値を比較して、ステップサイズを決定する、第1コンパレータと、
パルスエッジ制御回路における遅延制御回路を多重化する、遅延制御回路と、
パルスエッジ制御回路における遅延補償回路を多重化する、遅延補償回路と、
を含む。
【0013】
本発明の回路のさらなる改良として、前記動的キャリブレーション回路は、
2段のレジスタSAP_REG1[2n-1:1]、SAP_REG2[2n-1:1]で構成され、各段に2n-1個のサンプリングレジスタが含まれ、クロックエッジが到来する際に遅延チェーンにおける各遅延ユニットの出力値を記録する機能を有する、サンプリング回路と、
キャリブレーション制御回路であって、サンプリング回路のSAP_REG2レジスタから連続する2組の値を選択して、2つのキャリブレーションベクトルを形成し、2つのキャリブレーション制御レジスタCAL_CNTL_REG1[n:1]、CAL_CNTL_REG2[n:1]、2つのセレクタMUX2、MUX3、及び2つのキャリブレーションベクトルレジスタCAL_VEC1[m:1]、CAL_VEC2[m:1]を含み、CAL_CNTL_REG1、CAL_CNTL_REG2の値を、それぞれα、β(α、β≦2n-m)とすると、次のようになる:
CAL_VEC1[i]=SAP_REG2[α+i]、i=1、2、...、m (2)
CAL_VEC2[i]=SAP_REG2[β+i]、i=1、2、...、m (3)
、キャリブレーション制御回路と、
各キャリブレーションベクトルのキャリブレーション位置を計算し、ステップサイズを算出し、ここで、キャリブレーション位置とは、サンプリング回路によって遅延チェーンにおける各遅延ユニットの出力値をサンプリングする際に、入力ピンInput上の信号が遅延チェーン上を伝播・通過する最後の遅延ユニットの位置である、第2コンパレータと、
を含む。
【0014】
本発明の回路のさらなる改良として、ユーザプログラムによって読み取り、パルスエッジの位置を正確に制御するために必要なシフト制御レジスタSHIFT_CNTL_REGの値を算出するように、第1コンパレータ及び第2コンパレータによって算出されたステップサイズの結果を保存する、ステップサイズレジスタSTEP_SIZE_REG[n:1]をさらに含む。
【0015】
本発明の回路のさらなる改良として、消費電力制御レジスタPM_CNTL_REG[n:1]をさらに含む。ここで、PM_CNTL_REG[3:1]は、回路の消費電力を節約するために、動的キャリブレーション回路、静的キャリブレーション回路のクロック及び遅延チェーンの入力をオフにする。PM_CNTL_REG[n:4]は、回路の消費電力を節約するために、入力ピンInput上で1回の動的キャリブレーションを実行するためのパルス周期数を制御する。
【0016】
本発明はさらに、超高精度デジタルパルス信号発生方法であって、静的キャリブレーション法、動的キャリブレーション法により正確なステップサイズ情報をユーザプログラムに提供して、入力ピンInput上のパルス信号に対する超高精度パルスの時間オフセット量を算出し、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を正確に制御することにより、パルスの幅を正確に制御するという目的を達成する、超高精度デジタルパルス信号発生方法を提供する。ユーザプログラムによって算出された時間オフセット量の情報は、シフト制御レジスタSHIFT_CNTL_REGに書き込まれ、Inputピン上の入力信号が出力ピンOutputに到達するまでに通過する遅延ユニットの数を制御するために用いられる。
【0017】
本発明の方法のさらなる改良として、静的キャリブレーション法を含み、前記静的キャリブレーション法は、以下のステップを含む。
ステップS101:パルスエッジ制御回路における遅延チェーンの入力を出力に接続することで、遅延チェーンが発振回路を構成し、出力ピンOutputに周期的なクロック信号を発生させる。
ステップS102:遅延制御回路におけるシフト制御レジスタSHIFT_CNTL_REGの値Ωを設定し、出力ピンOutput上のクロック信号の周期を決定する。
ステップS103:静的キャリブレーションのタイムスパン値Φを設定し、キャリブレーションカウントを開始し、Φの単位は1つのシステムクロック周期数であり、キャリブレーションカウンタSTA_CAL_CNT1、STA_CAL_CNT2は、静的キャリブレーションの開始と同時に0からカウントを開始し、STA_CAL_CNT1の値がΦに増加すると、STA_CAL_CNT1、STA_CAL_CNT2はカウントを停止する。
ステップS104:第1コンパレータによってカウンタSTA_CAL_CNT1とSTA_CAL_CNT2の値を比較し、ステップサイズを決定して、ステップサイズレジスタSTEP_SIZE_REGに保存する。
【0018】
本発明の方法のさらなる改良として、動的キャリブレーション法を含み、前記動的キャリブレーション法は、以下のステップを含む。
ステップS201:入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジに動的キャリブレーションの位置を設定する;立ち上がりエッジで実行するように設定し、次に、パルスエッジ制御回路における遅延チェーン上の各遅延ユニットの出力を、それぞれμ、λ(μ、λ=1、2、3、...)番目のシステムクロック立ち上がりエッジでサンプリングし、その結果をSAP_REG2[2
n-1:1]に保存する。
ステップS202:ステップサイズレジスタSTEP_SIZE_REGにおけるStep_Sizeの初期値に従って、次のように設定し、ここで、Step_Sizeはステップサイズである。
CAL_CNTL_REG1=α=μ×Step_Size-Δ1、Δ1=1,2,3,...,Step_Size/2 (6)
CAL_CNTL_REG2=β=λ×Step_Size-Δ2、Δ2=1,2,3,...,Step_Size/2 (7)
ここで、Δ1は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでμ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ1個前の位置へ繰り上げることを示し、Δ2は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでλ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ2個前の位置へ繰り上げることを示す。
ステップS203:キャリブレーションベクトルCAL_VEC1、CAL_VEC2の値をラッチし、入力ピンInput上の立ち上がりエッジまたは立ち下がりエッジの伝播位置を記録し、次のようになる。
CAL_VEC1[i]=SAP_REG2[α+i]、α≦2
n-m、i=1、2、...、m (8)
CAL_VEC2[i]=SAP_REG2[β+i]、β≦2
n-m、i=1、2、...、m (9)
ステップS204:まず、キャリブレーション完了条件を設定し、キャリブレーション完了条件として、CAL_VEC1、CAL_VEC2に値が「0」、「1」のビットが同時に存在すると、次のようになる。
ここで、CAL_VEC1に「1」の値、「0」の値が同時に存在することは、CAL_VEC1に、パルス立ち上がりエッジ後のμ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置(1ビット目の「0」値の位置)が記録されていることを意味し、CAL_VEC2に「1」の値、「0」の値が同時に存在することは、CAL_VEC2に、パルス立ち上がりエッジ後のλ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置(1ビット目の「1」値の位置)が記録されていることを意味する。
次に、第2コンパレータによって、式(10)、(11)を満たすCAL_VEC1における1ビット目の「0」値の位置、CAL_VEC2における1ビット目の「1」値の位置を見つけて、ステップサイズレジスタSTEP_SIZE_REGを更新する。2つの位置をそれぞれP1、P2とすると、次のようになる。
(λ-μ)×Step_Size=P2-P1 (12)
Step_Size=int((P2-P1)/(λ-μ)) (13)
ステップS205:ステップS204における式(10)、(11)の条件が満たされない場合、ステップS204における式(10)、(11)の条件が満たされるまで、Δ1、Δ2の値を変更してステップS202~ステップS204を繰り返す。
【発明の効果】
【0019】
従来技術と比べて、本発明は、以下の利点を有する。
【0020】
1、本発明の超高精度デジタルパルス信号発生回路及び方法は、構造が簡単で、精度が高く、サポートされるパルス周波数範囲が広く、ハードウェアキャリブレーション回路に基づいて、システム動作クロック周期と遅延ユニットの遅延との関係(ステップサイズ)を計算またはキャリブレーションする方法である。本発明におけるハードウェアキャリブレーション回路は、静的キャリブレーション回路と動的キャリブレーション回路を含む。この回路はソフトウェアの介入を必要とせず、遅延チェーンに基づいて別途の遅延ユニットを追加する必要がなく、使いやすく、回路構造が簡単である。
【0021】
2、本発明の超高精度デジタルパルス信号発生回路及び方法は、簡単、直観的、実現しやすいキャリブレーション方法であり、静的キャリブレーション法と動的キャリブレーション法を含み、実際の作業環境やユーザの要求に応じて、遅延精度の変化をリアルタイムに反映し、遅延精度データをユーザプログラムにフィードバックして、超高精度パルスのオフセット量を計算・制御して、パルスの幅を正確に制御することができる。
【図面の簡単な説明】
【0022】
【
図1】一般的に使用される対称的かつ周期的なPWM波形の概略図である。
【
図3】本発明の方法における高精度パルス発生の概略図である。
【
図4】本発明の方法における静的キャリブレーション法の概略図である。
【
図5】本発明の方法における動的キャリブレーション法の概略図である。
【発明を実施するための形態】
【0023】
以下、図面及び具体的な実施形態を参照して、本発明をさらに詳細に説明する。
【0024】
図2に示すように、本発明の超高精度デジタルパルス信号発生回路は、パルスエッジ制御回路と、静的キャリブレーション回路と、動的キャリブレーション回路とを含む。
【0025】
パルスエッジ制御回路は、入力ピンInput上の信号(例えば、従来のPWM出力信号)に一定量の遅延を発生させ、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を正確に制御して、パルスの幅を正確に制御し、超高精度パルスを生成する。
【0026】
静的キャリブレーション回路は、システムの電源投入・動作開始時に、システム動作クロック周期と遅延ユニットの遅延との関係を示すステップサイズ情報、すなわち、信号が1システムクロック周期内に伝播・通過できる遅延ユニットの数を計算し、情報をステップサイズレジスタSTEP_SIZE_REGに保存する。
【0027】
動的キャリブレーション回路は、入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジが到来する際に、ステップサイズ情報を動的かつリアルタイムに計算する。
【0028】
具体的な応用例において、パルスエッジ制御回路は、遅延チェーン、遅延制御回路、及び遅延補償回路を含む。
【0029】
遅延チェーンは、直列の一連の遅延ユニット(DLL)によって構成され、長さが2n-1(n=1、2、...)である。各遅延ユニットのパラメータは同じであり、遅延ユニットの遅延(信号が該ユニットを通過するのに必要な時間)δは、回路の動作電圧、温度、集積回路の製造プロセスなどの要因によって変化する。遅延チェーンの信号入力は、入力ピンInputから供給され、かつ信号は出力ピンOutputに出力される。回路が静的キャリブレーションモードで動作している場合、入力ピンInput上の信号は出力ピンOutputから供給される。
【0030】
遅延制御回路は、シフト制御レジスタSHIFT_CNTL_REG[n:1]とセレクタMUX1を含む。シフト制御レジスタは、入力ピンInputからの信号が出力ピンに到達するまでに通過する遅延ユニットの数を制御する。通常の状況では、シフト制御レジスタはユーザプログラムによって書き込まれ、静的キャリブレーションモードでは、静的キャリブレーション回路によって設定される。セレクタMUX1は、SHIFT_CNTL_REGの値に応じて、2n-1個の遅延ユニットの出力から1つを選択して、出力ピンOutputに接続する。
【0031】
遅延補償回路では、信号の入力ピンInputから出力ピンOutputへの経路に他の遅延(例えば、セレクタMUX1によって生成された遅延など)が導入されているため、Inputピン上の信号が遅延チェーンに入る前、またはOutputピン上の信号が出力される前に、遅延補償回路を加えて、導入された遅延の影響を相殺することができる。
【0032】
具体的な応用例において、静的キャリブレーション回路は、
システムクロックドメインで動作する、キャリブレーションカウンタSTA_CAL_CNT1[2n:1]と、
動作クロックが出力ピンOutputで生成される信号である、キャリブレーションカウンタSTA_CAL_CNT2[2n:1]と、
キャリブレーションカウンタSTA_CAL_CNT1とSTA_CAL_CNT2の値を比較して、ステップサイズを決定する、第1コンパレータと、
パルスエッジ制御回路における遅延制御回路を多重化する、遅延制御回路と、
パルスエッジ制御回路における遅延補償回路を多重化する、遅延補償回路と、
を含む。
【0033】
具体的な応用例において、動的キャリブレーション回路は、サンプリング回路と、キャリブレーション制御回路と、第2コンパレータとを含む。
【0034】
サンプリング回路は、2段のレジスタSAP_REG1[2n-1:1]、SAP_REG2[2n-1:1]で構成され、各段に2n-1個のサンプリングレジスタが含まれ、クロックエッジが到来する際に遅延チェーンにおける各遅延ユニットの出力値を記録する機能を有する。ユニットはインバータであるため、定常状態では、連続する2つの遅延ユニットの出力が逆になり、計算の便宜上、サンプリングレジスタSAP_REG2[2i+1](i=0、1、2、...)の出力によってインバータを駆動し、本発明でいうサンプリングレジスタSAP_REG2の奇数ビットの出力は、前記インバータの出力である。
【0035】
キャリブレーション制御回路は、サンプリング回路のSAP_REG2レジスタから連続する2組の値を選択して、2つのキャリブレーションベクトルを形成する機能を有し、2つのキャリブレーション制御レジスタCAL_CNTL_REG1[n:1]、CAL_CNTL_REG2[n:1]、2つのセレクタMUX2、MUX3、及び2つのキャリブレーションベクトルレジスタCAL_VEC1[m:1]、CAL_VEC2[m:1]を含む。CAL_CNTL_REG1、CAL_CNTL_REG2の値を、それぞれα、β(α、β≦2n-m)とすると、次のようになる。
CAL_VEC1[i]=SAP_REG2[α+i]、i=1、2、...、m (2)
CAL_VEC2[i]=SAP_REG2[β+i]、i=1、2、...、m (3)
【0036】
前記第2コンパレータは、特定のルールに従って各キャリブレーションベクトルのキャリブレーション位置を計算し、ステップサイズを算出する機能を有する。キャリブレーション位置とは、サンプリング回路によって遅延チェーンにおける各遅延ユニットの出力値をサンプリングする際に、入力ピンInput上の信号が遅延チェーン上を伝播・通過する最後の遅延ユニットの位置である。
【0037】
本発明は、ステップサイズレジスタSTEP_SIZE_REG[n:1]と、消費電力制御レジスタPM_CNTL_REG[n:1]とをさらに含む。
【0038】
ユーザプログラムによって読み取り、パルスエッジの位置を正確に制御するために必要なシフト制御レジスタSHIFT_CNTL_REGの値を算出するように、ステップサイズレジスタは、コンパレータによって算出されたステップサイズの結果を保存する。
【0039】
PM_CNTL_REG[3:1]は、回路の消費電力を節約するために、動的キャリブレーション回路、静的キャリブレーション回路のクロック及び遅延チェーンの入力をオフにする。PM_CNTL_REG[n:4]は、回路の消費電力を節約するために、入力ピンInput上で1回の動的キャリブレーションを実行するためのパルス周期数を制御する。
【0040】
本発明における回路は、通常動作モードと、静的キャリブレーションモードと、動的キャリブレーションモードとの3つの動作モードを有する。
【0041】
通常動作モードでは、ユーザプログラムは、ステップサイズStep_Size情報に従って入力ピンInput上のパルス信号に対する超高精度パルスの時間オフセット量を算出し、SHIFT_CNTL_REGレジスタの値を変更することにより、パルス信号の幅を正確に制御し、超高精度パルスを生成する。
【0042】
静的キャリブレーションモードは、通常動作モードと相互に排他的であり、システムの電源投入・動作開始時に、初期ステップサイズを算出してステップサイズレジスタSTEP_SIZE_REGに保存する機能を有する。
【0043】
動的キャリブレーションモードでは、通常動作モードでステップサイズStep_Sizeの値を動的に算出して、回路の動作電圧、温度、集積回路の製造プロセスなどの要因によるパルス精度への影響を排除する。
【0044】
本発明でいう超高精度デジタルパルス信号発生方法は、上記の回路構造に基づいてステップサイズをリアルタイムに計算またはキャリブレーションし、システムクロック周期よりも高い精度のデジタルパルスを生成する方法であり、静的キャリブレーション法と動的キャリブレーション法を含む。すなわち、本発明は、パルスエッジ制御回路、静的キャリブレーション回路、動的キャリブレーション回路に基づいて、静的及び動的な方法により、ステップサイズを動的かつリアルタイムに計算またはキャリブレーションし、システムクロック周期よりも高い精度のデジタルパルスを生成する方法である。ステップサイズStep_Size情報は、ユーザプログラムによって読み取り、パルス幅を正確に制御するために必要なシフト制御レジスタSHIFT_CNTL_REGの値を算出するように、ステップサイズレジスタSTEP_SIZE_REGに保存されている。
【0045】
ユーザは、ステップサイズレジスタSTEP_SIZE_REGの値に応じて、超高精度パルスのオフセット量(シフト制御レジスタSHIFT_CNTL_REGの値)を変更・制御するだけで、入力ピンInputからの信号の立ち上がりエッジまたは立ち下がりエッジが遅延される時間を正確に制御して、パルス幅を正確に制御することができる。SHIFT_CNTL_REGは、入力信号が出力ピンに到達するまでに通過する遅延ユニットの数を制御する。
【0046】
遅延ユニットの遅延δ=150ps、SHIFT_CNTL_REG=44とすると、入力ピンInputからの信号の立ち上がりエッジまたは立ち下がりエッジは、時間t=44×δ=6600psだけ延長される。
【0047】
図3に、高精度パルス発生の概略図が示される。最終的に発生する超高精度パルスは、以下の3つの状況に分けられる。
Case1:パルス立ち上がりエッジのみを超高精度に制御する
Pulse_High=Input && Output;
Case2:パルス立ち下がりエッジのみを超高精度に制御する
Case3:パルス立ち上がりエッジと立ち下がりエッジを同時に超高精度に制御する
Pulse_Both=Output;
【0048】
具体的な応用例において、静的キャリブレーションは、システムの電源投入・動作開始時にステップサイズStep Sizeを算出する機能を有する。
図4に、静的キャリブレーション法の模式図が示される。そのプロセスは以下の4つのステップを含む。
【0049】
ステップS101:パルスエッジ制御回路における遅延チェーンの入力を出力に接続することで、遅延チェーンが発振回路を構成し、出力ピンOutputに周期的なクロック信号を発生させる。
【0050】
ステップS102:遅延制御回路におけるシフト制御レジスタSHIFT_CNTL_REGの値Ωを設定し、出力ピンOutput上のクロック信号の周期を決定する。
【0051】
ステップS103:静的キャリブレーションのタイムスパン値Φを設定し(単位は1つのシステムクロック周期数であり)、キャリブレーションカウントを開始する。キャリブレーションカウンタSTA_CAL_CNT1、STA_CAL_CNT2は、静的キャリブレーションの開始と同時に0からカウントを開始する。STA_CAL_CNT1の値がΦに増加すると、STA_CAL_CNT1、STA_CAL_CNT2はカウントを停止する。
【0052】
ステップS104:第1コンパレータによってカウンタSTA_CAL_CNT1とSTA_CAL_CNT2の値を比較し、ステップサイズを決定して、ステップサイズレジスタSTEP_SIZE_REGに保存する。
【0053】
具体的な応用例として、システム動作クロック周期Tsys=4.5ns、遅延ユニットの遅延δ=150ps、シフト制御レジスタSHIFT_CNTL_REG=Ω=0x58、静的キャリブレーションのタイムスパンΦ=0x5678とすると、STA_CAL_CNT1=Φの場合、カウンタSTA_CAL_CNT2=Ψ=0x0EBDとなる。次のようになる。
Tsys×Φ=2×δ×Ω×Ψ (4)
Step_Size=int(Tsys/δ)=int(2×Ω×Ψ/Φ)=30 (5)
【0054】
具体的な応用例において、動的キャリブレーションは、入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジが到来した後、パルスエッジの伝播位置を動的かつリアルタイムに見つけ、ステップサイズStep_Sizeを動的に算出する。
図5に、動的キャリブレーション法の模式図が示される。そのプロセスは、以下の5つのステップを含む。
【0055】
ステップS201:入力ピンInput上の各パルスの立ち上がりエッジまたは立ち下がりエッジに動的キャリブレーションの位置を設定する。立ち上がりエッジで実行するように設定する。次に、パルスエッジ制御回路における遅延チェーン上の各遅延ユニットの出力を、それぞれμ、λ(μ、λ=1、2、3、...)番目のシステムクロック立ち上がりエッジでサンプリングし、その結果をSAP_REG2[2n-1:1]に保存する。
【0056】
ステップS202:ステップサイズレジスタSTEP_SIZE_REGにおけるStep_Sizeの初期値に従って、次のように設定する。
CAL_CNTL_REG1=α=μ×Step_Size-Δ1、Δ1=1,2,3,...,Step_Size/2 (6)
CAL_CNTL_REG2=β=λ×Step_Size-Δ2、Δ2=1,2,3,...,Step_Size/2 (7)
ここで、Δ1は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでμ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ1個前の位置へ繰り上げることを示し、Δ2は、遅延チェーンで、入力ピンInput上のパルスの立ち上がりエッジまたは立ち下がりエッジが遅延チェーンでλ個の完了したクロック周期を伝播する際に伝播された位置に対して、Δ2個前の位置へ繰り上げることを示す。
【0057】
ステップS203:キャリブレーションベクトルCAL_VEC1、CAL_VEC2の値をラッチし、入力ピンInput上の立ち上がりエッジまたは立ち下がりエッジの伝播位置を記録し、次のようになる。
CAL_VEC1[i]=SAP_REG2[α+i]、α≦2n-m、i=1、2、...、m (8)
CAL_VEC2[i]=SAP_REG2[β+i]、β≦2n-m、i=1、2、...、m (9)
【0058】
ステップS204:まず、キャリブレーション完了条件を設定する。キャリブレーション完了条件として、CAL_VEC1、CAL_VEC2に値が「0」、「1」のビットが同時に存在すると、次のようになる。
【0059】
式(10)は、CAL_VEC1[m:1]におけるmビットデータに対してビットごとのOR演算を行った結果が1、かつビットごとのAND演算を行った結果が0であることを表し、式(11)は、CAL_VEC2[m:1]におけるmビットデータに対してビットごとのOR演算を行った結果が1、かつビットごとのAND演算を行った結果が0であることを表す。
【0060】
ここで、CAL_VEC1に「1」の値、「0」の値が同時に存在することは、CAL_VEC1に、パルス立ち上がりエッジ後のμ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置(1ビット目の「0」値の位置)が記録されていることを意味し、CAL_VEC2に「1」の値、「0」の値が同時に存在することは、CAL_VEC2に、パルス立ち上がりエッジ後のλ番目のシステムクロック立ち上がりエッジが到来する際のパルス立ち上がりエッジの伝播位置(1ビット目の「1」値の位置)が記録されていることを意味する。
【0061】
次に、第2コンパレータによって、式(10)、(11)を満たすCAL_VEC1における1ビット目の「0」値の位置、CAL_VEC2における1ビット目の「1」値の位置を見つけて、ステップサイズレジスタSTEP_SIZE_REGを更新する。2つの位置をそれぞれP1、P2とすると、次のようになる。
(λ-μ)×Step_Size=P2-P1 (12)
Step_Size=int((P2-P1)/(λ-μ)) (13)
【0062】
ステップS205:ステップS204における式(10)、(11)の条件が満たされない場合(例えば、キャリブレーションベクトルCAL_VEC1の各ビットの値が「1」であり、またはキャリブレーションベクトルCAL_VEC2の各ビットの値が「0」である)、ステップ204における式(10)、(11)の条件が満たされるまで、Δ1、Δ2の値を変更(例えば、Δ1の値から1を引く)してステップS202~ステップS204を繰り返す。
【0063】
本発明に係る方法及び回路の基本的な動作フローは以下のとおりである。
【0064】
静的キャリブレーションを開始する。電源投入の開始時に、初期ステップサイズStep_Sizeを算出する。
【0065】
通常動作モードに入る。ユーザプログラムを起動して高精度なパルス幅制御を行う。ユーザプログラムは、シフト制御レジスタSHIFT_CNTL_REGの値を変更することにより、入力ピンInput上の信号(例えば、従来のPWMからの出力信号)に一定量の遅延を発生させ、パルス信号の立ち上がりエッジと立ち下がりエッジの位置を正確に制御することで、パルスの幅を正確に制御し、超高精度パルスを生成する。
【0066】
動的キャリブレーションを開始する。動作温度、動作電圧の変動または製造プロセスの要因が、遅延ユニットの遅延δ値、すなわち、パルスの時間精度に大きな影響を与える場合、通常動作モードで動的キャリブレーションモードを始動して、パルス幅をリアルタイムかつ正確に制御することができる。
【0067】
上記は本発明の好ましい実施形態にすぎず、本発明の保護範囲は上記の実施形態に限定されず、本発明の思想に基づくすべての技術的手段は本発明の保護範囲に属する。当業者にとって、本発明の原理から逸脱することのないいくつかの改善及び修正は、本発明の保護範囲と見なされるべきであることに留意されたい。