JP2017169070A - 半導体装置 - Google Patents
半導体装置 Download PDFInfo
- Publication number
- JP2017169070A JP2017169070A JP2016053016A JP2016053016A JP2017169070A JP 2017169070 A JP2017169070 A JP 2017169070A JP 2016053016 A JP2016053016 A JP 2016053016A JP 2016053016 A JP2016053016 A JP 2016053016A JP 2017169070 A JP2017169070 A JP 2017169070A
- Authority
- JP
- Japan
- Prior art keywords
- circuit
- output terminal
- logic
- input
- output
- 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.)
- Pending
Links
Images
Landscapes
- Design And Manufacture Of Integrated Circuits (AREA)
- Logic Circuits (AREA)
Abstract
【課題】チップ内での占有面積を抑制できる書き換え可能な論理演算回路を備えた半導体装置を提供する。
【解決手段】1つの第1入力端子と1つの第1出力端子を含み論理演算を行う論理ブロック120Aを備える。論理ブロックは、一部の配線が前記1つの第1入力端子に接続される複数の配線122と、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第2入力端子と、第2出力端子と、を含む複数の第1選択回路124aと、複数の第1選択回路の第2出力端子にそれぞれ接続される複数の第3入力端子と、第3出力端子と、を含むルックアップテーブル回路126aと、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第4入力端子と、第4出力端子と、を含む複数の第2選択回路124bと、複数の第4出力端子に接続される複数の第5入力端子を含む論理ゲート回路182と、を備える。
【選択図】図8
【解決手段】1つの第1入力端子と1つの第1出力端子を含み論理演算を行う論理ブロック120Aを備える。論理ブロックは、一部の配線が前記1つの第1入力端子に接続される複数の配線122と、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第2入力端子と、第2出力端子と、を含む複数の第1選択回路124aと、複数の第1選択回路の第2出力端子にそれぞれ接続される複数の第3入力端子と、第3出力端子と、を含むルックアップテーブル回路126aと、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第4入力端子と、第4出力端子と、を含む複数の第2選択回路124bと、複数の第4出力端子に接続される複数の第5入力端子を含む論理ゲート回路182と、を備える。
【選択図】図8
Description
本発明の実施形態は、半導体装置に関する。
近年、フィールドプログラマブルゲートアレイ(以下、FPGA(Field Programmable Gate Array))に代表されるリコンフィギャラブルな半導体装置が注目されている。この半導体装置に含まれる書き換え可能な論理演算回路は、特定の入力数(典型的には3から6程度)の真理値表を実現する回路、すなわちルックアップテーブル回路のネットワークで形成されている。
書き換え可能な真理値表により構成される論理演算回路は、組み込まれている真理値表の入力の内の一部のみ使用される場合があり、チップ内での占有面積が無駄に使用されていると云う問題点があった。
本実施形態は、チップ内での占有面積を抑制することのできる書き換え可能な論理演算回路を備えた半導体装置を提供する。
本実施形態による半導体装置は、少なくとも1つの第1入力端子と少なくとも1つの第1出力端子を含み論理演算を行う論理ブロックを備え、前記論理ブロックは、複数の配線であって、その少なくとも一部の配線が前記少なくとも1つの第1入力端子に接続される複数の配線と、複数の第1選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第2入力端子と、第2出力端子と、を含む複数の第1選択回路と、前記複数の第1選択回路の前記第2出力端子にそれぞれ接続される複数の第3入力端子と、第3出力端子と、を含むルックアップテーブル回路と、複数の第2選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第4入力端子と、第4出力端子と、を含む複数の第2選択回路と、前記複数の第4出力端子に接続される複数の第5入力端子を含み、AND回路およびOR回路のうちの少なくとも一方を含む回路と、を備えている。
まず、本発明の実施形態を説明する前に、本発明に至った経緯について説明する。
書き換え可能な論理演算回路を備えた半導体装置の一例を図1に示す。この半導体装置100は、アレイ状に配置された論理演算を行う複数の論理ブロック(以下、LBとも云う)120と、各論理ブロック120の周囲に配列された複数のスイッチブロック(以下、SBとも云う)130と、を備えている。各スイッチブロック130は、縦横に配置された配線間の接続または非接続を制御する半導体素子(図示せず)を有しており、任意の方向に信号を伝達することを可能にする。また、スイッチブロック130は、近接して配置された論理ブロック120との接続も行う。
また、論理ブロック120は、配線群122と、複数の選択回路(以下、MUXとも云う)124a、124bと、複数の基本論理エレメント(以下、BLEとも云う)126と、フリップフロップ(以下、FFとも云う)128と、を備えている。基本論理エレメント126は、論理ブロック120の入力端子、配線群122の一部の配線、選択回路124aを介して送られる信号に基づいて論理演算を行い、その演算結果を論理ブロック120の出力端子の何れかと、配線群122とに出力する。
基本論理エレメント126は、ルックアップテーブル回路126aと、選択回路(以下、MUXとも云う)126bと、フリップフロップ126cとを備えている。ルックアップテーブル回路126aは任意の論理関数を実現することができる。なお、フリップフロップ126bは、同期出力を得る、または順序回路を構成する際に用いられる。したがって、フリップフロップを含まない基本論理エレメントも存在してもよい。ルックアップテーブル回路126aは、基本論理エレメント126に入力された信号の値に基づいて論理演算を行い、その演算結果を、選択回路126bを介して論理ブロック120の出力端子の何れかと、配線群122とに出力するとともにフリップフロップ126cの入力端子にも出力する。フリップフロップ128は、入力端子が選択回路124bの出力端子に接続され、出力端子が論理ブロック120の出力端子に接続されるとともに配線群122の一つの配線に接続される。
以下では、論理ブロック120について図2を参照して詳細に説明するが、この論理ブロック120に含まれるルックアップテーブル回路としては、入力数が4であるルックアップテーブル回路を例に取って説明する。
図2に示すように、この論理ブロック120は、図1で説明したと同様に、複数の配線を有する配線群122と、複数の選択回路124a、124bと、複数の基本論理エレメント126と、複数のフリップフロップ128と、を備えている。各基本論理エレメント126は、ルックアップテーブル回路126aと、選択回路126bと、フリップフロップ126cと、を備えている。
各選択回路124aは、例えば8つの入力端子がそれぞれ配線群122の一部の配線と接続されている。4つの選択回路124aのそれぞれの出力端子がルックアップテーブル回路126aの4つの入力端子に接続される。ルックアップテーブル回路126aの出力端子は、フリップフロップ126cの入力端子に接続されるとともに選択回路126bの1つの入力端子に接続される。選択回路126bの出力端子は論理ブロック120の出力端子に接続されるとともに、配線群122のうちの1つの配線に接続される。なお、各フリップフロップ128に対応して1つの選択回路124bが配置され、フリップフロップ128の入力端子は対応する選択回路124bの1つの出力端子に接続される。フリップフロップ128の出力端子は論理ブロック120の出力端子の何れかに接続されるとともに、配線群122のうちの1つの配線に接続される。
選択回路124a、124b、または選択回路126bとして、例えば図3に示す選択回路140が用いられる。この選択回路140においては入力数がN(≧2)個である。なお、図2に示す選択回路124a、124bにおいてNは図1の1つの論理ブロック内に配置された基本論理エレメントとフリップフロップとの入力の総数と、論理ブロックの入力端子の数との和であり、選択回路126bにおいてNは2である。
この選択回路140はn(≧1)段の選択部1421〜142nを備えている。各選択部142i(i=1,・・・,n)は、メモリMiと、インバータ144iと、ki(2≦ki≦2i)個のトランスファーゲート146と、を有している。各トランスファーゲート146は、一対のpチャネルトランジスタおよびnチャネルトランジスタを備えている。各メモリMi(i=1,・・・,n)は、データ「0」またはデータ「1」を記憶する。これらのデータは、半導体装置が使用されるときに外部から各メモリMi(i=1,・・・,n)に格納される。インバータ144i(i=1,・・・,n)は、入力端子がメモリMiに接続されている。
各選択部142i(i=1,・・・,n)においては、ki(2≦ki≦2i)個のトランスファーゲート146は、2個を1組としたトランスファーゲート群に分けられる。各トランスファーゲート群においては、一方のトラスファーゲートのpチャネルトランジスタのゲートおよび他方のトランスファーゲートのnチャネルトランジスタのゲートがインバータ144iの出力端子に接続される。上記一方のトランスファーゲートのnチャネルトランジスタのゲートおよび上記他方のトランスファーゲートのpチャネルトランジスタのゲートがメモリMiに接続される。また、各選択部142i(i=1,・・・,n−1)の各トランスファーゲートにおいては、入力端子が選択部142i+1における1組のトランスファーゲート群の2つのトランスファーゲートの出力端子にそれぞれ接続される。選択部142nは、N(≦2n)個のトランスファーゲート146を有し、上からj(1≦j≦N)番目のトランスファーゲートの入力端子が入力信号Sjを受ける。
このような構成を有する選択回路140においては、入力信号S1〜SNのうちの1つが選択回路140の出力端子OUTから出力される。
このような構成を有する選択回路124a、124bにより、各基本論理エレメント126におけるルックアップテーブル回路126aの入力端子およびフリップフロップ128の入力端子が、論理ブロック120の入力端子に接続されるか、または他の基本論理ブロック126におけるルックアップテーブル回路126aの出力端子または他のフリップフロップ128の出力端子に接続される。
また、各基本論理エレメント126における入力数が2の選択回路126bにより、ルックアップテーブル回路126aの出力端子およびフリップフロップ126cの出力端子の何れかから出力される信号が上記基本論理エレメント126の出力端子から出力される。
各選択回路140内のメモリ、すなわちメモリM1〜Mnに記憶される値を設定することにより、ルックアップテーブル回路126aないしフリップフロップ128の入力信号の接続先、または各基本論理エレメントにおけるルックアップテーブル回路126aないしフリップフロップ126cの何れの出力信号が選択されるかを規定し、このことにより回路全体として、所望の論理系を実現することができる。
ネットワークを形成しているルックアップテーブル回路の入力数をNとすると、すべてのルックアップテーブル回路においてN個の入力の全てが使用されているとは限らず、その内のM(<N)個を入力として持つルックアップテーブル回路として使用される場合もある。
次に、N個の入力を持つルックアップテーブル回路の一例を図4に示す。このルックアップテーブル回路150は、N個の選択部1521〜152Nを備えている。各選択部152i(i=1,・・・,N)は、インバータ154iと、2i個のトランスファーゲート156と、を有している。各トランスファーゲート156は、一対のpチャネルトランジスタおよびnチャネルトランジスタを備えている。インバータ154i(i=1,・・・,N)は、入力端子がルックアップテーブル回路150の入力端子INiに接続される。
各選択部152i(i=1,・・・,N)においては、2i個のトランスファーゲート156は、2個を1組としたトランスファーゲート群に分けられる。各トランスファーゲート群においては、一方のトラスファーゲートのpチャネルトランジスタのゲートおよび他方のトランスファーゲートのnチャネルトランジスタのゲートがインバータ154iの出力端子に接続される。上記一方のトランスファーゲートのnチャネルトランジスタのゲートおよび上記他方のトランスファーゲートのpチャネルトランジスタのゲートが選択回路152iの入力端子INiに接続される。また、各選択部152i(i=1,・・・,N−1)の各トランスファーゲートにおいては、入力端子が選択部152i+1における1組のトランスファーゲート群の2つのトランスファーゲートのそれぞれの出力端子に接続される。選択部152Nは、2N個のトランスファーゲート156を有し、上からj(1≦j≦2N)番目のトランスファーゲートの入力端子が論理値LVjを受ける。
このような構成を有するルックアップテーブル回路150においては、論理値LV1〜LV2Nのうちの1つが選択されてルックアップテーブル回路150の出力端子OUTから出力される。
これらの2N個の論理値LV1〜LV2Nとしては、このルックアップテーブル回路150で演算処理を行いたい論理系に従って定まる値を図示しないメモリに記憶する。このルックアップテーブル回路150において必要なトランジスタの数は、論理値を記憶するメモリ部分を除くと、各選択部152i(i=1,・・・,N)において、2i個のトランスファーゲート156と、インバータ154iとを有し、各トランスファーゲート156は2つのトランジスタから構成され、インバータ154iは2個のトランジスタから構成される。このため、各選択部152i(i=1,・・・,N)においては、2i+1+2個のトランジスタが必要となる。したがって、ルックアップテーブル回路150全体としては、合計で2N+2+2N−4個必要となる。
そして論理値の記憶に例えば6個のトランジスタからなるSRAM(Static Random Access Memory)を用いたとすると、各々の論理値に6個ずつ必要となる。それ故、合計では5×2N+1+2N−4個のトランジスタが必要となる。Nが2,3,4,5,6の場合に必要なトランジスタの数は各々40,82,164,326,648個となる。この様に必要なトランジスタの数は入力数Nの増大に伴って急激に増大する。
上述したように、ルックアップテーブル回路においては入力の一部しか用いられない場合があるため、論理ゲートとしてルックアップテーブル回路を用いた半導体装置においては、過剰に多くのトランジスタが配置される。その結果として過剰に大きなチップ面積が必要になる。
そこで、本発明者達は、鋭意研究に努めた結果、例えば、2入力のルックアップテーブル回路を2入力のAND回路またはOR回路等を含む論理ゲートで置き換えることができれば、チップにおける占有面積を抑制することが可能になると、考えた。
例えば、2個の入力IN1,IN2を有する論理ゲートとしてAND回路およびOR回路を形成した具体例を図5および図6にそれぞれ示す。図5および図6からわかるように、AND回路160およびOR回路170のいずれも、6個のトランジスタで実現することが可能となる。これに対して2個の入力IN1,IN2を有するルックアップテーブル回路を実現するために必要なトランジスタの数は、上述したように、40個である。
このように、ルックアップテーブル回路の一部を論理ゲートで置き換えれば、チップにおける論理ブロックの占有面積を抑制することが可能になる。
以下に、ルックアップテーブル回路の一部を論理ゲートで置き換えた半導体装置を実施形態として説明する。
(一実施形態)
一実施形態による半導体装置を図7に示す。この実施形態の半導体装置10はFPGAを有し、このFPGAは、アレイ状に配置された論理演算を行う複数の論理ブロック(以下、LBとも云う)120Aと、各論理ブロック120Aの周囲に配列された複数のスイッチブロック(以下、SBとも云う)130と、を備えている。各スイッチブロック130は、縦横に配置された配線間の接続または非接続を制御する半導体素子(図示せず)を有しており、任意の方向に信号を伝達することを可能にする。また、スイッチブロック130は、近接して配置された論理ブロック120Aとの接続も行う。
一実施形態による半導体装置を図7に示す。この実施形態の半導体装置10はFPGAを有し、このFPGAは、アレイ状に配置された論理演算を行う複数の論理ブロック(以下、LBとも云う)120Aと、各論理ブロック120Aの周囲に配列された複数のスイッチブロック(以下、SBとも云う)130と、を備えている。各スイッチブロック130は、縦横に配置された配線間の接続または非接続を制御する半導体素子(図示せず)を有しており、任意の方向に信号を伝達することを可能にする。また、スイッチブロック130は、近接して配置された論理ブロック120Aとの接続も行う。
また、論理ブロック120Aは、配線群122と、複数の選択回路(以下、MUXとも云う)124a、124bと、複数の基本論理エレメント(以下、BLEとも云う)126と、フリップフロップ(以下、FFとも云う)128と、少なくとも1つの論理ゲートエレメント180と、を備えている。
基本論理エレメント126は、論理ブロック120Aの入力端子、配線群122の一部の配線、選択回路124aを介して送られる信号に基づいて論理演算を行い、その演算結果を論理ブロック120Aの出力端子の何れかと、配線群122とに出力する。基本論理エレメント126は、ルックアップテーブル回路126aと、選択回路(以下、MUXとも云う)126bと、フリップフロップ126cとを備えている。ルックアップテーブル回路126aは任意の論理関数を実現することができる。なお、フリップフロップ126bは、同期出力を得る、または順序回路を構成する際に用いられる。したがって、フリップフロップを含まない基本論理エレメントも存在してもよい。ルックアップテーブル回路126aは、基本論理エレメント126に入力された信号の値に基づいて論理演算を行い、その演算結果を、選択回路126bを介して論理ブロック120Aの出力端子の何れかと配線群122とに出力するとともにフリップフロップ126cの入力端子に出力する。
以下では、論理ブロック120Aについて図8を参照して詳細に説明するが、この論理ブロック120Aに含まれるルックアップテーブル回路としては、入力数が4であるルックアップテーブル回路を例に取って説明する。
図8に示すように、この論理ブロック120Aは、図1で説明したと同様に、複数の配線を有する配線群122と、複数の選択回路124a、124bと、複数の基本論理エレメント126と、複数のフリップフロップ128と、少なくとも1つの論理ゲートエレメント180と、を備えている。各基本論理エレメント126は、ルックアップテーブル回路126aと、選択回路126bと、フリップフロップ126cと、を備えている。また、論理ゲートエレメント180は、AND回路およびOR回路の少なくとも1方の回路を備えた論理ゲート回路182と、フリップフロップ(以下、FFとも云う)184と、選択回路(以下、MUXとも云う)186と、を備えている。
各選択回路124aは、図2で説明した選択回路124と同じ構成を有している。すなわち、選択回路124aは、例えば12個の入力端子がそれぞれ配線群122の一部の配線と接続されている。4つの選択回路124aのそれぞれの出力端子がルックアップテーブル回路126aの4つの入力端子に接続される。ルックアップテーブル回路126aの出力端子は、フリップフロップ126cの入力端子に接続されるとともに選択回路126bの1つの入力端子に接続される。選択回路126bの出力端子は論理ブロック120Aの出力端子の何れかに接続されるとともに、配線群122のうちの1つの配線に接続される。なお、各フリップフロップ128に対応して1つの選択回路124bが配置され、フリップフロップ128の入力端子は対応する選択回路124bの1つの出力端子に接続される。フリップフロップ128の出力端子は論理ブロック120Aの出力端子の何れかに接続されるとともに、配線群122のうちの1つの配線に接続される。
選択回路124a、124b、選択回路126b、または選択回路186としては、例えば図3に示す選択回路140が用いられる。なお、この選択回路140については説明済みのため、省略する。
このような構成を有する選択回路124aにより、各基本論理エレメント126におけるルックアップテーブル回路126aの入力端子およびフリップフロップ128の入力端子が、論理ブロック120の入力端子に接続されるか、または他の基本論理ブロック126におけるルックアップテーブル回路126aの出力端子または他のフリップフロップ128の出力端子または他の論理ゲートエレメント180の出力端子に接続される。
また、各基本論理エレメント126における入力数が2の選択回路126bにより、ルックアップテーブル回路126aの出力端子およびフリップフロップ126cの出力端子の何れかから出力される信号が上記基本論理エレメントの出力端子から出力される。
各選択回路124a、124b、126b内のメモリ、すなわちメモリM1〜Mnに記憶される値を設定することにより、ルックアップテーブル回路126aないしフリップフロップ128の入力信号の接続先、ないし各基本論理エレメントにおけるルックアップテーブル回路126aないしフリップフロップ126cの何れの出力信号が選択されるかを規定し、そのことにより回路全体として、所望の論理系を実現することができる。
論理ゲートエレメント180内の論理ゲート回路182は、第1および第2入力端子を有し、第1入力端子は2つの選択回路124aのうちの一方の選択回路の出力端子に接続され、第2入力端子は2つの選択回路124aのうちの他方の選択回路の出力端子に接続される。また、論理ゲート回路182の出力端子は、フリップフロップ184の入力端子に接続されるとともに選択回路186の2つの入力端子のうちの一方の入力端子に接続される。選択回路186の他方の入力端子はフリップフロップ184の出力端子に接続され る。なお、論理ゲート回路182は、ルックアップテーブル回路126aと異なり書き換え不能である。すなわち、論理ブロック120Aは、書き換え可能な真理値表、すなわちルックアップテーブル回路126aを備えているとともに書き換え不能な論理ゲート回路182をも備えている。
なお、図8に示す配線群122の配線はいずれも、その配置されている論理ブロック120Aの内部に含まれるように配置されており、論理ブロック120Aの外部にまで延在するものではない。
(論理系の変換)
所望の論理系に対し、それと論理的に等価であるルックアップテーブル回路の組み合わせで表される論理系への変換は次の様にして行われる。所望の論理系は真理値表の組で与えられる。個々の真理値表を考えると、入力の可能な組み合わせの各々に対して出力値としてデータ「0」またはデータ「1」が与えられている。真理値表の入力数をnとする。例えば出力値として「1」を与える入力値の組を抽出する。それらがm組あるとして、それらを{a11,a12, …,a1n}、{a21,a22,…,a2n}.…,{am1,am2,…,amn}と表す。aij(1≦i≦m)(1≦j≦n)は、データ「0」またはデータ「1」を表す。
所望の論理系に対し、それと論理的に等価であるルックアップテーブル回路の組み合わせで表される論理系への変換は次の様にして行われる。所望の論理系は真理値表の組で与えられる。個々の真理値表を考えると、入力の可能な組み合わせの各々に対して出力値としてデータ「0」またはデータ「1」が与えられている。真理値表の入力数をnとする。例えば出力値として「1」を与える入力値の組を抽出する。それらがm組あるとして、それらを{a11,a12, …,a1n}、{a21,a22,…,a2n}.…,{am1,am2,…,amn}と表す。aij(1≦i≦m)(1≦j≦n)は、データ「0」またはデータ「1」を表す。
入力をin1,in2,…,innとすると、その真理値表は、例えば次の論理式と論理的に等価となる。但し、1≦i≦m、1≦j≦nに対し、aij=0ならばbij=/inj、aij=1ならばbij=injを意味する。ここに記号/は論理的な否定を表す。
(…(b11ANDb12)ANDb13)ANDb14)AND…)ANDb1n)OR
(…(b21ANDb22)ANDb23)ANDb24)AND…)ANDb2n)OR
…
(…(bm1ANDbm2)ANDbm3)ANDbm4)AND…)ANDbmn)
この様に表すと、任意の真理値表は、2入力のAND回路と、2入力のOR回路と、NOT回路(すなわちインバータ)と、により表される。それ故、真理値表の組み合わせである任意の論理系は、AND回路と、OR回路と、NOT回路とにより表される。この様に論理系をAND回路と、OR回路と、NOT回路とにより表したものはAIG(And Inverter Graph)と呼ばれる。なお、特定の論理系をこの特定の論理系と論理的に等価であるAIGで表す方法は周知であるが、その表し方は一意的とは限らない。
(…(b21ANDb22)ANDb23)ANDb24)AND…)ANDb2n)OR
…
(…(bm1ANDbm2)ANDbm3)ANDbm4)AND…)ANDbmn)
この様に表すと、任意の真理値表は、2入力のAND回路と、2入力のOR回路と、NOT回路(すなわちインバータ)と、により表される。それ故、真理値表の組み合わせである任意の論理系は、AND回路と、OR回路と、NOT回路とにより表される。この様に論理系をAND回路と、OR回路と、NOT回路とにより表したものはAIG(And Inverter Graph)と呼ばれる。なお、特定の論理系をこの特定の論理系と論理的に等価であるAIGで表す方法は周知であるが、その表し方は一意的とは限らない。
先ず、このようにして所望の論理系をAIGに変換する。ルックアップテーブル回路の入力数をNとすると、続いてAIGをそれと論理的に等価であり且つ入力数がN個以下のルックアップテーブル回路のネットワークに変換する必要がある。それは次のようになされる。
先ず、AIGの出力に着目する。AIGの出力と同じ出力を持ち且つ全体の入力がN個以下となるAND回路、OR回路、またはNOT回路からなる組を、この組と論理的に等価な一つのルックアップテーブル回路に置き換える。
次に、上記ルックアップテーブル回路の入力の各々に対し、上記入力を出力に持ち且つ全体の入力がN個以下となる、AND回路、OR回路、またはNOT回路の組をこの組と論理的に等価な一つのルックアップテーブル回路に置き換える。この操作を、所望の論理系の入力に至るまで続ける。この様にすることで所望の論理系は入力数がN個以下のルックアップテーブル回路のネットワークに変換される。
なお、ここには所望の論理系が組み合わせ論理の場合を例に取って説明したが、順序論理の場合にはその内に存在している論理値を一時的に保持する素子であるフリップフロップの各々に対して、フリップフロップの入力を仮想的に論理系の出力、フリップフロップの出力を仮想的に論理系の入力、と見做すと上記した操作と同様の操作により、先ずAIGに変換され、続いてルックアップテーブル回路のネットワークに変換される。
上記操作を実際に行い、得られた最終的な論理系において、2つの入力を持つルックアップテーブル回路を調べた。2つの入力は、各々データ「0」とデータ「1」との2種類の論理値を取り得るので、その組み合わせは「00」、「01」、「10」、「11」の4通りが可能である。そして、これらの4通りの各々に対応する出力もまたデータ「0」とデータ「1」の2種類の論理値を取り得るので、2つの入力を持つルックアップテーブル回路は16(=24)通りの出力のパターンがあり得る。
そこで、ルックアップテーブル回路の入力数が3、4、5、6の各々の場合に対して、2つの入力を持つルックアップテーブル回路の内で如何なる出力のパターンを持つものが多く現れるかを本発明者達は調べた。その結果は以下の通りであった。
2入力のAND回路と、2入力のOR回路とが多く現れることが分かった。16通りあり得る出力パターンを持ちかつ2つの入力を持つルックアップテーブル回路の内でこれらの2つの出力のパターンを持つルックアップテーブル回路が多く現れた理由は、論理系の変換において、初めの論理系を先ずAIGに変換してから最終的な論理系に変換したために、ルックアップテーブル回路に纏め切れずに2入力のAND回路乃至2入力のOR回路が残ったためである。それ故、最終的に得られたルックアップテーブル回路の内で2つの入力を持つルックアップテーブル回路の内で、2入力のAND回路ないし2入力のOR回路が多く現れることは、初めの論理系を、AIGを経て最終的なルックアップテーブル回路の論理系に変換する限りにおいては普遍性がある。
なお、全ルックアップテーブル回路の個数に対する2入力のAND回路の割合は、平均値が2.37%、標準偏差が2.51%であり、2入力のOR回路の割合は、平均値が1.54%、標準偏差が1.64%であった。それ故、2入力のAND回路と、2入力のOR回路との少なくとも一方の全ルックアップテーブル回路に対する割合は、各々の平均値の小さい方の値である1.54%以上とすることが好ましく、各々の平均値の大きい方の値である2.37%以上であるとより好ましい。そして、各々の平均値と標準偏差との和の小さい方の値である3.18%以上とすることは更に好ましく、各々の平均値と標準偏差との和の大きい方の値である4.88%以上とすることはより一層、好ましい。
また、2入力のAND回路と、2入力のOR回路との個数の和の全ルックアップテーブル回路に占める割合は、各々の平均値の和の値である3.91%以上であることが好ましい。両者の和の全ルックアップテーブル回路に占める割合の標準偏差は、各々の標準偏差の二乗の和の平方根である3.00%なので、2入力のAND回路と、2入力のOR回路との個数の和の全ルックアップテーブル回路に占める割合は、各々の平均値の和である3.91%に、和の標準偏差を加えた値である6.91%以上であることがより好ましい。また、各々の平均値の和と各々の標準偏差の和とを加えた値である8.06%以上であるとすることが更に好ましい。
また、特定の論理系を、それと論理的に等価であるAIGを経て、ルックアップテーブル回路の組み合わせで表される論理的に等価である論理系へ変換する具体的な方法は知られている。この方法は、例えば文献1(Jason Cong, et al., “FlowMap: An Optimal Technology Mapping Algorithm for Delay Optimization in Lookup-Table Based FPGA Designs,” in IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 13, no. 1 (1994) pp.1-12)に開示されている。この方法は、論理系への外部からの入力から、論理系の外部への出力に至る経路上のルックアップテーブル回路の個数を最少化する方法である。このことは演算処理時間が最短であることを意味する。すなわち、回路の動作速度が高速であることを意味するので、上記文献1の方法を用いることは、面積の低減に加えて、回路の動作速度の高速化という他の利点をも奏するので好ましい。
また、本実施形態において行う特定の出力パターンを持つ論理演算を行う回路はルックアップテーブル回路に替えて論理ゲートを用いることに加えて、論理系を構成するルックアップテーブル回路の総数を抑制する方法は知られている。この方法は、例えば文献2(Stephen Jang, et al., “WireMap: FPGA Technology Mapping for Improved Routability and Enhanced LUT Merging,” in ACM Transactions of Reconfigurable Technology and Systems, Vol. 2, No. 2, Article 14 (2009))に開示されている。それ故、文献2に記載の方法を用いると、面積の低減において更なる効果を奏するので好ましい。
本実施形態においては、論理ゲートエレメント180は、ある論理ブロックの内に配置されているように図7に示した。しかし、このことは本質ではなく全ての論理ブロック中に配置してもよく、論理ゲートエレメント180の配置されている論理ブロックと、配置されていない論理ブロックとが混在していても良い。
また、本実施形態においては、1つの論理ゲートエレメント180が論理ブロック内に配置されているように図7および図8に示した。しかし、このことは本質ではなく論理ゲートエレメント180が2つ以上配置されている論理ブロックが存在してもよく、また様々な個数の論理ゲートエレメントが配置されている論理ブロックが混在してもよい。
また、本実施形態においては、図7に示す論理ブロック内の論理ブロックエレメント180は、2入力のAND回路であってもよいし、2入力のOR回路であってもよい。また、2入力のAND回路と2入力のOR回路の双方が備えられていてもよい。そして様々な配置の論理ブロックが混在してもよい。
また、本実施形態の図8においては、基本論理エレメント126と、基本論理エレメント内に配置されていないフリップフロップ128と、書き換え不能な論理ゲート182と、が各々1個のみ示されているが、このことは本質ではない。これらの何れかないし全てが複数個論理ブロック内に存在しても同様の効果が得られることは言うまでもない。
また、本実施形態においては、基本論理エレメント以外に配置されるフリップフロップ128をも含む例が示されているが、基本エレメント外に配置されるフリップフロップは存在しなくても同様の効果が得られることは言うまでもない。
また、本実施形態の図8においては、論理ブロックの入力端子に接続される配線群122、各ルックアップテーブル回路126aないしフリップフロップ128の出力に接続される配線群122、書き換え不能な論理ゲート182の出力に接続される配線群122、のいずれもが4本、示されているが、それらの配線群の配線の本数が4本であることに必然性はない。それらの何れかないしは全ての本数が4本よりも多いまたは少ない場合にも同様の効果が得られることもまた言うまでもない。また、それらの本数が相互に相等しくはないとしても同様の効果が得られることもまた言うまでもない。
また、本実施形態においては、書き換え可能な論理演算回路に関して記したが、このことは本質ではなく、図9(a)乃至9(d)に示すように、書き換え可能な論理演算回路と例えばASIC(Application Specific Integrated Circuit)等の書き換え不能な論理演算回路とが混載されていてもよい。なお、図9(a)乃至9(d)においては、書き換え可能な論理演算回路と書き換え不能な論理演算回路との各々に対して特定の形状ないし配置の場合を例示したが、両者の形状ないし配置は図9(a)乃至9(d)に例示したものに限るものではないのは言うまでもない。
また、図9(a)乃至9(d)に示した例においては、書き換え可能な論理演算回路と書き換え不能な論理演算回路との何れもが1個のみの場合を例示したが、例えば図10(a)乃至10(d)に示すように何れかないし両者が複数個であっても同様の効果が得られることは言うまでもない。書き換え可能な論理演算回路と書き換え不能な論理演算回路との各々の形状ないし配置ないし個数は図10(a)乃至10(d)に例示したものに限るものではないこともまた言うまでもない。
なお、上記実施形態では、論理ゲートエレメント180は、2入力のAND回路または2入力のOR回路を備えていたが、3入力以上のAND回路または3入力以上のOR回路を備えていてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
10・・・半導体装置、100,100A・・・半導体装置、120,120A・・・論理ブロック、122・・・配線群、124a、124b・・・選択回路(MUX)、126・・・基本論理エレメント、126a・・・ルックアップテーブル回路(LUT)、126b・・・選択回路(MUX)、126c・・・フリップフロップ(FF)、130・・・スイッチブロック、140・・・選択回路、1421〜142n・・・選択部、1441〜144n・・・インバータ、146・・・トランスファーゲート、150・・・ルックアップテーブル回路、1521〜152N・・・選択部、1541〜154N・・・インバータ、156・・・トランスファーゲート、160・・・2入力AND回路、170・・・2入力OR回路、180・・・論理ゲートエレメント、182・・・2入力論理ゲート、184・・・フリップフロップ(FF)、186・・・選択回路(MUX)
Claims (8)
- 少なくとも1つの第1入力端子と少なくとも1つの第1出力端子を含み論理演算を行う論理ブロックを備え、前記論理ブロックは、
複数の配線であって、その少なくとも一部の配線が前記少なくとも1つの第1入力端子に接続される複数の配線と、
複数の第1選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第2入力端子と、第2出力端子と、を含む複数の第1選択回路と、
前記複数の第1選択回路の前記第2出力端子にそれぞれ接続される複数の第3入力端子と、第3出力端子と、を含むルックアップテーブル回路と、
複数の第2選択回路であって、それぞれが前記複数の配線のうちの一部の配線に接続される複数の第4入力端子と、第4出力端子と、を含む複数の第2選択回路と、
前記複数の第4出力端子に接続される複数の第5入力端子を含み、AND回路およびOR回路のうちの少なくとも一方を含む回路と、
を備えた半導体装置。 - 前記少なくとも一方を含む回路は、NOT回路を更に備えた請求項1記載の半導体装置。
- 前記論理ブロックは、
前記複数の配線のうちの一部の配線に接続される複数の第6入力端子と、第5出力端子と、を含む第3選択回路と、前記第5出力端子に接続される第7入力端子および前記第1出力端子に接続される第6出力端子を含む第1フリップフロップと、を更に備えた請求項1または2記載の半導体装置。 - 前記第6出力端子は、前記複数の配線のうちの少なくとも一つの配線にも接続される請求項3記載の半導体装置。
- 第8入力端子と第7出力端子とを含み前記第3出力端子に前記第8入力端子が接続された第2フリップフロップと、複数の第9入力端子と第8出力端子を含む第4選択回路と、を更に備え、
前記第4選択回路は、前記第9入力端子の一つが前記第3出力端子に接続され、残りのうちの一つが前記第7出力端子に接続され、前記第8出力端子が前記第1出力端子に接続される請求項1乃至4のいずれかに記載の半導体装置。 - 前記第8出力端子は前記複数の配線のうちの少なくとも一つの配線にも接続される請求項5記載の半導体装置。
- 第10入力端子と第9出力端子とを含み前記少なくとも一方を含む回路の出力端子に前記第10入力端子が接続された第3フリップフロップと、複数の第11入力端子と第10出力端子とを含む第5選択回路と、を更に備え、
前記第5選択回路は、前記複数の第11入力端子の一つが前記少なくとも一方を含む回路の前記出力端子に接続され、残りのうちの一つが前記第9出力端子に接続され、第10出力端子が前記第1出力端子に接続される請求項1乃至6のいずれかに記載の半導体装置。 - 前記第10出力端子が前記複数の第2配線のうちの少なくとも一つの配線にも接続される請求項7記載の半導体装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016053016A JP2017169070A (ja) | 2016-03-16 | 2016-03-16 | 半導体装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016053016A JP2017169070A (ja) | 2016-03-16 | 2016-03-16 | 半導体装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017169070A true JP2017169070A (ja) | 2017-09-21 |
Family
ID=59909203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016053016A Pending JP2017169070A (ja) | 2016-03-16 | 2016-03-16 | 半導体装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2017169070A (ja) |
-
2016
- 2016-03-16 JP JP2016053016A patent/JP2017169070A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20050218929A1 (en) | Field programmable gate array logic cell and its derivatives | |
KR20010082557A (ko) | 다중값 논리 회로 체계 및 보충 대칭 논리 회로 구조 | |
WO2010107114A1 (ja) | パターンマッチング装置 | |
US10936286B2 (en) | FPGA logic cell with improved support for counters | |
TW201417502A (zh) | 可再構成之半導體裝置 | |
US7199618B2 (en) | Logic circuit arrangement | |
JP2002198801A (ja) | 汎用ロジックモジュール及びこれを用いたセル | |
Shahrouzi et al. | Optimized counter-based multi-ported memory architectures for next-generation FPGAs | |
Chu et al. | A high-performance design of generalized pipeline cellular array | |
JP2006042308A (ja) | 2ビットのバイナリ比較器及びバイナリ比較装置 | |
JP2017169070A (ja) | 半導体装置 | |
US20210167781A1 (en) | Three-input exclusive nor/or gate using a cmos circuit | |
Zilic et al. | Using decision diagrams to design ULMs for FPGAs | |
JP6625943B2 (ja) | 情報処理装置 | |
US20070046324A1 (en) | Sharing a static random-access memory (SRAM) table betweeen two or more lookup tables (LUTs) that are equivalent to each other | |
Roy | Breakup Algorithm for Switching Circuit Simplifications | |
Darvish et al. | Effective realization of ternary logic circuits by adapted map minimization method | |
JP5937550B2 (ja) | プログラマブル論理回路及びその構成方法 | |
US7487198B2 (en) | Multibit bit adder | |
JP3072887B2 (ja) | フィールドプログラマブルゲートアレイ | |
CN106024056A (zh) | 基于复用器的三态内容寻址存储器 | |
JP2018042197A (ja) | 半導体装置 | |
JP2020530700A (ja) | 再構成可能回路のためのルーティングネットワーク | |
JP3209399B2 (ja) | ゲートアレイ集積回路 | |
GOPAL et al. | Transistor-Level Optimization of Three Input XOR/XNOR Gate Using CMOS Logic Design |