(57)【要約】【課題】初期化時にＳＲＡＭから初期化データを読み出す時間を短縮できる半導体集積回路を提供する。【解決手段】実施形態の半導体記憶装置は、初期化データを記憶するＲＯＭ１２と、初期化データのうち、少なくとも一部のデータを書き込み可能なＳＲＡＭ１１と、ＳＲＡＭ１１に書き込みが行われたか否かを示す情報を記憶するフラグ記憶部１３と、フラグ記憶部１３に記憶された情報に応じて、ＳＲＡＭ１１から出力されたデータと、ＲＯＭ１２から出力されたデータのいずれかを出力するセレクタ１４とを備える。【選択図】図１
2018160029.tif 000002
【特許請求の範囲】
【請求項１】
初期化データを記憶するＲＯＭと、
前記初期化データのうち、少なくとも一部のデータを書き込み可能なＳＲＡＭと、
前記ＳＲＡＭに書き込みが行われたか否かを示す情報を記憶するメモリと、
前記メモリに記憶された前記情報に応じて、前記ＳＲＡＭから出力されたデータと、前記ＲＯＭから出力されたデータのいずれかを出力するセレクタと、
を具備する半導体集積回路。
【請求項２】
前記ＳＲＡＭは書き込み及び読み出しが実行される第１記憶領域を有し、
前記ＲＯＭは前記第１記憶領域に対応する第２記憶領域を有し、
前記メモリは、前記第１記憶領域に対応し、前記情報として第１値を記憶するレジスタを有し、
前記第１記憶領域、前記第２記憶領域、及び前記レジスタは同一のアドレスにより指定される請求項１に記載の半導体集積回路。
【請求項３】
書き込み時に、前記第１記憶領域に書き込みが実行されると共に、前記レジスタの前記第１値が第２値に変更される請求項２に記載の半導体集積回路。
【請求項４】
読み出し時に、前記レジスタに前記第１値が記憶されているとき、前記セレクタは前記ＲＯＭから出力されたデータを出力し、前記レジスタに前記第２値が記憶されているとき、前記セレクタは前記ＳＲＡＭから出力されたデータを出力する請求項３に記載の半導体集積回路。
【請求項５】
前記ＳＲＡＭは複数の第１記憶領域を有し、前記ＲＯＭは前記複数の第１記憶領域に対応する複数の第２記憶領域をそれぞれ有し、
前記メモリは前記複数の第１記憶領域に対応する複数のレジスタをそれぞれ有し、
書き込み時に、前記複数の第１記憶領域のいずれかを指定するアドレスに基づいて、前記複数のレジスタのいずれかに第１値を出力するアドレスデコーダをさらに具備する請求項１に記載の半導体集積回路。
【請求項６】
前記ＳＲＡＭは複数の第１記憶領域を有し、前記ＲＯＭは前記複数の第１記憶領域に対応する複数の第２記憶領域をそれぞれ有し、
前記メモリは前記複数の第１記憶領域に対応する複数のレジスタをそれぞれ有し、
読み出し時に、前記複数の第１記憶領域のいずれかを指定するアドレスに基づいて、前記複数のレジスタのいずれかに記憶された前記情報を出力するセレクタをさらに具備する請求項１に記載の半導体集積回路。
【請求項７】
前記初期化データは、初期化動作を実行するときに、前記初期化動作において使用されるデータである請求項１乃至６のいずれかに記載の半導体集積回路。
【請求項８】
初期化データのうち、少なくとも一部のデータを書き込み可能なＳＲＡＭと、
前記ＳＲＡＭに書き込みが行われたか否かを示す情報を記憶するメモリと、
前記メモリに記憶された前記情報に応じて、前記ＳＲＡＭから出力されたデータと、所定値のいずれかを出力するセレクタと、
を具備する半導体集積回路。
【請求項９】
初期化データのうち、少なくとも一部のデータを書き込み可能なＳＲＡＭと、
前記ＳＲＡＭに書き込みが行われたか否かを示す情報を記憶するメモリと、
前記ＳＲＡＭからの出力が第１入力端に入力され、前記メモリに記憶された前記情報が第２入力端に入力された論理積回路と、
を具備する半導体集積回路。
【請求項１０】
前記ＳＲＡＭは書き込み及び読み出しが実行される第１記憶領域を有し、
前記メモリは、前記第１記憶領域に対応し、前記情報として第１値を記憶するレジスタを有し、
前記第１記憶領域及び前記レジスタは同一のアドレスにより指定される請求項８または９に記載の半導体集積回路。
【請求項１１】
書き込み時に、前記第１記憶領域に書き込みが実行されると共に、前記レジスタの前記第１値が第２値に変更される請求項１０に記載の半導体集積回路。
【請求項１２】
読み出し時に、前記メモリに記憶された前記情報が第１値であるとき、前記セレクタは前記所定値を出力し、前記メモリに記憶された前記情報が第２値であるとき、前記セレクタは前記ＳＲＡＭから出力されたデータを出力する請求項８に記載の半導体集積回路。
【請求項１３】
読み出し時に、前記メモリに記憶された前記情報が第１値であるとき、前記論理積回路は第２入力端に入力された前記第１値を出力し、前記メモリに記憶された前記情報が第２値であるとき、前記論理積回路は前記ＳＲＡＭから出力されたデータを出力する請求項９に記載の半導体集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、ＳＲＡＭを有する半導体集積回路に関するものである。
【背景技術】
【０００２】
ＦＰＧＡ（field programmable gate array）あるいはＡＳＩＣ（application specific integrated circuit）において、初期化データ（初期値）を記憶したＳＲＡＭ（static random access memory）を利用する場合がある。この場合、起動時などの初期化を行うときにＳＲＡＭに対して初期化データを書き込むことで、ＳＲＡＭに初期化データを与えている。このため、その書き込み時間が起動時などの初期化時に必要となってしまう。また、ＳＲＡＭに対するこの書き込み時間は、初期化データを記憶するために必要なＳＲＡＭの記憶容量が大きくなるほど長くなる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−３２３３９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
初期化時にＳＲＡＭから初期化データを読み出す時間を短縮できる半導体集積回路を提供する。
【課題を解決するための手段】
【０００５】
実施形態の半導体集積回路は、初期化データを記憶するＲＯＭと、前記初期化データのうち、少なくとも一部のデータを書き込み可能なＳＲＡＭと、前記ＳＲＡＭに書き込みが行われたか否かを示す情報を記憶するメモリと、前記メモリに記憶された前記情報に応じて、前記ＳＲＡＭから出力されたデータと、前記ＲＯＭから出力されたデータのいずれかを出力するセレクタとを具備する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態の半導体集積回路の構成を示す図である。
【図２】図２は、第１実施形態の半導体集積回路の初期動作を示す図である。
【図３】図３は、第１実施形態の半導体集積回路の書き込み動作を示す図である。
【図４】図４は、第１実施形態の半導体集積回路の読み出し動作を示す図である。
【図５】図５は、第１実施形態の半導体集積回路の読み出し動作を示す図である。
【図６】図６は、第１実施形態の半導体集積回路の第１構成例を示す図である。
【図７】図７は、第１実施形態の半導体集積回路の第１構成例の動作を示すタイミングチャートである。
【図８】図８は、第１実施形態の半導体集積回路の第２構成例を示す図である。
【図９】図９は、第１実施形態の半導体集積回路の第２構成例の動作を示すタイミングチャートである。
【図１０】図１０は、第２実施形態の半導体集積回路の構成を示す図である。
【図１１】図１１は、第２実施形態の変形例の半導体集積回路の構成を示す図である。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。以下の説明において、同一の機能及び構成を有する構成要素については同一符号を付す。また、以下に示す各実施形態は、この実施形態の技術的思想を具体化するための装置や方法を例示するものであって、構成部品の材質、形状、構造、及び配置等を下記のものに特定するものではない。
【０００８】
各機能ブロックは、ハードウェア、コンピュータソフトウェアのいずれかまたは両者を組み合わせたものとして実現することができる。各機能ブロックが以下の例のように区別されていることは必須ではない。例えば、一部の機能が例示の機能ブロックとは別の機能ブロックによって実行されてもよい。さらに、例示の機能ブロックがさらに細かい機能サブブロックに分割されていてもよい。
【０００９】
［１］第１実施形態
第１実施形態の半導体集積回路について説明する。
【００１０】
［１−１］半導体集積回路の構成
図１は、第１実施形態の半導体集積回路の構成を示す図である。図示するように、半導体集積回路１０は、ＳＲＡＭ１１、ＲＯＭ１２、フラグ記憶部１３、及びデータセレクタ１４を備える。
【００１１】
ＳＲＡＭ（static random access memory）１１は、大容量のデータが記憶可能な揮発性メモリである。ここでは、ＳＲＡＭ１１は、書き込み及び読み出しを行うアクセス単位としての記憶領域（例えば、ワード）Ｓ０，Ｓ１，Ｓ２，Ｓ３を有するものとする。例えば、アドレスＡＤＤＲが入力され、アドレスＡＤＤＲにより記憶領域Ｓ０〜Ｓ３のいずれかが書き込みあるいは読み出しの対象として指定される。書き込みでは、アドレスＡＤＤＲにより指定された記憶領域にデータＩｎが書き込まれる。また、読み出しでは、アドレスＡＤＤＲにより指定された記憶領域からデータが読み出され、データセレクタ１４に入力される。
【００１２】
ＲＯＭ（read only memory）１２は、例えばＳＲＡＭ１１と同じ記憶容量を持ち、ＳＲＡＭ１１と同じアクセス単位の記憶領域Ｒ０，Ｒ１，Ｒ２，Ｒ３を有する。ＲＯＭ１２の記憶領域Ｒ０〜Ｒ３は、ＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３にそれぞれ対応する。すなわち、同一のアドレスＡＤＤＲによって、対応する記憶領域Ｓ０〜Ｓ３の１つとＲ０〜Ｒ３の１つが指定される。ＲＯＭ１２の記憶領域Ｒ０〜Ｒ３は、ＳＲＡＭ１１に初期状態として設定されるべきデータ、すなわち初期化動作を行うためにＳＲＡＭ１１に記憶されるべき初期化データ（あるいは初期値とも記す）を記憶している。読み出しでは、例えばアドレスＡＤＤＲが入力され、アドレスＡＤＤＲにより記憶領域Ｒ０〜Ｒ３のいずれかが読み出しの対象として指定される。さらに、指定された記憶領域からデータが読み出され、データセレクタ１４に入力される。
【００１３】
フラグ記憶部１３は、ＳＲＡＭ１１及びＲＯＭ１２が有する記憶領域の数と同じ数のフラグレジスタＦ０，Ｆ１，Ｆ２，Ｆ３を有する。フラグレジスタＦ０〜Ｆ３の各々は、ＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３の各々に対応している。すなわち、フラグレジスタＦ０は記憶領域Ｓ０に対応し、フラグレジスタＦ１は記憶領域Ｓ１に、フラグレジスタＦ２は記憶領域Ｓ２に、フラグレジスタＦ３は記憶領域Ｓ３にそれぞれ対応している。
【００１４】
フラグレジスタＦ０〜Ｆ３には、記憶領域Ｓ０〜Ｓ３の書き込み状況に応じたフラグがそれぞれ記憶される。リセット信号ＲＳＴが入力されると、フラグレジスタＦ０〜Ｆ３に記憶されたフラグがリセットされる。例えば、フラグレジスタＦ０〜Ｆ３のフラグが“０”に設定される。書き込みでは、アドレスＡＤＤＲにより指定されたフラグレジスタのフラグが反転される。例えば、フラグレジスタＦ０〜Ｆ３のフラグが“０”から“１”に設定される。読み出しでは、アドレスＡＤＤＲにより指定されたフラグレジスタのフラグが選択され、データセレクタ１４へ出力される。
【００１５】
データセレクタ１４は、フラグ記憶部１３から受け取ったフラグが“０”のとき、ＲＯＭ１２から読み出されたデータを選択し、出力する。一方、データセレクタ１４は、フラグが“１”のとき、ＳＲＡＭ１１から読み出されたデータを選択し、出力する。
【００１６】
［１−２］半導体集積回路の動作
次に、第１実施形態の半導体集積回路の動作について説明する。
【００１７】
［１−２−１］初期動作
図２は、第１実施形態の半導体集積回路の初期動作を示す図である。半導体集積回路１０の起動時には、リセット信号ＲＳＴがアサートされる。リセット信号ＲＳＴはフラグ記憶部１３に入力される。リセット信号ＲＳＴにより、フラグ記憶部１３内のフラグレジスタＦ０〜Ｆ３に記憶されたフラグはリセットされ、例えば０に設定される。
【００１８】
ＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３に記憶されているデータは不定であるため、Ｘで示している。また、ＲＯＭ１２の記憶領域Ｒ０〜Ｒ３には、ＳＲＡＭ１１に記憶されるべき初期化データとしてデータＡ，Ｂ，Ｃ，Ｄがそれぞれ記憶されている。
【００１９】
［１−２−２］書き込み動作
図３は、半導体集積回路１０の書き込み動作を示す図である。ＳＲＡＭ１１への書き込み動作の場合、ＳＲＡＭ１１に対しては通常の書き込み動作と同様に、アドレスＡＤＤＲにより指定された記憶領域にデータＩｎを書き込む。
【００２０】
この書き込みと共に、データを書き込んだ記憶領域に対応するフラグ記憶部１３内のフラグレジスタのフラグを反転させる。すなわち、アドレスＡＤＤＲにより指定されたフラグレジスタに記憶されているフラグを反転させる。
【００２１】
具体的には、図３に示すように、ＳＲＡＭ１１では、アドレスＡＤＤＲにより指定された記憶領域Ｓ２にデータＣ’を書き込む。この記憶領域Ｓ２への書き込みと共に、記憶領域Ｓ２に対応するフラグレジスタＦ２のフラグを“０”から“１”に反転させる。すなわち、アドレスＡＤＤＲにより指定されたフラグレジスタＦ２のフラグを１に設定する。フラグレジスタＦ２におけるフラグの反転は、記憶領域Ｓ２に書き込みが発生したことを示す。
【００２２】
［１−２−３］読み出し動作
図４及び図５は、半導体集積回路１０の読み出し動作を示す図である。読み出し動作の場合、アドレスＡＤＤＲにより指定されたＳＲＡＭ１１及びＲＯＭ１２の記憶領域からデータをそれぞれ読み出し、読み出したデータをデータセレクタ１４にそれぞれ入力する。これと共に、アドレスＡＤＤＲにより指定されたフラグレジスタに保持されたフラグを選択し、データセレクタ１４に入力する。
【００２３】
データセレクタ１４は、受け取ったフラグが“０”であれば、ＳＲＡＭ１１への書き込みは行われていないため、ＲＯＭ１２から読み出したデータを選択して出力する。一方、受け取ったフラグが“１”であれば、ＳＲＡＭ１１への書き込みが行われてデータが更新されているため、データセレクタ１４はＳＲＡＭ１１から読み出したデータを選択して出力する。
【００２４】
図４を用いて、ＳＲＡＭ１１の書き込みが行われていない記憶領域への読み出し動作を具体的に説明する。例えば、記憶領域Ｓ１への読み出し動作を述べる。ＳＲＡＭ１１の記憶領域Ｓ１は書き込みが行われておらず、不定Ｘのままである。
【００２５】
まず、アドレスＡＤＤＲ１により指定されたＳＲＡＭ１１の記憶領域Ｓ１及びＲＯＭ１２の記憶領域Ｒ１からデータをそれぞれ読み出し、データセレクタ１４の第１、第２入力端にそれぞれ入力する。このとき、アドレスＡＤＤＲ１により指定されたフラグレジスタＦ１からフラグを読み出し、データセレクタ１４の制御端に入力する。
【００２６】
データセレクタ１４は、フラグレジスタＦ１のフラグが“０”であるとき、ＲＯＭ１２の記憶領域Ｒ１から読み出されたデータＢを選択し、出力する。
【００２７】
次に、図５を用いて、ＳＲＡＭ１１の書き込みが行われた記憶領域への読み出し動作を具体的に説明する。例えば、記憶領域Ｓ２への読み出し動作を述べる。ＳＲＡＭ１１の記憶領域Ｓ２は書き込みが行われており、データＣ’が記憶されている。
【００２８】
まず、アドレスＡＤＤＲ２により指定されたＳＲＡＭ１１の記憶領域Ｓ２及びＲＯＭ１２の記憶領域Ｒ２からデータをそれぞれ読み出し、データセレクタ１４の第１、第２入力端にそれぞれ入力する。このとき、アドレスＡＤＤＲ２により指定されたフラグレジスタＦ２からフラグを読み出し、データセレクタ１４の制御端に入力する。
【００２９】
データセレクタ１４は、フラグレジスタＦ２のフラグが“１”であるとき、ＳＲＡＭ１１の記憶領域Ｓ２から読み出されたデータＣ’を選択し、出力する。
【００３０】
［１−３］半導体集積回路の詳細な第１構成例と動作
次に、第１実施形態の半導体集積回路の詳細な構成例を説明する。
【００３１】
［１−３−１］第１構成例の回路
図６は、第１実施形態の半導体集積回路の第１構成例を示す図である。この第１構成例は、１組の入出力ポートで書き込み及び読み出しを制御する例である。この例では、書き込みと読み出しの制御信号が共通である。
【００３２】
半導体集積回路１０は、ＳＲＡＭ１１、ＲＯＭ１２、フラグ記憶部１３、データセレクタ１４、フラグ書き込み回路１５、フラグ読み出し回路１６、及びレイテンシレジスタ１７を備える。
【００３３】
ＳＲＡＭ１１、ＲＯＭ１２、データセレクタ１４の構成は図１に示した構成と同様である。例えば、ＳＲＡＭ１１は４つの記憶領域Ｓ０〜Ｓ３を持ち、記憶領域Ｓ０〜Ｓ３のそれぞれにアドレスが割り当てられる。ＲＯＭ１２が持つ記憶領域Ｒ０〜Ｒ３はＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３にそれぞれ対応し、フラグ記憶部１３が持つフラグレジスタＦ０〜Ｆ３はＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３にそれぞれ対応する。対応する記憶領域Ｓ０，Ｒ０、フラグレジスタＦ０、あるいは記憶領域Ｓ１，Ｒ１、フラグレジスタＦ１、あるいは記憶領域Ｓ２，Ｒ２、フラグレジスタＦ２、あるいは記憶領域Ｓ３，Ｒ３、フラグレジスタＦ３にはそれぞれ同一のアドレスが割り当てられる。
【００３４】
フラグ記憶部１３は、フラグレジスタＦ０〜Ｆ３、アドレスデコーダ１３Ａ、及びフラグセレクタ１３Ｂを有する。フラグレジスタＦ０〜Ｆ３の各々はフリップフロップから構成される。
【００３５】
アドレスデコーダ１３Ａは、フラグレジスタＦ０〜Ｆ３のうち、フラグを反転するフラグレジスタを選択する。アドレスデコーダ１３Ａには信号“１”が入力されている。アドレスデコーダ１３Ａは、アドレス信号Ａｍを受信し、アドレス信号Ａｍに応じて信号“１”を出力するフラグレジスタをフラグレジスタＦ０〜Ｆ３のうちから選択し、選択したフラグレジスタに“１”を出力する。
【００３６】
フラグセレクタ１３Ｂは、フラグレジスタＦ０〜Ｆ３から出力されたフラグのうち、いずれかのフラグを選択する。フラグセレクタ１３Ｂは、アドレス信号Ａｍを受信し、アドレス信号Ａｍに応じてフラグレジスタＦ０〜Ｆ３の出力からいずれかを選択し、選択した出力（フラグ）をレイテンシレジスタ１７に出力する。
【００３７】
フラグ書き込み回路１５は、フラグレジスタＦ０〜Ｆ３に書き込みを行うタイミングを制御する。フラグ書き込み回路１５は、論理積回路（以下、ＡＮＤ回路と記す）Ａ１，Ａ２を有する。
【００３８】
フラグ読み出し回路１６は、フラグレジスタＦ０〜Ｆ３から読み出しを行うタイミングを制御する。フラグ読み出し回路１６は、ＡＮＤ回路Ａ３，Ａ４、及びレジスタ１６Ａを有する。レジスタ１６Ａはフリップフロップから構成される。
【００３９】
レイテンシレジスタ１７は、フラグ読み出し回路１６の出力により、フラグセレクタ１３Ｂから出力されたフラグの出力タイミングを調整する。レイテンシレジスタ１７から出力されたフラグは、データセレクタ２の制御端に入力される。レイテンシレジスタ１７は、フリップフロップから構成される。
【００４０】
次に、第１構成例の回路接続について説明する。
【００４１】
チップイネーブル信号ＣＥＮは、ＳＲＡＭ１１、ＲＯＭ１２、フラグ書き込み回路１５、及びフラグ読み出し回路１６に入力される。ライトイネーブル信号ＷＥＮは、ＳＲＡＭ１１、ＲＯＭ１２、フラグ書き込み回路１５、及びフラグ読み出し回路１６に入力される。アドレス信号Ａｍは、ＳＲＡＭ１１、ＲＯＭ１２、アドレスデコーダ１３Ａ、及びフラグセレクタ１３Ｂに入力される。さらに、クロック信号ＣＬＫは、ＳＲＡＭ１１、ＲＯＭ１２、フラグ書き込み回路１５、及びフラグ読み出し回路１６に入力される。
【００４２】
ＡＮＤ回路Ａ１の第１及び第２入力端に、チップイネーブル信号ＣＥＮ及びライトイネーブル信号ＷＥＮの反転信号がそれぞれ入力される。ＡＮＤ回路Ａ１の出力は、ＡＮＤ回路Ａ２の第１入力端に入力される。ＡＮＤ回路Ａ２の第２入力端には、クロック信号ＣＬＫが入力される。
【００４３】
ＡＮＤ回路Ａ２の出力は、フラグレジスタＦ０〜Ｆ３の制御端にそれぞれ入力される。フラグレジスタＦ０〜Ｆ３の入力端には、アドレスデコーダ１３Ａの出力がそれぞれ入力される。フラグレジスタＦ０〜Ｆ３のリセット端には、リセット信号ＲＳＴがそれぞれ入力される。フラグレジスタＦ０〜Ｆ３の出力は、フラグセレクタ１３Ｂの入力端にそれぞれ入力される。さらに、フラグセレクタ１３Ｂの出力は、レイテンシレジスタ１７の入力端に入力される。
【００４４】
ＡＮＤ回路Ａ３の第１入力端には、チップイネーブル信号ＣＥＮの反転信号が入力される。ＡＮＤ回路Ａ３の第２入力端には、ライトイネーブル信号ＷＥＮが入力される。ＡＮＤ回路Ａ３の出力は、レジスタ１６Ａの入力端に入力される。レジスタ１６Ａの制御端及びＡＮＤ回路Ａ４の第１入力端には、クロック信号ＣＬＫが入力される。レジスタ１６Ａのリセット端にはリセット信号ＲＳＴが入力される。レジスタ１６Ａの出力は、ＡＮＤ回路Ａ４の第２入力端に入力される。
【００４５】
ＡＮＤ回路Ａ４の出力は、レイテンシレジスタ１７の制御端に入力される。レイテンシレジスタ１７のリセット端には、リセット信号ＲＳＴが入力される。さらに、レイテンシレジスタ１７の出力は、データセレクタ１４の制御端に入力される。
【００４６】
［１−３−２］第１構成例の動作
図７は、半導体集積回路１０の第１構成例の動作を示すタイミングチャートである。
【００４７】
図７に示す期間（１）は、ＳＲＡＭ１１、ＲＯＭ１２、及びフラグ記憶部１３のリセット状態を示している。リセット信号ＲＳＴとして“０”が入力されたとき、このリセット状態となる。リセット信号ＲＳＴとして“０”が入力されることにより、フラグレジスタＦ０〜Ｆ３は“０”にリセットされる。一方、ＳＲＡＭ１１はリセット信号ＲＳＴの影響を受けないため、ＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３が記憶するデータは不定（図７においてＸと表示）である。ＲＯＭ１２の記憶領域Ｒ０〜Ｒ３は、ＳＲＡＭ１１に記憶されるべき初期化データ（初期値）を記憶している。
【００４８】
その後、リセット信号ＲＳＴとして“１”が入力されることにより、リセット状態が解除され、以降の通常動作（書き込み動作及び読み出し動作）へと移行する。
【００４９】
図７に示す期間（２）は、ＳＲＡＭ１１への書き込み動作を示している。ここでは、ＳＲＡＭ１１の記憶領域Ｓ１にデータＢ’を書き込む場合を述べる。
【００５０】
まず、チップイネーブル信号ＣＥＮとして“０”、かつライトイネーブル信号ＷＥＮとして“０”が入力されたとき、書き込み動作が開始される。アドレス信号ＡｍとしてＡ１（記憶領域Ｓ１を指定するアドレス）が入力され、入力データＩｎとしてＢ’が入力される。これにより、ＳＲＡＭ１１の記憶領域Ｓ１にデータＢ’が書き込まれる。
【００５１】
ＳＲＡＭ１１の記憶領域Ｓ１への書き込み動作と共に、記憶領域Ｓ１に対応するフラグレジスタＦ１に“１”が書き込まれる。
【００５２】
図７に示す期間（３）は、未書き込みのアドレスＡ３に対する読み出し動作を示している。ここでは、アドレスＡ３により指定されるＳＲＡＭ１１の記憶領域Ｓ３及びＲＯＭ１２の記憶領域Ｒ３を読み出し、記憶領域Ｒ３から読み出したデータを出力する。
【００５３】
まず、チップイネーブル信号ＣＥＮとして“０”、かつライトイネーブル信号ＷＥＮとして“１”が入力されたとき、読み出し動作が開始される。アドレス信号ＡｍとしてＡ３が入力される。これにより、アドレスＡ３が指定する記憶領域Ｓ３及びＲ３からデータが読み出され、データセレクタ１４にそれぞれ出力される。
【００５４】
このとき、記憶領域Ｓ３に対応するフラグレジスタＦ３のフラグは“０”となっている。これはＳＲＡＭ１１の記憶領域Ｓ３が未書き込みであること、すなわちリセット状態の後、記憶領域Ｓ３に書き込みが行われていないことを示している。このため、データセレクタ１４は、フラグセレクタ１３Ｂからレイテンシレジスタ１７を介して“０”を受け取ると、ＲＯＭ１２の記憶領域Ｒ３に初期値として設定されたデータＤを選択して、データＯｎとして出力する。
【００５５】
図７に示す期間（４）は、書き込みが実行済みのアドレスＡ１に対する読み出し動作を示している。ここでは、アドレスＡ１により指定されるＳＲＡＭ１１の記憶領域Ｓ１及びＲＯＭ１２の記憶領域Ｒ１を読み出し、記憶領域Ｓ１から読み出したデータを出力する。記憶領域Ｓ１は、期間（２）で説明したように、書き込みが実行された領域である。
【００５６】
まず、期間（３）と同様に、チップイネーブル信号ＣＥＮとして“０”、かつライトイネーブル信号ＷＥＮとして“１”が入力されたとき、読み出し動作が開始される。アドレス信号ＡｍとしてＡ１が入力される。これにより、アドレスＡ１が指定する記憶領域Ｓ１及びＲ１からデータが読み出され、データセレクタ１４にそれぞれ出力される。
【００５７】
このとき、フラグレジスタＦ１のフラグは“１”となっている。これはＳＲＡＭ１１の記憶領域Ｓ１が書き込み済みであること、すなわちリセット状態の後、記憶領域Ｓ１に書き込みが行われていることを示している。このため、データセレクタ１４は、フラグセレクタ１３Ｂからレイテンシレジスタ１７を介して“１”を受け取ると、ＳＲＡＭ１１の記憶領域Ｓ１に書き込まれたデータＢ’を選択して、データＯｎとして出力する。
【００５８】
［１−４］半導体集積回路の詳細な第２構成例と動作
次に、第１実施形態の半導体集積回路の詳細な他の構成例を説明する。
【００５９】
［１−４−１］第２構成例の回路
図８は、第１実施形態の半導体集積回路の第２構成例を示す図である。この第２構成例は、２組の入出力ポートで書き込み及び読み出しを別々に行う例である。この例では、書き込みと読み出しの制御信号が別々である。
【００６０】
半導体集積回路１０は、ＳＲＡＭ１１、ＲＯＭ１２、フラグ記憶部１３、データセレクタ１４、フラグ書き込み回路１８、フラグ読み出し回路１９、及びレイテンシレジスタ１７を備える。ＳＲＡＭ１１、ＲＯＭ１２、フラグ記憶部１３、データセレクタ１４、及びレイテンシレジスタ１７の構成は図１または図６に示した構成と同様である。
【００６１】
フラグ書き込み回路１８は、フラグレジスタＦ０〜Ｆ３に書き込みを行うタイミングを制御する。フラグ書き込み回路１８はＡＮＤ回路を有する。
【００６２】
フラグ読み出し回路１９は、フラグレジスタＦ０〜Ｆ３から読み出しを行うタイミングを制御する。フラグ読み出し回路１９は、レジスタ１６Ａ及びＡＮＤ回路Ａ４を有する。
【００６３】
次に、第２構成例の回路接続について説明する。
【００６４】
ライトイネーブル信号ＷＡＥＮは、ＳＲＡＭ１１及びフラグ書き込み回路１８に入力される。ライトアドレス信号ＷＡＡｍは、ＳＲＡＭ１１及びアドレスデコーダ１３Ａに入力される。さらに、ライトクロック信号ＷＡＣＬＫは、ＳＲＡＭ１１及びフラグ書き込み回路１８に入力される。
【００６５】
フラグ書き込み回路１８の出力は、フラグレジスタＦ０〜Ｆ３の制御端にそれぞれ入力される。フラグレジスタＦ０〜Ｆ３の入力端には、アドレスデコーダ１３Ａの出力がそれぞれ入力される。フラグレジスタＦ０〜Ｆ３のリセット端には、リセット信号ＷＲＳＴがそれぞれ入力される。フラグレジスタＦ０〜Ｆ３の出力は、フラグセレクタ１３Ｂの入力端にそれぞれ入力される。さらに、フラグセレクタ１３Ｂの出力は、レイテンシレジスタ１７の入力端に入力される。
【００６６】
リードイネーブル信号ＲＢＥＮは、ＳＲＡＭ１１、ＲＯＭ１２、及びレジスタ１６Ａの入力端に入力される。リードアドレス信号ＲＢＡｍは、ＳＲＡＭ１１、ＲＯＭ１２、及びフラグセレクタ１３Ｂに入力される。さらに、リードクロック信号ＲＢＣＬＫは、ＳＲＡＭ１１、ＲＯＭ１２、レジスタ１６Ａの制御端、及びＡＮＤ回路Ａ４の第１入力端に入力される。レジスタ１６Ａのリセット端にはリードリセット信号ＲＲＳＴが入力される。レジスタ１６Ａの出力は、ＡＮＤ回路Ａ４の第２入力端に入力される。
【００６７】
ＡＮＤ回路Ａ４の出力は、レイテンシレジスタ１７の制御端に入力される。レイテンシレジスタ１７のリセット端には、リードリセット信号ＲＲＳＴが入力される。さらに、レイテンシレジスタ１７の出力は、データセレクタ１４の制御端に入力される。
【００６８】
［１−４−２］第２構成例の動作
図９は、半導体集積回路１０の第２構成例の動作を示すタイミングチャートである。
【００６９】
図９に示す期間（１）は、ＳＲＡＭ１１、ＲＯＭ１２、及びフラグ記憶部１３のリセット状態を示している。ライトリセット信号ＷＲＳＴとして“０”、かつリードリセット信号ＲＲＳＴとして“０”が入力されたとき、このリセット状態となる。ライトリセット信号ＷＲＳＴとして“０”が入力されることにより、フラグレジスタＦ０〜Ｆ３は“０”にリセットされる。一方、ＳＲＡＭ１１はライトリセット信号ＷＲＳＴ及びリードリセット信号ＲＲＳＴの影響を受けないため、ＳＲＡＭ１１の記憶領域Ｓ０〜Ｓ３が記憶するデータは不定（図７においてＸと表示）である。ＲＯＭ１２の記憶領域Ｒ０〜Ｒ３は、ＳＲＡＭ１１に記憶されるべき初期化データ（初期値）を記憶している。
【００７０】
その後、リードリセット信号ＲＲＳＴとして“１”、かつライトリセット信号ＷＲＳＴとして“１”が入力されることにより、リセット状態が解除され、以降の書き込み動作及び読み出し動作へと移行する。
【００７１】
図９に示す期間（２）は、未書き込みのアドレスＡ０に対する読み出し動作を示している。ここでは、アドレスＡ０により指定されるＳＲＡＭ１１の記憶領域Ｓ０及びＲＯＭ１２の記憶領域Ｒ０を読み出し、記憶領域Ｒ０から読み出したデータを出力する。
【００７２】
まず、リードイネーブル信号ＲＢＥＮとして“０”が入力されたとき、読み出し動作が開始される。アドレス信号ＲＢＡｍとしてＡ０が入力される。これにより、アドレスＡ０が指定する記憶領域Ｓ０及びＲ０からデータが読み出され、データセレクタ１４にそれぞれ出力される。
【００７３】
このとき、記憶領域Ｓ０に対応するフラグレジスタＦ０のフラグは“０”となっている。これはＳＲＡＭ１１の記憶領域Ｓ０が未書き込みであること、すなわちリセット状態の後、記憶領域Ｓ０に書き込みが行われていないことを示している。このため、データセレクタ１４は、フラグセレクタ１３Ｂからレイテンシレジスタ１７を介して“０”を受け取ると、ＲＯＭ１２の記憶領域Ｒ０に初期値として設定されたデータＡを選択して、データＲＢＯｎとして出力する。
【００７４】
図９に示す期間（３）は、ＳＲＡＭ１１への書き込み動作を示している。ここでは、ＳＲＡＭ１１の記憶領域Ｓ０にデータＡ’を書き込む場合を述べる。
【００７５】
まず、ライトイネーブル信号ＷＡＥＮとして“０”が入力されたとき、書き込み動作が開始される。アドレス信号ＷＡＡｍとしてＡ０（記憶領域Ｓ０を指定するアドレス）が入力され、入力データＷＡＩｎとしてＡ’が入力される。これにより、ＳＲＡＭ１１の記憶領域Ｓ０にデータＡ’が書き込まれる。
【００７６】
ＳＲＡＭ１１の記憶領域Ｓ０への書き込み動作と共に、記憶領域Ｓ０に対応するフラグレジスタＦ０に“１”が書き込まれる。
【００７７】
図９に示す期間（４）は、書き込みが実行済みのアドレスＡ０に対する読み出し動作を示している。ここでは、アドレスＡ０により指定されるＳＲＡＭ１１の記憶領域Ｓ０及びＲＯＭ１２の記憶領域Ｒ０を読み出し、記憶領域Ｓ０から読み出したデータを出力する。記憶領域Ｓ０は、期間（３）で説明したように、書き込みが実行された領域である。
【００７８】
まず、期間（２）と同様に、リードイネーブル信号ＲＢＥＮとして“０”が入力されたとき、読み出し動作が開始される。アドレス信号ＲＢＡｍとしてＡ０が入力される。これにより、アドレスＡ０が指定する記憶領域Ｓ０及びＲ０からデータが読み出され、データセレクタ１４にそれぞれ出力される。
【００７９】
このとき、記憶領域Ｓ０に対応するフラグレジスタＦ０のフラグは“１”となっている。これはＳＲＡＭ１１の記憶領域Ｓ０が書き込み済みであること、すなわちリセット状態の後、記憶領域Ｓ０に書き込みが行われていることを示している。このため、データセレクタ１４は、フラグセレクタ１３Ｂからレイテンシレジスタ１７を介して“１”を受け取ると、ＳＲＡＭ１１の記憶領域Ｓ０に書き込まれたデータＡ’を選択して、データＲＢＯｎとして出力する。
【００８０】
［１−５］第１実施形態の効果
第１実施形態の半導体集積回路によれば、起動時あるいは初期化時にＳＲＡＭから初期化データを読み出す時間を短縮することができる。
【００８１】
以下に、第１実施形態の半導体記憶装置の効果ついて詳述する。
【００８２】
半導体集積回路、例えば、ＦＰＧＡあるいはＡＳＩＣでは、起動時あるいは初期化時にＦＰＧＡあるいはＡＳＩＣ内のＳＲＡＭに初期化データを設定する場合、ＳＲＡＭに対して書き込みを行うことで初期化データを設定している。しかし、この場合、ＳＲＡＭに初期化データを書き込むため、その書き込みに要する時間が必要となる。さらに、書き込み時間は、初期化データのデータ量が大きくなるほど長くなる。
【００８３】
そこで、第１実施形態では、例えば、ＲＯＭ１２の記録領域に記憶された初期化データのうち、更新を意図する更新データを含む記憶領域と対応するＳＲＡＭの記憶領域に対して、更新データの書き込みを行う。さらに、ＳＲＡＭの書き込みを行った記憶領域が識別できるように、ＳＲＡＭが有する記憶領域ごとに書き込みを行ったか否を記憶するフラグレジスタを備える。
【００８４】
これにより、ＳＲＡＭの第１記憶領域に書き込みが行われていない場合は、第１記憶領域に対応するＲＯＭ１２の記憶領域に予め記憶されていた初期値を出力する。一方、ＳＲＡＭの第２記憶領域に書き込みが行われている場合は、ＳＲＡＭの第２記憶領域に記憶された更新データを出力する。これにより、第１実施形態では、更新したい初期値を記憶したＲＯＭ１２の記憶領域に対応するＳＲＡＭ１１の記憶領域に対してだけ書き込みを行えばよく、全ての初期化データをＳＲＡＭに書き込む必要がない。したがって、起動時あるいは初期化時に、ＳＲＡＭ１１及びＲＯＭ１２を含む初期化データを記憶した回路から初期化データを読み出す時間を短くできる。この結果、ＳＲＡＭに全ての初期化データを書き込んだ後、ＳＲＡＭから初期化データを読み出す場合に比べて、初期化データの読み出しに要する時間を短縮することができる。
【００８５】
［２］第２実施形態
第２実施形態では、ＳＲＡＭ１１に記憶されるべき初期化データが“０”に限定される場合の例を説明する。
【００８６】
［２−１］半導体集積回路の構成及び動作
図１０は、第２実施形態の半導体集積回路の構成を示す図である。ＳＲＡＭ１１に記憶されるべき初期化データが“０”に限定される場合、すなわちＳＲＡＭ１１に記憶されるべき初期化データが全て“０”に設定されている場合、図１０に示すように、図１に示した第１実施形態の構成からＲＯＭ１２を削除し、すなわち、データセレクタ１４の一方側の入力端に接続されていたＲＯＭ１２を削除し、その入力端に固定値“０”を入力する。その他の構成は図１に示した第１実施形態と同様である。
【００８７】
第２実施形態の初期動作及び書き込み動作は第１実施形態と同様である。
【００８８】
読み出し動作では、アドレスＡＤＤＲにより指定されたＳＲＡＭ１１の記憶領域からデータを読み出し、読み出したデータをデータセレクタ１４の第１入力端に入力する。また、固定値“０”をデータセレクタ１４の第２入力端に入力する。これと共に、アドレスＡＤＤＲにより指定されたフラグレジスタに保持されたフラグを選択し、データセレクタ１４に入力する。
【００８９】
データセレクタ１４は、受け取ったフラグが“０”であれば、ＳＲＡＭ１１への書き込みは行われていないため、固定値“０”を選択して出力する。一方、受け取ったフラグが“１”であれば、ＳＲＡＭ１１への書き込みが行われてデータが更新されているため、データセレクタ１４はＳＲＡＭ１１から読み出したデータを選択して出力する。
【００９０】
［２−２］半導体集積回路の変形例の構成及び動作
ＳＲＡＭ１１に記憶されるべき初期化データが“０”に限定される場合、データセレクタ１４をＡＮＤ回路２１に置き換えることができる。
【００９１】
図１１は、第２実施形態の変形例の半導体集積回路の構成を示す図である。この変形例では、図示するように、図１に示した第１実施形態の構成からＲＯＭ１２を削除し、データセレクタ１４をＡＮＤ回路２１に置き換える。さらに、ＳＲＡＭ１１の出力はＡＮＤ回路２１の第１入力端に入力され、フラグ記憶部１３から出力されるフラグは、ＡＮＤ回路２１の第２入力端に入力される。
【００９２】
変形例の初期動作及び書き込み動作は第１実施形態と同様である。
【００９３】
読み出し動作では、ＡＮＤ回路２１の第２入力端に入力されるフラグが“０”の場合、すなわちＳＲＡＭ１１の記憶領域に書き込みがない場合、ＳＲＡＭ１１からの出力に係わらず、ＡＮＤ回路２１からフラグの“０”が出力される。
【００９４】
一方、ＡＮＤ回路２１の第２入力端に入力されるフラグが“１”の場合、すなわちＳＲＡＭ１１の記憶領域に書き込みがあった場合、ＡＮＤ回路２１の出力はＳＲＡＭ１１からの出力データとなる。
【００９５】
［２−４］第２実施形態の効果
第２実施形態及びその変形例の半導体集積回路によれば、起動時あるいは初期化時にＳＲＡＭから初期化データを読み出す時間を短縮することができる。
【００９６】
また、第２実施形態では、データセレクタ１４のＲＯＭ１２の出力データを受け取る入力端を固定値に設定できるため、ＲＯＭ１２を削減できる。これにより、半導体集積回路の構成を簡素化することができる。
【００９７】
また、変形例では、ＡＮＤ回路２１の入力端を“０”に固定する回路も必要としないため、第２実施形態よりさらに構成を簡素化することができる。
【００９８】
その他の効果は第１実施形態と同様である。
【００９９】
［３］その他変形例等
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１００】
１０…半導体集積回路、１１…ＳＲＡＭ、１２…ＲＯＭ、１３…フラグ記憶部、１３Ａ…アドレスデコーダ、１３Ｂ…フラグセレクタ、１４…データセレクタ、１５…フラグ書き込み回路、１６…フラグ読み出し回路、１６Ａ…レジスタ、１７…レイテンシレジスタ、２１…論理積回路（ＡＮＤ回路）、Ｓ０，Ｓ１，Ｓ２，Ｓ３…記憶領域、Ｒ０，Ｒ１，Ｒ２，Ｒ３…記憶領域、Ｆ０，Ｆ１，Ｆ２，Ｆ３…フラグレジスタ。
【図１】
2018160029.tif 000003
【図２】
2018160029.tif 000004
【図３】
2018160029.tif 000005
【図４】
2018160029.tif 000006
【図５】
2018160029.tif 000007
【図６】
2018160029.tif 000008
【図７】
2018160029.tif 000009
【図８】
2018160029.tif 000010
【図９】
2018160029.tif 000011
【図１０】
2018160029.tif 000012
【図１１】
2018160029.tif 000013