(57)【要約】【課題】プログラム可能なメモリ領域とロジック領域を有効活用できる半導体装置および半導体設計装置を提供する。【解決手段】半導体装置は、プログラム可能なＳＲＡＭセルで構成されたメモリ領域と、プログラム可能な論理演算を行うロジック領域と、が予め設けられ、前記メモリ領域および前記ロジック領域内の各トランジスタの拡散層を含む下地層が予め形成されたプログラム可能な半導体装置において、  実装する論理演算規模に応じて、前記メモリ領域の少なくとも一部を用いて形成されるＲＯＭを備え、  前記ＲＯＭは、前記ＲＯＭに入力されるアドレスを用いて、所定の論理演算を行った結果が前記ＲＯＭから出力されるように、前記論理演算のためのルックアップテーブルを記憶する。【選択図】図１
2015176929.tif 000002
【特許請求の範囲】
【請求項１】
プログラム可能なＳＲＡＭセルで構成されたメモリ領域と、プログラム可能な論理演算を行うロジック領域と、が予め設けられ、前記メモリ領域および前記ロジック領域内の各トランジスタの拡散層を含む下地層が予め形成されたプログラム可能な半導体装置において、
実装する論理演算規模に応じて、前記メモリ領域の少なくとも一部を用いて形成されるＲＯＭを備え、
前記ＲＯＭは、前記ＲＯＭに入力されるアドレスを用いて、所定の論理演算を行った結果が前記ＲＯＭから出力されるように、前記論理演算のためのルックアップテーブルを記憶する半導体装置。
【請求項２】
前記ＲＯＭは、並列の論理演算を行うツーポートのＲＯＭである請求項１に記載の半導体装置。
【請求項３】
プログラム可能なＳＲＡＭセルで構成されたメモリ領域と、プログラム可能な論理演算を行うロジック領域と、が予め設けられ、前記メモリ領域および前記ロジック領域内の各トランジスタの拡散層を含む下地層が予め形成されたプログラム可能な半導体装置を用いて設計対象回路の設計を行う半導体設計装置において、
前記設計対象回路内の論理演算規模が、設計に使用する前記半導体装置内の前記ロジック領域では不足するか否かを判定する論理演算判定部と、
前記論理演算判定部にて不足すると判定されると、前記設計対象回路内の論理演算回路の少なくとも一部を真理値表として表したルックアップテーブルを生成するルックアップテーブル生成部と、
前記ルックアップテーブルのサイズに合わせて、前記メモリ領域の少なくとも一部を用いてＲＯＭを形成し、このＲＯＭの中に前記ルックアップテーブルを記憶するＲＯＭ形成部と、を備える半導体設計装置。
【請求項４】
前記ＲＯＭ形成部で形成したＲＯＭの読出し速度が、前記設計対象回路で要求される処理速度に達しているか否かを判定する速度判定部と、
前記速度判定部により達していないと判定されると、前記設計対象回路内の論理演算回路のうち前記ＲＯＭに割り当てる論理演算規模を調節可能か否かを判定する論理演算規模判定部と、
前記論理演算規模判定部により調整可能と判定されると、前記ＲＯＭに割り当てる論理演算規模を最適化する論理演算規模最適化部と、を備える請求項３に記載の半導体設計装置。
【請求項５】
前記論理演算規模判定部にて調節不可能と判定されると、前記設計対象回路内の論理演算回路のうち前記ＲＯＭに割り当てる場所を変更可能か否かを判定する割当場所変更判定部と、
前記割当場所変更判定部により変更可能と判定されると、前記ＲＯＭに割り当てる場所を変更した上で、前記ルックアップテーブル生成部および前記ＲＯＭ形成部の処理を行わせる割当場所変更部と、を備える請求項４に記載の半導体設計装置。
【請求項６】
前記メモリ領域および前記ロジック領域の数および面積の少なくとも一方がそれぞれ異なる複数の前記半導体装置の中から、前記メモリ領域内に前記ＲＯＭを形成して前記ＲＯＭにて前記設計対象回路内の論理演算を行うことを考慮に入れて、前記設計対象回路を実装可能な最小面積の前記半導体装置を選択する母体選択部を備える請求項３乃至５のいずれかに記載の半導体設計装置。
【請求項７】
前記ルックアップテーブルは、前記設計対象回路内で並列の論理演算を行う論理演算回路を優先的に選択して、これら並列の論理演算を一つの真理値表にまとめた前記ルックアップテーブルを生成し、
前記ＲＯＭ形成部は、前記ルックアップテーブルを記憶するための複数ポートの前記ＲＯＭを形成する請求項３乃至６のいずれかに記載の半導体設計装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、半導体装置および半導体設計装置に関する。
【背景技術】
【０００２】
個々の顧客の要望に応じて、種々の論理演算を行うカスタム化されたシステムＬＳＩが普及している。システムＬＳＩの代表的なものはＡＳＩＣ（Application Specific Integrated Circuit）である。ＡＳＩＣは設計の自由度が高いものの、論理演算の基本単位であるトランジスタから作り込まなければならず、チップの開発に時間とコストがかかってしまう。
【０００３】
このため、トランジスタの拡散層やメタル第１層などが予め作り込まれたストラクチャード・アレイ（Structured Array）が注目されている。ストラクチャード・アレイは、ＡＳＩＣほどの設計自由度はないものの、製造が容易であり、チップの開発期間を短縮でき、開発コストも削減できる。
【０００４】
ストラクチャード・アレイには、予め、プログラム可能なＳＲＡＭ領域とロジック領域とが設けられている。また、顧客の要求に合わせて、ＳＲＡＭ領域とロジック領域の数と面積が異なる複数のストラクチャード・アレイの母体が用意されており、ユーザは設計規模に応じて、適切な母体を選択して半導体回路の設計を行うことができる。
【０００５】
しかしながら、設計すべき半導体回路によっては、ＳＲＡＭ領域の使用量が少ないものの、ロジック領域の使用量が多いものがあり、ＳＲＡＭ領域には空きがあるにもかかわらず、ロジック領域が不足してしまい、結果として、ロジック領域の面積の大きい母体を選択せざるを得ない場合もある。面積の大きい母体ほど、部品コストが高くなるため、結果として、システムＬＳＩの価格も高くなってしまう。
【０００６】
このように、従来は、ストラクチャード・アレイ内のＳＲＡＭ領域とロジック領域を全体的に有効に利用して半導体回路の設計を行うことができなかった。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第５０３２９９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明が解決しようとする課題は、プログラム可能なメモリ領域とロジック領域を有効活用できる半導体装置および半導体設計装置を提供することにある。
【課題を解決するための手段】
【０００９】
本実施形態によれば、プログラム可能なＳＲＡＭセルで構成されたメモリ領域と、プログラム可能な論理演算を行うロジック領域と、が予め設けられ、前記メモリ領域および前記ロジック領域内の各トランジスタの拡散層を含む下地層が予め形成されたプログラム可能な半導体装置において、
実装する論理演算規模に応じて、前記メモリ領域の少なくとも一部を用いて形成されるＲＯＭを備え、
前記ＲＯＭは、前記ＲＯＭに入力されるアドレスを用いて、所定の論理演算を行った結果が前記ＲＯＭから出力されるように、前記論理演算のためのルックアップテーブルを記憶する半導体装置が提供される。
【図面の簡単な説明】
【００１０】
【図１】第１の実施形態に係る半導体装置１のレイアウト図。
【図２】（ａ）と（ｂ）は母体のサイズが互いに異なる例を示す図。
【図３】図１の半導体装置１の設計を行うための半導体設計装置１１の概略構成を示すブロック図。
【図４】図３の半導体設計装置１１の処理動作の一例を示すブロック図。
【図５】設計対象回路内の論理演算回路が入力Ｘ１から出力Ｙ１を出力する論理演算Ａと、入力Ｘ２から出力Ｙ２を出力する論理演算Ａとを含む例を示す図。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本発明の実施形態を説明する。以下の実施形態では、半導体装置および半導体設計装置内の特徴的な構成および動作を中心に説明するが、半導体装置および半導体設計装置には以下の説明で省略した構成および動作が存在しうる。ただし、これらの省略した構成および動作も本実施形態の範囲に含まれるものである。
【００１２】
（第１の実施形態）
図１は第１の実施形態に係る半導体装置１のレイアウト図である。図１の半導体装置１は、ユーザの要望に応じてプログラム可能な母体（例えば、ストラクチャード・アレイ）を用いて形成されている。この母体には、プログラム可能なＳＲＡＭセルで構成されたメモリ領域２と、プログラム可能な論理演算を行うロジック領域３とが設けられており、この母体の下地層は、予め作り付けられている。下地層は、メモリ領域２およびロジック領域３内の各トランジスタの拡散層と、各トランジスタのゲートや電極等に用いられるメタル第１層とを含んでいる。
【００１３】
ユーザは、母体内のメモリ領域２とロジック領域３を利用して、種々の設計対象回路を設計することができる。ユーザが要望する個々の設計対象回路によって、必要とするメモリ容量や論理演算規模が異なるため、図２に示すように、メモリ領域２とロジック領域３の規模がそれぞれ相違する複数の母体１０を設けておき、設計対象回路に含まれるメモリ容量や論理演算規模に応じて、所望の母体１０を選択できるようにしている。図２（ａ）の母体１０は、図１の母体１０と同じであり、例えば８ｋビットのＳＲＡＭをｎ個（ｎは２以上の整数）有するメモリ領域２と、１００ｋゲートのロジック領域３とを有する。また、図２（ｂ）の母体１０は、１６ｋビットのＳＲＡＭをｍ個（ｍ＞ｎの整数）有するメモリ領域２と、２００ｋゲートのロジック領域３とを有する。図２（ａ）と図２（ｂ）の母体１０はいずれも、下地層が作り付けられた例えばストラクチャード・アレイである。
【００１４】
なお、図２（ａ）と図２（ｂ）の母体１０はいずれも、メモリ領域２とロジック領域３を備えているが、他の基本的な回路素子のゲート領域（例えばレジスタ領域）などを備えていてもよい。
【００１５】
一般には、母体１０が大きいほど、チップ面積が大きいため、半導体装置１のコストが高くなる。このため、できるだけ小さい母体１０を利用して、母体１０内のメモリ領域２とロジック領域３を最大限有効に利用するのが望ましい。
【００１６】
そこで、本実施形態では、母体１０内のメモリ領域２の少なくとも一部をＲＯＭとして利用し、このＲＯＭに論理演算のためのルックアップテーブルを記憶することで、このＲＯＭにて論理演算を行えるようにしている。
【００１７】
これにより、設計対象回路に含まれる論理演算規模が、母体１０内のロジック領域３だけでは不足する場合に、メモリ領域２に空きがあれば、その空き領域を利用して、論理演算回路を形成でき、母体１０内のメモリ領域２とロジック領域３を有効利用できる。
【００１８】
なお、メモリ領域２の少なくとも一部にＲＯＭを形成するには、メモリ領域２に形成されたＳＲＡＭセルの所定箇所にコンタクトビアを形成することで、容易に作製できる。ＲＯＭ内に記憶されるルックアップテーブルは、ＲＯＭに入力されるアドレスを論理演算回路の入力信号として、論理演算回路内で行われる論理演算を真理値表として表したものであり、ＲＯＭの出力データは、論理演算回路の論理演算結果に相当する。
【００１９】
例えば、論理演算回路内で複雑な論理演算を行う必要がある場合は、メモリ領域２内に複数のＲＯＭを形成して、各ＲＯＭに別個のルックアップテーブルを記憶し、各ＲＯＭにて段階的に論理演算を行って、最終的な論理演算結果を出力するようにしてもよい。すなわち、論理演算を複数のＲＯＭで分担することで、一つのＲＯＭ内に記憶されるルックアップテーブルの規模を縮小することができる。
【００２０】
図３は図１の半導体装置１の設計を行うための半導体設計装置１１の概略構成を示すブロック図である。図３の半導体設計装置１１は、例えば、半導体設計装置１１用のソフトウェアをコンピュータで実行させることにより実現される。あるいは、図３の半導体設計装置１１の処理を実行する専用のハードウェアを設けてもよい。
【００２１】
図３の半導体設計装置１１は、論理演算判定部１２と、ルックアップテーブル生成部１３と、ＲＯＭ形成部１４と、割当評価部１５と、母体選択部１６と、を備えている。
【００２２】
論理演算判定部１２は、設計対象回路内の論理演算規模が、母体１０内のロジック領域３では不足するか否かを判定する。ここでは、設計回路内の論理演算規模を、論理合成ツール等を用いて予測し、予測したゲート数が母体１０内のロジック領域３のゲート数より多いか否かを判定する。また、論理演算判定部１２は、母体１０内のメモリ領域２に余剰のＳＲＡＭが残っているか否かも判定する。
【００２３】
ルックアップテーブル生成部１３は、論理演算判定部１２にて不足すると判定されると、設計対象回路内の少なくとも一部の論理演算回路を真理値表として表したルックアップテーブルを生成する。
【００２４】
ＲＯＭ形成部１４は、生成したルックアップテーブルのサイズに合わせて、メモリ領域２の少なくとも一部を用いてＲＯＭを形成し、このＲＯＭの中にルックアップテーブルを記憶する。
【００２５】
割当評価部１５は、ＲＯＭを用いて行う論理演算速度が、設計対象回路に求められる所定の速度に達しているか否かを判定し、達していなければメモリ領域２に形成すべき論理回路を見直す。割当評価部１５は、より詳細には、速度判定部２１と、論理演算規模判定部２２と、論理演算規模最適化部２３と、割当場所変更判定部２４と、割当場所変更部２５とを有する。
【００２６】
速度判定部２１は、ＲＯＭ形成部１４で形成したＲＯＭの読出し速度が設計対象回路で要求される処理速度に達しているか否かを判定する。
【００２７】
論理演算規模判定部２２は、速度判定部２１により達していないと判定されると、設計対象回路内の論理演算回路のうちＲＯＭに割り当てる論理演算規模を調整可能か否かを判定する。
【００２８】
論理演算規模最適化部２３は、論理演算規模判定部２２により調整可能と判定されると、ＲＯＭに割り当てる論理演算規模を最適化する。
【００２９】
割当場所変更判定部２４は、論理演算規模判定部２２にて調整不可能と判定されると、設計対象回路内の論理演算回路のうちＲＯＭに割り当てる場所を変更可能か否かを判定する。
【００３０】
割当場所変更部２５は、割当場所変更判定部２４により変更可能と判定されると、ＲＯＭに割り当てる場所を変更した上で、ルックアップテーブル生成部１３およびＲＯＭ形成部１４の処理を行わせる。
【００３１】
なお、割当評価部１５内の各部は必ずしも必須ではなく、一部を省略してもよい。例えば、割当場所変更判定部２４と割当場所変更部２５を省略してもよい。
【００３２】
母体選択部１６は、メモリ領域２およびロジック領域３の数およびサイズがそれぞれ異なる複数の母体１０の中から、設計対象回路を実装可能な最小面積の母体１０を選択する。母体選択部１６は、各母体１０のメモリ領域２の少なくとも一部をＲＯＭ化して論理演算を行うことを考慮に入れて、最小面積の母体１０を選択する。
【００３３】
図４は図３の半導体設計装置１１の処理動作の一例を示すブロック図である。まず、論理演算判定部１２は、設計対象回路内の論理演算規模が母体１０内のロジック領域３では不足するか否かを判定する（ステップＳ１）。次に、論理演算判定部１２は、メモリ領域２内に余剰のＳＲＡＭがあるか否かを判定する（ステップＳ２）。もし、余剰のメモリ領域２がないと判定されると、母体１０を変更し（ステップＳ３）、ステップＳ１に戻る。
【００３４】
ステップＳ２にて余剰のメモリ領域２があると判定されると、ルックアップテーブル生成部１３は、設計対象回路内の少なくとも一部の論理演算回路真理値表として表したルックアップテーブルを生成する。（ステップＳ４）。
【００３５】
次に、ＲＯＭ形成部１４は、ルックアップテーブルのサイズに合わせて、メモリ領域２の少なくとも一部を用いてＲＯＭを形成し、このＲＯＭの中にルックアップテーブルを記憶する（ステップＳ５）。このステップＳ５の処理では、実際にＲＯＭの中にルックアップテーブルを記憶する処理を行うのではなく、半導体設計装置１１上で、仮想的にＲＯＭの中にルックアップテーブルを記憶する。
【００３６】
次に、割当評価部１５は、ＲＯＭに記憶したルックアップテーブルの処理速度が、設計対象回路に求められる所定の速度に達しているか否かを判定する（ステップＳ６）。達していると判定された場合は、メモリ領域２内のゲートリソースが不足しているか否かを判定し（ステップＳ７）、不足していなければ終了する。
【００３７】
一方、ステップＳ７で不足していると判定された場合、あるいはステップＳ６で所定の速度に達していないと判定された場合、割当評価部１５は、設計対象回路内でメモリ領域２に割当可能な論理演算規模を調節可能か否かを判定する（ステップＳ８）。調節可能と判定された場合は、論理演算規模最適化部２３は、メモリ領域２に割り当てる論理演算規模を最適化して（ステップＳ９）、ステップＳ４に戻る。
【００３８】
一方、ステップＳ８で調節不可能と判定されると、割当場所変更判定部２４は、設計対象回路内でメモリ領域２に割り当てる論理演算回路の種類を変更可能か否かを判定する（ステップＳ１０）。変更可能と判定された場合、割当場所変更部２５は、論理演算回路の種類を変更し（ステップＳ１１）、ステップＳ４に戻る。一方、ステップＳ１０で変更不可能と判定された場合は、ステップＳ３に戻る。
【００３９】
このように、第１の実施形態では、プログラム可能なメモリ領域２とロジック領域３を備えた母体１０を用いて設計対象回路の設計を行う場合、設計対象回路内の論理演算規模に応じて、必要に応じてメモリ領域２内にＲＯＭを形成して、このＲＯＭにルックアップテーブルを記憶させて、論理演算を行わせるようにしたため、母体１０内のメモリ領域２とロジック領域３を最大限有効活用することができる。よって、できるだけ小さい母体１０を用いて、設計対象回路の設計を行うことができ、半導体チップ自体のコストを抑制できる。
【００４０】
また、第１の実施形態では、下地層が予め作り付けられた母体１０のメモリ領域２を必要に応じて論理演算のために利用できるため、ＡＳＩＣほどの設計自由度はないものの、従来のストラクチャード・アレイよりも設計自由が広がり、しかも、ＡＳＩＣよりもはるかに設計期間が短くて済み、顧客の要求に合わせて迅速にシステムＬＳＩを開発できる。
【００４１】
（第２の実施形態）
図３のルックアップテーブル生成部１３およびＲＯＭ形成部１４の処理動作の一部が第１の実施形態とは異なっている。
【００４２】
設計対象回路内の論理演算回路の中には、並列演算回路が含まれる場合がある。例えば、図５は、設計対象回路内の論理演算回路が入力Ｘ１から出力Ｙ１を出力する論理演算（function A）と、入力Ｘ２から出力Ｙ２を出力する論理演算（function A）とを含む例を示している。
【００４３】
これらの論理演算は、それぞれ別個のＲＯＭ内のルックアップテーブルとして実現できる。ところがこのままでは、２つのＲＯＭが必要となる。
【００４４】
一方、メモリ領域２にプログラマブルに形成可能なコンタクトビアの位置を調整することで、２種類の入力信号端子と２種類の出力信号端子とを有するツーポートのＲＯＭを形成することも可能である。この場合、２種類の論理演算を併合した真理値表からなるルックアップテーブルを生成して、このツーポートのＲＯＭに記憶すればよい。
【００４５】
ツーポートのＲＯＭは、ワンポートのＲＯＭの２個分よりも回路面積が小さい。よって、ツーポートのＲＯＭを用いることで、よりメモリ領域２内のＲＯＭ占有面積を削減でき、メモリ領域２をより有効に利用できる。なお、ツーポートよりポート数の多い複数ポートのＲＯＭを用いてもよい。
【００４６】
このように、第２の実施形態では、設計対象回路内の論理演算回路の中から、並列演算を行う論理演算回路を抽出して優先的にメモリ領域２内のツーポートＲＯＭで論理演算を行うため、母体１０のメモリ領域２とロジック領域３をより有効に活用することができる。
【００４７】
上述した実施形態で説明した半導体設計装置の少なくとも一部は、ハードウェアで構成してもよいし、ソフトウェアで構成してもよい。ソフトウェアで構成する場合には、半導体設計装置の少なくとも一部の機能を実現するプログラムをフレキシブルディスクやＣＤ−ＲＯＭ等の記録媒体に収納し、コンピュータに読み込ませて実行させてもよい。記録媒体は、磁気ディスクや光ディスク等の着脱可能なものに限定されず、ハードディスク装置やメモリなどの固定型の記録媒体でもよい。
【００４８】
また、半導体設計装置の少なくとも一部の機能を実現するプログラムを、インターネット等の通信回線（無線通信も含む）を介して頒布してもよい。さらに、同プログラムを暗号化したり、変調をかけたり、圧縮した状態で、インターネット等の有線回線や無線回線を介して、あるいは記録媒体に収納して頒布してもよい。
【００４９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５０】
１  半導体装置、２  メモリ領域、３  ロジック領域、１０  母体、１１  半導体設計装置、１２  論理演算判定部、１３  ルックアップテーブル生成部、１４  ＲＯＭ形成部、１５  割当形成部、１６  母体選択部、２１  速度判定部、２２  論理演算規模判定部、２３  論理演算規模最適化部、２４  割当場所変更判定部、２５  割当場所変更部
【図１】
2015176929.tif 000003
【図２】
2015176929.tif 000004
【図３】
2015176929.tif 000005
【図４】
2015176929.tif 000006
【図５】
2015176929.tif 000007