JP5446939B2 - ハードウェア記述言語で記載されたコンピュータプログラム - Google Patents

ハードウェア記述言語で記載されたコンピュータプログラム Download PDF

Info

Publication number
JP5446939B2
JP5446939B2 JP2010018264A JP2010018264A JP5446939B2 JP 5446939 B2 JP5446939 B2 JP 5446939B2 JP 2010018264 A JP2010018264 A JP 2010018264A JP 2010018264 A JP2010018264 A JP 2010018264A JP 5446939 B2 JP5446939 B2 JP 5446939B2
Authority
JP
Japan
Prior art keywords
memory
data
block
ram
circuit
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.)
Expired - Fee Related
Application number
JP2010018264A
Other languages
English (en)
Other versions
JP2011158983A (ja
Inventor
茂雄 谷
隆 梅垣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2010018264A priority Critical patent/JP5446939B2/ja
Publication of JP2011158983A publication Critical patent/JP2011158983A/ja
Application granted granted Critical
Publication of JP5446939B2 publication Critical patent/JP5446939B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、メモリの置き換えに関する。
近年、設計変更が容易なFPGA(Field Programmable Gate Array)を用いて製品開発を行い、FPGAで実現した機能を低価格で高速のASIC(Application Specific Integrated Circuit)へ置き換えて量産することがある。
この場合、スムーズに置き換えが行えるように、開発当初からASICへの置き換えを考慮した設計をしておくことが望ましい。
しかし、開発時に予定していたASIC以外に、新たに開発されたデバイスに置き換えること、又は、より低価格のデバイスに置き換えること等を行う場合がある。
この場合、置き換えるデバイスによっては、そのデバイス固有の特性を考慮した設計変更が発生し得る。この場合には、通常、製品の品質を保証するために新しいデバイスの特性に合わせた再設計及び検証が必要となる。
例えば、1つのRAM(Random Access Memory)を用いていた記憶装置のRAMを、複数のRAMに置き換える場合がある。
図17は、1つのRAMをRAM1〜RAM4の4つのRAMに置き換える例である。白抜き矢印の上部に、1つのRAMを用いた場合の設計例を示し、矢印の下部に、4つのRAMに置き換えた場合の設計例を示す。
この場合、入力されたアドレスを4つのRAM用に変換する必要がある。また、アドレス変換以外にも様々な対処が必要となる場合がある。すなわち、置き換え前のRAMと置き換え後のRAMとがそれぞれ備えている機能が異なる場合には、その機能の差分を補うような対処が必要となる。例えば、置き換え後のRAMのデータ出力タイミングが、置き換え前のRAMのデータ出力タイミングよりも1クロック速い等のレイテンシーが異なる場合等である。
従って、図17の下部に示すように、RAM1〜RAM4の前後に、例えば、アドレスを分離する機能ブロック、アドレスを合成する機能ブロック、レイテンシーの調整を行う機能ブロック及び初期化ブロック等を追加して、置き換え前のRAMが備える機能と置き換え後のRAMが備える機能との差分を補っている。
このように、使用するRAMを変更する度に新たに設計・検証を行うことは、デバイスに合った設計となるものの、開発期間が長期化し高品質の製品を早期にユーザに提供することが難しくなる。
ここで、プロセスの変更等に対して迅速に対処するための技術が提案されている。例えば、回路部品データのパラメータを設定できるようにしておき、機能ブロックの属性を満足させるようなパラメータデータを与えて、機能ブロックのレイアウトパターンを生成する技術である(特許文献1等参照)
特開2003−281210号公報
しかし、置き換え前のRAMが備える機能と置き換え後のRAMが備える機能との差分が、回路部品のパラメータ、例えば、パターンサイズ及び伝搬遅延等を変更したとしても補えない場合があり得る。すなわち、何らかの機能ブロックを追加しなければ差分を補えない場合である。
また、この差分を完全に補えない場合には、RAMの前段の回路又は後段の回路に変更を加える必要が生じ、RAMの検証だけでなく、機能ブロックの範囲での検証が必要となる場合が生じ得る(図18参照)。この場合は、検証の範囲が広がる分、検証に要する時間が長期化してしまう。
そこで、本発明では、置き換え前のメモリが備える機能と置き換え後のメモリが備える機能との差分を補う回路を、容易に生成することを目的とする。
本発明の1形態に係るコンピュータプログラムは、ードウェア記述言語による回路設計に用いられるコンピュータにおいて実行されるコンピュータプログラムであって、前記コンピュータを、記憶媒体として使用するメモリに対して要求される動作機能といずれかの使用が想定される構成の異なる複数のメモリのそれぞれがもつ動作機能との差を補う複数の機能部を備える回路をハードウェア記述言語で記述した、予め用意されている設計データを取得する手段と、前記複数のメモリのうちのいずれかである第1のメモリがもつ動作機能と、前記複数のメモリのうちの前記第1のメモリ以外のいずれかである第2のメモリがもつ動作機能との差を判定する手段と、前記第1のメモリと前記第2のメモリとについて判定された動作機能の差に基づいて、前記第1のメモリに代えて前記第2のメモリを使用する場合に前記複数の機能部のそれぞれが必要であるか不要であるかを判定する手段と、前記回路設計データにおける前記複数の機能部のうちの不要であると判定された機能部の記述を無効にする手段と、として動作させる
上記構成のコンピュータプログラムは、置き換え前のメモリが備える機能と置き換え後のメモリが備える機能との差分を補う回路を、容易に生成することができる。
記憶装置の機能的構成の例を示すブロック図である。 記憶装置の機能的構成の例を示すブロック図である。 カバーブロックのRTLソース生成するツールの生成処理を示すフローチャートである。 入力ブロックの機能的構成例を示すブロック図である。 出力ブロックの機能的構成例を示すブロック図である。 2ポートの記憶装置の出力ブロックの機能的構成を示すブロック図である。 4つのRAMを用いる場合の入力ブロックの例を示す図である。 4つのRAMを用いる場合の出力ブロックの例を示す図である。 1つのRAMを用いる場合の入力ブロックの例を示す図である。 1つのRAMを用いる場合の出力ブロックの例を示す図である。 4つのRAMを用いる場合の出力ブロックの例を示す図である(2ポート)。 ライトスルーモード用競合調停機能を実現する場合のバイパス用データパスの例を示す図である。 ライトスルーモード用競合調停処理のタイムチャートである。 ライトスルー機能を実現する場合のバイパス用データパスの例を示す図である。 リードイネーブルを実現する場合のバイパス用データパスを示す図である。 RAMを置き換えた場合の検証について示した図である。 1つのRAMを4つのRAMに置き換える例を示す図である。 RAMの置き換えによる影響範囲を示す図である。
<実施形態>
現在、LSI(Large Scale Integration)等のハードウェア設計は、ハードウェア記述言語(VHDL:VHSIC(Very High Speed Integrated Circuit) Hardware Description Language)を用いて回路機能を定義することで行われることが多い。
LSIの機能仕様設計及び検証を行った後、データバス及び制御バスを意識して記述した論理合成可能なRTL(Register Transfer Level)での設計及び検証を行う。その後、論理合成及びレイアウトを行ってLSIを作成する。
実施形態では、置き換え前のRAM等のメモリが備える機能と置き換え後のメモリが備える機能との差分を補う回路(以下、「差分回路」という。)を、RTLの設計段階において容易に生成する。以下、RTLで作成された設計データをRTLソースというものとする。
具体的には、差分を補うための様々な回路機能を記述したRTLソースのステップを、置き換え後のメモリが備える機能に応じて取捨選択して差分回路のRTLソースを生成する。その後、この差分回路のRTLソースの論理合成を行う。
従って、論理合成した設計データであるネットリストは、差分を補うために必要な回路のみを記述したものとなる。すなわち、差分を補うために必要な回路のみが製品化されることになる。
以下、記憶装置が用いているRAMを別のRAMに置き換える場合を例に、実施形態の差分回路を生成する方法について説明する。
<機能>
図1は、記憶装置100の機能的構成の例を示すブロック図である。記憶装置100は、RAMがシングルポートである場合の例である。
記憶装置100は、シングルポートのRAM2000及びカバーブロック1000(斜線部分)を有する。
カバーブロック1000は、置き換え前のRAMが備える機能と置き換え後のRAM2000が備える機能との差分(以下、単に「RAM機能の差分」という場合がある。)を補う回路である。より詳細には、置き換え前のRAMを用いて記憶装置100が周囲の回路に提供していた機能と同等の機能を、置き換え後のRAM2000を用いて実現するための回路である。
カバーブロック1000は、入力ブロック1100、出力ブロック1200、及び、バイパス用データパス1300を有する。
入力ブロック1100は、RAM2000の入力に関する機能の差分を補う回路であり、出力ブロック1200は、RAM2000の出力に関する機能の差分を補う回路である。
バイパス用データパス1300は、入力ブロック1100から出力ブロック1200へ処理に必要なデータを送るためのパスである。
図2は、記憶装置200の機能的構成の例を示すブロック図である。記憶装置200は、RAMが2ポートである場合の例である。
記憶装置200は、2ポートのRAM4000及びカバーブロック3000を有する。
カバーブロック3000は、入力ブロック3100、出力ブロック3200、及び、バイパス用データパス3300を有する。
入力ブロック3100、出力ブロック3200、及び、バイパス用データパス3300のそれぞれのブロックは、入力ブロック1100、出力ブロック1200、及び、バイパス用データパス1300をそれぞれポートの数分備えている構成となる。
従って、以下、カバーブロック1000を説明し、適時、カバーブロック3000に言及する。
記憶装置100は、RAM2000に書込むためのデータ(InputData)、読出し又は書込みを行うRAM2000のアドレス(InputAddress)、ライトイネーブル(InputWE)、イネーブル(InputCE)、及び、クロック(CLOCK)を入力し、RAM2000から読出したデータ(OutputData)を出力する。
ライトイネーブルがアクティブの場合は書込みを行い、アクティブでない場合は読出しを行う。また、イネーブルがアクティブの場合に、データを出力する。
実施形態では、置き換え後のRAM用のカバーブロック1000を生成するが、そのカバーブロック1000は、置き換え後のRAMが備える機能に応じてそれぞれ異なる回路構成となる。
実施形態では、RAM機能の差分を補うため機能として、次の6つの機能を用意する。
1つ目は、RAMの初期化を行う機能である。具体的には、RAMの使用開始時に、RAMに所定の値を設定する機能である。この機能は、入力ブロック1100及び出力ブロック1200に回路を形成することで実現する。
2つ目は、記憶装置100が用いるRAMの個数が変わった場合に、アドレスを変換する機能である。このメモリ分割機能は、入力ブロック1100及び出力ブロック1200に回路を形成することで実現する。
3つ目は、パーシャルライト用イネーブル生成機能である。RAMへのデータ書き込みをビット単位又はバイト単位で行えるようにするための回路である。この機能は、入力ブロック1100に回路を形成することで実現する。
4つ目は、レイテンシー調整機能である。データ出力のタイミングが異なる場合にタイミングを合わせる機能である。以下に説明するライトスルーモード用競合調停機能もレイテンシー調整機能の1つであるが、レイテンシー調整機能では、データ出力が遅れる場合等に対処する。
5つ目は、ライトスルーモード用競合調停機能である。ライトスルーモードとは、書込むデータが、同時に読出し用のポートにも出力されるモードである。この機能は、入力ブロック1100又は出力ブロック1200に回路を形成することで実現する。尚、2ポートを備える記憶装置200の場合には、書込みアドレスと読み出しアドレスとが一致した場合は、書き込まれたデータが読み出しポートにも出力される。
6つ目は、ECC(Error Correcting Code)機能である。ECCを用いてデータ誤りを訂正する機能である。ソフトエラー対策のためである。この機能は、入力ブロック1100及び出力ブロック1200に回路を形成することで実現する。
<カバーブロックのRTLソースの生成>
カバーブロック1000のRTLソース、すなわち、差分回路のRTLソースの生成処理を、図3を用いて説明する。
まず、上述した6つの機能の全てを実現するための回路を記述したRTLソースを作成する。このソースには、記述した6つの機能それぞれを取捨できるようにするステップが記載されている。
次に、差分回路のRTLソースを生成するツール(以下、「生成ツール」という。)を起動する。この生成ツールは、いわゆる、プリプロセッサであり、論理合成を行う前の前処理を行うツールである。この生成ツールは、置き換え前のRAMが備えている機能と置き換え後のRAMが備えている機能とを基に、上記6つの機能のそれぞれを取捨して、差分回路のRTLソースを生成する。
図3は、この差分回路のRTLソースを生成するツールの生成処理を示すフローチャートである。
生成ツールは、置き換え後のRAMが動作可能な動作モード、すなわち、RAMが備える機能と、置き換え前のRAMが動作していたモード、すなわち、実行していた機能とを取得する(ステップS100、ステップS110)。これらRAMが備える機能は、ユーザによって予めファイル等に記憶されているものとする。
次に、生成ツールは、上述した6つの機能が記述されたRTLソースを読み込み(ステップS120)、RAMを置き換えた場合に補う必要がある機能を実現する回路を記述したステップを残した差分回路RTLソースを生成する。
まず、初期化回路が必要かどうかを判断する(ステップS130)。置き換え前のRAMが初期化機能を動作させていた場合であって、置き換え後のRAMが初期化機能を有している場合に、初期化回路が不要であると判断する。
初期化回路が不要であると判断した生成ツールは、初期化回路の記述ステップを削除する(ステップS140)。
次に、RAMの個数が同じかどうかを判断する(ステップS150)。記憶装置100が用いていた置き換え前のRAMの個数と、置き換え後のRAMの個数が同じである場合に、メモリ分割機能を実現する回路が不要であると判断する。尚、実施形態では、説明の便宜上RAMの個数のみを比較して判断しているが、その他、RAMの記憶容量等を考慮して判断することとしてもよい。
メモリ分割機能を実現する回路が不要であると判断した生成ツールは、メモリ分割機能を実現する回路の記述ステップを削除する(ステップS160)。
次に、パーシャルライトモードを実現する回路が必要かどうかを判断する(ステップS170)。置き換え前のRAMがパーシャルライトモードを動作させていた場合であって、置き換え後のRAMがパーシャルライトモードで動作可能である場合に、パーシャルライトモードを実現する回路は不要であると判断する。
パーシャルライトモードを実現する回路が不要であると判断した生成ツールは、パーシャルライトモードを実現する回路の記述ステップを削除する(ステップS180)。
次に、読み出し遅延が同じかどうかを判断する(ステップS190)。記憶装置100が用いていた置き換え前のRAMの遅延クロック数と、置き換え後のRAMの遅延クロック数が同じである場合に、レイテンシー調整機能を実現する回路が不要であると判断する。
レイテンシー調整機能を実現する回路が不要であると判断した生成ツールは、レイテンシー調整機能を実現する回路の記述ステップを削除する(ステップS200)。
次に、ライトスルーモードを実現する回路が必要かどうかを判断する(ステップS210)。置き換え前のRAMがライトスルーモードを動作させていた場合であって、置き換え後のRAMがライトスルーモードで動作可能である場合に、ライトスルーモードを実現する回路は不要であると判断する。
ライトスルーモードを実現する回路が不要であると判断した生成ツールは、ライトスルーモードを実現する回路の記述ステップを削除する(ステップS220)。
次に、ECC機能を実現する回路が必要かどうかを判断する(ステップS230)。置き換え前のRAMがECC機能を動作させていた場合であって、置き換え後のRAMがECC機能を動作させることが可能である場合に、ECC機能を実現する回路は不要であると判断する。
ECC機能を実現する回路が不要であると判断した生成ツールは、ECC機能を実現する回路の記述ステップを削除する(ステップS240)。
このように生成ツールは、差分回路RTLソースを生成する。この後は、通常の手順に則って処理を行う。すなわち、論理合成及びレイアウトを行ってLSIを作成する。
以下、入力ブロック1100、及び、出力ブロック1200の詳細な構成を図を用いて説明する。ここでは、上述した6つの機能、すなわち、初期化機能、メモリ分割機能、パーシャルライト用イネーブル生成機能、レイテンシー調整機能、ライトスルーモード用競合調停機能、及び、ECC機能を実現する回路を全て含んだブロックについて説明する。
<入力ブロック>
図4は、入力ブロック1100の機能的構成例を示すブロック図である。
入力ブロック1100は、上述した6つの機能のうち、初期化機能、メモリ分割機能、パーシャルライト用イネーブル生成機能、レイテンシー調整機能、及び、ECC機能の5つの機能を実現する。
図4において、「データ」はRAM2000に書込むためのデータ(図1のInputData)を示し、「アドレス」は読出し又は書込みを行うRAM2000のアドレス(図1のInputAddress)を示し、「WE/RE」は、ライトイネーブル(図1のInputWE)を示す。このライトイネーブルがアクティブの場合は書込みを行い、アクティブでない場合は読出しを行う。以下、ライトイネーブルがアクティブの信号を「ライトイネーブル信号」、ライトイネーブルがアクティブでない信号を「リードイネーブル信号」というものとする。
また、入力ブロック1100からは、入力された「データ」、「アドレス」及び「WE/RE」が、それぞれ所定の処理がなされた後、バイパス信号1310、バイパス信号1320及びバイパス信号1330として出力される。これらの信号は、出力ブロック1200において使用される。
<1.初期化機能>
初期化機能は、初期化部1104で実現される。
具体的には、初期化部1104は、RAM2000に所定の値を書込む処理を行う。
例えば、RAM2000の全領域に、レジスタが記憶しているデフォルトデータを書込む。初期化部1104は、アドレスをインクリメントして生成し、生成したアドレスにデフォルトデータを書込んでいく。この際、初期化部1104は、アドレスをインクリメントするタイミングでライトイネーブル信号を生成する。
また、初期化部1104は、初期化の処理が完了するまで、初期化中であることを示す初期化信号をバイパス信号1330として出力する。出力ブロック1200に初期化中であることを通知するためである。
<2.メモリ分割機能>
メモリ分割機能は、デコーダ1106及びWE/RE生成部1107で実現される。
デコーダ1106及びWE/RE生成部1107は、複数のRAMのうちのどのRAMのいずれのアドレスに書き込むかを示すメモリ分割用アドレスを生成する。
デコーダ1106が、入力された「アドレス」から、いずれのRAMに書き込むかを決定する。例えば、置き換え前のRAMが1個で、置き換え後のRAMが4個である場合は、アドレスの上位2ビットを、RAMを指定するビットとして使用し、いずれのRAMに書き込むかを決定する。また、入力された「アドレス」と各RAMのサイズとから、書き込むRAMを決定する等であってもよい。
WE/RE生成部1107は、RAMに対してライトイネーブル信号又はリードイネーブル信号を送信する。WE/RE生成部1107は、デコーダ1106の決定に従って、決定されたRAMに対して、ライトイネーブル信号又はリードイネーブル信号を生成して送信する。
<3.パーシャルライト用イネーブル生成機能>
パーシャルライト用イネーブル生成機能は、WE/RE生成部1107で実現される。
例えば、通常は32ビット又は64ビット単位でRAMの読み書きを行っている場合に、部分的な8ビット又は1ビット等を読み書きするためのライトイネーブル信号及びリードイネーブル信号を、WE/RE生成部1107が生成する。
すなわち、パーシャルライトに未対応のRAMの場合、RAMをByte/Bit単位で扱えるように、WE/RE生成部1107を作成する。
<4.レイテンシー調整機能>
レイテンシー調整機能は、初段のFF1101、FF1102、及び、FF1103、並びに、最終段のFF1108、FF1109、及び、FF1110で実現される。
レイテンシー調整に必要な個所に必要な個数のFFを配置してレイテンシーを調整する。
<5.ECC機能>
ECC機能は、ECCエンコーダ1105によって実現される。
ECCエンコーダ1105は、入力された「データ」を基に、誤り訂正符号を付加したデータを生成する。初期化部1104が出力するデフォルトデータに対してもECC処理を行ってもよい。
<出力ブロック>
図5は、出力ブロック1200の機能的構成例を示すブロック図である。
出力ブロック1200は、上述した6つの機能のうち、初期化機能、メモリ分割機能、レイテンシー調整機能、ライトスルーモード用競合調停機能、及び、ECC機能の5つの機能を実現する。
出力ブロック1200には、バイパス信号1310、バイパス信号1320及びバイパス信号1330としてデータ、アドレス及びイネーブル信号がそれぞれ入力ブロック1100から入力される。また、初期化時には、バイパス信号1330として初期化信号が入力される。
また、バイパス信号1330として受信される信号がリードイネーブル信号のときのみFF1201及びFF1206をイネーブルとすることも可能とする。また、必要に応じて、出力ブロック1200の全機能のEnable、Disableも可能とする。
<1.初期化機能>
初期化機能は、マスク処理部1208で実現される。
具体的には、マスク処理部1208は、バイパス信号1330として初期化信号を受信している間、出力ブロック1200内の全ての回路、又は、全てのFF回路をマスクすることにより、記憶装置100の出力データを使用する後段の回路に対しての不定出力を回避する。また、各機能をマスクすることで初期化時の擬似エラーも回避する。
<2.メモリ分割機能>
メモリ分割機能は、SEL1202で実現される。
SEL1202は、いずれのRAMから出力されたデータを出力データとするかを選択する。
SEL1202は、バイパス信号1320としてリードイネーブル信号を受信した場合、バイパス信号1320として受信したアドレスから、複数のRAMのうちのどのRAMからのデータを選択するかを決定する。この決定は、入力ブロック1100のデコーダ1106と同様の決定方法で決定する。
例えば、置き換え前のRAMが1個で、置き換え後のRAMが4個である場合は、アドレスの上位2ビットを、RAMを指定するビットとして使用し、いずれのRAMから読み出すかを決定する。また、バイパス信号1320として受信されたアドレスと各RAMのサイズとから、読み出すRAMを決定する等であってもよい。
<3.レイテンシー調整機能>
レイテンシー調整機能は、初段のFF1201、及び、最終段のFF1206で実現される。
レイテンシー調整に必要な個所に必要な個数のFFを配置してレイテンシーを調整する。
<4.ライトスルーモード用競合調停機能>
ライトスルーモード用競合調停機能は、SEL1205、及び、FF1207で実現される。
ライトスルーモードのときは、バイパス信号1330としてライトイネーブル信号が受信された場合には、バイパス信号1310として受信されるデータを出力データとして選択する。また、バイパス信号1330としてリードイネーブル信号が受信された場合には、RAMから読み出されたデータ、すなわち、図5ではECC訂正1204されたデータを出力データとして選択する。
ここで、2ポートの記憶装置200におけるライトスルーモード用競合調停機能について説明する。
図6は、2ポートの記憶装置200の出力ブロック3200の機能的構成を示すブロック図である。図5のシングルポートの出力ブロック1200との違いは、アドレス一致検出部3201及びFF3202を備える点と、RAMが2ポートRAM4000であり、Bポートからリードアドレスを入力する点が異なる。
アドレス一致検出部3201は、バイパス信号1320として受信するアドレスと、Bポートから受信するリードアドレスとを比較する。
SEL1205は、バイパス信号1330としてライトイネーブル信号が受信された場合に、アドレスが同じであるとアドレス一致検出部3201が判断した場合には、バイパス信号1310として受信されるデータを出力データとして選択する。
書込みを行っているアドレスに対しては読み書きを行うことができないRAMに、対処することが可能となる。また、ライトスルーモードを実現することが可能となる。
<5.ECC機能>
ECC機能は、ECCチェック1203及びECC訂正1204によって実現される。
ECCチェック1203は、入力ブロック1100のECCエンコーダ1105によって誤り訂正符号が付加されたデータの誤りチェックを行う。ECC訂正1204は、ECCチェック1203で誤りがあると判断された信号を訂正する。
<カバーブロック例>
図7及び図8に、入力ブロック1100及び出力ブロック1200の例を示す。
図7及び図8で示す入力ブロック1100A及び出力ブロック1200Aは、メモリ分割機能、レイテンシー調整機能、ライトスルーモード用競合調停機能を実現する。
また、図9及び図10に、入力ブロック1100及び出力ブロック1200の例を示す。
図9及び図10で示す入力ブロック1100B及び出力ブロック1200Bは、初期化機能、レイテンシー調整機能、及び、ECC機能を実現する。
また、図11に、2ポートRAM用の出力ブロック3200の例を示す。
図11で示す出力ブロック3200Aは、初期化機能、メモリ分割機能、レイテンシー調整機能、及び、ライトスルーモード用競合調停機能を実現する。
図7〜図11で示すように、実施形態では、差分回路として必要最小限の回路を備えるカバーブロックを作成することが可能となる。
<バイパスデータパス>
バイパス用データパス1300の使用例を説明する。
図12は、2ポートの記憶装置200におけるライトスルーモード用競合調停機能(<4.ライトスルーモード用競合調停機能>の項参照)を実現する場合の、バイパス用データパス3300等を示す図である。
また、図13に、ライトスルーモード用競合調停処理時のタイムチャートを示す。図13の左側に通常時、すなわち競合が起こらない場合のタイムチャートを示し、右側に競合時のタイムチャートを示す。
2ポートRAM4000は、1ポートが読み書き用のポートであり、他の1つは読み込み専用のポートである。図12において、2ポートRAM4000を示す矩形の左側が読み書き用のAポートを示し、右側が読み込み専用のBポートを示す。
ここでは、読み書き用のAポートからのライトアドレスと、読み込み専用のBポートからのリードアドレスが一致した場合、すなわち、競合した場合の回避を説明する。
入力ブロック3100において、Aポート側から入力された各信号(i_ia[*:0]〜i_i[*:0])をシフトさせ、2ポートRAM4000のAポートへの入力信号(o_ram_ia[*:0]〜o_ram_i[*:0])とする。
入力ブロック3100は、バイパス信号1310としてライトデータ信号(i_i[*:0])を出力する。また、バイパス信号1320としてライトアドレス(i_ia[*:0])を出力し、バイパス信号1330としてライトイネーブル信号(i_we)を出力する。
一方、出力ブロック3200において、Bポート側から入力されたリードアドレス信号(i_rb[*:0])及びリードイネーブル信号(i_ihrb)をシフトさせ、2ポートRAM4000のBポートへの入力信号(o_ram_rb[*:0]、o_ram_ihrb)とする。
出力ブロック3200は、Bポート側から入力されたリードアドレス信号(i_rb[*:0])及びリードイネーブル信号(i_ihrb)をアドレス一致検出部3201に入力する。
アドレス一致検出部3201は、バイパス信号1330として入力されたライトイネーブル信号(i_we)のタイミング(図13の矢印10参照)で、バイパス信号1320として入力されたライトアドレス(i_ia[*:0])と、Bポート側から入力されたリードアドレス信号(i_rb[*:0])とを比較する。
図13の左側のタイムチャートで示される場合は、ライトアドレス(i_ia[*:0])とリードアドレス信号(i_rb[*:0])とは一致しないので、アドレス一致検出部3201の比較結果の信号「s_cmp_bypass」が”L”のままである。
SEL1205は、「i_ram_b[*:0]」を選択し、Bポートからの出力「o_b[*:0]」として出力する。
すなわち、Aポート側からの書込み及びBポート側からの読出しは、通常どおりに処理される。
一方、図13の右側のタイムチャートで示されるように、バイパス信号1330として入力されたライトイネーブル信号(i_we)のタイミング(図13の矢印11参照)で、アドレス一致検出部3201が、バイパス信号1320としてバイパスされたライトアドレス(i_ia[*:0])と、Bポート側から入力されたリードアドレス信号(i_rb[*:0])とを比較する。
ライトアドレス(i_ia[*:0])とリードアドレス信号(i_rb[*:0])とが一致した場合は、アドレス一致検出部3201は、比較結果の信号「s_cmp_bypass」を”H”(図13の矢印12参照)とし、Bポートのリードイネーブル信号「sr_ihrb_m[0]」にマスクをかける(図13の矢印15参照)。すなわち、読み出しの処理を行わせない(図13の矢印16参照)。
SEL1205は、比較結果の信号「s_cmp_bypass」が”H”となったタイミングで「sr_i_4ff[*:0]」を選択し、Bポートからの出力「o_b[*:0]」として出力する。詳細には、アドレス一致検出部3201は、SEL1205が「sr_i_4ff[*:0]」を選択して出力するタイミング(図13の矢印14参照)を通常のタイミングと合わせるために、比較結果の信号「s_cmp_bypass」を必要な分シフトさせ、例えば4FF後の「s_cmp_bypass[3]」として出力する。
すなわち、Aポート側からの書込みは通常通りに処理されるが、Bポート側からの読出しは、Aポートから書き込まれたデータが出力される。
図14は、シングルポートの記憶装置100におけるライトスルー機能を実現する場合の、バイパス用データパス1300を示す図である。
すなわち、書き込み動作時に、書き込んだデータ「data[0:0]」が、即時にリード動作に反映し、「q[0:0]」として出力される機能の構成図を示す。
RAMによっては、このようなライトスルー機能を備えておらず、オプション設定によっては実現できない場合があるからである。
書込み操作時に、RAMにデータを書込むと同時に、バイパスを通して同じデータを出力側に送信することで、ライトスルー機能を実現する。
ライトイネーブル信号「wren」及びクロックイネーブル信号「clken」に応じて出力ブロックのセレクタが切り替わり、ライトスルーモードと同等な動作を行う。
図15は、シングルポートの記憶装置100におけるリードイネーブルを実現する場合の、バイパス用データパス1300を示す図である。
リードイネーブル機能とは、書込み動作時に、リードイネーブルを非アクティブにして書込み動作を行うと、RAMの出力は最後に読み出したデータを保持している機能である。
バイパス用データパス1300に、タイミング調整用のディレイバッファを備える。また、出力ブロック1200に、読出したデータを保持する付加回路を設ける。
読込み処理時、すなわち、リードイネーブル「rden」がアクティブの時に、読み出したデータを出力し、且つ、保持することで、リードイネーブルを実現する。尚、「rdclocken」は、上位ブロックで”H”固定(非アクティブ)で使用される。
<検証>
図16は、RAMを置き換えた場合の検証について示した図である。
例えば、記憶装置100のRAM2000を、他のRAM9000に置き換えたとする。
RAMを置き換える前の記憶装置100は、RAM2000及びRAM2000用のカバーブロック1000で構成されている。また、RAMを置き換えた後の記憶装置100は、RAM9000及びRAM9000用のカバーブロック9001で構成されている。
この場合、RAM9000を備えたカバーブロック9001の動作が、RAM2000を備えたカバーブロック1000の動作と同じであることを検証することで、RAMの置き換えの検証が完了する。具体的には、置き換え前のRAM2000を備えたカバーブロック1000の検証をするために作成(GENERATOR)したテストデータを、そのまま置き換え後のRAM9000を備えたカバーブロック9001の検証に用いることができる。検証結果の確認(DETECTOR)も、同様に行うことができる。
カバーブロック9001は、置き換え前のRAM2000が備える機能と置き換え後のRAM9000が備える機能との差分を補う機能を有する回路である。
従って、RAM2000とカバーブロック1000とが周囲の回路に提供していた機能と同等の機能を、RAM9000とカバーブロック9001とが提供するからである。
このように、RAMを置き換えたとしても、検証範囲が少なく検証方法も容易となるため検証が短時間で済み、製品の市場への投入を短期間で行うことができるようになる。
カバーブロックを有することで、デバイス変更に対して柔軟に対応することが可能になり、コストダウン設計の効率化/品質の保持を容易に行うことができるようになる。
<補足>
以上、本発明の実施形態について説明したが、本発明は上記形態に限らず、以下のようにしてもよい。
(1)実施形態では、カバーブロック(差分回路)のRTLソースを、RAM機能の差分として考え得る全ての差分を記述したRTLソースから、必要なステップを取捨選択して作成しているが、他の方法であってもよい。必要最小限度のステップのみで構成されたカバーブロックのRTLソースが生成できればよい。
例えば、RTLソースの記述言語に、論理合成を行うか行わないかを指定する命令がある場合は、その命令を使用することとしてもよい
(2)実施形態では、置き換え前のRAMが備えている機能と置き換え後のRAMが備えている機能との差分を補うための機能として、6つの機能を用意することとしているが、これらの機能に限られない。また、これらの機能の一部の機能を用意してもよい。
100 200 記憶装置
1000 3000 9001 カバーブロック(回路)
2000 2000A 2000B 4000 RAM(メモリ)
1100 3100 入力ブロック
1104 初期化部
1105 エンコーダ
1106 デコーダ
1107 WE/RE生成部
1200 3200 出力ブロック
1202 1205 SEL
1203 ECCチェック
1204 ECC訂正
1208 マスク処理部
1300 3300 バイパス用データパス(バイパスブロック)
1310 バイパス信号(データ)
1320 バイパス信号(アドレス)
1330 バイパス信号(イネーブル)
2000 4000 RAM
3201 アドレス一致検出部

Claims (9)

  1. ードウェア記述言語による回路設計に用いられるコンピュータにおいて実行されるコンピュータプログラムであって、
    前記コンピュータを、
    記憶媒体として使用するメモリに対して要求される動作機能といずれかの使用が想定される構成の異なる複数のメモリのそれぞれがもつ動作機能との差を補う複数の機能部を備える回路をハードウェア記述言語で記述した、予め用意されている設計データを取得する手段と、
    前記複数のメモリのうちのいずれかである第1のメモリがもつ動作機能と、前記複数のメモリのうちの前記第1のメモリ以外のいずれかである第2のメモリがもつ動作機能との差を判定する手段と、
    前記第1のメモリと前記第2のメモリとについて判定された動作機能の差に基づいて、前記第1のメモリに代えて前記第2のメモリを使用する場合に前記複数の機能部のそれぞれが必要であるか不要であるかを判定する手段と、
    前記回路設計データにおける前記複数の機能部のうちの不要であると判定された機能部の記述を無効にする手段と、として動作させる
    ことを特徴とするコンピュータプログラム。
  2. 前記設計データはレジスタ転送レベルのデータである
    請求項1記載のコンピュータプログラム。
  3. 前記複数の機能部の一つは、前記使用するメモリに対する書込みまたは読出しのレイテンシー調整する部分である
    請求項1に記載のコンピュータプログラム。
  4. 前記複数の機能部の一つは、前記回路に入力されるアドレスを前記使用するメモリに応じたアドレスに変換する部分である
    請求項1に記載のコンピュータプログラム。
  5. 前記複数の機能部の一つは、前記使用するメモリへのデータの書込みをビット単位で行えるようにするためのパーシャルライト機能部である
    請求項1に記載のコンピュータプログラム。
  6. 前記回路は、当該回路に入力されるデータを元に前記使用するメモリへ入力するデータを生成する入力ブロックと、前記使用するメモリから出力されるデータを元に当該回路から出力するデータを生成する出力ブロックと、当該入力ブロックから当該出力ブロックに前記使用するメモリを迂回してデータを送信するバイパスブロックとを有する
    請求項1に記載のコンピュータプログラム。
  7. 前記複数の機能部の一つ、前記入力ブロックはに含まれ、前記使用するメモリを初期化する部分である
    請求項に記載のコンピュータプログラム。
  8. 前記複数の機能部の一つは、前記入力ブロックにおいて前記使用するメモリを初期化するとともに、初期化をする間は初期化処理中である旨の信号を前記バイパスブロックを介して前記出力ブロックに送信し、かつ前記出力ブロックにおいて前記バイパスブロックを介して前記入力ブロックから前記信号を受信している間は、前記回路からはいずれのデータも出力しないようにする部分である
    請求項に記載のコンピュータプログラム。
  9. 前記複数の機能部の一つ、前記入力ブロックにおいて、前記回路入力されたデータに誤り訂正符号を付加して前記使用するメモリへ入力するデータを生成かつ前記出力ブロックにおいて、前記使用するメモリから出力されたデータの誤りを検出し、誤りがある場合は当該誤りを訂正したデータを生成する部分である
    請求項に記載のコンピュータプログラム。
JP2010018264A 2010-01-29 2010-01-29 ハードウェア記述言語で記載されたコンピュータプログラム Expired - Fee Related JP5446939B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010018264A JP5446939B2 (ja) 2010-01-29 2010-01-29 ハードウェア記述言語で記載されたコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010018264A JP5446939B2 (ja) 2010-01-29 2010-01-29 ハードウェア記述言語で記載されたコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2011158983A JP2011158983A (ja) 2011-08-18
JP5446939B2 true JP5446939B2 (ja) 2014-03-19

Family

ID=44590905

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010018264A Expired - Fee Related JP5446939B2 (ja) 2010-01-29 2010-01-29 ハードウェア記述言語で記載されたコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5446939B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6674275B2 (ja) * 2016-02-22 2020-04-01 キヤノン株式会社 情報処理装置及びその制御方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3048202B2 (ja) * 1992-09-30 2000-06-05 凸版印刷株式会社 Lsiの設計方法
JPH08123838A (ja) * 1994-10-21 1996-05-17 Hitachi Ltd Asicメモリおよびそれを用いたマイクロコンピュータ、ならびにメモリ設計方法
JPH08249360A (ja) * 1995-03-10 1996-09-27 Ricoh Co Ltd 半導体記憶装置及びその設計装置
US6966044B2 (en) * 2002-12-09 2005-11-15 Lsi Logic Corporation Method for composing memory on programmable platform devices to meet varied memory requirements with a fixed set of resources
JP5258668B2 (ja) * 2009-05-01 2013-08-07 ルネサスエレクトロニクス株式会社 メモリ構築支援装置、メモリ構築支援プログラム、及び記録媒体

Also Published As

Publication number Publication date
JP2011158983A (ja) 2011-08-18

Similar Documents

Publication Publication Date Title
JP3853736B2 (ja) ユーザによる構成可能なオンチップメモリシステム
JP2006344223A (ja) プログラマブル・デバイスの構成エラー検出の偽陽性の低減
US8248869B1 (en) Configurable memory map interface and method of implementing a configurable memory map interface
KR20190134481A (ko) 집적회로용 상호연결 네트워크
US7583706B2 (en) Method and apparatus for increasing packet throughput in crossbar
US10394989B2 (en) Method for creating an FPGA netlist
JP2009508201A (ja) 相互接続、及び相互接続の設計方法
JP2007048280A (ja) バスモニタリングのための集積回路装置及びその方法
US9342640B1 (en) Method and apparatus for protecting, optimizing, and reporting synchronizers
JP5446939B2 (ja) ハードウェア記述言語で記載されたコンピュータプログラム
US9478272B1 (en) Configurable storage blocks with embedded first-in first-out and last-in first-out circuitry
US11631454B2 (en) Methods and apparatus for reduced area control register circuit
WO2012061004A1 (en) Method and apparatus for performing memory interface calibration
JP2021149659A (ja) 半導体集積回路、メモリコントローラ、およびメモリシステム
US10318687B2 (en) Implementing a constant in FPGA code
KR20210139448A (ko) 집적 회로 디바이스의 기능 블록들을 구성하고 부분적으로 재구성하는 회로 및 방법
US8930597B1 (en) Method and apparatus for supporting low-latency external memory interfaces for integrated circuits
US20160188759A1 (en) Information processing apparatus, state machine dividing method, and computer-readable recording medium
US7203799B1 (en) Invalidation of instruction cache line during reset handling
JP4531715B2 (ja) システムlsiの設計方法及びこれを記憶した記録媒体
JP2008204341A (ja) インタフェース合成装置
JP2007287218A (ja) メモリインターフェース回路及びメモリ試験装置
JP6493044B2 (ja) マルチプロセッサシステム
US20230195661A1 (en) Method for data communication between subregions of an fpga
JP5835498B2 (ja) Lsi及びlsi製造方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130704

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130716

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131203

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131216

R150 Certificate of patent or registration of utility model

Ref document number: 5446939

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees