JP2005149009A - 積和演算回路 - Google Patents

積和演算回路 Download PDF

Info

Publication number
JP2005149009A
JP2005149009A JP2003383992A JP2003383992A JP2005149009A JP 2005149009 A JP2005149009 A JP 2005149009A JP 2003383992 A JP2003383992 A JP 2003383992A JP 2003383992 A JP2003383992 A JP 2003383992A JP 2005149009 A JP2005149009 A JP 2005149009A
Authority
JP
Japan
Prior art keywords
addition
result
register
output
data
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.)
Granted
Application number
JP2003383992A
Other languages
English (en)
Other versions
JP4273323B2 (ja
Inventor
Katsuto Nakajima
克仁 中島
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.)
Seiko Epson Corp
Original Assignee
Seiko Epson Corp
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 Seiko Epson Corp filed Critical Seiko Epson Corp
Priority to JP2003383992A priority Critical patent/JP4273323B2/ja
Publication of JP2005149009A publication Critical patent/JP2005149009A/ja
Application granted granted Critical
Publication of JP4273323B2 publication Critical patent/JP4273323B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

【課題】 回路規模の小さな積和演算回路を提供すること。
【解決手段】 入力セレクタSL1は、入力データ又は結果遅延回路Oregからのデータのうちいずれかを乗算器10に選択出力し、係数記憶回路50は、カウンタ40からの出力値に基づいて係数記憶回路50に記憶されているデータを乗算器10に選択出力し、乗算器10は、乗算結果を乗算結果遅延回路Aregへ出力し、加算遅延回路用セレクタSL2は、第1加算遅延回路Reg1、第2加算遅延回路Reg2または0データ記憶回路Zregのいずれかに記憶されているデータを制御回路30からの制御信号に基づいて加算器20に選択出力し、加算結果を制御回路30の制御信号に基づいて第1加算遅延回路Reg1、第2加算遅延回路Reg2または結果遅延回路Oregのいずれかに選択出力し、結果遅延回路Oregは、制御回路30の制御信号に基づいて結果遅延回路Oregに記憶されているデータを出力データとして出力する。
【選択図】 図1

Description

