(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-04-12
(45)【発行日】2024-04-22
(54)【発明の名称】信号処理装置及びその駆動制御方法
(51)【国際特許分類】
H03K 19/173 20060101AFI20240415BHJP
H03K 5/135 20060101ALI20240415BHJP
【FI】
H03K19/173 130
H03K5/135
(21)【出願番号】P 2020088309
(22)【出願日】2020-05-20
【審査請求日】2023-04-24
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100125254
【氏名又は名称】別役 重尚
(72)【発明者】
【氏名】坂東 和馬
(72)【発明者】
【氏名】堀川 洋平
【審査官】工藤 一光
(56)【参考文献】
【文献】特表2004-531149(JP,A)
【文献】特開2015-230423(JP,A)
【文献】特開2021-118459(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H03K19/173-19/17796
H03K5/135
G06F15/80
G06F9/38
G06F1/26-1/3296
(57)【特許請求の範囲】
【請求項1】
汎用演算器を有する信号処理装置であって、
前記汎用演算器は、
第1の入力信号の遅延量を調整するための第1の経路に設けられる複数の第1の遅延素子と、第2の入力信号の遅延量を調整するための第2の経路に設けられる第2の遅延素子と、前記第1及び第2の経路の一方で排他的に使用することが可能な共有遅延素子と、を有する遅延調整部と、
前記遅延調整部から出力された前記第1及び第2の入力信号を用いて演算する演算部と、を備え
、
前記遅延調整部は、前記第1及び第2の入力信号の夫々の遅延調整可能範囲が異なり、
前記遅延調整部は、前記第1の入力信号の遅延調整量が所定値より大きい場合、前記第2の入力信号の遅延調整量を、その遅延調整可能範囲の最小値とし、前記第1の遅延素子と前記共有遅延素子とを使用して前記第1の入力信号の遅延調整量を前記所定値より大きい遅延調整量とすることを特徴とする信号処理装置。
【請求項2】
前記遅延調整部は、前記第1の入力信号の遅延調整量が所定値
以下の場合、
前記第1の遅延素子を使用して前記共有遅延素子を使用せずに前記第1の入力信号の遅延量を調整し、前記第2の遅延素子と前記共有遅延素子とを使用して前記第2の入力信号の遅
延量を
調整することを特徴とする請求項
1に記載の信号処理装置。
【請求項3】
複数の前記汎用演算器を用いて所定の処理を行う信号処理回路を更に持つことを特徴とする請求項1
または2に記載の信号処理装置。
【請求項4】
汎用演算器を有する信号処理装置の駆動制御方法であって、
前記汎用演算器は、遅延調整部と演算部を備え、
前記遅延調整部において、
第1の経路に設けられる複数の第1の遅延素子により第1の入力信号の遅延量を調整する第1の調整ステップと、
第2の経路に設けられる第2の遅延素子により第2の入力信号の遅延量を調整する第2の調整ステップと、
共有遅延素子を、前記第1及び第2の経路の一方で排他的に使用する使用ステップとを実行し、
前記演算部において、
前記遅延調整部から出力された前記第1及び第2の入力信号を用いて演算する演算ステップを実行
し、
前記遅延調整部において、
前記第1及び第2の入力信号の夫々の遅延調整可能範囲が異なり、
前記第1の入力信号の遅延調整量が所定値より大きい場合、前記第2の入力信号の遅延調整量を、その遅延調整可能範囲の最小値とし、前記第1の遅延素子と前記共有遅延素子とを使用して前記第1の入力信号の遅延調整量を前記所定値より大きい遅延調整量とする第3の調整ステップを実行することを特徴とする駆動制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、信号処理装置及びその駆動制御方法に関し、特に、再構成可能な回路を用いて信号処理を行う信号処理装置及びその駆動制御方法に関する。
【背景技術】
【0002】
従来より、回路の内部機能を自由に構成することができるFPGA(Field Programmable Gate Array)またはPLD(Programmable Logic Device)等のプログラマブル回路が知られている。
【0003】
プログラマブル回路は、例えば内部に複数持つ要素回路であるALU(Arithmetic Logic Unit)を使用して所望の処理回路を実現することができる。また、プログラマブル回路では、ALUの機能を規定するコンフィギュレーション情報を書き換えることで処理回路を切り替えることが可能となる。
【0004】
例えば特許文献1では、コンフィギュレーション情報をシフトレジスタの構成で各ALUに伝搬し、処理回路を切り替えている。また、各ALUはコンフィギュレーション情報の書き換えが許可された時のみ書き換えを行うため、プログラマブル回路は、所望のALUのみコンフィギュレーション情報の書き換えを行うことができる。
【0005】
また、プログラマブル回路は、所望の処理回路を実現するように演算の自由度を確保する必要がある。このため、プログラマブル回路は、1つの処理回路に特化した専用回路であるASIC(Application Specific Integrated Circuit)に比べて回路規模が大きくなる。これに対し、例えば特許文献2では、ALUの出力を入力にフィードバックする経路にある遅延素子を削除することで、プログラマブル回路全体の回路規模を削減している。
【先行技術文献】
【特許文献】
【0006】
【文献】特開2006-25379号公報
【文献】特開2005-276854号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、特許文献2のように遅延素子を削除する場合、フィードバックする経路において遅延調整を行うことができない。
【0008】
そこで本発明は上記課題に鑑みて、プログラマブル回路の回路規模を抑えることができる信号処理装置及びその駆動制御方法を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の請求項1に係る信号処理装置は、汎用演算器を有する信号処理装置であって、前記汎用演算器は、第1の入力信号の遅延量を調整するための第1の経路に設けられる複数の第1の遅延素子と、第2の入力信号の遅延量を調整するための第2の経路に設けられる第2の遅延素子と、前記第1及び第2の経路の一方で排他的に使用することが可能な共有遅延素子と、を有する遅延調整部と、前記遅延調整部から出力された前記第1及び第2の入力信号を用いて演算する演算部と、を備え、前記遅延調整部は、前記第1及び第2の入力信号の夫々の遅延調整可能範囲が異なり、前記遅延調整部は、前記第1の入力信号の遅延調整量が所定値より大きい場合、前記第2の入力信号の遅延調整量を、その遅延調整可能範囲の最小値とし、前記第1の遅延素子と前記共有遅延素子とを使用して前記第1の入力信号の遅延調整量を前記所定値より大きい遅延調整量とすることを特徴とする。
【発明の効果】
【0011】
本発明によれば、プログラマブル回路全体の回路規模を抑えることができる信号処理装置及びその駆動制御方法を提供することができる。
【図面の簡単な説明】
【0012】
【
図1】実施例1に係る信号処理装置の構成を示すブロック図である。
【
図2】
図1におけるプログラマブル回路部において実現される、距離マップ形成処理のフローチャートである。
【
図4】
図3における遅延調整部の回路構成を説明するための図である。
【
図5】実施例2に係る遅延調整部の、A側入力信号側の回路構成を説明するための図である。
【
図6】プログラマブル回路部において実現される、2個のALUを使用して作られたパルス生成回路の構成を示すブロック図である。
【
図7】プログラマブル回路部の少なくとも1つのALUを用いて実現された一般的な補正回路を説明するための図である。
【
図8】従来の遅延調整部の回路構成を説明するための図である。
【
図9】従来の遅延調整部の、A側入力信号側の回路構成を説明するための図である。
【発明を実施するための形態】
【0013】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。なお、以下に説明する実施形態は例示であり、本発明は実施形態に記載された構成に限定するものではない。
【0014】
<実施例1>
以下、図を参照して、本実施例に係る信号処理装置100及びその駆動制御方法について説明する。
【0015】
図1は、信号処理装置100の構成を示すブロック図である。
【0016】
図1において、信号処理装置100は、プログラマブル回路部101、コンフィギュレーション制御部103、タイミング制御部104、回路情報記憶部113、データフロー制御部108から構成される。
【0017】
プログラマブル回路部101(信号処理回路)は、複数のデータ記憶部112a~112iと、補正値の保持やラインバッファとして使用できるデータ記憶部114と、要素回路である複数のALU102a~102iで構成される。以下、データ記憶部112a~112iを総称する場合は単にデータ記憶部112と呼び、ALU102a~102iを総称する場合は単にALU102と呼ぶ。プログラマブル回路部101は、信号処理装置100の外部に設けられるデータ記憶部106bに保持されている処理データを被処理データとして入力し、信号処理する。
【0018】
プログラマブル回路部101の内部にあるデータ記憶部112は、コンフィギュレーション制御部103より渡されるコンフィギュレーション情報を保持するレジスタである。
【0019】
プログラマブル回路部101の内部にあるALU102は、2入力1出力の論理演算器(汎用演算器)であり、データ記憶部112に保持されたコンフィギュレーション情報に基づいて複数の信号のうちの2つを選択し、加算や減算等の演算を行う。このALU102を組み合わせることで、プログラマブル回路部101は処理回路を実現することが出来る。本実施例では説明を簡略化するため、ALU102は全て2入力としたが、これに限定されるものではない。例えば3項演算を1つのALUで行うために3入力1出力のALUがALU102に含まれていてもよい。
【0020】
なお、本実施例では、データ記憶部112a~112iの各々は、ALU102a~102iの各々に対応しているとする。ただし、データ記憶部112とALU102との対応関係はその限りではない。例えば、あるALU102(ALU102a)が複数のデータ記憶部112(データ記憶部112a,112b)に保持されたコンフィギュレーション情報に基づいて演算処理をおこなってもよい。また、あるデータ記憶部112(データ記憶部112a)に保持されたコンフィギュレーション情報に基づいて複数のALU102(ALU102a,102b)が演算処理を実行してもよい。
【0021】
回路情報記憶部113は、信号処理装置100の外部に設けられるデータ記憶部106aに保持されている回路情報を保持するSRAM等により構成されるメモリである。後述するように、コンフィギュレーション制御部103は回路情報記憶部113に保持される回路情報を複数回参照する。このため、回路情報を予め信号処理装置100内の回路情報記憶部113に保存しておくことで、コンフィギュレーション制御部103が回路情報を高速に読み出すことを可能としている。
【0022】
コンフィギュレーション制御部103は、回路情報記憶部113に保持されている回路情報を読み出す。その後、読み出した回路情報をデコードして、データ記憶部112にコンフィギュレーション情報を転送する。また、コンフィギュレーション制御部103は、後述のデータフロー制御部108において、入力処理データのフロー制御に必要な制御情報を設定する。
【0023】
タイミング制御部104は、コンフィギュレーション制御部103からの制御情報に基づいて、各ALU102のコンフィギュレーション情報を更新するタイミングを知らせるロード信号を任意のタイミングでパルス生成する。また、タイミング制御部104は、各ALU102の演算を行う期間やタイミングを計算する。
【0024】
データフロー制御部108は、プログラマブル回路部101に入力される被処理データの入力タイミングを、コンフィギュレーション制御部103からの制御情報に基づいて制御する。
【0025】
プログラマブル回路部101の内部にあるデータ記憶部114は、演算の結果を保持するSRAM等で構成される記憶部である。例えばデータ記憶部114は、シェーディング補正を行うための1ライン分の補正値を記憶するバッファや、フィルタ処理を行うためのラインバッファの役割を果たす。
【0026】
データ記憶部106aは、信号処理装置100で使用する回路情報を記憶する一時記憶手段であり、DRAM等で構成されるメモリである。
【0027】
データ記憶部106bは、信号処理装置100で使用する処理データを記憶する一時記憶手段であり、DRAM等で構成されるメモリである。またデータ記憶部106bは、後述のCPU107のwork領域を提供する。
【0028】
CPU107は、プログラムに従って演算処理及び制御処理を実行するプロセッサ等の制御部である。CPU107は、不図示の記憶部に記憶された各種プログラムにより各種信号処理を実行する。
【0029】
外部記憶部110は、CF(コンパクトフラッシュ)やSDカード等のデータを記録することが出来るデータ保持部である。
【0030】
図3は、ALU102の内部構成を示すブロック図である。
【0031】
図3において、ALU102は、入力選択部301、遅延調整部302、演算部303により構成される2入力1出力の算術演算回路(汎用演算回路)である。ALU102は、遅延調整部302によりその2つの入力信号の遅延量調整を独立して行うことで、演算部303の直前で2つの入力信号の遅延がそろうように構成される。
【0032】
入力選択部301は、複数の信号304から、ALU102で使用する2つの信号を選択する。ここで複数の信号304は、データ記憶部106bから入力される被処理データの信号、及びプログラマブル回路部101の内部に存在する他のALU102の出力信号である。以下、入力選択部301で選択された2つの信号を夫々、A側入力信号A_IN、B側入力信号B_INと呼ぶ。
【0033】
入力選択部301は、A側入力信号A_INを選択するセレクタ305a、B側入力信号B_INを選択するセレクタ305b、データ記憶部306a,306bを備える。
【0034】
セレクタ305aは、複数の信号304から、A側入力選択レジスタであるデータ記憶部306aの設定値に基づいて信号を選択して、A側入力信号A_INとして遅延調整部302に出力する。
【0035】
セレクタ305bは、複数の信号304から、B側入力選択レジスタであるデータ記憶部306bの設定値に基づいて信号を選択して、B側入力信号B_INとして遅延調整部302に出力する。
【0036】
データ記憶部306a,306bは夫々、タイミング制御部104から出力されるロード信号がHighの場合、対応するデータ記憶部112に保持された設定値をロードし、保持する。また、コンフィギュレーション制御部103(
図1)は、第一の処理を実行している最中に第二の処理のための設定値を対応するデータ記憶部112に設定する。タイミング制御部104よりロード信号が発行されるタイミングは、全てのALU102a~102iで演算結果を出力し終わった後のタイミングである。このようにすることで、全てのALU102a~102iのレジスタを1クロックで変更することが可能となる。
【0037】
遅延調整部302は、入力選択部301によって選択された入力信号A_IN,B_INの遅延調整を行う。遅延調整部302は多段の遅延素子308a,308bとセレクタ307a,307bを持ち、シフトレジスタを構成する事で遅延調整を実現することが出来る。
図3では例として5段分の遅延量調整が可能な構成を示しているが、遅延調整可能な段数はこれに限らない。A側遅延選択レジスタであるデータ記憶部309aに所望の段数を設定することで、所望の段数分の遅延量調整がなされたデータ出力が後段の演算部303になされる。同様にB側遅延選択レジスタであるデータ記憶部309bを設定することで、所望の段数分の遅延量調整がなされたデータ出力が後段の演算部303になされる。遅延調整部302の詳細な構成は後述する。
【0038】
演算部303は、遅延調整された2つの入力信号を用いて所定の演算を行う。尚、演算部303は、
図2に示す四則演算器でなくてもよい。例えば、演算部303は、論理演算子AND,ORや比較演算子などであってもよい。また、演算部303の後にビットシフトする機構を設けてもよい。演算結果選択セレクタ311は、演算結果選択レジスタであるデータ記憶部312の設定値に基づいて演算結果を選択し、ALU102の出力として後段に出力する。
【0039】
ALU102内に存在する複数のデータ記憶部306a,306b,309a,309b,312は、夫々信号を選択するセレクタの設定値を保持するレジスタである。これら複数のレジスタの設定値は、対応するデータ記憶部112に保持されたコンフィギュレーション情報である。
【0040】
図1に戻り、プログラマブル回路部101は、
図3を用いて説明したALU102を複数組み合わせて所望の処理回路(例えば、
図6のパルス生成回路6)を実現する。
【0041】
図6は、プログラマブル回路部101において実現される、2個のALU102a,102bを使用して作られたパルス生成回路6の構成を示すブロック図である。
【0042】
図6において、演算回路600,601は、ALU102a,102bの夫々に異なるコンフィギュレーション情報を設定して得た演算回路である。
【0043】
演算回路600は、カウンタ(積算回路)を実現しており、2入力のうちの1入力のみを使用している。すなわち、演算回路600は、固定値1の入力信号602が入力される毎に、その値がインクリメントされる出力信号604を出力する。
【0044】
演算回路601は、比較器を実現しており、演算回路600の出力信号604の値が比較値の入力603と等価な時にHighの出力信号605をパルス出力する。
【0045】
このようにALU102を複数組み合わせることで、パルス生成回路6等の所望の回路をプログラマブル回路部101は実現することが可能である。
【0046】
<プログラマブル回路処理例>
次に、イメージセンサー上の分割画素から視差画像を取得し、その視差画像から瞳分割方式を用いてデフォーカス量を取得して距離マップを形成する処理の一部をプログラマブル回路部101で実施する例を説明する。尚、分割画素を持つイメージセンサーの構成、イメージセンサー上の分割画素からの視差画素の取得手法。及び距離マップの形成手法については、既知の技術であるためこれらの詳細の説明は割愛する。
【0047】
図2は、プログラマブル回路部101において実現される、距離マップ形成処理のフローチャートである。本処理の各ステップは、プログラマブル回路部101内の少なくとも1つのALU102を用いて実現される複数の演算回路によって実行される。
【0048】
また、本処理において、視差画像は2分割画素の夫々から出力されるA像信号、B像信号の形でプログラマブル回路部101に入力される。
【0049】
まず、ステップS200では、A像信号から輝度値(以下、Y値とする)を取得する。
【0050】
ステップS201では、B像信号からY値を取得する。
【0051】
ステップS202では、ステップS200,S201の夫々で得られたY値から、視差間の相関演算を行う。
【0052】
ステップS203では、ステップS202の相関演算で得た視差間の相対的な像ズレ量からデフォーカス量を推定する。
【0053】
ステップS204では、レンズ収差による面内のデフォーカス量ムラを補正し、本処理を終了する。
【0054】
本実施例では、ステップS200~S204の夫々の処理を実現する演算回路には、異なる回路情報200~204が設定される。回路情報200~204は、
図1のデータ記憶部106a上に予め格納されている。プログラマブル回路部101の初期化時に、回路情報200~204を回路情報記憶部113に転送する。
【0055】
図1に戻り、コンフィギュレーション制御部103は、回路情報200をデコードして、
図3のデータ記憶部306a,306b等のレジスタに保持される複数の設定値を各ALU102に転送し、回路情報200の演算を実行する。転送完了後に次の回路情報に更新すべく、回路情報記憶部113に対して回路情報201の転送を要求する。回路情報200の演算が完了後、各ALU102のレジスタはタイミング制御部104からロード信号を受け取り、回路情報201の演算を実行する。
【0056】
<遅延調整部回路構成例>
次に、遅延調整部302の回路構成について、
図4を用いて説明する。
【0057】
図4は、本実施例に係る遅延調整部302の回路構成のブロック図である。
【0058】
図4に示すように、遅延調整部302は、2つの入力信号の夫々を独立に遅延させる2つの経路において、フリップフロップ等の少なくとも1つの(
図4においては8個の)共有遅延素子401を、排他的に使用することができる。
【0059】
図8では、
図4の遅延調整部302と比較するため、共有遅延素子401を持たない従来の遅延調整部802の回路構成を示している。
【0060】
図8の例では、A側入力信号を16段、B側入力信号を9段の遅延調整を独立に遅延させている。遅延調整可能範囲はこれに限定されない。また一般に、2つの入力信号間の演算タイミングを調整するためには、1つの信号に対してのみ遅延調整が行えればよいが、本実施例においては、2つの入力信号夫々に遅延調整を行っている。このような遅延調整を行う必要性について、以下
図7を用いて説明する。
【0061】
図7は、プログラマブル回路部101の少なくとも1つのALU102を用いて実現された一般的な補正回路を説明するための図である。
【0062】
図7(a)は、入力信号Aに対して補正値を求めて減算する補正回路701の等価回路図である。
【0063】
図7(b)は、
図7(a)の補正回路701をプログラマブル回路部101で実現する場合の複数のALU102の配置関係を示した図である。
図7(b)では、8個のALU102a~102hを用いて
図7(a)の回路が実現されている。この時、ALU102hでは、補正値が演算されるまで入力信号を遅延させる必要があり、入力信号Aに対する遅延調整可能範囲を広く保つために、多くの遅延素子を必要とする。近年のLSIではクロック周波数が非常に高く、タイミング分割のための遅延素子の必要数が増加している。本実施例ではALU102の最低遅延段数を2として説明しているが、クロック周波数が高くなるにつれて最低遅延段数が増加することが考えられる。その場合、
図7(a)と同様の回路を構成するために必要となる遅延調整可能範囲は更に多くなる。
【0064】
1つのALU102の遅延調整可能範囲を抑えるためには、ALU102gとALU102hの間に遅延させるためだけのALU102を使用することが考えられる。しかし、ALU102を数多く使用する大規模な回路を構成する時には、空いているALU102が無い場合がある。そこで、
図7(c)に示すように、ALU102hの前段であるALU102gで予め遅延数を稼ぐために、2つの入力信号A,Bを夫々遅延させる構成をとる。すなわち、本実施例において2つの入力信号夫々に遅延調整を行うのは、プログラマブル回路部101としての機能は損なわずに1つのALU102の遅延調整可能範囲を抑え、且つALU102の使用率も抑える必要性のためである。
【0065】
本実施例による効果について説明する。プログラマブル回路部101は多くのALU102で構成されている。したがって、1つのALU102の回路規模を抑えることがプログラマブル回路部101全体の回路規模を削減することにつながる。例えばプログラマブル回路部101にALU102が200個存在するとする。
図8に示した遅延調整部802を用いる場合、A側16段、B側9段の遅延調整範囲を実現するため、16段の遅延素子808aと9段の遅延素子808bが使用される。この場合、プログラマブル回路部101内の遅延素子数の合計は25*200=5000個となる。
【0066】
一方、
図4に示した本実施例にかかる遅延調整部302を用いる場合、1つのALU102は、A側経路に8段の遅延素子308a、B側経路に1段の遅延素子308b、A,Bの両側の経路で排他的に使用する8段の共有遅延素子401を有する。
【0067】
図4の遅延調整部302を用いる場合、プログラマブル回路部101にALU102が200個存在すると仮定すると、プログラマブル回路部101内の遅延素子数の合計は(8+1+8)*200=3400個となる。したがって、
図8に示したような各経路に独立に遅延素子を設けた場合よりも、1600個の遅延素子数が削減され、プログラマブル回路部101全体の回路規模を抑えることが可能となる。
【0068】
図4に示した遅延調整部302を用いる場合、本実施例では、データ記憶部309aが保持するA側信号の遅延設定値が所定値(本実施例では7)を超えると、B側の遅延設定値はその最小値である1とする。これは、
図7で示したように、一般的な回路においてALU102で演算タイミングを合わせるために片方の入力信号を大きく遅延させる場合は、もう一方の入力信号は遅延させない場合が多いためである。
【0069】
セレクタ402は、データ記憶部309aで保持する遅延設定値が7以下の場合はA側入力信号を選択し、8以上の場合は、8個の共有遅延素子401で遅延された出力信号を選択する。
【0070】
セレクタ403は、データ記憶部309bで保持する遅延設定値が7以下の場合はB側入力信号を選択し、8以上の場合はA側入力信号を選択する。このような構成とすることで、
図8と同様にA側入力信号を16段、B側入力信号を9段遅延させつつ、1つのALU102当たり遅延素子を8個削減することができる。
【0071】
尚、A側とB側で遅延調整可能範囲が異なるのは、
図7(c)で示したように、1つのALU102で、別のALU102の遅延を賄える範囲と回路規模のトレードオフを考えるためである。
【0072】
以上説明したように、本実施例では、ALU102の遅延調整部302において複数の経路に共有する遅延素子を排他的に使用する。これにより、回路規模を削減することが可能な信号処理装置を提供することができる。
【0073】
<実施例2>
次に、本発明の実施例2について説明する。
【0074】
実施例1では遅延素子を排他的に使用し、遅延素子数を減らすことで回路規模を削減したが、本実施例では遅延調整部302のシフトレジスタを構成するセレクタの構成を変更することで回路規模を削減する。
図5を用いて本実施例の遅延調整部302の構成を説明する。なお、実施例1と同一の部材については同一の番号を使用して説明を行う。
【0075】
図5は、本実施例に係る遅延調整部302の、A側入力信号側の回路構成を説明するための図である。尚、説明を簡略化するため、本実施例に係る遅延調整部302の、B側入力信号側の回路構成については省略する。
【0076】
図5は、本実施例に係る遅延調整部302の回路構成のブロック図である。
【0077】
図5に示すように、遅延調整部302は、シフトレジスタのセレクタ501,502を2つ持つ多段セレクタ構成とした回路構成を有する。
【0078】
図9では、
図5の遅延調整部302と比較するため、多段セレクタ構成とせず、1つのセレクタ907のみとする従来の回路構成を有する遅延調整部902を示している。
【0079】
セレクタ501は、直列に接続された7個の遅延素子308a2を有し、最低遅延段数(最小遅延調整量)である0遅延から7遅延までの8つの遅延量の選択肢から1つを選択する(8to1)のセレクタである。また、セレクタ502の出力を選択可能である。尚、セレクタ501は、少なくとも3以上の遅延量を選択肢として持てばよく、
図5に示す例に限定されない。
【0080】
セレクタ502は、データ記憶部309aで保持される設定値が7以下の場合は最低遅延段数(最小遅延調整量)である1遅延(1個の遅延素子308a1で遅延された出力信号)を選択する。一方、データ記憶部309aで保持される設定値が8以上の場合、セレクタ502は9個の遅延素子308a1で遅延された出力信号を選択する。すなわち、セレクタ502は、最小遅延量と9個の遅延素子308a1による遅延量とのうち1つを選択するためのセレクタである。すなわち、セレクタ502は、2つの遅延量の選択肢から1つを選択する(2to1)のセレクタである。
【0081】
セレクタ501、およびセレクタ502を用いることで
図9と同様に入力信号を16段遅延させることができる。
【0082】
本実施例では遅延調整部302の最低遅延段数を1としているが、0でもよい。近年のLSIのようにクロック周波数が高くなると配線遅延の影響が大きくなるため、本実施例では遅延調整部302の最低遅延段数を1としている。
【0083】
セレクタの回路規模は一般的に選択肢の数に比例する。
図9に示した従来の遅延調整部902のセレクタ907は、直列に接続された16個の遅延素子908aを有し、最低遅延段数(最小遅延調整量)である1遅延から16遅延のうちの1つを選択する16to1のセレクタである。これに対して、
図5の本実施例の遅延調整部302では、セレクタ501が8to1、セレクタ502が2to1となり、総選択肢数が10である。すなわち、本実施例では、従来よりセレクタの総選択肢数が小さくなり、その分回路規模を削減することが可能となる。
【0084】
以上説明したように、本実施例では、シフトレジスタ構成の遅延調整部302においてセレクタを複数持つ多段構成とすることで、プログラマブル回路部101の機能を損なわずに、回路規模を削減することが可能な信号処理装置100を提供することができる。
【0085】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【0086】
100 信号処理装置
101 プログラマブル回路部
102 ALU
103 コンフィギュレーション制御部
104 タイミング制御部
112 データ記憶部
113 回路情報記憶部
301 入力選択部
302 遅延調整部
303 演算部
308a,308b 遅延素子
401 共有遅延素子