(57)【要約】【課題】  ＲＯＭ容量をなるべく減らし、加算器・セレクタ・ＥＸＯＲ（Ｅｘｃｌｕｓｉｖｅ  ＯＲ）回路という規模の小さい回路の追加のみで精度のよい関数を演算する関数演算回路およびその関数演算方法を提供する。【解決手段】  第１ＲＯＭ１と、第２ＲＯＭ２と、入力部加算器３と、ＥＸＯＲ回路４、５と、セレクタ６〜８と、セレクタの出力を加算する第１、第２出力部加算器９、１０とを備え、（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を第１ＲＯＭ１のアドレス入力とし、［ｚＮ−１ｚＮ−２・・・ｚ１］を第２ＲＯＭ２のアドレス入力とし、第１、第２ＲＯＭ１、２からｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力し、第２出力部加算器１０のキャリー入力に１を入力し、第２出力部加算器１０の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とする。【選択図】図１
2010086396.tif 000002
【特許請求の範囲】
【請求項１】
２進数の値ｘに対するある関数ｆ（ｘ）の値を定数テーブルを格納したＲＯＭを利用して演算する関数演算回路において、
ｘを上位Ｎｂｉｔのｚ（＝［ｚＮ−１ｚＮ−２・・・ｚ１ｚ０］）と下位Ｍｂｉｔのｙ（＝［ｙＭ−１ｙＭ−２・・・ｙ１ｙ０］）に分けたとき、
ｆ(ｗ（＝［ｗＮ−１ｗＮ−２・・・ｗ１ｗ０］) ×２Ｍ)の値を入れたＲＯＭで、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力する第１ＲＯＭと、
［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する第２ＲＯＭと、
［ｚＮ−１ｚＮ−２・・・ｚ１］とｚ０を入力し（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を出力する入力部加算器と、
ｚ０とｙ０、ｙ１、・・・ｙＭ−１の各々とのＥＸＯＲを演算し結果を出力する第１〜第（Ｍ）ＥＸＯＲ回路と、
前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を入力とし、セレクト信号が０のときは前記第１ＲＯＭの出力を選択し、前記セレクト信号が１のときは前記第２ＲＯＭの出力を選択するセレクタで、ｚ０をセレクト信号とする第１セレクタと、
前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を各々のセレクト信号とする第２〜第（Ｍ＋１）セレクタと、
前記セレクタの出力を加算する第１〜第（Ｍ）出力部加算器とを備え、
（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を前記第１ＲＯＭのアドレス入力とし、
［ｚＮ−１ｚＮ−２・・・ｚ１］を前記第２ＲＯＭのアドレス入力とし、
前記第１、第２ＲＯＭからｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力し、
前記第１出力部加算器が前記第１セレクタと前記第２セレクタの出力を加算し、
前記第２〜第（Ｍ）出力部加算器が前記第１〜第（Ｍ−１）出力部加算器の出力を１ｂｉｔ右にシフトしたものと第３〜第（Ｍ＋１）セレクタの出力の各々を加算し、
前記第（Ｍ）出力部加算器のキャリー入力に１を入力し、前記第（Ｍ）出力部加算器の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とすることを特徴とする関数演算回路。
【請求項２】
２進数の値ｘに対するある関数ｆ（ｘ）の値を定数テーブルを格納したＲＯＭを利用して演算する関数演算回路の関数演算方法において、
ｘを上位Ｎｂｉｔのｚ（＝［ｚＮ−１ｚＮ−２・・・ｚ１ｚ０］）と下位Ｍｂｉｔのｙ（＝［ｙＭ−１ｙＭ−２・・・ｙ１ｙ０］）に分けたとき、
前記関数演算回路に、ｆ(ｗ（＝［ｗＮ−１ｗＮ−２・・・ｗ１ｗ０］) ×２Ｍ)の値を入れたＲＯＭで、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力する第１ＲＯＭと、
［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する第２ＲＯＭと、
ｚ０とｙ０、ｙ１、・・・ｙＭ−１の各々とのＥＸＯＲを演算し結果を出力する第１〜第（Ｍ）ＥＸＯＲ回路と、
前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を入力とし、セレクト信号が０のときは前記第１ＲＯＭの出力を選択し、前記セレクト信号が１のときは前記第２ＲＯＭの出力を選択するセレクタで、ｚ０をセレクト信号とする第１セレクタと、
前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を各々のセレクト信号とする第２〜第（Ｍ＋１）セレクタと、
前記セレクタの出力を加算する第１〜第（Ｍ）出力部加算器とを備え、
［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０を演算するステップと、
（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を前記第１ＲＯＭのアドレス入力とし、
［ｚＮ−１ｚＮ−２・・・ｚ１］を前記第２ＲＯＭのアドレス入力とし、
前記第１、第２ＲＯＭからｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力するステップと、
前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を第２〜第（Ｍ＋１）セレクタに入力し、
前記第１セレクタのセレクト信号にｚ０を入力し、前記第２〜第（Ｍ＋１）セレクタのセレクト信号に前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を入力するステップと、
前記第１出力部加算器が前記第１セレクタと前記第２セレクタの出力を加算するステップと、
前記第２〜第（Ｍ）出力部加算器が前記第１〜第（Ｍ−１）出力部加算器の出力を１ｂｉｔ右にシフトしたものと第３〜第（Ｍ＋１）セレクタの出力の各々を加算するステップと、
前記第（Ｍ）出力部加算器のキャリー入力に１を入力し、前記第（Ｍ）出力部加算器の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とするステップとを備えることを特徴とする関数演算回路の関数演算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ｓｉｎ（ｘ）、ｔａｎ−１（ｘ）、√（ｘ）などの関数の値を演算する関数演算回路およびその関数演算方法に関する。
【背景技術】
【０００２】
ｓｉｎ（ｘ）、ｔａｎ−１（ｘ）、√（ｘ）などの関数の値を演算するのに、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）に定数テーブルとして関数の値を入れておきＲＯＭのアドレスにｘを入力しその出力データを使用する回路がある。この回路で精度を上げるには、アドレスのｂｉｔ数およびデータのｂｉｔ数を大きくする必要があり、ＲＯＭ容量が大きくなってしまうという問題がある。
これに対して、関数（ｓｉｎ）の値を入れた第１ＲＯＭと、その微分係数（ｓｉｎ’）の値を入れた第２ＲＯＭの２つのＲＯＭを使用して関数値を求める回路がある。（例えば特許文献１参照）
図３はその関数演算回路の例を示すブロック図である。図３において、３１は関数（ｓｉｎ）の値を入れた第１ＲＯＭ、３２はその微分係数（ｓｉｎ’）の値を入れた第２ＲＯＭ、３３は掛け算器、３４は加算器である。この回路は入力の上位をｚ・下位をｙとしｓｉｎ（ｚ＋ｙ）を演算する回路の例である。第１ＲＯＭ３１のアドレスにｚを入力しその出力と、第２ＲＯＭ３２のアドレスにもｚを入力しその出力にｙを掛けた値を、足し算し出力する。ｓｉｎ（ｚ）＋ｓｉｎ’（ｚ）×ｙの演算でｓｉｎ（ｚ＋ｙ）を出力するのである。これにより、例えばｙをＭ（ｂｉｔ）とすると、ＲＯＭは関数の値と微分係数の２つになるが容量は１／２Ｍに減らすことができる。
【特許文献１】特許第２５７４２６４号公報（６列  ３５〜３９行）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来の関数演算回路では特許文献１のようにＲＯＭを持っても依然として必要とするＲＯＭの容量が大きく、また掛け算回路は回路規模が大きいため、全体として回路規模が大きくなるという問題がある。
本発明はこのような問題点に鑑みてなされたものであり、ＲＯＭ容量をなるべく減らし、加算器・セレクタ・ＥＸＯＲ（Ｅｘｃｌｕｓｉｖｅ  ＯＲ）回路という規模の小さい回路の追加のみで精度のよい関数を演算する関数演算回路およびその関数演算方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、次のようにしたのである。
請求項１に記載の発明は、２進数の値ｘに対するある関数ｆ（ｘ）の値を定数テーブルを格納したＲＯＭを利用して演算する関数演算回路において、ｘを上位Ｎｂｉｔのｚ（＝［ｚＮ−１ｚＮ−２・・・ｚ１ｚ０］）と下位Ｍｂｉｔのｙ（＝［ｙＭ−１ｙＭ−２・・・ｙ１ｙ０］）に分けたとき、ｆ(ｗ（＝［ｗＮ−１ｗＮ−２・・・ｗ１ｗ０］) ×２Ｍ)の値を入れたＲＯＭで、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力する第１ＲＯＭと、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する第２ＲＯＭと、［ｚＮ−１ｚＮ−２・・・ｚ１］とｚ０を入力し（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を出力する入力部加算器と、ｚ０とｙ０、ｙ１、・・・ｙＭ−１の各々とのＥＸＯＲを演算し結果を出力する第１〜第（Ｍ）ＥＸＯＲ回路と、前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を入力とし、セレクト信号が０のときは前記第１ＲＯＭの出力を選択し、前記セレクト信号が１のときは前記第２ＲＯＭの出力を選択するセレクタで、ｚ０をセレクト信号とする第１セレクタと、前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を各々のセレクト信号とする第２〜第（Ｍ＋１）セレクタと、前記セレクタの出力を加算する第１〜第（Ｍ）出力部加算器とを備え、（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を前記第１ＲＯＭのアドレス入力とし、［ｚＮ−１ｚＮ−２・・・ｚ１］を前記第２ＲＯＭのアドレス入力とし、前記第１、第２ＲＯＭからｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力し、前記第１出力部加算器が前記第１セレクタと前記第２セレクタの出力を加算し、前記第２〜第（Ｍ）出力部加算器が前記第１〜第（Ｍ−１）出力部加算器の出力を１ｂｉｔ右にシフトしたものと第３〜第（Ｍ＋１）セレクタの出力の各々を加算し、前記第（Ｍ）出力部加算器のキャリー入力に１を入力し、前記第（Ｍ）出力部加算器の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とするものである。
また、請求項２に記載の発明は、２進数の値ｘに対するある関数ｆ（ｘ）の値を定数テーブルを格納したＲＯＭを利用して演算する関数演算回路の関数演算方法において、ｘを上位Ｎｂｉｔのｚ（＝［ｚＮ−１ｚＮ−２・・・ｚ１ｚ０］）と下位Ｍｂｉｔのｙ（＝［ｙＭ−１ｙＭ−２・・・ｙ１ｙ０］）に分けたとき、前記関数演算回路に、ｆ(ｗ（＝［ｗＮ−１ｗＮ−２・・・ｗ１ｗ０］) ×２Ｍ)の値を入れたＲＯＭで、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力する第１ＲＯＭと、［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する第２ＲＯＭと、ｚ０とｙ０、ｙ１、・・・ｙＭ−１の各々とのＥＸＯＲを演算し結果を出力する第１〜第（Ｍ）ＥＸＯＲ回路と、前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を入力とし、セレクト信号が０のときは前記第１ＲＯＭの出力を選択し、前記セレクト信号が１のときは前記第２ＲＯＭの出力を選択するセレクタで、ｚ０をセレクト信号とする第１セレクタと、前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を各々のセレクト信号とする第２〜第（Ｍ＋１）セレクタと、前記セレクタの出力を加算する第１〜第（Ｍ）出力部加算器とを備え、［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０を演算するステップと、（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を前記第１ＲＯＭのアドレス入力とし、［ｚＮ−１ｚＮ−２・・・ｚ１］を前記第２ＲＯＭのアドレス入力とし、前記第１、第２ＲＯＭからｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力するステップと、前記第１ＲＯＭの出力と前記第２ＲＯＭの出力を第２〜第（Ｍ＋１）セレクタに入力し、前記第１セレクタのセレクト信号にｚ０を入力し、前記第２〜第（Ｍ＋１）セレクタのセレクト信号に前記第１〜第（Ｍ）ＥＸＯＲ回路の出力を入力するステップと、前記第１出力部加算器が前記第１セレクタと前記第２セレクタの出力を加算するステップと、前記第２〜第（Ｍ）出力部加算器が前記第１〜第（Ｍ−１）出力部加算器の出力を１ｂｉｔ右にシフトしたものと第３〜第（Ｍ＋１）セレクタの出力の各々を加算するステップと、前記第（Ｍ）出力部加算器のキャリー入力に１を入力し、前記第（Ｍ）出力部加算器の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とするステップとを備えるものである。
【発明の効果】
【０００５】
本発明によると、入力の上位ｂｉｔ分のＲＯＭで従来より容量を減らすことができ、また追加の回路はセレクタと加算器とＥＸＯＲ回路のみで回路規模を小さくできる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例】
【０００７】
最初に２進数の値ｘに対するある関数ｆ（ｘ）の値を定数テーブルを格納したＲＯＭを利用して演算する方法を説明する。
まず、ｘを上位Ｎｂｉｔのｚ（＝［ｚＮ−１ｚＮ−２・・・ｚ１ｚ０］）と下位Ｍｂｉｔのｙ（＝［ｙＭ−１ｙＭ−２・・・ｙ１ｙ０］）に分ける。
そして、ｚよりｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）の２つの値を演算するのに第１ＲＯＭと第２ＲＯＭの２つのＲＯＭを準備する。第１ＲＯＭは［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力し、第２ＲＯＭは［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する。
ここで、ｚ０＝０の場合は、［ｚＮ−１ｚＮ−２・・・ｚ１］を第１ＲＯＭ、第２ＲＯＭの両方に入力し、第１ＲＯＭからｆ（ｚ×２Ｍ）、第２ＲＯＭからｆ（ｚ×２Ｍ＋２Ｍ）を出力する。また、ｚ０＝１の場合は、［ｚＮ−１ｚＮ−２・・・ｚ１］を第２ＲＯＭに、（［ｚＮ−１ｚＮ−２・・・ｚ１］＋１）を第１ＲＯＭに入力し、第２ＲＯＭからｆ（ｚ×２Ｍ）、第１ＲＯＭからｆ（ｚ×２Ｍ＋２Ｍ）を出力する。すなわち、どちらの場合も第１ＲＯＭには（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を、第２ＲＯＭには［ｚＮ−１ｚＮ−２・・・ｚ１］を入力すれば良い。
次にｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）の２つの値からｙで直線補間する。
一般に、ｆ（ａ）とｆ（ｂ）の２つの値からｆ（ｃ）を直線補間で求める式は
f(c)=f(a)+(f(b)-f(a))×(c-a)/(b-a)=f(a)×(b-c)/(b-a)+f(b)×(c-a)/(b-a)
であるので、ａ＝ｚ×２Ｍ、ｂ＝ｚ×２Ｍ＋２Ｍ、ｃ＝ｚ×２Ｍ＋ｙを代入すると、直線補間の式は次式（１）となる。
f(z×2M+y)=f(z×2M)×(2M-y)/2M+f(z×2M+2M)×y/2M+1/2…(1)
となる。なお、ここで最後の＋１／２はまるめ誤差を小さくするためのものである。
ここで、２Ｍ−ｙ＝（ｙの反転＋１）であるので、（１）式は次式（２）のように書ける。
f(z×2M+y)=f(z×2M)×(yの反転)/2M+f(z×2M+2M)×y/2M++f(z×2M)×1/2M+1/2…(2)
ここで（ｙの反転）とｙは各ｂｉｔの１と０が逆となるので、ｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）に掛ける値の各ｂｉｔはどちらか片方が１で別の片方が０になり、ｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）のシフトした値をセレクタでどちらかを選択し加算器で加算することで演算が可能である。
例えばｙ＝［０１１０］の場合を例にとると、式（２）は次式（３）で表される。
f(z×2M+[0110])=f(z×2M)×[1001]/2M+f(z×2M+2M)×[0110]/2M+f(z×2M)×1/2M+1/2
=f(z×2M)×23/2M+f(z×2M+2M)×22/2M+f(z×2M+2M)×21/2M+f(z×2M)×20/2M
+f(z×2M)×1/2M+1/2・・・(3)
また、ｙ＝［０１］の場合を例にとると、式（２）は次式（４）で表される。
f(z×2M+[01])=f(z×2M)×[10]/2M+f(z×2M+2M)×[01]/2M+f(z×2M)×1/2M+1/2
=f(z×2M)×21/2M+f(z×2M+2M)×20/2M+f(z×2M)×1/2M+1/2・・・(4)
これらを見て分かるとおり、ｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）に掛ける値の各ｂｉｔはどちらか片方が１で別の片方が０になっている。
【０００８】
次に具体的な回路の例を説明する。
図１は、本発明の関数演算回路のブロック図例である。図1において、１は［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１０］×２Ｍ）をデータ出力する第１ＲＯＭ、２は［ｗＮ−１ｗＮ−２・・・ｗ１］をアドレス入力するとｆ（［ｗＮ−１ｗＮ−２・・・ｗ１１］×２Ｍ）をデータ出力する第２ＲＯＭ、３は加算器で、他の加算器と区別するため入力部加算器とする。４、５は第１、第２ＸＯＲ回路、６〜８は第１〜第３セレクタ、９、１０は第１、第２出力部加算器である。また、この関数演算回路例では、関数はｓｉｎで入力を上位６（＝Ｎ）ｂｉｔ下位２（＝Ｍ）ｂｉｔで出力を８ｂｉｔとしていて、上述した例の（３）式を実現する例である。
図において、第１ＲＯＭ１、第２ＲＯＭ２の入力は上述した通りであり，各セレクタのＡには第１ＲＯＭ１の出力データが、Ｂには第２ＲＯＭ２の出力データが入力されている。第１セレクタ６はｓｉｎ（ｚ×２２）×１／２２、第２セレクタ７は｛ｓｉｎ（ｚ×２２）またはｓｉｎ（ｚ×２２＋２２）｝×２０（＝１）／２２、第３セレクタ８は｛ｓｉｎ（ｚ×２２）またはｓｉｎ（ｚ×２２＋２２）｝×２１／２２を出力するものになる。セレクタ６のセレクト信号には、ｚ０によりｓｉｎ（ｚ×２２）が第１ＲＯＭ１の出力か第２ＲＯＭ２の出力か変わるためｚ０を入力する。第２、第３セレクタ７、８のセレクト信号には、さらにｙ０，ｙ１の値でｓｉｎ（ｚ×２２）またはｓｉｎ（ｚ×２２＋２２）を選択するために、（ｚ０  ＥＸＯＲ  ｙ０）、（ｚ０  ＥＸＯＲ  ｙ１）を入力する。第１出力部加算器９で×１／２２の分２つを加算しその出力を右に１ｂｉｔずらして×２１／２２の分と第２出力部加算器１０で加算しその出力を１ｂｉｔずらしたものを出力とする。第２出力部加算器１０のキャリー入力に１を入力しているのは、まるめ誤差を小さくするためのものである。
なお、ここではＮ＝６、Ｍ＝２の場合を示したが、一般的にはセレクタの数を(Ｍ＋１)個とし、第１ＲＯＭ１、第２ＲＯＭ２の出力をセレクタの入力とし、セレクト信号にｚ０、（ｚ０  ＥＸＯＲ  ｙ０）、（ｚ０  ＥＸＯＲ  ｙ１）・・・（ｚ０  ＥＸＯＲ  ｙＭ）を入力すれば良い。
次に本発明の関数演算回路の関数演算方法について説明する。
図２は本発明の関数演算方法の実行手順を示すフローチャートである。
図において、ステップＳ１で［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０を演算し、ステップＳ２で（［ｚＮ−１ｚＮ−２・・・ｚ１］＋ｚ０）を第１ＲＯＭのアドレス入力とし、［ｚＮ−１ｚＮ−２・・・ｚ１］を第２ＲＯＭのアドレス入力とし、第１ＲＯＭ、第２ＲＯＭからｆ（ｚ×２Ｍ）とｆ（ｚ×２Ｍ＋２Ｍ）を出力する。ステップＳ３で、第１ＲＯＭの出力と第２ＲＯＭの出力を第２〜第（Ｍ＋１）セレクタに入力し、第１セレクタのセレクト信号にｚ０を入力し、第２〜第（Ｍ＋１）セレクタのセレクト信号に第１〜第（Ｍ）ＥＸＯＲ回路の出力を入力する。ステップＳ４で第１出力部加算器が第１セレクタと第２セレクタの出力を加算する。ステップＳ５で第２〜第（Ｍ）出力部加算器が第１〜第（Ｍ−１）出力部加算器の出力を１ｂｉｔ右にシフトしたものと第３〜第（Ｍ＋１）セレクタの出力の各々を加算する。ステップＳ６で第（Ｍ）出力部加算器のキャリー入力に１を入力し、第（Ｍ）出力部加算器の出力を右に１ｂｉｔシフトした値をｆ（ｘ）の値とする。
本発明が従来技術と異なる部分は、掛け算器が無い点とＲＯＭ容量が小さい点である。
図３の従来例ではｚが６ｂｉｔの例では第１ＲＯＭ３１が２６、第２ＲＯＭ３２が２６の容量である。これに対して図１では第１ＲＯＭ１と第２ＲＯＭ２を合わせて２６の容量で済む。
【図面の簡単な説明】
【０００９】
【図１】本発明の関数演算回路の実施例を示すブロック図
【図２】本発明の関数演算方法の実行手順を示すフローチャート
【図３】従来の実施例を示すブロック図
【符号の説明】
【００１０】
１  第１ＲＯＭ
２  第２ＲＯＭ
３  入力部加算器
４、５  ＸＯＲ回路
６、７、８  セレクタ回路
３１、３２  ＲＯＭ
３３  掛け算器
３４  加算器
【図１】
2010086396.tif 000003
【図２】
2010086396.tif 000004
【図３】
2010086396.tif 000005