本発明は、積和演算回路に関する。
産業の発展と共に、量子化された電子情報を取り扱う場面が増えてきている中、その演算処理装置の需要は、多種多様な装置に拡大されてきた。
演算処理装置として例えば積和演算回路がある。リアルタイムな制御システムは高速な演算処理を要求し、この課題を解決する積和演算回路として、特許文献1がある。また、リアルタイムな制御システムの一例として、自動車の制御システムがある。例えば特許文献2には自動車の制御システム内の電子情報を高速に演算処理する積和演算回路が開示されている。
ところが近年、特に携帯可能な小型電子機器の発達が著しく、積和演算回路の需要は、小型電子機器にまで拡大された。しかしながら小型電子機器では、各構成部品の許容体積や搭載される電力源の許容体積が減少され、部品の小型化や消費電力の低減が課題となっていた。
特開平7−253965号公報 特開平8−44703号公報
本発明は、以上のような技術的課題に鑑みてなされたものであり、その目的とするところは、回路のレイアウト面積が従来よりも小さく、消費電力の小さな積和演算回路を提供することにある。
本発明は、クロック信号に基づいて動作するカウンタ及び制御回路と、係数記憶回路と、乗算器と、乗算結果遅延回路と、加算器と、前記制御回路からの制御信号に基づいて動作する第1加算遅延回路、第2加算遅延回路、0データ記憶回路、結果遅延回路、入力セレクタ及び加算遅延回路用セレクタとを有し、前記入力セレクタは、外部からの入力データ又は前記結果遅延回路からのフィードバックデータのうちいずれかを前記乗算器に選択出力し、係数記憶回路は、前記カウンタからの出力値に基づいて前記係数記憶回路に記憶されているデータを前記乗算器に選択出力し、前記乗算器は、前記入力セレクタによって選択されたデータと、前記係数記憶回路から出力されたデータとを乗算し、その後乗算結果を前記乗算結果遅延回路へ出力し、前記加算遅延回路用セレクタは、前記第1加算遅延回路、前記第2加算遅延回路または前記0データ記憶回路のいずれかに記憶されているデータを前記制御回路からの制御信号に基づいて前記加算器に選択出力し、前記加算器は、前記乗算結果遅延回路から遅延出力されたデータと、前記加算遅延回路用セレクタによって選択出力されたデータとを加算し、その後加算結果を前記制御回路の制御信号に基づいて前記第1加算遅延回路、第2加算遅延回路または結果遅延回路のいずれかに選択出力し、前記結果遅延回路は、前記制御回路の制御信号に基づいて前記結果遅延回路に記憶されているデータを出力データとして出力する積和演算回路に関する。
これによれば、積和演算回路の規模を小さくすることができる。
本発明に係る前記0データ記憶回路は、0の値が記憶されている0データレジスタを含み、前記乗算結果遅延回路は、乗算結果レジスタを含み、前記乗算結果レジスタは、前記制御回路からのイネーブル信号がアクティブであるとき、前記乗算器から出力された前記乗算結果を記憶することができる。
本発明に係る前記第1加算遅延回路は、N個(Nは1以上の整数)の第1加算レジスタを含み、前記第2加算遅延回路は、N個の第2加算レジスタを含み、前記結果遅延回路は、N個の結果レジスタを含むことができる。これにより、本発明に係る積和演算回路は、たとえばN段接続2次IIRフィルタ演算を実現することができる。
本発明に係る前記N個の結果レジスタのうち第N番目の結果レジスタに記憶されているデータは、前記出力データとして出力されることができる。これにより、たとえばN段接続2次IIRフィルタ演算が施された出力データを得ることができる。
本発明に関する積和演算回路は、最終出力遅延回路を含むことができ、前記最終出力遅延回路は、前記N個の結果レジスタのうち第N番目の結果レジスタに記憶されているデータを記憶し、前記最終出力遅延回路に記憶されているデータを前記出力データとして出力することができる。
本発明に係る前記結果遅延回路は、前記N個の結果レジスタのうちのいずれかに記憶されているデータを前記制御回路からの制御信号に基づいて、前記入力セレクタに選択出力する結果出力セレクタ含むことができる。
本発明に係る前記制御回路は、デコーダと、加算レジスタコントローラと、結果レジスタコントローラとを含み、前記加算レジスタコントローラは、前記N個の第1加算レジスタ及び前記N個の第2加算レジスタのそれぞれと接続され、前記結果レジスタコントローラは、前記N個の結果レジスタのそれぞれと接続され、前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記N個の結果レジスタのなかから書き込みを行うレジスタを決定し、その決定結果を前記加算レジスタコントローラまたは前記結果レジスタコントローラの少なくともいずれか一方に出力することができる。
本発明に係る前記加算レジスタコントローラは、前記デコーダから出力された前記決定結果に基づいて、前記N個の第1加算レジスタ及び前記N個の第2加算レジスタのうちのいずれかのレジスタに対して、書き込みをアクティブにする書き込みイネーブル信号を出力することができる。これにより、前記加算レジスタコントローラは、前記デコーダからの出力値に基づいて、前記N個の第1加算レジスタ及び前記N個の第2加算レジスタうちのいずれかのレジスタを書き込み可能な状態に設定できる。
本発明に係る前記結果レジスタコントローラは、前記デコーダから出力された前記決定結果に基づいて、前記N個の結果レジスタうちのいずれかのレジスタに対して、書き込みをアクティブにする書き込みイネーブル信号を出力することができる。これにより、前記結果レジスタコントローラは、前記デコーダからの出力値に基づいて、前記N個の結果レジスタうちのいずれかのレジスタを書き込み可能な状態に設定できる。
本発明に係る前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記0データレジスタのうち、いずれかを選択し、その選択内容を前記加算遅延回路用セレクタに出力することができる。これにより、前記加算遅延回路用セレクタは、クロック信号及びカウンタの出力値に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記0データレジスタのうち、いずれかを選択することができる。
本発明に係る前記加算遅延回路用セレクタは、前記デコーダから出力された前記選択内容に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記0データレジスタのそれぞれに記憶されているデータを前記加算器に選択出力することができる。これにより、本発明に係る加算器に、様々な値に対する加算を行わせることができる。
本発明に係る前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の結果レジスタのうち、いずれかを選択し、その選択内容を前記結果出力セレクタに出力することができる。これにより、結果出力セレクタはカウンタの出力値に基づいた結果レジスタを選択することができる。
本発明に係る前記結果出力セレクタは、前記デコーダから出力された前記選択内容に基づいて、前記N個の結果レジスタのそれぞれに記憶されているデータを前記入力セレクタに選択出力することができる。これにより、本発明に係る乗算器に、様々な値に対する乗算を行わせることができる。
本発明に係る前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記N個の結果レジスタは、前記クロック信号の立ち上がりエッジまたは立ち下がりエッジに同期してデータ書き込みされることができる。これにより、本発明に係る前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記N個の結果レジスタは、加算器からの出力データを遅延出力することができる。
本発明に係る積和演算回路は、前記外部からの入力データに対して、(5×N+2)クロックで1サイクルの演算結果を出力することができる。
本発明に係る積和演算回路は、n番目(nは自然数)の入力データがM番目(Mは自然数)の前記クロック信号に同期して前記入力セレクタに入力されると、第1ステップとして、M番目の前記クロック信号の周期に同期して、前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、第2ステップとして、(M+1)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、前記加算器は、前記第1加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記結果遅延回路に出力し、第3ステップとして、(M+2)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、前記結果遅延回路は前記加算器から出力されている前記加算結果をラッチし、前記乗算器は、前記結果遅延回路に記憶されているデータと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、前記加算器は、前記第2加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第1加算遅延回路に出力し、第4ステップとして、(M+3)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、前記第1加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、前記加算器は、前記第1加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第1加算遅延回路に出力し、第5ステップとして、(M+4)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、前記第1加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、前記乗算器は、前記結果遅延回路に記憶されているデータと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、前記加算器は、前記0データ記憶回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第2加算遅延回路に出力し、第6ステップとして、(M+5)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、前記第2加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、前記加算器は、前記第2加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第2加算遅延回路に出力し、第7ステップとして、(M+6)番目の前記クロック信号の周期に同期して、前記第2加算遅延回路は前記加算器から出力されている前記加算結果をラッチすることができる。
これにより、本発明に係る積和演算回路は小さな回路構成で、例えばIIRフィルタ演算を行うことができる。
本発明に係る積和演算回路は、n番目(nは自然数)の入力データが前記入力セレクタに入力されると、前記入力データに対して、Nステージの積和演算、第1の終段演算、第2の終段演算の順に演算が行われ、前記積和演算のm(mは自然数)番目のステージは、5つの演算ステップを含み、前記5つの演算ステップは、前記クロック信号の周期が5回分経過する間に、前記クロック信号の各周期に同期して行われ、第1の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第1乗算ステップと、m=1の時は加算を行わず、m>1の時は(m−1)番目の前記第2加算レジスタに記憶されているデータと、前記第1乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(m−1)番目の第2加算レジスタに出力する第1加算ステップとを含み、第2の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第2乗算ステップと、m番目の前記第1加算レジスタに記憶されているデータと、前記第2乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果をm番目の前記結果レジスタに出力する第2加算ステップとを含み、第3の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第3乗算ステップと、m番目の前記第2加算レジスタに記憶されているデータと、前記第3乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第1加算レジスタに出力する第3加算ステップとを含み、第4の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第4乗算ステップと、前記m番目の第1加算レジスタに記憶されているデータと、前記第4乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第1加算レジスタに出力する第4加算ステップとを含み、第5の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第5乗算ステップと、前記0データレジスタに記憶されているデータと、前記第5乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第2加算レジスタに出力する第5加算ステップとを含み、第1の終段演算は、N番目のステージにおける前記第5乗算ステップの前記乗算結果と、N番目の前記第2加算レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記N番目の第2加算レジスタに出力する第6加算ステップを含み、第2の終段演算は、前記第6加算ステップの加算結果を前記N番目の第2加算レジスタに記憶させるラッチステップを含み、前記第1の演算ステップ、前記第2の演算ステップ及び前記第4の演算ステップでは、m=1の時、前記入力セレクタは前記入力データを前記乗算器に選択出力し、m>1の時、前記入力セレクタは(m−1)番目の前記結果レジスタからの出力を前記乗算器に選択出力し、前記第3の演算ステップ及び前記第5の演算ステップでは、前記入力セレクタは前記m番目の結果レジスタからの出力を前記乗算器に選択出力することができる。
これにより、本発明に係る積和演算回路は、例えばN段接続2次IIRフィルタ演算を行うことができる。
本発明に係る積和演算回路は、n番目(nは自然数)の入力データが前記入力セレクタに入力されると、前記入力データに対して、Nステージの積和演算、第1の終段演算、第2の終段演算の順に演算が行われ、前記積和演算のm(mは自然数)番目のステージは、5つの演算ステップを含み、前記5つの演算ステップは、前記クロック信号の周期が5回分経過する間に、前記クロック信号の各周期に同期して行われ、第1の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第1乗算ステップと、m=1の時は加算を行わず、m>1の時は(N−m+1)番目の前記第2加算レジスタに記憶されているデータと、前記第1乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第2加算レジスタに出力する第1加算ステップとを含み、第2の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第2乗算ステップと、(N−m+1)番目の前記第1加算レジスタに記憶されているデータと、前記第2乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を(N−m+1)番目の前記結果レジスタに出力する第2加算ステップとを含み、第3の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第3乗算ステップと、前記(N−m+1)番目の第2加算レジスタに記憶されているデータと、前記第3乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第1加算レジスタに出力する第3加算ステップとを含み、第4の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第4乗算ステップと、前記(N−m+1)番目の第1加算レジスタに記憶されているデータと、前記第4乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第1加算レジスタに出力する第4加算ステップとを含み、第5の演算ステップは、前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第5乗算ステップと、前記0データレジスタに記憶されているデータと、前記第5乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第2加算レジスタに出力する第5加算ステップとを含み、第1の終段演算は、N番目のステージにおける前記第5乗算ステップの前記乗算結果と、1番目の前記第2加算レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記1番目の第2加算レジスタに出力する第6加算ステップを含み、第2の終段演算は、前記第6加算ステップの加算結果を前記1番目の第2加算レジスタに記憶させるラッチステップを含み、前記第1の演算ステップ、前記第2の演算ステップ及び前記第4の演算ステップでは、m=Nの時、前記入力セレクタは前記入力データを前記乗算器に選択出力し、m<Nの時、前記入力セレクタは(N−m)番目の前記結果レジスタからの出力を前記乗算器に選択出力し、前記第3の演算ステップ及び前記第5の演算ステップでは、前記入力セレクタは前記(N−m+1)番目の結果レジスタからの出力を前記乗算器に選択出力することができる。
これにより、本発明に係る積和演算回路は、Nに比例した遅延時間を発生することができるので、遅延時間が考慮された電子機器に対して、本発明に係る積和演算回路を容易に搭載することができる。
本発明に係る前記カウンタは、(5×N+2)進カウンタを含むことができる。これにより、カウンタの出力する値のそれぞれに、各ステージの各演算ステップを対応させることができる。
本発明に係るアナログ/デジタル変換器は、本発明に係る積和演算回路を含むことができる。これにより、小型電子機器に搭載容易なアナログ/デジタル変換器を提供することができる。
本発明に係るデジタル/アナログ変換器は、本発明に係る積和演算回路を含むことを特徴とする。これにより、小型電子機器に搭載容易なデジタル/アナログ変換器を提供することができる。
以下、本発明の一実施形態について、図面を参照して説明する。なお、以下に説明する実施の形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また以下で説明される構成のすべてが本発明の必須構成要件であるとは限らない。
1.第1実施形態の構成
図1は本実施形態の積和演算回路100の構成を示すブロック図である。積和演算回路100は、入力セレクタSL1と、レジスタセレクタSL2(広義には加算遅延回路用セレクタ)とを含む。また、積和演算回路100は、乗算器10と、加算器20と、シーケンサ30(広義には制御回路)と、カウンタ40と、係数ROM50(広義には係数記憶回路)とを含む。さらに、積和演算回路100は、乗算結果レジスタAreg(広義には乗算結果遅延回路)と、N個(Nは自然数)の第1加算レジスタReg1(広義には第1加算遅延回路)と、N個の第2加算レジスタReg2(広義には第2加算遅延回路)と、0データレジスタZreg(0データ記憶回路)と、N個の結果レジスタOreg(広義には結果遅延回路)と、最終出力レジスタEreg(広義には最終結果遅延回路)とを含む。変形例として、積和演算回路100は図1の最終出力レジスタEregを含まない構成も可能である。なお、以下の図において同符号のものは同様の意味を示す。
入力セレクタSL1は、結果レジスタOregからの出力データまたは外部からの入力データのいずれか一方を乗算器10に選択出力する。カウンタ40は、クロックCLKに同期してインクリメントされる数値(以後、カウンタ値とも言う)を係数ROM50及びシーケンサ30に出力する。カウンタ40は、例えば(5×N+2)進カウンタで構成することができる。係数ROM50は複数の係数を格納し、カウンタ値に対応する係数を乗算器10に出力する。
乗算器10は入力X及び入力Yを備える。入力セレクタSL1の出力データは例えば乗算器10の入力Xに入力され、係数ROM50の出力データは例えば乗算器10の入力Yに入力される。乗算器10は、入力Xに入力されたデータ(入力セレクタSL1からの出力データ)と入力Yに入力されたデータ(係数ROM50からの出力データ)とを乗算し、その乗算結果を乗算結果レジスタAregに出力する。レジスタセレクタSL2は、N個の第1加算レジスタReg1、N個の第2加算レジスタReg2又は0データレジスタZregのうち、いずれかの出力データを加算器20に選択出力する。
加算器20は入力A及び入力Bを備える。乗算結果レジスタAregの出力データは例えば加算器20の入力Aに入力され、レジスタセレクタSL2の出力データは例えば加算器20の入力Bに入力される。加算器20は、入力Aに入力されたデータ(乗算結果レジスタAregからの出力データ)と入力Bに入力されデータ(レジスタセレクタSL2からの出力データ)とを加算し、その加算結果をN個の結果レジスタOreg、N個の第1加算レジスタReg1及びN個の第2加算レジスタReg2に出力する。最終出力レジスタEregには、N個の結果レジスタOregのうち、N番目の結果レジスタOregに記憶されているデータが出力される。
シーケンサ30は、カウンタ値に基づいて、各セレクタSL1、SL2と各レジスタOreg、Reg1、Reg2に制御信号を出力する。
図2に2次IIRフィルタ演算(Infinite-Impulse-Response)の一般形を示した。乗算手段11は入力と係数a0とを乗算する手段である。乗算手段12は入力と係数a1とを乗算するする手段である。乗算手段13は入力と係数a2とを乗算するする手段である。乗算手段14は加算手段21の出力と係数b1とを乗算するする手段である。乗算手段15は加算手段21の出力と係数b2とを乗算するする手段である。
加算手段21は乗算手段11の結果と遅延手段R1の出力とを加算するする手段である。加算手段21の結果は、遅延手段R3に出力される。遅延手段R3に入力されたデータはフィルタ演算の出力データとして出力される。加算手段22は乗算手段12の結果と遅延手段R2の出力と乗算手段14の結果とを加算するする手段である。加算手段23は乗算手段13の結果と乗算手段15の結果とを加算するする手段である。なお、図2は2次IIR演算1段分を示している。
図3は、図2に示される演算を本実施形態で行う場合の演算手順を示す図である。なお、本実施形態では、図2の各乗算手段11〜15は図1の乗算器10を用い、図2の各加算手段21〜23は図1の加算器20を用いる。また、本実施形態では、図2の遅延手段R1は図1の第1加算レジスタReg1を用い、図2の遅延手段R2は図1の第2加算レジスタReg2を用い、図2の遅延手段R3は図1の結果レジスタOregを用いる。
図3では5つの手順1〜5で演算手順が示されている。加算手段21は手順1で表される。加算手段22は、手順2及び手順3で表される。加算手段23は、手順4及び手順5で表される。
手順1では、まず乗算手段11として、図1の乗算器10にて入力データとa0(係数ROM50の出力データ)とを乗算し、その乗算結果と第1加算レジスタReg1の出力データとを図1の加算器20にて加算する。その加算結果は結果レジスタOregに出力される。
手順2では、まず乗算手段12として、図1の乗算器10にて入力データとa1(係数ROM50の出力データ)とを乗算し、その乗算結果と第2加算レジスタReg2の出力データとを図1の加算器20にて加算する。その加算結果は第1加算レジスタReg1に出力される。
手順3では、まず乗算手段14として、結果レジスタOregの出力データとb1(係数ROM50の出力データ)とを図1の乗算器10にて乗算し、その乗算結果と第1加算レジスタReg1の出力データとを図1の加算器20にて加算する。その加算結果は第1加算レジスタReg1に出力される。
手順4では、まず乗算手段13として、図1の乗算器10にて入力データとa2(係数ROM50の出力データ)とを乗算し、その乗算結果と0データレジスタZregの出力データとを図1の加算器20にて加算する。その加算結果は第2加算レジスタReg2に出力される。
手順5では、まず乗算手段15として、結果レジスタOregの出力データとb2(係数ROM50の出力データ)とを図1の乗算器10にて乗算し、その乗算結果と第2加算レジスタReg2の出力データとを図1の加算器20にて加算する。その加算結果は第2加算レジスタReg2に出力される。
図1の積和演算回路100は、図3の各手順1〜5を時系列に順次処理していくことで、入力データに対してフィルタ演算の施された出力データを得ることができる。また、積和演算回路100は、5つの手順1〜5を1ステージとして、入力データに対してフィルタ演算をNステージ行うことで、N段接続2次IIRフィルタ演算の施された出力データを得ることができる。
図4は、N=1の場合のときの積和演算回路100の演算ステップを示す図である。図4の各第1ステップ〜第7ステップは、図3の演算手順がクロックCLK単位に分割されたときのクロックCLK毎のそれぞれの演算過程を示す。つまり、積和演算回路100がN=1として構成された場合、積和演算回路100は入力データに対して、7ステップ(7クロック)の演算処理を行うことでフィルタ演算の施された出力データを得ることができる。また、図4に記載されている変数nは、入力データが入力セレクタSL1に入力されたときの順番を示す。例えば図4のInput(n)は、n番目に入力セレクタSL1に入力された入力データを示し、図4のOreg(n)はInput(n)に対する最終出力データを示す。また、図4のReg1(n)はInput(n)に対する最終的な第1加算レジスタReg1の値を示し、Reg1(n−1)はInput(n−1)に対する最終的な第1加算レジスタReg1の値を示す。同様に、図4のReg2(n)は第2加算レジスタReg2の値を示す。
第1ステップでは、n番目の入力データ(以後、Input(n)ともいう)が図1の乗算器10の入力Xに入力される。乗算器10の入力Yには図1の係数ROM50から係数(a0)が入力される。乗算器10は、入力X及び入力Yの乗算結果を図1の乗算結果レジスタAregに出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n−1)を記憶し、図1の第2加算レジスタReg2はReg2(n−1)を記憶する。また、図1の結果レジスタOregはOreg(n−1)を記憶する。
第2ステップでは、図1の乗算結果レジスタAregは、第1ステップにて乗算器10から出力された乗算結果を、図1の加算器20の入力Aに遅延出力する。図1の加算器20の入力Bには図1のレジスタセレクタSL2から図1の第1加算レジスタReg1の値であるReg1(n−1)が選択出力される。加算器20は入力A及び入力Bの加算結果を図1の結果レジスタOregに出力する。また、Input(n)が図1の乗算器10の入力Xに入力される。乗算器10の入力Yには図1の係数ROM50から係数(a1)が入力される。乗算器10は、入力X及び入力Yの乗算結果を図1の乗算結果レジスタAregに出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n−1)を記憶し、図1の第2加算レジスタReg2はReg2(n−1)を記憶する。また、図1の結果レジスタOregはOreg(n−1)を記憶する。
第3ステップでは、図1の乗算結果レジスタAregは、第2ステップにて乗算器10から出力された乗算結果を、図1の加算器20の入力Aに遅延出力する。図1の加算器20の入力Bには図1のレジスタセレクタSL2から図1の第2加算レジスタReg2の値であるReg2(n−1)が選択出力される。加算器20は入力A及び入力Bの加算結果を図1の第1加算レジスタReg1に出力する。また、第2ステップにて加算器20から出力された加算結果は、Oreg(n)として図1の結果レジスタOregによって、図1の乗算器10の入力Xに遅延出力される。乗算器10の入力Yには図1の係数ROM50から係数(b1)が入力される。乗算器10は、入力X及び入力Yの乗算結果を図1の乗算結果レジスタAregに出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n−1)を記憶する。また、図1の第2加算レジスタReg2はReg2(n−1)を記憶する。また、図1の結果レジスタOregはOreg(n)としてInput(n)×a0+Reg1(n−1)を記憶する。
第4ステップでは、図1の乗算結果レジスタAregは、第3ステップにて乗算器10から出力された乗算結果を、図1の加算器20の入力Aに遅延出力する。図1の加算器20の入力Bには図1のレジスタセレクタSL2から図1の第1加算レジスタReg1の値であるReg1(n)が選択出力される。このときのReg1(n)は、第3ステップにて加算器20から出力された加算結果が図1の第1加算レジスタReg1によって遅延出力された値である。すなわち、Reg1(n)=Input(n)×a1+Reg2(n−1)である。加算器20は入力A及び入力Bの加算結果を図1の第1加算レジスタReg1に出力する。また、Input(n)が図1の乗算器10の入力Xに入力される。乗算器10の入力Yには図1の係数ROM50から係数(a2)が入力される。乗算器10は、入力X及び入力Yの乗算結果を図1の乗算結果レジスタAregに出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n)として、Input(n)×a1+Reg2(n−1)を記憶し、図1の第2加算レジスタReg2はReg2(n−1)を記憶する。また、図1の結果レジスタOregはOreg(n)としてInput(n)×a0+Reg1(n−1)を記憶する。
第5ステップでは、図1の乗算結果レジスタAregは、第4ステップにて乗算器10から出力された乗算結果を、図1の加算器20の入力Aに遅延出力する。図1の加算器20の入力Bには図1のレジスタセレクタSL2から図1の0データレジスタZregの値(0)が選択出力される。加算器20は入力A及び入力Bの加算結果を図1の第2加算レジスタReg2に出力する。図1の乗算器10の入力Xには結果レジスタOregの値であるOreg(n)が入力される。乗算器10の入力Yには図1の係数ROM50から係数(b2)が入力される。乗算器10は、入力X及び入力Yの乗算結果を図1の乗算結果レジスタAregに出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n)として第4ステップでの加算器20の出力を記憶する。すなわち、Reg1(n)=Input(n)×a1+Reg2(n−1)+Oreg(n)×b1である。また、図1の第2加算レジスタReg2はReg2(n−1)を記憶する。また、図1の結果レジスタOregはOreg(n)としてInput(n)×a0+Reg1(n−1)を記憶する。
第6ステップでは、図1の乗算結果レジスタAregは、第5ステップにて乗算器10から出力された乗算結果を、図1の加算器20の入力Aに遅延出力する。図1の加算器20の入力Bには図1のレジスタセレクタSL2から選択出力された第2加算レジスタReg2の値であるReg2(n)が選択出力される。このときのReg2(n)は、第5ステップにて加算器20から出力された加算結果が図1の第2加算レジスタReg2によって遅延出力された値である。すなわち、Reg2(n)=Input(n)×a2である。加算器20は入力A及び入力Bの加算結果を図1の第2加算レジスタReg2に出力する。この時点では、図4に示されるように、図1の第1加算レジスタReg1はReg1(n)としてInput(n)×a1+Reg2(n−1)+Oreg(n)×b1を記憶する。また、図1の第2加算レジスタReg2はReg2(n)としてInput(n)×a2を記憶する。また、図1の結果レジスタOregはOreg(n)としてInput(n)×a0+Reg1(n−1)を記憶する。
第7ステップでは、図1の第2加算レジスタReg2は、第6ステップでの加算器20の加算結果をReg2(n)として記憶する。すなわち、Reg2(n)=Input(n)×a2+Oreg(n)×b2である。この時点で、図4に示されるように、図1の第1加算レジスタReg1はReg1(n)としてInput(n)×a1+Reg2(n−1)+Oreg(n)×b1を記憶する。また、図1の第2加算レジスタReg2はReg2(n)としてInput(n)×a2+Oreg(n)×b2を記憶する。また、図1の結果レジスタOregはOreg(n)としてInput(n)×a0+Reg1(n−1)を記憶する。
上記にような演算過程において、Input(n)に対するOreg(n)は第3ステップにて決定する。また、Input(n)に対するReg1(n)は第5ステップにて決定する。また、Input(n)に対するReg2(n)は第7ステップにて決定する。
なお、図1の乗算器10及び加算器20は、互いに独立であるので同時の演算が可能である。そのため、図1の乗算器10は、図4の第6ステップの時点で(n+1)番目の入力データであるInput(n+1)に対する乗算を開始できる。
次にN=6の場合、つまり6段接続2次IIRフィルタを実現する積和演算回路を説明する。
図5は、6段2次IIRフィルタを実現する積和演算回路1000の詳細なブロック図である。積和演算回路1000は、図1の積和演算回路100と同様の構成をとり、N=6の場合の積和演算回路である。積和演算回路1000は、結果出力セレクタSL3を含む。また、積和演算回路1000は、6個の第1加算レジスタReg11〜Reg16(広義には第1加算遅延回路)と、6個の第2加算レジスタReg21〜Reg26(広義には第2加算遅延回路)と、6個の結果レジスタOreg1〜Oreg6(広義には結果遅延回路)とを含む。各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)は、データ入力端子Dと、データ出力端子Qと、イネーブル入力端子Eを備える。各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)にはクロックCLKが入力される。
各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)は、イネーブル入力端子Eにアクティブな信号が入力された状態において、例えばクロックCLKの立ち上がりエッジに同期してデータ書き換えが行われるように設計されている。変形例として、各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)は、例えばクロックCLKの立ち下がりエッジに同期してデータ書き換えが行われるように設計されてもよい。また、積和演算回路1000では、結果レジスタOreg6に最終出力レジスタEregが接続されているが、変形例として、積和演算回路1000は最終出力レジスタEregを含まない構成も可能である。最終出力レジスタEregはイネーブル入力端子Eを備える。最終出力レジスタEregのイネーブル入力端子Eに、シーケンサ30からアクティブな信号が入力されると、最終出力レジスタEregはデータ書き換えが可能な状態になる。
シーケンサ30はデコーダ31と、加算レジスタコントローラ32と、結果レジスタコントローラ33とを含む。
図5のカウンタ40は、クロックCLKに同期してカウンタ値を係数ROM50及びシーケンサ30のデコーダ31に出力する。図5のカウンタ40は、例えば(5×N+2=32)進カウンタで構成することができる。係数ROM50は複数の係数(a01〜a06、a11〜a16、a21〜a26、b11〜b16、b21〜b26)を格納し、カウンタ値に対応する係数を乗算器10に出力する。
デコーダ31はカウンタ40からのカウンタ値に基づいて、加算レジスタコントローラ32または結果レジスタコントローラ33の少なくともいずれか一方に、レジスタ情報を出力する。レジスタ情報は、各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)のいずれかのうち少なくとも1つを示す情報を含む。デコーダ31は、加算レジスタコントローラ32及び結果レジスタコントローラ33の両方にレジスタ情報を出力してもよい。
加算レジスタコントローラ32は、デコーダ31からのレジスタ情報に基づいて、各第1加算レジスタReg11〜Reg16または各第2加算レジスタReg21〜Reg26のいずれかのイネーブル入力端子Eにアクティブな信号を出力する。結果レジスタコントローラ33は、デコーダ31からのレジスタ情報に基づいて、各結果レジスタOreg1〜Oreg6のいずれかのイネーブル入力端子Eにアクティブな信号を出力する。
変形例として、加算レジスタコントローラ32及び結果レジスタコントローラ33を、一つのレジスタコントローラに置き換えて、一つのレジスタコントローラに各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)のイネーブル入力端子Eの制御を行わせることも可能である。
各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)のデータ入力端子Dには、加算器20から加算結果が入力される。
レジスタセレクタSL2は、6個の第1加算レジスタReg11〜Reg16、6個の第2加算レジスタReg21〜Reg26又は0データレジスタZregのうち、いずれかの出力データを加算器20に選択出力する。
加算器20は、入力Aに入力されたデータ(乗算結果レジスタAregからの出力データ)と入力Bに入力されデータ(レジスタセレクタSL2からの出力データ)とを加算し、その加算結果を各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。最終出力レジスタEregには、結果レジスタOreg6(N番目の結果レジスタ)に記憶されているデータが出力される。
次に、図5の積和演算回路1000の演算手順について、図6を参照しながら説明する。図5の積和演算回路1000は1段(1ステージ)のフィルタ演算の過程で図6のステップ1〜ステップ5を有する。図5の積和演算回路1000は6段のフィルタ演算を行うので、図6のように1ステージ(ステップ1〜ステップ5)を6回行う。図6のフローチャートの変数mはステージ数を示す。例えば、図6のa0(m)は、m=1のとき、係数a01を表す。積和演算回路1000は6段接続2次IIRフィルタ演算を行うので、変数mは1から6までの範囲で可変である。変数mが、順に1ずつインクリメントされ、m=6となったとき、1つのサンプル(入力セレクタSL1に入力される入力データ)に対する6段接続2次IIRフィルタ演算が終了する。なお、図6の第mステージにおいて、前段とは第(m−1)ステージを示す。
ステップ1(第1の演算ステップ)では、図5の乗算器10にて入力X及び入力Yに対する乗算(第1乗算ステップ)が行われる。このとき、図5の入力セレクタSL1によって、入力Xにはm=1のときサンプル(入力セレクタSL1に入力される入力データ)が入力され、m>1のときは前段の出力データ(Oreg(m−1))が入力される。また、入力Yには図5の係数ROMから係数a0(m)が入力される。図5の乗算器10は乗算結果を図5の乗算結果レジスタAregに出力する。さらに図5の加算器20にて入力A及び入力Bに対する演算(第1加算ステップ)が行われる。この演算(第1加算ステップ)では、m>1のとき、乗算結果レジスタAregに記憶されているデータと第2加算レジスタReg2(m)に記憶されているデータとの加算が行われ、m=1のときは入力A及び入力Bに対する加算が行われない。なお、このときの乗算結果レジスタAregには、前段のステップ5の第5乗算ステップの乗算結果が記憶されている。図5の加算器20は、m>1の場合、加算結果を第2加算レジスタReg2(m)に出力する。
ステップ2(第2の演算ステップ)では、図5の乗算器10にて入力X及び入力Yに対する乗算(第2乗算ステップ)が行われる。このとき、図5の入力セレクタSL1によって、入力Xにはm=1のときサンプル(入力セレクタSL1に入力される入力データ)が入力され、m>1のときは前段の出力データ(Oreg(m−1))が入力される。また、入力Yには図5の係数ROMから係数a1(m)が入力される。図5の乗算器10は乗算結果を図5の乗算結果レジスタAregに出力する。さらに図5の加算器20にて入力A及び入力Bに対する演算(第2加算ステップ)が行われる。このとき図5の加算器20の入力Aには、ステップ1での乗算器10の乗算結果が乗算結果レジスタAregによって遅延出力される。加算器20の入力Bには、図5のレジスタセレクタSL2によって第1加算レジスタReg1(m)に記憶されているデータが選択出力される。図5の加算器20は、加算結果を結果レジスタOreg(m)に出力する。
ステップ3(第3の演算ステップ)では、図5の乗算器10にて入力X及び入力Yに対する乗算(第3乗算ステップ)が行われる。このとき、図5の入力セレクタSL1によって、入力Xには結果レジスタOreg(m)に記憶されているデータが入力される。また、入力Yには図5の係数ROMから係数b1(m)が入力される。図5の乗算器10は乗算結果を図5の乗算結果レジスタAregに出力する。さらに図5の加算器20にて入力A及び入力Bに対する演算(第3加算ステップ)が行われる。このとき図5の加算器20の入力Aには、ステップ2での乗算器10の乗算結果が乗算結果レジスタAregによって遅延出力される。加算器20の入力Bには、図5のレジスタセレクタSL2によって第2加算レジスタReg2(m)に記憶されているデータが選択出力される。図5の加算器20は、加算結果を第1加算レジスタReg1(m)に出力する。
ステップ4(第4の演算ステップ)では、図5の乗算器10にて入力X及び入力Yに対する乗算(第4乗算ステップ)が行われる。このとき、図5の入力セレクタSL1によって、入力Xにはm=1のときサンプル(入力セレクタSL1に入力される入力データ)が入力され、m>1のときは前段の出力データ(Oreg(m−1))が入力される。また、入力Yには図5の係数ROMから係数a2(m)が入力される。図5の乗算器10は乗算結果を図5の乗算結果レジスタAregに出力する。さらに図5の加算器20にて入力A及び入力Bに対する演算(第4加算ステップ)が行われる。このとき図5の加算器20の入力Aには、ステップ3での乗算器10の乗算結果が乗算結果レジスタAregによって遅延出力される。加算器20の入力Bには、図5のレジスタセレクタSL2によって第1加算レジスタReg1(m)に記憶されているデータが選択出力される。図5の加算器20は、加算結果を第1加算レジスタReg1(m)に出力する。
ステップ5(第5の演算ステップ)では、図5の乗算器10にて入力X及び入力Yに対する乗算(第5乗算ステップ)が行われる。このとき、図5の入力セレクタSL1によって、入力Xには結果レジスタOreg(m)に記憶されているデータが入力される。また、入力Yには図5の係数ROMから係数b2(m)が入力される。図5の乗算器10は乗算結果を図5の乗算結果レジスタAregに出力する。さらに図5の加算器20にて入力A及び入力Bに対する演算(第5加算ステップ)が行われる。このとき図5の加算器20の入力Aには、ステップ4での乗算器10の乗算結果が乗算結果レジスタAregによって遅延出力される。加算器20の入力Bには、図5のレジスタセレクタSL2によって0データレジスタZregに記憶されているデータが選択出力される。図5の加算器20は、加算結果を第2加算レジスタReg2(m)に出力する。
図6には図示されていないが、上記のステップ1〜ステップ5までが6回行われた後に、第1の終段演算及び第2の終段演算が行われる。
第1の終段演算では、加算器20は、加算器20の入力A及び入力Bに対して加算(第6加算ステップ)が行われる。このとき、第6ステージ(第Nステージ)のステップ5(第5の演算ステップ)の第5乗算ステップでの乗算結果が、乗算結果レジスタAregによって加算器20の入力Aに遅延出力される。また、加算器20の入力Bには、第2加算レジスタReg26に記憶されているデータが入力される。加算器20は、加算結果を第2加算レジスタReg26(N番目の第2加算レジスタ)に出力する。
第2の終段演算では、ラッチステップが行われる。ラッチステップでは、第1の終段演算によって出力された加算結果が、第2加算レジスタReg26(N番目の第2加算レジスタ)に記憶される。
上記のステップ1〜ステップ5までを6回行われた後、第1の終段演算及び第2の終段演算を行うことで、1つのサンプル(入力セレクタSL1に入力される入力データ)に対する6段接続2次IIRフィルタ演算が終了する。
2.第1実施形態の動作
第1実施形態の動作を説明するために、第1実施形態の一例である図5の積和演算回路1000の動作を説明する。図7及び図8は、各カウンタ値での、乗算器10、加算器20、及び各レジスタに入力されるデータを示す図である。6つのステージのうち、図7には前半の3つのステージについて示され、図8には後半の3つのステージに着いて示されている。6つのステージについて演算を行うので、積和演算回路1000は、32通り(5×N+2)のカウンタ値を用いる。カウンタ値は、便宜上16進数で表されている。また、図7及び図8の変数nは、入力セレクタSL1に入力される入力データの順番を示す。例えばn番目に入力セレクタSL1に入力された入力データ(サンプル)は、Input(n)である。各レジスタに記憶されているデータは、各レスタの符号の末尾に(n)または(n−1)を付した符号で示されている。例えば、Oreg1(n)は、Input(n)に対応する結果レジスタOreg1に記憶されているデータである。各ステージの各ステップは、図7及び図8に示されるように各カウンタ値に対応する。
各ステップにおいて、乗算器10の出力データは、乗算結果レジスタAregによって遅延出力されるので、乗算器10の出力データと加算器20の入力Aに入力されるデータとでは、1クロック分(広義には一ステップ分)のタイムラグがある。例えば、第1ステージのステップ1での乗算結果は、第1ステージのステップ2で加算器20によって加算演算される。
図7によると、第1ステージのステップ3にて結果レジスタOreg1に記憶されているデータであるOreg1(n)が決定される。第2ステージのステップ3では、Oreg1(n)に基づいて演算されたOreg2(n)が決定される。第3ステージのステップ3では、Oreg2(n)に基づいて演算されたOreg3(n)が決定される。
図8によると、第4ステージのステップ3では、Oreg3(n)に基づいて演算されたOreg4(n)が決定される。第5ステージのステップ3では、Oreg4(n)に基づいて演算されたOreg5(n)が決定される。第6ステージのステップ3では、Oreg5(n)に基づいて演算されたOreg6(n)が決定される。さらに第1の終段演算及び第2の終段演算では、Oreg6(n)に基づいて演算された演算結果としてReg26(n)が第2加算レジスタReg26に記憶される。このReg26(n)は、(n+1)番目のサンプルに対して積和演算を行うときの第2加算レジスタReg26のデータとして用いられる。
表1に各ステージ、第1の終段演算及び第2の終段演算の1サイクルが終了した時点での各レジスタに記憶されているデータを記載する。
Figure 2005149009
図9及び図10は、積和演算回路1000の動作をしめすタイミングチャートである。図9は、カウンタ値00hから10hまでの範囲でタイミングが示されている。図10はカウンタ値10hから1Fhまでの範囲と次のサイクルのカウンタ値00hについてのタイミングが示されている。図9または図10の符号t1〜t33は時刻を示す。まず図9のt1からt7までの期間を説明する。
時刻t1に第1ステージのステップ1が開始される。時刻t1から時刻t2までの期間において、カウンタ40のカウンタ値は00hである。このとき図5の入力セレクタSL1はn番目のサンプル(n番目に入力される入力データ)を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a01が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregは、クロックCLKの立ち上がりに同期してデータ書き換えを行うので、時刻t2以前ではステップ1の乗算結果は、乗算結果レジスタAregに書き込まれない。
時刻t2に第1ステージのステップ2が開始される。時刻t2から時刻t3までの期間において、カウンタ40のカウンタ値は01hである。このカウンタ値に基づいて図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて結果レジスタOreg1のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t2にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ1の乗算結果を記憶する。また、図5の入力セレクタSL1はn番目のサンプル(n番目に入力される入力データ)を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a11が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t3以前ではステップ2の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg11に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E1によると、結果レジスタOreg1のイネーブル入力端子Eに入力されているイネーブル信号が時刻t2から時刻t3の期間に立ち上がる。これにより、結果レジスタOreg1はデータ書き換え可能な状態であるが、結果レジスタOreg1はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ2ではステップ2の加算結果が結果レジスタOreg1に書き込まれない。
時刻t3に第1ステージのステップ3が開始される。時刻t3から時刻t4までの期間において、カウンタ40のカウンタ値は02hである。このカウンタ値に基づいて図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第1加算レジスタReg11のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t3にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ2の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、結果レジスタOreg1にステップ2の加算結果(Oreg1(n))が書き込まれる。また、図5の入力セレクタSL1は結果レジスタOreg1に記憶されているデータ(Oreg1(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数b11が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t4以前ではステップ3の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第2加算レジスタReg21に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E2によると、第1加算レジスタReg11のイネーブル入力端子Eに入力されているイネーブル信号が時刻t3から時刻t4の期間に立ち上がる。これにより、第1加算レジスタReg11はデータ書き換え可能な状態であるが、第1加算レジスタReg11はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ3ではステップ3の加算結果は第1加算レジスタReg11に書き込まれない。
時刻t4に第1ステージのステップ4が開始される。時刻t4から時刻t5までの期間において、カウンタ40のカウンタ値は03hである。このカウンタ値に基づいて図5のシーケンサ30は、第1ステージのステップ3で第1加算レジスタReg11に出力していたアクティブなイネーブル信号を継続して出力する。時刻t4にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ3の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第1加算レジスタReg11にステップ2の加算結果が書き込まれる。また、図5の入力セレクタSL1はn番目のサンプル(n番目に入力される入力データ)を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a21が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t5以前ではステップ4の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg11に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E2によると、第1加算レジスタReg11のイネーブル入力端子Eに入力されているイネーブル信号が時刻t4でアクティブな状態である。これにより、第1加算レジスタReg11はデータ書き換え可能な状態であるが、第1加算レジスタReg11はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ4ではステップ4の加算結果は第1加算レジスタReg11に書き込まれない。
時刻t5に第1ステージのステップ5が開始される。時刻t5から時刻t6までの期間において、カウンタ40のカウンタ値は04hである。このカウンタ値に基づいて図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第2加算レジスタReg21のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t5にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ4の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第1加算レジスタReg11にステップ4の加算結果(Reg11(n))が書き込まれる。第1加算レジスタReg11に加算結果(Reg11(n))が書き込まれた後、シーケンサ30によって、第1加算レジスタReg11に入力されていたイネーブル信号はノンアクティブな信号に設定される。また、図5の入力セレクタSL1は結果レジスタOreg1に記憶されているデータ(Oreg1(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数b21が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t6以前ではステップ5の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から0データレジスタZregに記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E3によると、第2加算レジスタReg21のイネーブル入力端子Eに入力されているイネーブル信号が時刻t5から時刻t6の期間に立ち上がる。これにより、第2加算レジスタReg21はデータ書き換え可能な状態であるが、第2加算レジスタReg21はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ5ではステップ5の加算結果は第2加算レジスタReg21に書き込まれない。
時刻t6に、第2ステージのステップ1が開始される。時刻t6から時刻t7までの期間において、カウンタ40のカウンタ値は05hである。このカウンタ値に基づいて図5のシーケンサ30は、第1ステージのステップ5で第2加算レジスタReg21に出力していたアクティブなイネーブル信号を継続して出力する。時刻t6にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ5の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg21にステップ5の加算結果が書き込まれる。また、図5の入力セレクタSL1は結果レジスタOreg1に記憶されているデータ(Oreg1(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a02が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t6以前では第1ステージのステップ5の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第2加算レジスタReg21に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E3によると、第2加算レジスタReg21のイネーブル入力端子Eに入力されているイネーブル信号が時刻t6でアクティブな状態である。これにより、第2加算レジスタReg21はデータ書き換え可能な状態であるが、第2加算レジスタReg21はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、第2ステージのステップ1では第2ステージのステップ1の加算結果は第2加算レジスタReg21に書き込まれない。
時刻t7に第2ステージのステップ2が開始される。時刻t7から時刻t8までの期間において、カウンタ40のカウンタ値は06hである。このカウンタ値に基づいて図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて結果レジスタOreg2のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t7にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregは第1ステージのステップ1の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg21に第2ステージのステップ1の加算結果(Reg21(n))が書き込まれる。第2加算レジスタReg21に加算結果(Reg21(n))が書き込まれた後、シーケンサ30によって、第2加算レジスタReg21に入力されていたイネーブル信号はノンアクティブな信号に設定される。また、図5の入力セレクタSL1は結果レジスタOreg1に記憶されているデータ(Oreg1(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a12が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t7以前では第2ステージのステップ2の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg12に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を図5の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図9の符号E4によると、結果レジスタOreg2のイネーブル入力端子Eに入力されているイネーブル信号が時刻t7から時刻t8の期間に立ち上がる。これにより、結果レジスタOreg2はデータ書き換え可能な状態であるが、結果レジスタOreg2はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、第2ステージのステップ2では第2ステージのステップ2の加算結果が結果レジスタOreg2に書き込まれない。
上記のようなタイミングで、各ステップの演算結果が各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力される。図7及び図8に示されている各ステップの演算は、時刻t7から時刻t30までは上記と同様なタイミングで行われる。また、図10の時刻t28で、図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて最終出力レジスタEregのイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t29のクロックCLKの立ち上がりに同期して、最終出力レジスタEregは結果レジスタOreg6に記憶されているデータ(Oreg6(n))を記憶する。
次に図10を用いて第1の終段演算及び第2の終段演算を説明する。
時刻t30では、第6ステージのステップ5が開始され、加算器20から第2加算レジスタReg26に第6ステージのステップ5の加算結果が出力される。図5のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第2加算レジスタReg26のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。
時刻t31では第1の終段演算が開始される。図5のシーケンサ30は、第6ステージのステップ5で第2加算レジスタReg26に出力していたアクティブなイネーブル信号を継続して出力する。時刻31でクロックCLKが立ち上がり、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg26に第6ステージのステップ5の加算結果が書き込まれる。さらに、加算器20は、第6ステージのステップ5の乗算器10の乗算結果と第2加算レジスタReg26に記憶されているデータとを加算し、その加算結果(Reg26(n))を第2加算レジスタReg26に出力する。
時刻t32では、第2の終段演算が開始される。時刻t32にクロックCLKが立ち上がり、この立ち上がりに同期して、第2加算レジスタReg26に第1の終段演算での加算結果(Reg26(n))が書き込まれる。第2加算レジスタReg26に加算結果(Reg26(n))が書き込まれた後、シーケンサ30によって、第2加算レジスタReg26に入力されていたイネーブル信号はノンアクティブな信号に設定される。
時刻t33からは、(n+1)番目のサンプルに対する第1ステージのステップ1が開始される。
上記のような過程(第1ステージから第6ステージ、第1の終段演算及び第2の終段演算)を1サイクルとして、積和演算回路1000は、単位時間毎に入力されるサンプルの各々に対して1サイクルの演算を行う。これにより、積和演算回路1000は、サンプルに対して6段接続2次IIRフィルタ演算が施された出力データを出力できる。
3.第1実施形態の効果
図11は、図2の2次IIRフィルタ演算を実現させる比較例の積和演算回路2000のブロック図である。積和演算回路2000は、図2の各乗算手段11〜15のそれぞれに対応する乗算器として乗算器111、乗算器112、乗算器113、乗算器114及び乗算器115が設けられている。また、図2の各加算手段21〜23のそれぞれに対応する加算器として、加算器211、加算器212、加算器213及び加算器214が設けられている。また、積和演算回路2000は、レジスタR100、レジスタR200及びレジスタR300を含む。
乗算器や加算器などの演算回路は、レジスタ等の回路に比べると設計上チップ面積をより大きく占有する。また、高分解能を要求される積和演算回路の場合、演算回路に入力される入力データが多ビット化するので、その演算回路はさらに肥大化する。
図11の比較例では、5つの乗算器と4つの加算器を含む構成がとられている。高分解能の要求をクリアするためには、チップ面積を拡大させる必要がある。また、たとえばIIRフィルタを多段接続させる場合は、前述の演算回路を多段接続させる必要があるため、さらなる回路規模の増大を引き起こす。これらは、多大なコストを消費させ、さらには小型電子機器への搭載も極めて困難にさせる課題である。
ところが、第1実施形態の積和演算回路100は、演算回路として、1つの乗算器10と1つの加算器20を含む。つまり、回路規模を大きくさせる要因である演算回路の絶対数が極めて少ないのである。これにより、極めて小さな回路規模でフィルタ回路などを設計できるので、小型電子機器への搭載が容易になり、汎用性にすぐれる。また、回路規模が大幅に小さくなるので、コスト削減も可能になり、他の回路への組み込みなど応用範囲が拡大される。
比較例に比べ、積和演算回路100は、1つのサンプルに対する演算回数が増大するが、大幅な回路規模縮小によって、寄生容量が減少するので、消費電力の増大を大幅に防ぐことができる。
また、第1実施形態の積和演算回路1000は、6段接続2次IIRフィルタ演算を行うことができる。積和演算回路1000も、1つの乗算器10と1つの加算器20を含む。比較例を6段接続させた場合と比べると、積和演算回路1000は、大幅な回路規模の縮小化が可能なことがわかる。一例として6段接続であるが、第1実施形態のNを所望の値に設定し、積和演算回路を設計すれば様々な多段接続2次IIRフィルタ演算が可能な積和演算回路を得ることができる。
また、第1実施形態のような演算手順をもちいると、フィルタを多段接続した場合でも、遅延時間の増加が小さい。第1実施形態を用いた装置を設計する場合、遅延時間の増加を考慮する必要が少なくなり、第1実施形態は、第1実施形態を適用した装置を設計しやすくする効果も有する。
4.第2実施形態
第1実施形態の積和演算回路1000の係数ROM50及びデコーダ31を変更したものが第2実施形態の積和演算回路である。図示しないが第2実施形態の積和演算回路は、カウンタ値に基づいた制御が変更されるだけで、他の接続関係は第1実施形態の積和演算回路1000と同じである。第2実施形態の積和演算回路は、第1実施形態と同様に、N段接続2次IIRフィルタ演算が可能な積和演算回路である。ここでは、一例としてN=6の6段接続2次IIRフィルタ演算が可能な積和演算回路を説明する。
第2実施形態の積和演算回路は、第1実施形態の積和演算回路1000の演算手順とは逆方向に演算を行う。図12は、第2実施形態の積和演算回路の演算手順を示すフローチャートである。各ステップ1〜6の内容は、図6と同様である。図6の変数mのインクリメントを第2実施形態の図12では、変数mが6から1までデクリメントされる。
5.第2実施形態の動作
第2実施形態の動作を説明する。図13及び図14は、第1実施形態の図7及び図8に対応する図である。6つのステージのうち、図13には前半の3つのステージについて示され、図14には後半の3つのステージについて示されている。図13及び図14の各符号の意味は図7及び図8の同符号のものと同じである。
図13によると、第1ステージのステップ3にて結果レジスタOreg6に記憶されているデータであるOreg6(n)が決定される。第2ステージのステップ3では、Oreg4(n−1)に基づいて演算されたOreg5(n)が決定される。第3ステージのステップ3では、Oreg3(n−1)に基づいて演算されたOreg4(n)が決定される。
図14によると、第4ステージのステップ3では、Oreg2(n−1)に基づいて演算されたOreg3(n)が決定される。第5ステージのステップ3では、Oreg1(n−1)に基づいて演算されたOreg2(n)が決定される。第6ステージのステップ3では、Input(n)に基づいて演算されたOreg1(n)が決定される。さらに第1の終段演算及び第2の終段演算では、Oreg1(n)に基づいて演算された演算結果としてReg21(n)が第2加算レジスタReg21に記憶される。このReg21(n)は、(n+1)番目のサンプルに対して積和演算を行うときの第2加算レジスタReg21のデータとして用いられる。
表2に第2実施形態における、各ステージ、第1の終段演算及び第2の終段演算の1サイクルが終了した時点での各レジスタに記憶されているデータを記載する。
Figure 2005149009
図15及び図16は、第2実施形態の積和演算回路の動作をしめすタイミングチャートである。図15はカウンタ値00hから10hまでの範囲でタイミングが示されている。図16はカウンタ値10hから1Fhまでの範囲と次のサイクルのカウンタ値00hについてのタイミングが示されている。まず図15のt1からt7までの期間を説明する。
時刻t1に第1ステージのステップ1が開始される。時刻t1から時刻t2までの期間において、カウンタ40のカウンタ値は00hである。このとき第2実施形態の入力セレクタSL1は結果レジスタOreg5に記憶されているデータ(Oreg5(n−1))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a06が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregは、クロックCLKの立ち上がりに同期してデータ書き換えを行うので、時刻t2以前ではステップ1の乗算結果は、乗算結果レジスタAregに書き込まれない。
時刻t2に第1ステージのステップ2が開始される。時刻t2から時刻t3までの期間において、カウンタ40のカウンタ値は01hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて結果レジスタOreg6のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t2にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ1の乗算結果を記憶する。また、第2実施形態の入力セレクタSL1は結果レジスタOreg5に記憶されているデータ(Oreg5(n−1))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a16が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t3以前ではステップ2の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg16に記憶されているデータ(Reg16(n−1))が選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E5によると、結果レジスタOreg6のイネーブル入力端子Eに入力されているイネーブル信号が時刻t2から時刻t3の期間に立ち上がる。これにより、結果レジスタOreg6はデータ書き換え可能な状態であるが、結果レジスタOreg6はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ2ではステップ2の加算結果が結果レジスタOreg6に書き込まれない。
時刻t3に第1ステージのステップ3が開始される。時刻t3から時刻t4までの期間において、カウンタ40のカウンタ値は02hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第1加算レジスタReg16及び最終出力レジスタEregのイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t3にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ2の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、結果レジスタOreg6にステップ2の加算結果(Oreg6(n))が書き込まれる。また、第2実施形態の入力セレクタSL1は結果レジスタOreg6に記憶されているデータ(Oreg6(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数b16が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t4以前ではステップ3の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第2加算レジスタReg26に記憶されているデータ(Reg26(n−1))が選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E6によると、第1加算レジスタReg16のイネーブル入力端子Eに入力されているイネーブル信号が時刻t3から時刻t4の期間に立ち上がる。これにより、第1加算レジスタReg16はデータ書き換え可能な状態であるが、第1加算レジスタReg16はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ3ではステップ3の加算結果は第1加算レジスタReg16に書き込まれない。
時刻t4に第1ステージのステップ4が開始される。時刻t4から時刻t5までの期間において、カウンタ40のカウンタ値は03hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、第1ステージのステップ3で第1加算レジスタReg16に出力していたアクティブなイネーブル信号を継続して出力する。時刻t4にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ3の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第1加算レジスタReg16にステップ2の加算結果が書き込まれる。また、クロックCLKの立ち上がりに同期して、最終出力レジスタEregは結果レジスタOreg6に記憶されているデータ(Oreg6(n))を記憶する。また、第2実施形態の入力セレクタSL1は結果レジスタOreg6に記憶されているデータ(Oreg6(n)を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a26が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t5以前ではステップ4の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg16に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E6によると、第1加算レジスタReg16のイネーブル入力端子Eに入力されているイネーブル信号が時刻t4でアクティブな状態である。これにより、第1加算レジスタReg16はデータ書き換え可能な状態であるが、第1加算レジスタReg16はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ4ではステップ4の加算結果は第1加算レジスタReg16に書き込まれない。
時刻t5に第1ステージのステップ5が開始される。時刻t5から時刻t6までの期間において、カウンタ40のカウンタ値は04hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第2加算レジスタReg26のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t5にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ4の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第1加算レジスタReg16にステップ4の加算結果(Reg16(n))が書き込まれる。第1加算レジスタReg16に加算結果(Reg16(n))が書き込まれた後、シーケンサ30によって、第1加算レジスタReg16に入力されていたイネーブル信号はノンアクティブな信号に設定される。また、第2実施形態の入力セレクタSL1は結果レジスタOreg6に記憶されているデータ(Oreg6(n))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数b26が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t6以前ではステップ5の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から0データレジスタZregに記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E7によると、第2加算レジスタReg26のイネーブル入力端子Eに入力されているイネーブル信号が時刻t5から時刻t6の期間に立ち上がる。これにより、第2加算レジスタReg26はデータ書き換え可能な状態であるが、第2加算レジスタReg26はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、ステップ5ではステップ5の加算結果は第2加算レジスタReg26に書き込まれない。
時刻t6に、第2ステージのステップ1が開始される。時刻t6から時刻t7までの期間において、カウンタ40のカウンタ値は05hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、第1ステージのステップ5で第2加算レジスタReg26に出力していたアクティブなイネーブル信号を継続して出力する。時刻t6にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregはステップ5の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg26にステップ5の加算結果が書き込まれる。また、第2実施形態の入力セレクタSL1は結果レジスタOreg4に記憶されているデータ(Oreg4(n−1))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a05が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t6以前では第1ステージのステップ5の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第2加算レジスタReg26に記憶されているデータが選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E7によると、第2加算レジスタReg26のイネーブル入力端子Eに入力されているイネーブル信号が時刻t6でアクティブな状態である。これにより、第2加算レジスタReg21はデータ書き換え可能な状態であるが、第2加算レジスタReg26はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、第2ステージのステップ1では第2ステージのステップ1の加算結果は第2加算レジスタReg26に書き込まれない。
時刻t7に第2ステージのステップ2が開始される。時刻t7から時刻t8までの期間において、カウンタ40のカウンタ値は06hである。このカウンタ値に基づいて第2実施形態のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて結果レジスタOreg5のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。時刻t7にクロックCLKが立ち上がり、この立ち上がりに同期して、乗算結果レジスタAregは第1ステージのステップ1の乗算結果を記憶する。また、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg26に第2ステージのステップ1の加算結果(Reg26(n))が書き込まれる。第2加算レジスタReg26に加算結果(Reg26(n))が書き込まれた後、シーケンサ30によって、第2加算レジスタReg26に入力されていたイネーブル信号はノンアクティブな信号に設定される。また、第2実施形態の入力セレクタSL1は結果レジスタOreg4に記憶されているデータ(Oreg4(n−1))を乗算器10の入力Xに選択出力する。乗算器10の入力Yには係数ROM50から係数a5が入力される。乗算器10は、入力X及び入力Yに対する乗算結果を乗算結果レジスタAregに出力する。ただし、乗算結果レジスタAregはステップ1と同様に、時刻t7以前では第2ステージのステップ2の乗算結果は、乗算結果レジスタAregに書き込まれない。
また、加算器20の入力Aには乗算結果レジスタAregの出力データが入力され、加算器20の入力BにはレジスタセレクタSL2から第1加算レジスタReg15に記憶されているデータ(Reg15(n−1))が選択出力される。加算器20は入力A及び入力Bに対する加算結果を第2実施形態の各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力する。図16の符号E8によると、結果レジスタOreg5のイネーブル入力端子Eに入力されているイネーブル信号が時刻t7から時刻t8の期間に立ち上がる。これにより、結果レジスタOreg5はデータ書き換え可能な状態であるが、結果レジスタOreg5はクロックCLKの立ち上がりに同期してデータ書き換えを行うので、第2ステージのステップ2では第2ステージのステップ2の加算結果が結果レジスタOreg5に書き込まれない。
上記のようなタイミングで、各ステップの演算結果が各レジスタ(Reg11〜Reg16、Reg21〜Reg26、Oreg1〜Oreg6)に出力される。図13及び図14に示されている各ステップの演算は、時刻t7から時刻t30までは上記と同様なタイミングで行われる。
次に図16を用いて第1の終段演算及び第2の終段演算を説明する。
時刻t30では、第6ステージのステップ5が開始され、加算器20から第2加算レジスタReg21に第6ステージのステップ5の加算結果が出力される。第2実施形態のシーケンサ30は、デコーダ31、加算レジスタコントローラ32及び結果レジスタコントローラ33を用いて第2加算レジスタReg21のイネーブル入力端子Eにアクティブなイネーブル信号を出力する。
時刻t31では第1の終段演算が開始される。第2実施形態のシーケンサ30は、第6ステージのステップ5で第2加算レジスタReg21に出力していたアクティブなイネーブル信号を継続して出力する。時刻31でクロックCLKが立ち上がり、このクロックCLKの立ち上がりに同期して、第2加算レジスタReg21に第6ステージのステップ5の加算結果が書き込まれる。さらに、加算器20は、第6ステージのステップ5の乗算器10の乗算結果と第2加算レジスタReg21に記憶されているデータとを加算し、その加算結果(Reg21(n))を第2加算レジスタReg21に出力する。
時刻t32では、第2の終段演算が開始される。時刻t32にクロックCLKが立ち上がり、この立ち上がりに同期して、第2加算レジスタReg21に第1の終段演算での加算結果(Reg21(n))が書き込まれる。第2加算レジスタReg21に加算結果(Reg21(n))が書き込まれた後、シーケンサ30によって、第2加算レジスタReg21に入力されていたイネーブル信号はノンアクティブな信号に設定される。
時刻t33からは、(n+1)番目のサンプルに対する第1ステージのステップ1が開始される。
上記のような過程(第1ステージから第6ステージ、第1の終段演算及び第2の終段演算)を1サイクルとして、第2実施形態の積和演算回路は、単位時間毎に入力されるサンプルの各々に対して1サイクルの演算を行う。これにより、第2実施形態の積和演算回路は、サンプルに対して6段接続2次IIRフィルタ演算が施された出力データを5ステップ分遅延させて出力できる。
6.第2実施形態の効果
第2実施形態は、第1実施形態と同様な、回路規模が小さくなる効果を有している。第1実施形態との相違点は、第2実施形態ではフィルタを多段接続した分だけ遅延時間が増加する点である。
図17は図11の比較例や、その他IIRフィルタを多段に接続したときの図である。図17に示すように、フィルタを多段に接続する場合、レジスタをフィルタ間に介すので接続したフィルタの数に比例した長さの遅延時間が生じる。図17に示すような多段接続IIRフィルタには遅延時間が発生するので、多段接続IIRフィルタを用いた装置を設計する際に遅延時間を考慮する。このように設計された装置に対して、該多段接続IIRフィルタの代わりに、たとえば第1実施形態の一例である積和演算回路1000を適用させる場合、前述の遅延時間が発生しないので、該装置の設計を変更する必要がある。
ところが、第1実施形態と同じ回路規模で構成できる第2実施形態を用いれば、前述のように遅延時間を考慮して設計された装置に対して、容易に回路規模の小さい積和演算回路を適用できる。
次に第2実施形態の遅延時間の増加の理由を説明する。
n番目のサンプルに対する最終出力データを考える。n番目のサンプルはInput(n)である。図14によると、Input(n)は、第6ステージにて演算が施され結果レジスタOreg1にOreg1(n)として記憶される。このOreg1(n)が利用されるのは、次のサイクルの第5ステージである。その時、Oreg1(n)は、第5ステージで演算が施され結果レジスタOreg2にOreg2(n+1)として記憶される。このOreg2(n+1)が利用されるのは、さらに次のサイクルの第4ステージである。その時、Oreg2(n+1)は、第4ステージで演算が施され結果レジスタOreg3にOreg3(n+2)として記憶される。このような動作が繰り返され、Input(n)に6段接続2次IIRフィルタ演算が施された出力データは、結果レジスタOreg6に記憶される。その時の結果レジスタOreg6に記憶されているデータは、Oreg6(n+5)である。これは、(n+5)番目のサンプルをフィルタ演算しているときに、Input(n)に対応する出力データが出力されることを意味する。つまり、5サイクル分の遅延が生じるのである。
例えば図11の比較例2次IIRフィルタを6段接続した場合、フィルタ間にレジスタを介すので5つのレジスタで遅延が生じる。第2実施形態は、上記の理由から、フィルタ演算の回数に応じた遅延を発生できるので、回路規模の小さな積和演算回路を既存の設計情報を有効利用してIIRフィルタを用いた装置に適用できる。
7.アナログ/デジタル変換器及びデジタル/アナログ変換器
図18は、第1実施形態または第2実施形態の積和演算回路を用いたアナログ/デジタル変換器3000のブロック図である。ADCはADコンバータを示し、DFはデジタルフィルタを示す。デジタルフィルタDFは、第1実施形態または第2実施形態の積和演算回路を含む。第1実施形態または第2実施形態の積和演算回路は、回路規模が小さいため、容易にアナログ/デジタル変換器3000に組み込むことができる。これにより、デジタルフィルタDFを有するアナログ/デジタル変換器3000を提供できる。このアナログ/デジタル変換器3000を小型電子機器やその他の電子デジタルデバイスに用いることは、小型電子機器やその他の電子デジタルデバイスを設計する際に、装置の小型化を実現させ、さらには、設計時間の短縮化をも可能にする。
図19は、第1実施形態または第2実施形態の積和演算回路を用いたデジタル/アナログ変換器4000のブロック図である。DACはDAコンバータを示し、DFはデジタルフィルタを示す。デジタルフィルタDFは、第1実施形態または第2実施形態の積和演算回路を含む。第1実施形態または第2実施形態の積和演算回路は、回路規模が小さいため、容易にデジタル/アナログ変換器4000に組み込むことができる。これにより、デジタルフィルタDFを有するデジタル/アナログ変換器4000を提供できる。このデジタル/アナログ変換器4000を小型電子機器やその他の電子デジタルデバイスに用いることは、小型電子機器やその他の電子デジタルデバイスを設計する際に、装置の小型化を実現させ、さらには、設計時間の短縮化をも可能にする。
図1は第1実施形態及び第2実施形態の積和演算回路の構成図。 図2は2次IIRフィルタのブロック図。 図3は、第1実施形態の演算手順を示す図。 図4は、N=1の場合のときの積和演算回路の演算ステップを示す図。 図5は、6段2次IIRフィルタ演算をする積和演算回路のブロック図。 図6は、第1実施形態の演算手順を示すフローチャート。 図7は、各カウンタ値での、乗算器、加算器、及び各レジスタに入力されるデータを示す図。 図8は、各カウンタ値での、乗算器、加算器、及び各レジスタに入力されるデータを示す他の図。 図9は、積和演算回路の動作を示すタイミングチャート。 図10は、積和演算回路の動作を示す他のタイミングチャート。 図11は、2次IIRフィルタ演算を行う比較例の積和演算回路のブロック図。 図12は、第2実施形態の積和演算回路の演算手順を示すフローチャート。 図13は、第2実施形態での各カウンタ値での、乗算器、加算器、及び各レジスタに入力されるデータを示す図。 図14は、第2実施形態での各カウンタ値での、乗算器、加算器、及び各レジスタに入力されるデータを示す他の図。 図15は、第2実施形態の積和演算回路の動作を示すタイミングチャート。 図16は、第2実施形態の積和演算回路の動作を示す他のタイミングチャート。 図17は比較例や、その他IIRフィルタを多段に接続したときの構成図。 図18は、第1実施形態または第2実施形態の積和演算回路を用いたアナログ/デジタル変換器のブロック図。 図19は、第1実施形態または第2実施形態の積和演算回路を用いたデジタル/アナログ変換器のブロック図。
符号の説明
10 乗算器、20 加算器、30 シーケンサ(制御回路)、31 デコーダ、
32 加算レジスタコントローラ、33 結果レジスタコントローラ、40 カウンタ、
50 係数ROM(係数記憶回路)、100 積和演算回路、1000 積和演算回路、3000 アナログ/デジタル変換器、4000 デジタル/アナログ変換器、
Areg 乗算結果レジスタ(乗算結果記憶回路)、
Ereg 最終出力レジスタ(最終出力遅延回路)
Oreg 結果レジスタ(結果遅延回路)
Reg1 第1加算レジスタ(第1加算遅延回路)、
Reg2 第2加算レジスタ(第2加算遅延回路)、
SL1 入力セレクタ、
SL2 レジスタセレクタ(加算遅延回路用セレクタ)、
SL3 結果出力セレクタ、
Zreg 0データレジスタ(0データ記憶回路)

Claims (21)

  1. クロック信号に基づいて動作するカウンタ及び制御回路と、係数記憶回路と、乗算器と、乗算結果遅延回路と、加算器と、
    前記制御回路からの制御信号に基づいて動作する第1加算遅延回路、第2加算遅延回路、0データ記憶回路、結果遅延回路、入力セレクタ及び加算遅延回路用セレクタとを有し、
    前記入力セレクタは、外部からの入力データ又は前記結果遅延回路からのフィードバックデータのうちいずれかを前記乗算器に選択出力し、
    前記係数記憶回路は、前記カウンタからの出力値に基づいて前記係数記憶回路に記憶されているデータを前記乗算器に選択出力し、
    前記乗算器は、前記入力セレクタによって選択されたデータと、前記係数記憶回路から出力されたデータとを乗算し、その後乗算結果を前記乗算結果遅延回路へ出力し、
    前記加算遅延回路用セレクタは、前記第1加算遅延回路、前記第2加算遅延回路または前記0データ記憶回路のいずれかに記憶されているデータを前記制御回路からの制御信号に基づいて前記加算器に選択出力し、
    前記加算器は、前記乗算結果遅延回路から遅延出力されたデータと、前記加算遅延回路用セレクタによって選択出力されたデータとを加算し、その後加算結果を前記制御回路の制御信号に基づいて前記第1加算遅延回路、第2加算遅延回路または結果遅延回路のいずれかに選択出力し、
    前記結果遅延回路は、前記制御回路の制御信号に基づいて前記結果遅延回路に記憶されているデータを出力データとして出力することを特徴とする積和演算回路。
  2. 請求項1において、
    前記0データ記憶回路は、0の値が記憶されている0データレジスタを含み、
    前記乗算結果遅延回路は、乗算結果レジスタを含み、
    前記乗算結果レジスタは、前記制御回路からのイネーブル信号がアクティブであるとき、前記乗算器から出力された前記乗算結果を記憶することを特徴とする積和演算回路。
  3. 請求項1または2において、
    前記第1加算遅延回路は、N個(Nは1以上の整数)の第1加算レジスタを含み、
    前記第2加算遅延回路は、N個の第2加算レジスタを含み、
    前記結果遅延回路は、N個の結果レジスタを含むことを特徴とする積和演算回路。
  4. 請求項3において、
    前記N個の結果レジスタのうち第N番目の結果レジスタに記憶されているデータは、前記出力データとして出力されることを特徴とする積和演算回路。
  5. 請求項3の積和演算回路は、最終出力遅延回路を含み、
    前記最終出力遅延回路は、前記N個の結果レジスタのうち第N番目の結果レジスタに記憶されているデータを記憶し、前記最終出力遅延回路に記憶されているデータを前記出力データとして出力することを特徴とする積和演算回路。
  6. 請求項3乃至5のいずれかにおいて、
    前記結果遅延回路は、前記N個の結果レジスタのうちのいずれかに記憶されているデータを前記制御回路からの制御信号に基づいて、前記入力セレクタに選択出力する結果出力セレクタ含むことを特徴とする積和演算回路。
  7. 請求項3乃至6のいずれかにおいて、
    前記制御回路は、デコーダと、加算レジスタコントローラと、結果レジスタコントローラとを含み、
    前記加算レジスタコントローラは、前記N個の第1加算レジスタ及び前記N個の第2加算レジスタのそれぞれと接続され、
    前記結果レジスタコントローラは、前記N個の結果レジスタのそれぞれと接続され、
    前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記N個の結果レジスタのなかから書き込みを行うレジスタを決定し、その決定結果を前記加算レジスタコントローラまたは前記結果レジスタコントローラの少なくともいずれか一方に出力することを特徴とする積和演算回路。
  8. 請求項7において、
    前記加算レジスタコントローラは、前記デコーダから出力された前記決定結果に基づいて、前記N個の第1加算レジスタ及び前記N個の第2加算レジスタのうちのいずれかのレジスタに対して、書き込みをアクティブにする書き込みイネーブル信号を出力することを特徴とする積和演算回路。
  9. 請求項7または8において、
    前記結果レジスタコントローラは、前記デコーダから出力された前記決定結果に基づいて、前記N個の結果レジスタうちのいずれかのレジスタに対して、書き込みをアクティブにする書き込みイネーブル信号を出力することを特徴とする積和演算回路。
  10. 請求項7乃至9のいずれかにおいて、
    前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記0データレジスタのうち、いずれかを選択し、その選択内容を前記加算遅延回路用セレクタに出力することを特徴とする積和演算回路。
  11. 請求項10において、
    前記加算遅延回路用セレクタは、前記デコーダから出力された前記選択内容に基づいて、前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記0データレジスタのそれぞれに記憶されているデータを前記加算器に選択出力することを特徴とする積和は演算回路。
  12. 請求項7乃至11のいずれかにおいて、
    前記デコーダは、クロック信号及び前記カウンタの出力値に基づいて、前記N個の結果レジスタのうち、いずれかを選択し、その選択内容を前記結果出力セレクタに出力することを特徴とする積和演算回路。
  13. 請求項12において、
    前記結果出力セレクタは、前記デコーダから出力された前記選択内容に基づいて、前記N個の結果レジスタのそれぞれに記憶されているデータを前記入力セレクタに選択出力することを特徴とする積和演算回路。
  14. 請求項2乃至13のいずれかにおいて、
    前記N個の第1加算レジスタ、前記N個の第2加算レジスタ及び前記N個の結果レジスタは、前記クロック信号の立ち上がりエッジまたは立ち下がりエッジに同期してデータ書き込みされることを特徴とする積和演算回路。
  15. 請求項2乃至14のいずれかにおいて、
    前記外部からの入力データに対して、(5×N+2)クロックで1サイクルの演算結果を出力することを特徴とする積和演算回路。
  16. 請求項1乃至15のいずれかにおいて、
    n番目(nは自然数)の入力データがM番目(Mは自然数)の前記クロック信号に同期して前記入力セレクタに入力されると、
    第1ステップとして、
    M番目の前記クロック信号の周期に同期して、前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、
    第2ステップとして、
    (M+1)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、
    前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、
    前記加算器は、前記第1加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記結果遅延回路に出力し、
    第3ステップとして、
    (M+2)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、
    前記結果遅延回路は前記加算器から出力されている前記加算結果をラッチし、
    前記乗算器は、前記結果遅延回路に記憶されているデータと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、
    前記加算器は、前記第2加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第1加算遅延回路に出力し、
    第4ステップとして、
    (M+3)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、
    前記第1加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、
    前記乗算器は、前記n番目の入力データと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、
    前記加算器は、前記第1加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第1加算遅延回路に出力し、
    第5ステップとして、
    (M+4)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、
    前記第1加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、
    前記乗算器は、前記結果遅延回路に記憶されているデータと、前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを乗算し、その乗算結果を前記乗算結果遅延回路に出力し、
    前記加算器は、前記0データ記憶回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第2加算遅延回路に出力し、
    第6ステップとして、
    (M+5)番目の前記クロック信号の周期に同期して、前記乗算結果遅延回路は前記乗算器から出力されている前記乗算結果をラッチし、
    前記第2加算遅延回路は前記加算器から出力されている前記加算結果をラッチし、
    前記加算器は、前記第2加算遅延回路に記憶されているデータと、前記乗算結果遅延回路に記憶されているデータとを加算し、その加算結果を前記第2加算遅延回路に出力し、
    第7ステップとして、
    (M+6)番目の前記クロック信号の周期に同期して、 前記第2加算遅延回路は前記加算器から出力されている前記加算結果をラッチする
    ことを特徴とする積和演算回路。
  17. 請求項2乃至15のいずれかにおいて、
    n番目(nは自然数)の入力データが前記入力セレクタに入力されると、前記入力データに対して、Nステージの積和演算、第1の終段演算、第2の終段演算の順に演算が行われ、
    前記積和演算のm(mは自然数)番目のステージは、5つの演算ステップを含み、
    前記5つの演算ステップは、前記クロック信号の周期が5回分経過する間に、前記クロック信号の各周期に同期して行われ、
    第1の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第1乗算ステップと、
    m=1の時は加算を行わず、m>1の時は(m−1)番目の前記第2加算レジスタに記憶されているデータと、前記第1乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(m−1)番目の第2加算レジスタに出力する第1加算ステップとを含み、
    第2の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第2乗算ステップと、
    m番目の前記第1加算レジスタに記憶されているデータと、前記第2乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果をm番目の前記結果レジスタに出力する第2加算ステップとを含み、
    第3の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第3乗算ステップと、
    m番目の前記第2加算レジスタに記憶されているデータと、前記第3乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第1加算レジスタに出力する第3加算ステップとを含み、
    第4の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第4乗算ステップと、
    前記m番目の第1加算レジスタに記憶されているデータと、前記第4乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第1加算レジスタに出力する第4加算ステップとを含み、
    第5の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第5乗算ステップと、
    前記0データレジスタに記憶されているデータと、前記第5乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記m番目の第2加算レジスタに出力する第5加算ステップとを含み、
    第1の終段演算は、N番目のステージにおける前記第5乗算ステップの前記乗算結果と、N番目の前記第2加算レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記N番目の第2加算レジスタに出力する第6加算ステップを含み、
    第2の終段演算は、前記第6加算ステップの加算結果を前記N番目の第2加算レジスタに記憶させるラッチステップを含み、
    前記第1の演算ステップ、前記第2の演算ステップ及び前記第4の演算ステップでは、m=1の時、前記入力セレクタは前記入力データを前記乗算器に選択出力し、
    m>1の時、前記入力セレクタは(m−1)番目の前記結果レジスタからの出力を前記乗算器に選択出力し、
    前記第3の演算ステップ及び前記第5の演算ステップでは、前記入力セレクタは前記m番目の結果レジスタからの出力を前記乗算器に選択出力することを特徴とする積和演算回路。
  18. 請求項2乃至15のいずれかにおいて、
    n番目(nは自然数)の入力データが前記入力セレクタに入力されると、前記入力データに対して、Nステージの積和演算、第1の終段演算、第2の終段演算の順に演算が行われ、
    前記積和演算のm(mは自然数)番目のステージは、5つの演算ステップを含み、
    前記5つの演算ステップは、前記クロック信号の周期が5回分経過する間に、前記クロック信号の各周期に同期して行われ、
    第1の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第1乗算ステップと、
    m=1の時は加算を行わず、m>1の時は(N−m+1)番目の前記第2加算レジスタに記憶されているデータと、前記第1乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第2加算レジスタに出力する第1加算ステップとを含み、
    第2の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第2乗算ステップと、
    (N−m+1)番目の前記第1加算レジスタに記憶されているデータと、前記第2乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を(N−m+1)番目の前記結果レジスタに出力する第2加算ステップとを含み、
    第3の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第3乗算ステップと、
    前記(N−m+1)番目の第2加算レジスタに記憶されているデータと、前記第3乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第1加算レジスタに出力する第3加算ステップとを含み、
    第4の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第4乗算ステップと、
    前記(N−m+1)番目の第1加算レジスタに記憶されているデータと、前記第4乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第1加算レジスタに出力する第4加算ステップとを含み、
    第5の演算ステップは、
    前記入力セレクタからの出力データと前記カウンタの出力値に基づいた前記係数記憶回路の出力データとを前記乗算器にて乗算し、その乗算結果を前記乗算結果レジスタに出力する第5乗算ステップと、
    前記0データレジスタに記憶されているデータと、前記第5乗算ステップ以前に前記乗算結果レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記(N−m+1)番目の第2加算レジスタに出力する第5加算ステップとを含み、
    第1の終段演算は、N番目のステージにおける前記第5乗算ステップの前記乗算結果と、1番目の前記第2加算レジスタに記憶されているデータとを前記加算器にて加算し、その加算結果を前記1番目の第2加算レジスタに出力する第6加算ステップを含み、
    第2の終段演算は、前記第6加算ステップの加算結果を前記1番目の第2加算レジスタに記憶させるラッチステップを含み、
    前記第1の演算ステップ、前記第2の演算ステップ及び前記第4の演算ステップでは、m=Nの時、前記入力セレクタは前記入力データを前記乗算器に選択出力し、
    m<Nの時、前記入力セレクタは(N−m)番目の前記結果レジスタからの出力を前記乗算器に選択出力し、
    前記第3の演算ステップ及び前記第5の演算ステップでは、前記入力セレクタは前記(N−m+1)番目の結果レジスタからの出力を前記乗算器に選択出力することを特徴とする積和演算回路。
  19. 請求項17または18において、
    前記カウンタは、(5×N+2)進カウンタを含むことを特徴とする積和演算回路。
  20. 請求項1乃至19のいずれかの積和演算回路を含むことを特徴とするアナログ/デジタル変換器。
  21. 請求項1乃至19のいずれかの積和演算回路を含むことを特徴とするデジタル/アナログ変換器。
JP2003383992A 2003-11-13 2003-11-13 積和演算回路 Expired - Lifetime JP4273323B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003383992A JP4273323B2 (ja) 2003-11-13 2003-11-13 積和演算回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003383992A JP4273323B2 (ja) 2003-11-13 2003-11-13 積和演算回路

Publications (2)

Publication Number Publication Date
JP2005149009A true JP2005149009A (ja) 2005-06-09
JP4273323B2 JP4273323B2 (ja) 2009-06-03

Family

ID=34692558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003383992A Expired - Lifetime JP4273323B2 (ja) 2003-11-13 2003-11-13 積和演算回路

Country Status (1)

Country Link
JP (1) JP4273323B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245296A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 積和演算回路
US9673780B2 (en) 2012-06-08 2017-06-06 Nec Corporation Multi-stage filter processing device and method
US10022070B2 (en) 2013-11-11 2018-07-17 Seiko Epson Corporation Integrated circuit including a detection unit for detecting an angular velocity signal of a moving object based on a signal from a sensor

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009245296A (ja) * 2008-03-31 2009-10-22 Fujitsu Ltd 積和演算回路
US9673780B2 (en) 2012-06-08 2017-06-06 Nec Corporation Multi-stage filter processing device and method
US10022070B2 (en) 2013-11-11 2018-07-17 Seiko Epson Corporation Integrated circuit including a detection unit for detecting an angular velocity signal of a moving object based on a signal from a sensor

Also Published As

Publication number Publication date
JP4273323B2 (ja) 2009-06-03

Similar Documents

Publication Publication Date Title
US7409417B2 (en) Polyphase filter with optimized silicon area
EP0693236B1 (en) Method and arrangement in a transposed digital fir filter for multiplying a binary input signal with tap coefficients and a method for designing a transposed digital filter
EP0285317A2 (en) Phase coordinated multistage digital filter
US4939684A (en) Simplified processor for digital filter applications
WO2000008756A1 (en) Multiplierless digital filtering
US4958311A (en) Composite finite impulse response digital filter
JP4273323B2 (ja) 積和演算回路
US5400271A (en) Apparatus for and method of calculating sum of products
US20100146024A1 (en) Digital filter, its synthesizing device, synthesizing program and synthesizing program recording medium
US5781462A (en) Multiplier circuitry with improved storage and transfer of booth control coefficients
EP0474246A2 (en) Image signal processor
US5477479A (en) Multiplying system having multi-stages for processing a digital signal based on the Booth's algorithm
US5886912A (en) Processing elements connected in cascade having a controllable bypass
JPH0767063B2 (ja) デジタル信号処理回路
WO2006068196A1 (ja) 畳み込み演算回路
EP1703636A1 (en) Fir filter
Caffarena et al. Architectural synthesis of fixed-point dsp datapaths using fpgas
JP2856064B2 (ja) ディジタルフィルタ
US4942396A (en) To-digit-serial converters for systems processing data in digit-serial format
JP2009065515A (ja) デジタルフィルタ
KR100235537B1 (ko) 디지털 필터의 가변탭 구조 및 그의 곱셈회로
US6944217B1 (en) Interleaved finite impulse response filter
JPH03211910A (ja) ディジタルフィルタ
JPH1185470A (ja) 演算回路
JPH0828646B2 (ja) ディジタルフィルタ

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060112

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061026

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080523

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080924

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081113

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: 20090204

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: 20090217

R150 Certificate of patent or registration of utility model

Ref document number: 4273323

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120313

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130313

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140313

Year of fee payment: 5

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term