(57)【特許請求の範囲】
【請求項１】
回路面積を減少した除算回路において、
被除数入力及び除数入力の乗算型除算を実施する集積回路を備え、この集積回路は、
除数入力の逆数の近似を与えるルックアップテーブル回路、及び
前記近似を受け取りそして前記被除数入力及び除数入力の商出力を洗練化する複数の乗算回路、
を含み、前記複数の乗算回路の少なくとも１つは、中間部分積の数で乗算を実施する平方回路であり、前記中間部分積の数は、２つの等しい数を掛け合わせるのに充分であるが、前記平方回路が２つの異なる数の乗算を行うのを防止し、且つ前記平方回路を同じ数による同じ数の乗算に制限するものであり、
前記平方回路は、入力幅が被除数入力の幅より小さく且つ除数入力の幅より小さい入力オペランドに対して動作する、除算回路。
【請求項２】
前記乗算型除算は、二次収束を有する、請求項１に記載の除算回路。
【請求項３】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含む、請求項１に記載の除算回路。
【請求項４】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第１の一連の乗算回路は前記第２の一連の乗算回路と並列に動作する、請求項１に記載の除算回路。
【請求項５】
前記ルックアップテーブル回路は、２部分ルックアップテーブル回路である、請求項１に記載の除算回路。
【請求項６】
前記ルックアップテーブル回路は、多部分ルックアップテーブル回路であり、その多部分ルックアップテーブル回路は、複数のオフセット値テーブルを含む、請求項１に記載の除算回路。
【請求項７】
前記ルックアップテーブル回路は、直接ルックアップテーブル回路である、請求項１に記載の除算回路。
【請求項８】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記平方回路を含む、請求項１に記載の除算回路。
【請求項９】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記平方回路を含み、
前記平方回路は、入力幅が被除数入力の幅より小さく且つ除数入力の幅より小さい入力オペランドに対して動作する、請求項１に記載の除算回路。
【請求項１０】
前記複数の乗算回路は、複数の平方回路を含み、
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記複数の平方回路を含む、請求項１に記載の除算回路。
【請求項１１】
前記複数の乗算回路は、複数の平方回路を含み、
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記複数の平方回路を含み、
前記平方回路は、入力幅が被除数入力の幅より小さく且つ除数入力の幅より小さい入力オペランドに対して動作する、請求項１に記載の除算回路。
【請求項１２】
集積回路設計をレイアウトするためのコンピュータシステムにおいて、このコンピュータシステムは、プロセッサ及びメモリを含むものであり、
前記コンピュータシステムは、第１の集積回路設計の第１のレイアウトを発生し、その第１のレイアウトは、複数のマスクを定義し、それらのマスクは、製造プロセスにおける複数の特徴を定義し、それらの特徴は、被除数入力及び除数入力の乗算型除算を実施する集積回路を定義し、その集積回路は、
除数入力の逆数の近似を与えるルックアップテーブル回路、及び
前記近似を受け取りそして前記被除数入力及び除数入力の商出力を洗練化する複数の乗算回路、
を含み、前記複数の乗算回路の少なくとも１つは、中間部分積の数で乗算を実施する平方回路であり、前記中間部分積の数は、２つの等しい数を掛け合わせるのに充分であるが、前記平方回路が２つの異なる数の乗算を行うのを防止し、且つ前記平方回路を同じ数による同じ数の乗算に制限するものであり、
前記平方回路は、入力幅が被除数入力の幅より小さく且つ除数入力の幅より小さい入力オペランドに対して動作する、コンピュータシステム。
【請求項１３】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記平方回路を含む、請求項１２に記載のコンピュータシステム。
【請求項１４】
前記複数の乗算回路は、複数の平方回路を含み、
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記複数の平方回路を含む、請求項１２に記載のコンピュータシステム。
【請求項１５】
第１の集積回路設計のレイアウトを発生するための標準的セルを定義するコンピュータ読み取り可能な媒体において、そのレイアウトは、複数のマスクを定義し、それらのマスクは、製造プロセスにおける複数の特徴を定義し、それらの特徴は、被除数入力及び除数入力の乗算型除算を実施する集積回路を定義し、前記標準的セルは、
除数入力の逆数の近似を与えるルックアップテーブル回路、及び
前記近似を受け取りそして前記被除数入力及び除数入力の商出力を洗練化する複数の乗算回路、
を含む集積回路を定義し、前記複数の乗算回路の少なくとも１つは、中間部分積の数で乗算を実施する平方回路であり、前記中間部分積の数は、２つの等しい数を掛け合わせるのに充分であるが、前記平方回路が２つの異なる数の乗算を行うのを防止し、且つ前記平方回路を同じ数による同じ数の乗算に制限するものであり、
前記平方回路は、入力幅が被除数入力の幅より小さく且つ除数入力の幅より小さい入力オペランドに対して動作する、コンピュータ読み取り可能な媒体。
【請求項１６】
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記平方回路を含む、請求項１５に記載のコンピュータ読み取り可能な媒体。
【請求項１７】
前記複数の乗算回路は、複数の平方回路を含み、
前記複数の乗算回路は、次第に洗練化される商出力を伴う第１の一連の乗算回路と、減少するエラー調整出力を伴う第２の一連の乗算回路とを含み、前記第２の一連の乗算回路は前記複数の平方回路を含む、請求項１５に記載のコンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、乗算型除算を遂行する回路及びその回路をＥＤＡソフトウェアで具現化するセルに係る。
【背景技術】
【０００２】
除算回路は、多数の仕方で具現化されている。それらの中で、ニュートン・ラフソン法に基づく乗算型除算回路は、二次収束のために普及している。それに代わる除算回路として、ゴールドシュミット法は、ニュートン・ラフソン法から並列の利点を取り入れている。二次収束は、これらの除算回路を、大オペランド除算を高い性能で具現化するのに有利なものにする。しかしながら、従来のニュートン・ラフソン法及びゴールドシュミット法は、全精度オペランドでの反復する一連の乗算より成り、その結果、広い面積を消費するという悩みがある。
【発明の概要】
【０００３】
本発明の技術は、性能を損なうことなく二次収束の組み合わせ除算器の面積を減少するものである。
【０００４】
本発明の技術の１つの態様は、回路面積を減少した除算回路である。一実施形態では、乗算型除算を実施する集積回路が含まれる。この集積回路は、ルックアップテーブル回路及び乗算回路を含む。ルックアップテーブル回路は、除数入力の逆数の近似を与える。乗算回路は、商出力の近似を受け取って洗練化（refine）する。乗算回路の少なくとも１つは、減少された数の中間部分積での乗算を実施する平方回路である。減少された数の中間部分積は、平方回路が２つの異なる数の乗算を行うのを防止し、平方回路を、同じ数による同じ数の乗算に制限する。
【０００５】
ある実施形態では、乗算型除算は、二次収束を有する。
【０００６】
ある実施形態では、乗算回路は、次第に洗練化される（increasingly refined）商出力を伴う第１の一連の乗算回路と、減少エラーの調整出力を伴う第２の一連の乗算回路とを備えている。ある実施形態では、第１の一連の乗算回路は、第２の一連の乗算回路と並列に動作する。ある実施形態では、第２の一連の乗算回路は、平方回路を含む。ある実施形態では、乗算回路は、複数の平方回路を含む。
【０００７】
ある実施形態では、ルックアップテーブル回路は、２部分ルックアップテーブル回路である。又、ある実施形態では、ルックアップテーブル回路は、多部分ルックアップテーブル回路であり、この多部分ルックアップテーブル回路は、複数のオフセット値テーブルを含む。ある実施形態では、ルックアップテーブル回路は、直接ルックアップテーブル回路である。
【０００８】
ある実施形態では、平方回路は、入力幅が被除数入力より小さく且つ除数入力より小さい入力オペランドに対して動作する。
【０００９】
本発明の技術の別の態様は、その技術を具現化するコンピュータシステムである。
【００１０】
本発明の技術の別の態様は、その技術を具現化するコンピュータ読み取り可能な媒体である。
【図面の簡単な説明】
【００１１】
【図１】ゴールドシュミットの乗算型除算器のブロック図である。
【図２】一般的な段数をもつここに述べる平方回路を含む乗算型除算器のブロック図である。
【図３】ここに述べる平方回路を含む特定の乗算型除算器のブロック図である。
【図４】乗算型除算器のある実施形態における２部分ルックアップテーブルを示す。
【図５】図４の２部分ルックアップテーブルの２つのテーブルの適用を示すグラフである。
【図６】乗算型除算器のある実施形態における多部分ルックアップテーブルを示す。
【図７】ここに述べる乗算型除算回路の実施形態により消費される減少された面積を示す比較グラフである。
【図８】ここに述べる乗算型除算回路の実施形態により消費される減少された面積を示す比較グラフである。
【図９】本発明の技術の特徴を組み込んだ例示的集積回路設計フローを簡単に示す図である。
【図１０】本発明の技術の態様を組み込んだソフトウェアを実施するのに使用できるコンピュータシステムの簡単なブロック図である。
【発明を実施するための形態】
【００１２】
図１は、ゴールドシュミットの乗算型除算器のブロック図である。
【００１３】
１／Ｂの逆数に対する古典的なニュートン・ラフソン法は、次の式を解く。
ｘ［ｎ＋１］＝ｘ［ｎ］×（２−Ｂ×ｘ［ｎ］）
但し、ｘ［０］は、ルックアップテーブル（ＬＵＴ）からの種であり、そしてｘ［無限大］＝１／Ｂである。Ａ／Ｂの除算は、Ａ及びｘ［ｎ］の乗算により得られる。
【００１４】
ニュートン・ラフソン法は、一連の乗算だけであり、従って、速度のペナルティを受ける。
【００１５】
従来のゴールドシュミット法は、次のタイプの式を解く。
ｑ［ｎ＋１］＝ｑ［ｎ］×（２−ｙ［ｎ］）
ｙ［ｎ＋１］＝ｙ［ｎ］×（２−ｙ［ｎ］）
ｙ［ｎ］＜２
但し、ｑ［０］＝Ａ×ＬＵＴからの種、ｙ［０］＝Ｂ×ＬＵＴからの種、ｑ［無限大］＝Ａ／Ｂ。従来のアルゴリズムのｙ［ｎ］は、反復後に全精度を保持する。
【００１６】
従来のゴールドシュミット法は、増加した速度での並列乗算を許す。
【００１７】
ゴールドシュミット回路は、平方ロジックを有していない。例えば、ｙ［１］は、ｙ［０］×（２−ｙ［０］）の乗算であり、これは、平方演算ではない。
【００１８】
ニュートン・ラフソン法及びゴールドシュミット法は、両方とも、各ステップで全精度の乗算を必要とする。例えば、ゴールドシュミット法での２４ビット除算回路では、２つの９ｂｘ２４ｂ乗算回路及び３つの２７ｂｘ２７ｂ乗算回路がＬＵＴからの８ｂ種と共に必要である。ハードウェアリソースが甚だしく使用されるので、代替え物があれば、単一の乗算器を逐次システムで再使用することにより、又は矩形乗算器を使用する他の技術により、面積が減少される。しかしながら、そのような技術は、組み合わせ除算器には適用できない。
【００１９】
面積を減少しそして除算回路の性能を改善するために、従来のゴールドシュミット法の反復方程式が変更され、そして全精度乗算回路ではなく小精度乗算回路により解かれる。
【００２０】
ゴールドシュミット法は、次のタイプの方程式を解くように改訂及び変更される。
ｑ［ｎ＋１］＝ｑ［ｎ］×（１＋ｒ［ｎ］）＝ｑ［ｎ］＋ｑ［ｎ］×ｒ［ｎ］
ｒ［ｎ＋１］＝ｒ［ｎ］2
0005905386.tif 000002
但し、ｑ［０］＝Ａ×ＬＵＴからの種、ｒ［０］＝１−Ｂ×ＬＵＴからの種、及びｑ［無限大］＝Ａ／Ｂ
【００２１】
ｒ［ｎ］の精度は、二次関数的に減少され、ゼロへ収束する。
【００２２】
商ｑ［ｎ］は、ゴールドシュミット法のように全精度ｙ［ｎ］を乗算するのではなく、小精度ｒ［ｎ］を乗算しそしてそれをｑ［ｎ］に加算することにより、更新される。
【００２３】
ｒ［ｎ］の必要な精度は、平方演算により二次関数的に減少されが、ｑ［ｎ］は、それが反復するときに、全精度を保持する。
【００２４】
この具現化の多くの実施形態では、入力幅が被除数又は除数より小さい乗算器しか必要としない。
【００２５】
これらの方程式は、ｙ［ｎ］を従来のゴールドシュミット法からの１−ｒ［ｎ］に置き換える。ｒ［ｎ］は、０へ二次関数的に収束するので、ｒ［ｎ］の必要な精度は、それが反復するときに、より小さくなる。この方程式で２４ビット除算回路を具現化する１つの方法は、２つの９ｂｘ２４ｂ乗算器、１つの２０ｂｘ２０ｂ乗算器、及び２つの１３ｂｘ１３ｂ乗算器を使用することである。
【００２６】
図２は、一般的な段数をもつここに述べる平方回路を含む乗算型除算器のブロック図である。
【００２７】
段数は、ここに述べるように、必要な精度及びＬＵＴと共に変化する。又、平方回路の位置も、ここに述べるように、変化する。
【００２８】
図３は、ここに述べる平方回路を含む特定の乗算型除算器のブロック図である。
【００２９】
特に、８ｂ  ＬＵＴをもつ３２ｂ単一精度フローティングポイント除算器のブロック図が示されている。
【００３０】
乗算器の右列は、各段で二次関数的にゼロに収束する補正項ｒ［ｎ］に対応する。乗算器の左列は、各段で次第に精度の高い商を発生する商項ｑ［ｎ］に対応する。乗算器の最上行は、除数及び被除数入力並びにＬＵＴから発生されたｎ＝０項に対応する。その後の各行は、次のような段に対応する。
Ｑ＝Ａ／Ｂ、ｆ＝２３
Ａ：被除数
Ｂ：除数
Ｑ：商（２４ｂ）
次元
（２４ｂ逆数）
Ｍ１：９ｂｘ２４ｂ
Ｍ２：９ｂｘ２４ｂ
Ｍ３：２０ｂｘ２０ｂ
Ｍ４：１３ｂｘ１３ｂ
Ｍ５：１３ｂｘ１３ｂ
【００３１】
Ｘ又はＸ2のラベルで示されたように、Ｍ４は、平方回路であり、そして残りの乗算器Ｍ１、Ｍ２、Ｍ３及びＭ５は、平方回路ではなく、一般的な乗算器である。加算回路は、通常、先行する乗算器の一部分として具現化され、加算回路Ａ１は、乗算器Ｍ３で乗算され、そして加算回路Ａ２は、乗算器Ｍ５で具現化される。
【００３２】
除算回路は、減少されたハードウェアで変更されたアルゴリズムを実施する。パラメータｆは、仮数の幅を表し、そしてｆは、単一精度フローティングポイント除算については２３である。
【００３３】
２０００年、ニューヨーク、オックスフォード大学出版、Behrooz Parhami著の“Computer Arithmetic: Algorithms and Hardware Designs”を参考としてここにそのまま援用する。平方回路は、標準的又はモジュラー乗算器の特殊なケースである。標準的又はモジュラー乗算器は、その入力に同じ数を受け取らせることにより平方を計算するように使用できるが、ハードウェアで特にカスタマイズされた平方回路は、２つの任意の異なる数を乗算できる標準的又はモジュラー乗算器より面積及び遅延が少ない。一般的に、乗算は、第１オペランドの各桁と第２オペランドの各桁との部分積のマトリクスを発生するプロセスを含む。平方回路は、実質的に部分積マトリクスを減少する。例えば、部分積項ｘｘがｘに減少される。別の例では、同じマトリクス列（各有効数字の位置を指示する列）における部分積項ｘｙ及びｙｘは、次に上位の列におけるｘｙに減少される。別の例では、
0005905386.tif 000003
となる。これは、桁上げ伝播加算器の幅を減少させる。これらのカスタム化は、平方回路が２つの任意の異なる数の乗算を遂行するのを防止する（例えば、２つの任意の異なる数を乗算するには、カスタマイズされた平方回路において排除された部分積が要求されるために）。
【００３４】
平方ロジックの性能は、乗算器より優れている。例えば、デザインコンパイラーを使用する実験では、３２ｂ平方ロジックの最良の性能が１．７１ｎｓ遅延及び１８５８０面積であるが、３２ｂ乗算器の最良の性能は、９０ｎｍ技術では、１．９１ｎｓ遅延及び２９４９４面積であることが示される。
【００３５】
平方ロジックの細目は、ＬＵＴのサイズ、入力の精度及び出力の精度に依存する。平方ロジックの配置は、前記の反復方程式に基づく。例えば、除算が１６ｂのＬＵＴで２４ｂ仮数精度を実施する場合には、ｑ［１］は、２４ｂ精度で充分であり、そしてＭ４及びＭ５は、不要である。
【００３６】
前記反復方程式によれば、Ｍ４は、ｒ［ｉ＋１］＝ｒ[ｉ]2を解くものであり、但し、
0005905386.tif 000004
である。即ち、Ｍ４は、先導するゼロを有する数の平方演算を遂行する。良好な性能のために、平方ロジックの最小サイズが出力の精度及びＬＵＴのサイズで決定される。一実施形態では、正しい除算結果を保ちながら最小の面積で最良の性能を示すＭ４の最小サイズは、１３ｂｘ１３ｂである。しかしながら、他の実施形態では、１４ｂｘ１３ｂ又は２０ｂｘ２０ｂ又はそれ以上の平方ロジックでＭ４を実施することができる。というのは、先導するゼロを有する数での平方結果が同じままだからである。
【００３７】
平方ロジックの存在は、Ｍ４に限定されない。平方ロジックの利点は、Ｍ６、Ｍ８及びそれ以上に適用することができる。Ｍ４、Ｍ６、Ｍ８、等の存在は、入力及び出力精度、並びにＬＵＴのサイズによって決定される。通常のＬＵＴのサイズは、８ｂのＬＵＴ及び１６ｂのＬＵＴである。一例において、ＬＵＴが１６ｂを有する場合に、２４ｂ仮数除算は、平方ロジックを要求しないが、５３ｂ仮数除算は、Ｍ４を要求し、又、１００ｂ除算は、Ｍ４及びＭ６を要求する。ある実施形態では、良好な性能のために、１５ｂのＬＵＴ又は１４ｂのＬＵＴを最適化の後に使用することができる。
【００３８】
図４は、乗算型除算器の幾つかの実施形態における２部分ルックアップテーブルを示している。
【００３９】
図５は、図４の２部分ルックアップテーブルの２つのテーブルの適用を示すグラフである。
【００４０】
図６は、乗算型除算器の幾つかの実施形態における多部分ルックアップテーブルを示している。
【００４１】
ＬＵＴは、直接ＬＵＴ、２部分ＬＵＴ、又は多部分ＬＵＴである。１９９５年、Proc. 12th IEEE Symp. Computer Arithmetic、S. Knowles and W. McAllister, eds、第１７−２８ページに掲載されたD. Das Sarma 及びD. Matula著の“Faithful Bipartite ROM Reciprocal Tables”；及び２００５年、３月、IEEE Trans. Comput.、第５４巻、第３号、第３１９−３３０ページに掲載されたF.de Dinechin及びA. Tisserand著の“Multipartite Table Methods”が参考として援用される。
【００４２】
直接ＬＵＴは、単純である。しかしながら、１６ｂ直接ＬＵＴ実施のような大きな直接ＬＵＴは、広い面積を消費するために実用的でない。従って、他の技術では、ＬＵＴは、厳密な値を記憶する必要がなく、１ｕｌｐエラー範囲内の近似値を使用するという事実が利用される。
【００４３】
規範的な２部分ＬＵＴは、初期値及びオフセット値に対するテーブルを有する。例えば、１６ｂの２部分ＬＵＴの面積は、実用的であり、１１ｂ〜１２ｂの直接ＬＵＴの面積と同様である。
【００４４】
規範的な多部分ＬＵＴは、初期値に対するテーブル及びオフセット値に対する複数のテーブルを有する。オフセットは、直線的な近似から得られる。ＴＯＶは、より小さなテーブルへと分割することができる。
【００４５】
ルックアップテーブルのサイズがｎビットである場合には、エラーの範囲が２-nより小さくなる。種々の実施形態は、種々のｎのｎビットＬＵＴを使用する。
【００４６】
例：
第１段の出力のエラーは、２-2nより小さくなる。
第２段の出力のエラーは、２-4nより小さくなる。
第３段の出力のエラーは、２-8nより小さくなる。
【００４７】
８ｂのＬＵＴが使用される場合には、第２段は、２４ｂの仮数除算（３２ｂのＦＰ除算）のために要求され、第３段は、５３ｂの仮数除算（６４ｂのＦＰ除算）のために要求され、そして第４段は、６４ｂより大きな仮数のために要求される。
【００４８】
更に、１６ｂのＬＵＴが使用される場合には、第１段は、２４ｂの仮数除算（３２ｂのＦＰ除算）のために要求され、第２段は、５３ｂの仮数除算（６４ｂのＦＰ除算）のために要求され、そして第３段は、６４ｂのより大きな仮数のために要求される。
【００４９】
種々の実施形態は、種々の段数を使用する。オペランドの幅をｗと定義する。従って、Ｍ４のサイズは、（ｗ−ｎ）ビットｘ（ｗ−ｎ）ビットとなる。第２段がある場合には、ｒ［２］に対する平方ロジックは、（ｗ−２ｎ）ビットｘ（ｗ−２ｎ）ビットとなる。第Ｍ段がある場合には、ｒ［ｍ］に対する平方ロジックは、（ｗ−ｍｎ）ビットｘ（ｗ−ｍｎ）ビットとなる。
【００５０】
単一精度のフローティングポイントのための慣習的なゴールドシュミット乗算型除算器は、平方回路Ｍ４がなく、代わって、異なる乗算型除算を実施する直接的な結果として、不充分な標準的又はモジュラー乗算器を有する。
【００５１】
ここに述べる技術は、固定ポイント及びフローティングポイント除算器及び逆数回路のようなセルにおいて実施され、そして図１０の１０２８で示すようなコンピュータ読み取り可能な媒体に記憶することができる。
【００５２】
図７は、ここに述べる乗算型除算回路の実施形態により消費される減少された面積を示す比較グラフである。
【００５３】
ｆ＝２３の単一精度フローティングポイント除算器に対するベンチマーク比較が示されている。ベンチマーク比較は、０９０６バージョンのデザインコンパイラー、ｃｏｍｐｉｌｅ＿ｕｌｔｒａ及び９０ｎｍ技術を使用する。ｘ軸は、遅延時間を表し、そしてｙ軸は、コンパイルされたネットリストの面積を表す。上の線は、慣習的なゴールドシュミット回路の曲線であり、そして下の線は、この技術の回路の曲線である。速度を最適化することで、面積が３７％減少されるが、遅延時間は、同様であることが示される。又、面積を最適化することで、この技術は、ゴールドシュミット除算回路に比して面積を３０〜４０％減少することが示される。
【００５４】
この技術は、結果の精度を保持しながら小精度の乗算回路で除算回路の面積を減少することにより、二次収束方法で実施される除算回路のｑｏｒ（結果のクオリティ）を改善する。除算回路は、従来の回路実施に使用される乗算演算の精度を低下させる。
【００５５】
乗算器のサイズは、被除数及び除数のサイズではなく、出力のサイズに主として依存する。
【００５６】
図８は、ここに述べる乗算型除算回路の実施形態により消費される減少された面積を示す比較グラフである。
【００５７】
図９は、この技術の特徴を組み込んだ例示的な集積回路設計フローを簡単に示す。高いレベルにおいて、このプロセスは、製品アイデアでスタートし（ステップ９００）、そしてＥＤＡ（エレクトロニックデザインオートメーション）ソフトウェア設計プロセスで実現される（ステップ９１０）。設計が終わると、それをテープアウトすることができる（ステップ９４０）。テープアウトの後に、製造プロセス（ステップ９５０）及びパッケージング・アッセンブリプロセス（ステップ９６０）が行われ、最終的に、完成した集積回路チップ（結果９７０）が生じる。
【００５８】
ＥＤＡソフトウェア設計プロセス（ステップ９１０）は、実際には、簡単化のため直線的な形態で示す多数のステップ９１２−９３０で構成される。実際の集積回路設計プロセスでは、特定の設計は、幾つかのテストに合格するまで、ステップを戻らねばならないことがある。同様に、実際の設計プロセスでは、それらのステップは、異なる順序及び組み合わせで行われることがある。それ故、この説明は、特定の集積回路に対する特定の又は推奨される設計フローとしてではなく、一般的な説明としてなされたものである。
【００５９】
ＥＤＡソフトウェア設計プロセス（ステップ９１０）のコンポーネントステップを以下に簡単に説明する。
【００６０】
システム設計（ステップ９１２）：設計者は、実施したい機能、機能を洗練化するために何をどのように行うか、チェックコスト、等を記述する。この段階で、ハードウェア／ソフトウェアアーキテクチャーの区画化を行うことができる。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Model Architect、Saber、System Studio、及びDesignWare(登録商標)製品を含む。
【００６１】
ロジック設計及び機能的検証（ステップ９１４）：この段階において、システム内のモジュールに対するＶＨＤＬ又はＶｅｒｉｌｏｇコードが書き込まれ、そして設計が機能精度に対してチェックされる。より詳細には、特定の入力刺激に応答して正しい出力を発生することを保証するために設計がチェックされる。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、ＶＣＳ、ＶＥＲＡ、DesignWare(登録商標)、Magellan、Formality、ＥＳＰ及びＬＥＤＡ製品を含む。
【００６２】
合成及びテスト設計（ステップ９１６）：ここでは、ＶＨＤＬ／Ｖｅｒｉｌｏｇがネットリストに変換される。ネットリストは、ターゲットとする技術に対して最適化することができる。更に、完成したチップをチェックできるようにするテストの設計及び実施が行われる。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Design Compiler(登録商標)、物理的コンパイラー、テストコンパイラー、電源コンパイラー、ＦＰＧＡコンパイラー、Tetramax、及びDesignWare(登録商標)製品を含む。
【００６３】
ネットリスト検証（ステップ９１８）：このステップにおいて、ネットリストは、タイミング制約との適合性及びＶＨＤＬ／Ｖｅｒｉｌｏｇソースコードとの対応性についてチェックされる。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Formality、PrimeTime、及びＶＣＳ製品を含む。
【００６４】
設計プランニング（ステップ９２０）：ここでは、チップに対する全体的フロアプランが構成され、そしてタイミング及びトップレベルルーティングについて分析される。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Astro、及びＩＣコンパイラー製品を含む。
【００６５】
物理的実現（physical implementation）（ステップ９２２）：このステップでは、配置（回路素子の位置付け）及びルーティング（回路素子の接続）が行われる。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Astro、及びＩＣコンパイラー製品を含む。
【００６６】
分析及び抽出（ステップ９２４）：このステップでは、回路機能がトランジスタレベルで検証され、これは、次いで、洗練化したらどうなるかを許す。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、AstroRail、PrimeRail、Primetime、及びStar RC/XT製品を含む。
【００６７】
物理的検証（ステップ９２６）：このステップでは、製造、電気的問題、リソグラフの問題、及び回路についての正しさを保証するために種々のチェック機能が遂行される。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、ヘラクレス製品を含む。
【００６８】
テープアウト（ステップ９２７）：このステップは、リソグラフ用のマスクを製造して完成チップを形成するための「テープアウト」データを与える。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、ＣＡＴＳ（Ｒ）ファミリーの製品を含む。
【００６９】
解像度向上（ステップ９２８）：このステップは、レイアウトを幾何学的に操作して設計の製造可能性を改善することを含む。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、Proteus、ProteusAF、及びPSMGen製品を含む。
【００７０】
マスクデータ準備（ステップ９３０）：このステップは、リソグラフ用のマスクを製造して完成チップを形成するための「テープアウト」データを与える。このステップに使用できるSynopsys社からの規範的ＥＤＡソフトウェア製品は、ＣＡＴＳ（Ｒ）ファミリーの製品を含む。
【００７１】
図１０は、この技術の態様を組み込んだソフトウェアを実施するのに使用できるコンピュータシステムの簡単なブロック図である。
【００７２】
コンピュータシステム１０１０は、典型的に、プロセッササブシステム１０１４を備え、これは、バスサブシステム１０１２を経て多数の周辺装置と通信する。これら周辺装置は、メモリサブシステム１０２６及びファイル記憶サブシステム１０２８を含む記憶サブシステム１０２４と、ユーザインターフェイス入力装置１０２２と、ユーザインターフェイス出力装置１０２０と、ネットワークインターフェイスサブシステム１０１６とを備えている。入力及び出力装置は、コンピュータシステム１０１０とのユーザ対話を許す。ネットワークインターフェイスサブシステム１０１６は、通信ネットワーク１０１８へのインターフェイスを含めて、外部ネットワークへのインターフェイスを与え、そして通信ネットワーク１０１８を経て他のコンピュータシステムの対応インターフェイス装置に結合される。通信ネットワーク１０１８は、多数の相互接続されたコンピュータシステム及び通信リンクで構成される。これらの通信リンクは、ワイヤラインリンク、光学的リンク、ワイヤレスリンク、又は情報を通信するための他のメカニズムである。一実施形態では、通信ネットワーク１０１８は、インターネットであるが、他の実施形態では、通信ネットワーク１０１８は、適当なコンピュータネットワークでよい。
【００７３】
ネットワークインターフェイスの物理的ハードウェアコンポーネントは、時々、ネットワークインターフェイスカード（ＮＩＣ）と称されるが、カードの形態である必要はなく、例えば、マザーボードに直接嵌合された集積回路（ＩＣ）及びコネクタの形態でもよいし、又はコンピュータシステムの他のコンポーネントと共に単一の集積回路チップに製造されたマイクロセルの形態でもよい。
【００７４】
ユーザインターフェイス入力装置１０２２は、キーボードと、マウス、トラックボール、タッチパッド又はグラフィックタブレットのようなポインティング装置と、スキャナと、ディスプレイに組み込まれたタッチスクリーンと、音声認識システムやマイクロホンのようなオーディオ入力装置と、他の形式の入力装置とを含む。一般的に、「入力装置」という用語の使用は、コンピュータシステム１０１０又はコンピュータネットワーク１０１８へ情報を入力するための、考えられる全ての形式の装置及び方法を包含することが意図される。
【００７５】
ユーザインターフェイス出力装置１０２０は、ディスプレイサブシステム、プリンタ、ＦＡＸマシン、又は非ビジュアルディスプレイ、例えば、オーディオ出力装置を含む。ディスプレイサブシステムは、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）のようなフラットパネルディスプレイ、プロジェクション装置、又は可視画像を生成する他のメカニズムを含む。又、ディスプレイサブシステムは、オーディオ出力装置を経たもののような非可視表示を与えることもできる。一般的に、「出力装置」という語の使用は、コンピュータシステム１０１０からユーザ或いは別のマシン又はコンピュータシステムへ情報を出力するための、考えられる全ての形式の装置及び方法を含むことが意図される。
【００７６】
記憶サブシステム１０２４は、本発明の幾つかの態様の機能を与える基本的プログラミング及びデータ構成物を記憶する。例えば、その前の図面の回路シミュレータ及びコンピュータ実施ステップの機能を実施する種々のモジュールが記憶サブシステム１０２４に記憶される。これらのソフトウェアモジュールは、一般的に、プロセッササブシステム１０１４によって実行される。又、記憶サブシステム１０２４に記憶されるデータ構成物は、技術的ファイル、マクロセルライブラリ、レイアウトファイル、及びここに述べる他のデータベースも含む。ある実施形態では、それらの１つ以上がどこかに記憶されるが、例えば、通信ネットワーク１０１８を経てコンピュータシステム１０１０へアクセスできることに注意されたい。
【００７７】
メモリサブシステム１０２６は、典型的に、プログラム実行中にインストラクション及びデータを記憶するためのメインランダムアクセスメモリ（ＲＡＭ）１０３０や、固定インストラクションが記憶されるリードオンリメモリ（ＲＯＭ）１０３２を含む多数のメモリを備えている。ファイル記憶サブシステム１０２８は、プログラム及びデータファイルのための持続記憶を与え、そしてハードディスクドライブ、取り外し可能な関連メディアを伴うフロッピー（登録商標）ディスクドライブ、ＣＤ  ＲＯＭドライブ、光学的ドライブ、又は取り外し可能なメディアカートリッジを含む。本発明の幾つかの実施形態の機能を実施するデータベース及びモジュールは、１つ以上のＣＤ−ＲＯＭのようなコンピュータ読み取り可能な媒体に設けられ（又は通信ネットワーク１０１８を経てコンピュータシステム１０１０へ通信され）、そしてファイル記憶サブシステム１０２８により記憶される。ホストメモリ１０２６は、とりわけ、プロセッササブシステム１０１０により実行されたときに、コンピュータシステムが、ここに述べる機能を動作又は遂行するようにさせるコンピュータインストラクションを含む。ここで使用される用語「ホスト」又は「コンピュータ」内又は上で実行されると言えるプロセス及びソフトウェアは、インストラクション及びデータのための他のローカル又はリモート記憶装置を含めてホストメモリサブシステム１０２６内のコンピュータインストラクション及びデータに応答して、プロセッササブシステム１０１４上で実行される。
【００７８】
バスサブシステム１０１２は、コンピュータシステム１０１０の種々のコンポーネント及びサブシステムを意図されたように互いに通信させるためのメカニズムをなす。バスサブシステム１０１２は、単一のバスとして概略的に示されているが、バスサブシステムの別の実施形態では、複数のバスが使用されてもよい。
【００７９】
コンピュータシステム１０１０それ自体は、パーソナルコンピュータ、ポータブルコンピュータ、ワークステーション、コンピュータターミナル、ネットワークコンピュータ、テレビ、メインフレーム、或いは他のデータ処理システム又はユーザ装置を含む種々の形式のものである。コンピュータ及びネットワークは絶えず変化する性質であるため、図１０に示すコンピュータシステム１０１０の説明は、本発明の好ましい実施形態の説明上、特定の例に過ぎないことが意図される。図１０に示すコンピュータシステムより多数又は少数のコンポーネントを有するコンピュータシステム１０１０の多数の他の構成が考えられる。
【００８０】
以上に述べた好ましい実施形態及び例を参照して本発明を開示したが、それらの例は、例示に過ぎず、それに限定されないことを理解されたい。当業者であれば、本発明の精神及び特許請求の範囲内で変更や組み合わせが容易になされ得ることが明らかであろう。
【符号の説明】
【００８１】
９００：製品アイデア
９１０：ＥＤＡソフトウェア
９１２：システム設計
９１４：ロジック設計及び機能検証
９１６：合成及びテスト設計
９１８：ネットリスト検証
９２０：設計プランニング
９２２：物理的実現
９２４：分析及び抽出
９２６：物理的検証
９２７：テープアウト
９２８：解像度向上
９３０：マスク準備
９５０：製造
９６０：パッケージング・アッセンブリ
９７０：チップ
１０１０：コンピュータシステム
１０１２：バスサブシステム
１０１４：プロセッササブシステム
１０１６：ネットワークインターフェイス
１０１８：通信ネットワーク
１０２０：ユーザインターフェイス出力装置
１０２２：ユーザインターフェイス入力装置
１０２４：記憶サブシステム
１０２６：メモリサブシステム
１０２８：ファイル記憶サブシステム
１０３０：ＲＡＭ
１０３２：ＲＯＭ
【図１】
0005905386.tif 000005
【図２】
0005905386.tif 000006
【図３】
0005905386.tif 000007
【図４】
0005905386.tif 000008
【図５】
0005905386.tif 000009
【図６】
0005905386.tif 000010
【図７】
0005905386.tif 000011
【図８】
0005905386.tif 000012
【図９】
0005905386.tif 000013
【図１０】
0005905386.tif 000014