JP4606341B2 - メモリ構築装置 - Google Patents

メモリ構築装置 Download PDF

Info

Publication number
JP4606341B2
JP4606341B2 JP2006026256A JP2006026256A JP4606341B2 JP 4606341 B2 JP4606341 B2 JP 4606341B2 JP 2006026256 A JP2006026256 A JP 2006026256A JP 2006026256 A JP2006026256 A JP 2006026256A JP 4606341 B2 JP4606341 B2 JP 4606341B2
Authority
JP
Japan
Prior art keywords
memory
logical
logical memory
word
bit
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
JP2006026256A
Other languages
English (en)
Other versions
JP2007207042A (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 JP2006026256A priority Critical patent/JP4606341B2/ja
Priority to US11/698,856 priority patent/US7805688B2/en
Publication of JP2007207042A publication Critical patent/JP2007207042A/ja
Application granted granted Critical
Publication of JP4606341B2 publication Critical patent/JP4606341B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/327Logic synthesis; Behaviour synthesis, e.g. mapping logic, HDL to netlist, high-level language to RTL or netlist

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Description

本発明はメモリ構築装置に関し、特に集積回路設計で論理メモリの構築を行うメモリ構築装置に関する。
ASIC(Application Specific Integrated Circuit)は、特定用途の制御などを目的として設計されたカスタムIC(Integrated Circuit:集積回路)の総称であり、汎用チップとは異なり、機器メーカーの希望する仕様に合わせて設計された新たな専用チップである。
機器メーカーが製品を開発するに当たっては、すでに発売されている汎用ICを使って設計するのが一般的だが、特定の機能に特化させたICが欲しい場合などは、いわゆる注文品(カスタム:custom)のASICを採用することになる。
ASICは特定の機能に特化したICであるため、汎用ICを使って回路を構成するよりも、消費電力の少ない製品を作ることができ、また、実装面積の小型化や動作速度の向上が期待できる。
メモリ機能を有するASICを開発する際は、通常、ライブラリとしてあらかじめ用意されている数種の物理RAM(Random Access Memory)及びFF(flip flop)といったメモリマクロを使用して(マクロとは、特定機能を持つ1つの回路ブロックのこと)、論理上必要とするメモリ空間(論理メモリ空間)に応じた回路を、HDL(Hardware Description Language:集積回路を設計するための論理記述言語)によって記述し、生成する。
従来のASIC開発の技術として、メモリコンパイラを用いてメモリを生成する際に、入力したメモリ仕様から具体的なメモリを生成する技術が提案されている(例えば、特許文献1)。
特開平9−171527号公報(段落番号〔0006〕〜〔0010〕,第1図)
従来ASIC開発技術のメモリコンパイラにおいても作成できるメモリの上限があるため、論理として必要なメモリが上限を超えた場合、メモリコンパイラで作成した幾つかの物理RAMを組み合わせて論理メモリの回路を作成し、回路デバッグ(論理シミュレーション)を行う必要があり、TAT(Turn Around Time:一連の処理にかかる所要時間)の長期化を招くといった問題があった。
また、設計当初は物理RAMがいくつ必要なのかは予想がつきにくいため、FPGA(フィールドプログラマブルゲートアレイ)やPLD(プログラマブルロジックデバイス)、及びStructured ASIC等、物理RAMやFFの使用個数制限が定められているデバイスにおいては、デバイス選定が難しく、仮に物理RAM個数を予想してデバイスを選定したとしても、物理RAMの組み合わせ次第では、物理RAMの個数を予想より多く使用することもあり、結果的に使用個数制限を超越してしまい、組み合わせ変更(回路変更)を余儀なくされ、最悪の場合はデバイスの変更にまで至るという事態が発生する場合があった。
本発明はこのような点に鑑みてなされたものであり、所望の論理メモリ空間を自動構築して集積回路設計の効率化を図ったメモリ構築装置を提供することを目的とする。
上記課題を解決するために、集積回路設計で論理メモリの構築を行うメモリ構築装置が提供される。このメモリ構築装置は、ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記レジスタを使用しない構成、論理メモリビットの補完に前記レジスタを使用する構成、論理メモリワードの補完に前記レジスタを使用する構成、および前記論理メモリビットと前記論理メモリワードとの補完に前記レジスタを使用する構成のそれぞれの構成につき、前記論理メモリ候補のうち前記物理メモリの総数が1以上であるものの中から、前記物理メモリの総数が少ないほど高優先度とし、前記物理メモリの総数が同じ場合にはワード方向物理メモリ数が少ないほど高優先度とし、前記物理メモリの総数および前記ワード方向物理メモリ数が同じ場合にはレジスタ総数が少ないほど高優先度とする優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす論理メモリを抽出する構成抽出処理部と、抽出された前記論理メモリを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、を有する。
本発明のメモリ構築装置は、ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす論理メモリを構成するように、物理メモリ及びレジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択し、物理メモリ及びレジスタの使用個数制限を満たすように、最優先候補の中から、論理条件を満たす論理メモリを抽出して回路記述を行う構成とした。これにより、所望の論理メモリ空間を自動構築することができるので、集積回路設計の効率化を図ることが可能になる。
以下、本発明の実施の形態を図面を参照して説明する。図1はメモリ構築装置の原理図である。メモリ構築装置10は、EDA(Electronic Design Automation)による電子機器、半導体などの設計作業を自動化して支援するためのソフトウェアが組み込まれたハードウェアであり、集積回路の設計時に論理メモリの自動構築を行う装置である。
なお、以降の説明では、物理メモリを物理RAMと呼び、レジスタをFFと呼ぶ。物理RAMやFFは、ライブラリにすでに登録されているメモリマクロである。また、論理メモリとは、本発明のメモリ自動構築機能によって物理RAMやFFを用いて生成されるメモリのことを指すものとする。
論理メモリ構成処理部11は、ライブラリとしてあらかじめ用意されている数種の物理RAM及びFFを読み込み、メモリ空間を定めた論理条件を満たす論理メモリを構成するように、物理RAM及びFFの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択する。
最適構成抽出処理部12は、物理RAM及びFFの使用個数制限を満たすように、最優先候補の中から、論理条件を満たす最適論理メモリを抽出する。回路記述化処理部13は、抽出された最適論理メモリを構成する物理RAM及びFFを用いて回路記述を行い、回路記述ファイルを生成する。テーブル格納部14は、論理メモリを構築する際に必要な各種テーブル情報を格納する。
図2はテーブル格納部14の構成を示す図である。論理条件一覧テーブルT1、物理RAM一覧テーブルT2、物理RAM・FF使用個数制限テーブルT3、論理メモリ構成組み合わせ一覧テーブルT4−1、T4−2、T5−1、T5−2、T6−1、T6−2、論理メモリ構成一覧テーブルT7a、論理メモリ候補一覧テーブルT7b、T7b−1、最適論理メモリ構成組み合わせ一覧テーブル(回路記述用論理メモリ構成組み合わせ一覧テーブル)T8を格納する。
なお、上記のテーブルのうち、論理メモリ構成組み合わせ一覧テーブルT4−1、T5−1、T6−1は、論理条件毎に存在し、論理メモリ候補の回路構成情報が書き込まれるテーブルであり、論理メモリ構成組み合わせ一覧テーブルT4−2、T5−2、T6−2は、優先条件によって論理メモリ構成組み合わせ一覧テーブルT4−1、T5−1、T6−1の回路構成情報が並び替えられたテーブルである。
論理メモリ構成一覧テーブルT7aは、メモリ空間の空きを補完するFFの補完状態であるビット補完無・ワード補完無の状態に対応した論理メモリ候補の回路構成情報が書き込まれるテーブルである。
論理メモリ候補一覧テーブルT7bは、メモリ空間の空きを補完するFFの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した論理メモリ候補の回路構成情報が書き込まれるテーブルである。
論理メモリ候補一覧テーブルT7b−1は、優先条件によって論理メモリ候補一覧テーブルT7bの回路構成情報が並び替えられたテーブルである。最適論理メモリ構成組み合わせ一覧テーブルT8は、物理RAMとFFとの組み合わせから構成された場合の最適論理メモリの回路構成情報が書き込まれるテーブルである。各テーブルの詳細については後述する。
次に論理条件一覧テーブルT1、物理RAM一覧テーブルT2、物理RAM・FF使用個数制限テーブルT3について説明する。図3は論理条件一覧テーブルT1を示す図である。論理条件一覧テーブルT1は、条件番号、ビット数、ワード数の項目から構成されている。論理条件として例えば、条件番号1では、ビット数は42ビット、ワード数は1025ワードとなっている。メモリ構築装置10は、このテーブルに記載されている論理条件1〜3のメモリ空間を満たすような論理メモリを構築していくものである。
図4は物理RAM一覧テーブルT2を示す図である。物理RAM一覧テーブルT2は、物理RAM、ビット数、ワード数の項目から構成されている。例えば、物理RAMとしてマクロ1では、ビット数は40ビット、ワード数は512ワードとなっている。このテーブルは、ライブラリ登録されている各種の物理RAM情報を示すものである。
図5は物理RAM・FF使用個数制限テーブルT3を示す図である。物理RAM・FF使用個数制限テーブルT3は、物理RAM使用個数制限値、FF使用個数制限値(個別)、FF使用個数制限値(合計)の項目から構成されている。図では、物理RAM使用個数制限値=15個、FF使用個数制限値(個別)=3000個、FF使用個数制限値(合計)=10000個となっている。なお、論理条件毎に使用できる制限値を“個別”とし、すべての論理条件を含めて使用できる制限値を“合計”としている。
次に論理メモリ構成処理部11の動作について、図6に示す動作フローのステップの流れに沿って図7〜図13を用いて説明する。図6は論理メモリ構成処理部11の動作を示すフローチャートである。
〔S1〕論理条件一覧テーブルT1から、論理条件1〜3それぞれの論理メモリのビット数とワード数を読み出す。また、物理RAM一覧テーブルT2から、マクロ1〜4それぞれの物理RAMのビット数とワード数を読み出す。
〔S2〕論理条件一覧テーブルT1から読み込んだ論理メモリビット数とワード数を満たすように、マクロ1〜4の物理RAMと、ビット数またはワード数を補完するFFとで、目的の論理メモリ候補を生成する。この場合、ビット方向物理RAM数、ワード方向物理RAM数、ビット補完FFのメモリ容量、ワード補完FFのメモリ容量を求めて論理メモリを構成する。
図7〜図10は論理メモリ候補の構成状態を示す図である。図中、横方向をビット数、縦方向をワード数とする。論理メモリ構成処理部11では、論理条件を満たすように、最初に、登録済みの物理RAMで論理条件が定めるメモリ空間を埋めていくが、この物理RAMだけでは論理条件のメモリ空間を適切に満たすことができない場合には、空いたメモリ空間(物理RAMだけで埋められなかった隙間の空間)を補完するために、メモリ空間のビットまたはワードを補完するためのFFを自動的に算出し、物理RAMとFFの両方を使用して論理条件が満たされるような論理メモリ候補を生成する。
ビット方向の算出処理としては、論理メモリビットと物理RAMビットとを比較し、論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、論理メモリビットの方が大きい場合は、論理メモリビットを物理RAMビットで割って、ビット方向分割数とFFのビットサイズとを算出する。
ワード方向の算出処理としては、論理メモリワードと物理RAMワードとを比較し、論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、論理メモリワードの方が大きい場合は、論理メモリワードを物理RAMワードで割って、ワード方向分割数とFFのワードサイズとを算出する。以下の図7〜図10に具体例を示す。
図7は論理条件1のメモリ空間を物理RAM一覧テーブルT2のマクロ1の物理RAMを基準にして構成した論理メモリ候補である(図中、FFのみで構成したメモリ(パターンa5)も示している)。
論理条件1は42ビット×1025ワードである。この論理条件1を満たすように、マクロ1(40ビット×512ワード)を使用し、さらにはFFを追加して論理メモリを構成した場合、パターンa1〜a4の4パターンが存在する。
パターンa1において、マクロ1は40ビット×512ワードであり、ワード方向に2個配置する。ワード方向に配置すると、ワード数は1024(=512×2)ワードとなる。この状態では、条件の42ビットに対し、2ビット足りなく、条件の1025ワードに対しては、1ワード足りない状態である。
このため、論理メモリ構成処理部11は、ビット補完として、2ビット×1024ワードのビット補完FFを算出し、ワード補完には、42ビット×1ワードのワード補完FFを算出する。そして、ビット補完FFは、マクロ1の隣に配置して、ビット数を合計42ビットとし、ワード補完は、マクロ1の下部に配置して、ワード数を合計1025とする。
したがって、マクロ1(40ビット×512ワード)を2個、ビット補完FF(2ビット×1024ワード)を1個、ワード補完FF(42ビット×1ワード)を1個使用して、図のように配置することにより、論理条件1の42ビット×1025ワードの論理メモリを構築することができる。他もこのような処理によって論理メモリ候補を構築していく。
なお、パターンa1の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、有)であり、ビット方向物理RAM数=1、ワード方向物理RAM数=2、ビット補完FF数のメモリ容量=2ビット×1024ワード、ワード補完FFのメモリ容量=42ビット×1ワードとなる。
同様にして、パターンa2の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、有)であり、ビット方向物理RAM数=2、ワード方向物理RAM数=2、ワード補完FFのメモリ容量=42ビット×1ワードとなる。パターンa3の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、無)であり、ビット方向物理RAM数=1、ワード方向物理RAM数=3、ビット補完FFのメモリ容量=2ビット×1536ワードとなる。パターンa4の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、無)であり、ビット方向物理RAM数=2、ワード方向物理RAM数=3となる。パターンa5は、ワード補完FF(42ビット×1025ワード)のみで構成したものである。
図8は論理条件1のメモリ空間を物理RAM一覧テーブルT2のマクロ2の物理RAMを基準にして構成した論理メモリ候補である。42ビット×1025ワードの論理条件1を満たすように、マクロ2(20ビット×1024ワード)を使用し、さらにはFFを追加して論理メモリを構成した場合、パターンb1〜b4の4パターンが存在する。
パターンb1の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、有)であり、ビット方向物理RAM数=2、ワード方向物理RAM数=1、ビット補完FF数のメモリ容量=2ビット×1024ワード、ワード補完FFのメモリ容量=42ビット×1ワードとなる。
パターンb2の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、有)であり、ビット方向物理RAM数=3、ワード方向物理RAM数=1、ワード補完FFのメモリ容量=42ビット×1ワードとなる。パターンb3の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、無)であり、ビット方向物理RAM数=2、ワード方向物理RAM数=2、ビット補完FFのメモリ容量=2ビット×2048ワードとなる。パターンb4の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、無)であり、ビット方向物理RAM数=3、ワード方向物理RAM数=2となる。
図9は論理条件1のメモリ空間を物理RAM一覧テーブルT2のマクロ3の物理RAMを基準にして構成した論理メモリ候補である。42ビット×1025ワードの論理条件1を満たすように、マクロ3(10ビット×2048ワード)を使用し、さらにはFFを追加して論理メモリを構成した場合、パターンc3、c4の2パターンが存在する(マクロ3は2048ワードで、条件の1025ワードを超えているので、ワード補完が有のパターンは作成する必要はない)。
パターンc3の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、無)であり、ビット方向物理RAM数=4、ワード方向物理RAM数=1、ビット補完FFのメモリ容量=2ビット×2048ワードとなる。パターンc4の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、無)であり、ビット方向物理RAM数=5、ワード方向物理RAM数=1となる。
図10は論理条件1のメモリ空間を物理RAM一覧テーブルT2のマクロ4の物理RAMを基準にして構成した論理メモリ候補である。42ビット×1025ワードの論理条件1を満たすように、マクロ4(5ビット×4096ワード)を使用し、さらにはFFを追加して論理メモリを構成した場合、パターンd3、d4の2パターンが存在する(マクロ4は4096ワードで、条件の1025ワードを超えているので、ワード補完が有のパターンは作成する必要はない)。
パターンd3の論理メモリでは、(ビット補完FF、ワード補完FF)=(有、無)であり、ビット方向物理RAM数=8、ワード方向物理RAM数=1、ビット補完FFのメモリ容量=2ビット×4096ワードとなる。パターンd4の論理メモリでは、(ビット補完FF、ワード補完FF)=(無、無)であり、ビット方向物理RAM数=9、ワード方向物理RAM数=1となる。
このように、論理メモリ構成処理部11は、論理条件一覧テーブルT1に設定された条件を、物理RAM一覧テーブルT2に登録されている物理RAMのメモリマクロを使用し、またメモリマクロだけでは条件を満たすビットまたはワードが足らない場合には、ビットまたはワードを補完するFFを算出して、この補完FFも使用することで、論理条件を満たす論理メモリの候補を生成する。なお、図7〜図10では、論理条件1に対しての論理メモリ候補を示したが、論理条件2、3も上記と同様にして生成されるものである(図示は省略する)。次に図6のステップS3から動作の続きを説明する。
〔S3〕各論理条件に対応する論理メモリ候補を生成すると、論理メモリ候補に関する回路構成情報を、論理メモリ構成組み合わせ一覧テーブルT4−1、T5−1、T6−1に記載し、かつ優先条件にもとづく並び替えを行う。
図11は論理メモリ構成組み合わせ一覧テーブルT4−1、T4−2を示す図である。論理メモリ構成組み合わせ一覧テーブルT4−1は、論理条件1を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルT4−2は、後述の優先条件にもとづき項目を並び替えたものである。
論理メモリ構成組み合わせ一覧テーブルT4−1は、項番、ビット補完、ワード補完、物理RAM、ビット数、ワード数、ビット方向物理RAM数、ワード方向物理RAM数、物理RAM総数、ビット補完FF数、ワード補完FF数、FF総数の各項目から構成される。
42ビット×1025ワードの論理条件1の論理メモリの候補の1つとして、例えば項番13では、(ビット補完FF、ワード補完FF)=(有、有)であり、ビット数=40、ワード数=512のマクロ1を用いると、ビット方向物理RAM数=1、ワード方向物理RAM数=2で、物理RAM総数=2であり、ビット補完FF数=2ビット×1024ワード、ワード補完FF数=42ビット×1ワードでFF総数=2090となる。
なお、(ビット補完FF、ワード補完FF)=(無、有)、(有、有)の場合で、論理条件1のワード数1025よりも大きなワード数の物理RAMとなる項番7、8、15、16は、ワード補完の必要がないため、物理RAM数とFF数は0にしている。
論理メモリ構成組み合わせ一覧テーブルT4−2は、(ビット補完FF、ワード補完FF)の組毎に、優先条件にもとづき、テーブルT4−1の記載内容を並べ替えたものである。
優先条件の並び替えとして具体的には、物理RAM総数が少ない順に上位の欄から並べ、物理RAMが同数のものは、ワード方向物理RAM数が少ない順に上位の欄から並べる。また、ワード方向物理RAM数が同数のものは、FF総数が少ない順に上位の欄から並べる。これにより、上位の欄に位置する候補ほど、選択される論理メモリとして最優先候補になる。
すなわち、構築すべき論理メモリの優先度は、物理RAM総数ができるだけ少ないものが最も高く(物理RAM使用量削減のため)、次にワード方向物理RAM数が少ないこと(ワード方向アドレスデコード数削減のため)、FF総数が少ないこと(FF使用量削減のため)の順になる(なお、(ビット補完FF、ワード補完FF)の組に対しても、(無、無)をテーブルの最上位、(有、有)をテーブルの最下位に配置して、FF使用量の少ない組がテーブル上位にくるようにしている)。
同様にして、図12、図13に論理条件2、3にそれぞれ対応する論理メモリ構成組み合わせ一覧テーブルT5−1、T5−2、T6−1、T6−2を示す。図12の論理メモリ構成組み合わせ一覧テーブルT5−1は、論理条件2を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルT5−2は、(ビット補完FF、ワード補完FF)の組毎に、上記と同じ優先条件にもとづき、テーブルT5−1の記載内容を並べ替えたものである。
なお、(ビット補完FF、ワード補完FF)=(無、有)、(有、無)、(有、有)の場合で、論理条件2のワード数2100よりも大きなワード数の物理RAMとなる項番8、12、16は、ワード補完の必要がないため、物理RAM数とFF数は0にしている。
また、図13の論理メモリ構成組み合わせ一覧テーブルT6−1は、論理条件3を満たすように、論理メモリ候補を算出、生成したときの論理メモリ候補に関する回路構成情報をテーブル化したものであり、論理メモリ構成組み合わせ一覧テーブルT6−2は、(ビット補完FF、ワード補完FF)の組毎に、上記と同じ優先条件にもとづき、テーブルT6−1の記載内容を並べ替えたものである。
なお、(ビット補完FF、ワード補完FF)=(有、無)、(有、有)の場合で、論理条件3のビット数36よりも大きなビット数の物理RAMとなる項番9、13は、ビット補完の必要がないため、物理RAM数とFF数は0にしている。次に図6のステップS4から動作の続きを説明する。
〔S4〕論理条件1〜3毎の論理メモリ構成組み合わせ一覧テーブルT4−2、T5−2、T6−2の中から論理メモリの最優先候補を選択し、論理メモリ構成一覧テーブルT7aまたは論理メモリ候補一覧テーブルT7bへ書き込む((無、無)のデータを論理メモリ構成一覧テーブルT7aに書き込み、(無、有)、(有、無)、(有、有)のデータを論理メモリ候補一覧テーブルT7bに書き込む)。
図14は論理メモリ構成一覧テーブルを示す図である。図14の論理メモリ構成一覧テーブルT7aは、論理条件1〜3の(ビット補完FF、ワード補完FF)=(無、無)に関する論理メモリの最優先候補の情報が記されるテーブルである。
論理条件1に関する論理メモリ構成組み合わせ一覧テーブルT4−2の(ビット補完FF、ワード補完FF)=(無、無)の中の最優先候補を選択し(テーブルT4−2の項番3に該当)、論理メモリ構成一覧テーブルT7aへ書き込む。
同様にして、論理条件2に関する論理メモリ構成組み合わせ一覧テーブルT5−2の(ビット補完FF、ワード補完FF)=(無、無)の中の最優先候補を選択し(テーブルT5−2の項番2に該当)、論理メモリ構成一覧テーブルT7aへ書き込み、論理条件3に関する論理メモリ構成組み合わせ一覧テーブルT6−2の(ビット補完FF、ワード補完FF)=(無、無)の中の最優先候補を選択し(テーブルT6−2の項番1に該当)、論理メモリ構成一覧テーブルT7aへ書き込む。
図15は論理メモリ候補一覧テーブルT7bを示す図である。図15の論理メモリ候補一覧テーブルT7bは、論理条件1〜3の(ビット補完FF、ワード補完FF)=(無、有)、(有、無)、(有、有)に関する論理メモリの最優先候補の情報が記されるテーブルである。
論理メモリ構成処理部11は、論理条件1に関する論理メモリ構成組み合わせ一覧テーブルT4−2の(ビット補完FF、ワード補完FF)=(無、有)の中の最優先候補を選択し(テーブルT4−2の項番6に該当)、論理メモリ候補一覧テーブルT7bの項番1へ書き込む。
また、論理条件1に関する論理メモリ構成組み合わせ一覧テーブルT4−2の(ビット補完FF、ワード補完FF)=(有、無)の中の最優先候補を選択し(テーブルT4−2の項番9に該当)、論理メモリ候補一覧テーブルT7bの項番2へ書き込み、論理条件1に関する論理メモリ構成組み合わせ一覧テーブルT4−2の(ビット補完FF、ワード補完FF)=(有、有)の中の最優先候補を選択し(テーブルT4−2の項番14に該当)、論理メモリ候補一覧テーブルT7bの項番3へ書き込む。更に、FFのみで構成した論理メモリを、論理メモリ候補一覧テーブルT7bの項番4に書き込む。
同様に、論理メモリ候補一覧テーブルT7bの項番5〜8には、論理条件2に関する論理メモリ構成組み合わせ一覧テーブルT5−2の(ビット補完FF、ワード補完FF)=(無、有)、(有、無)、(有、有)の最優先候補(テーブルT5−2の項番7、9、15に該当)、及びFFのみで構成された論理メモリが書き込まれ、論理メモリ候補一覧テーブルT7bの項番9〜12には、論理条件3に関する論理メモリ構成組み合わせ一覧テーブルT6−2の(ビット補完FF、ワード補完FF)=(無、有)、(有、無)、(有、有)の最優先候補(テーブルT6−2の項番7、10、14に該当)、及びFFのみで構成された論理メモリが書き込まれる。
図16は論理メモリ候補一覧テーブルT7b−1を示す図である。図16の論理メモリ候補一覧テーブルT7b−1は、優先条件にもとづき、テーブルT7bの記載内容を並べ替えたものである。
優先条件の並び替えとして具体的には、FF総数が少ない順に上位の欄から並べ、FF総数が同数のものは、物理RAM数が多い順に上位の欄から並べる。すなわち、構築すべき論理メモリの優先度は、FF総数ができるだけ少ないこと(FF使用量の削減のため)、物理RAM数が多いこと(大きな論理RAMに優先的に割り当てるため)の順になる。
次に最適構成抽出処理部12の動作について説明する。図17は最適構成抽出処理部12の動作を示すフローチャートである。
〔S11〕論理メモリ構成一覧テーブルT7aに記載された物理RAM総数の合計数(物理RAM合計数)と、物理RAM・FF使用個数制限テーブルT3に記載された物理RAM使用個数制限値とを比較する。
物理RAM合計数≦物理RAM使用個数制限値の場合は回路記述化処理部13の処理へいき、物理RAM合計数>物理RAM使用個数制限値の場合はステップS12へいく。
ここで、論理メモリ構成一覧テーブルT7aから物理RAM合計数は、物理RAM総数の合計値が5+9+9=23であり、物理RAM・FF使用個数制限テーブルT3から物理RAM使用個数制限値=15なので、使用個数を超えており、他の論理メモリ候補を探すためのステップS12へいく。
〔S12〕論理メモリ候補一覧テーブルT7b−1に候補となる論理メモリ構成があるか否かを判断する。候補がないときはステップS18へいき、候補がある場合はステップS13へいく。
〔S13〕論理メモリ候補一覧テーブルT7b−1の先頭データ(テーブル上位に記載されている回路構成情報)を読み込み、読み込んだデータを論理メモリ候補一覧テーブルT7b−1から削除する。すなわち、図16の論理メモリ候補一覧テーブルT7b−1の項番1を先頭データとして読み出した後で一覧から削除する。
〔S14〕物理RAM・FF使用個数制限テーブルT3のFF使用個数制限値(個別)と、ステップS13で読み込んだ先頭データのFF総数とを比較する。FF使用個数制限値(個別)<FF総数の場合は、ステップS18へいき、FF使用個数制限値(個別)≧FF総数の場合は、ステップS15へいく。
ここでは、物理RAM・FF使用個数制限テーブルT3からFF使用個数制限値(個別)=3000で、ステップS13で読み込んだ先頭データのFF総数=42なので、ステップS15へいく。
〔S15〕論理メモリ構成一覧テーブルT7aから、ステップS13で読み出した先頭データの論理条件番号が一致する回路構成情報を読み出す。ここでは、図14の論理メモリ構成一覧テーブルT7aの論理条件1の回路構成情報を読み出す。
〔S16〕物理RAM・FF使用個数制限テーブルT3のFF使用個数制限値(合計)と、ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報をステップS13で読んだ先頭データに置き換えた場合のテーブルT7a中のFF合計数とを比較する。
FF使用個数制限値(合計)<FF合計の場合はステップS18へいき、FF使用個数制限値(合計)≧FF合計の場合はステップS17へいく。
ここで、物理RAM・FF使用個数制限テーブルT3からFF使用個数制限値(合計)=10000で、置き換え後のFF合計=42+0+0=42なので、ステップS17へいく(なお、42+0+0とは、42(置き換え後の論理条件1のFF総数)+0(テーブルT7aの論理条件2のFF総数)+0(テーブルT7aの論理条件3のFF総数)ということである)。
〔S17〕ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報をステップS13で読んだ先頭データに置き換える。ここでは、図14の論理メモリ構成一覧テーブルT7aの論理条件1の回路構成情報が、図16の論理メモリ候補一覧テーブルT7b−1の先頭データに置き換わることになる。したがって、このときの物理RAM総数の合計値を見ると3+9+9=21となり、置き換え前の合計値から物理RAMが2個削減されることになる。
〔S18〕アラーム通知を行う。
同様に、ステップS11〜S17の2回目処理では、図14の論理メモリ構成一覧テーブルT7aの論理条件3が、図16の論理メモリ候補一覧テーブルT7b−1の項番9に置き換えられ、3回目処理で図14の論理条件1が図16の項番3に置き換えられ、4回目処理で図14の論理条件2が図15の項番5に置き換えられ、4回目の処理後に、物理RAM総数の合計値と物理RAM使用個数制限値とが等しくなり、論理メモリ構成一覧テーブルT7aは最終的に最適論理メモリ構成組み合わせ一覧テーブルに置き換えられる。
図18は最適論理メモリ構成組み合わせ一覧テーブルT8を示す図である。最適論理メモリ構成組み合わせ一覧テーブルT8は、論理条件1〜3を満たす最適な(FF使用量が少なく、大きな物理RAMが用いられている)論理メモリ構成を示すものである。
なお、図17の動作フローにおける1回目〜5回目までの流れを以下に簡単に示す。また、図19〜図21は論理メモリ構成一覧テーブルT7aの回路構成情報が順次置き換えられていく様子を示す図である。
(1回目)
・ステップS11の処理において、
論理メモリ構成一覧テーブルT7aの物理RAM総数
5+9+9=23・・・・・・・・・・・・・・・・・・・・・・(1−1)
物理RAM使用個数制限テーブルT3の物理RAM使用個数制限値
15・・・・・・・・・・・・・・・・・・・・・・・・・・・・(1−2)
(1−1)>(1−2)のため、ステップS12へ分岐し、論理メモリ候補は存在するのでステップS13へいく。ステップS13で論理メモリ候補一覧テーブルT7b−1の先頭データを読み込み、それをテーブルから削除する。
・ステップS14の処理において、
ステップS13で読み込んだ先頭データのFF総数
42・・・・・・・・・・・・・・・・・・・・・・・・・・・・(1−3)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(個別)
3000・・・・・・・・・・・・・・・・・・・・・・・・・・(1−4)
(1−3)<(1−4)のため、ステップS15へ分岐し、論理メモリ構成一覧テーブルT7aの論理条件番号1の回路構成情報を読み出す。
・ステップS16の処理において、
ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換えた場合のテーブルT7a中のFF使用個数合計
42+0+0=42・・・・・・・・・・・・・・・・・・・・・(1−5)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(合計)
10000・・・・・・・・・・・・・・・・・・・・・・・・・(1−6)
(1−5)<(1−6)のため、ステップS17へ分岐し、ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換え、ステップS11へ戻る。
(2回目)
・ステップS11の処理において、
論理メモリ構成一覧テーブルT7aの物理RAM総数
3+9+9=21・・・・・・・・・・・・・・・・・・・・・・(2−1)
物理RAM使用個数制限テーブルT3の物理RAM使用個数制限値
15・・・・・・・・・・・・・・・・・・・・・・・・・・・・(2−2)
(2−1)>(2−2)のため、ステップS12へ分岐し、論理メモリ候補は存在するのでステップS13へいく。ステップS13で論理メモリ候補一覧テーブルT7b−1の先頭データ(項番9のデータとなる)を読み込み、それをテーブルから削除する。
・ステップS14の処理において、
ステップS13で読み込んだ先頭データのFF総数
144・・・・・・・・・・・・・・・・・・・・・・・・・・・(2−3)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(個別)
3000・・・・・・・・・・・・・・・・・・・・・・・・・・(2−4)
(2−3)<(2−4)のため、ステップS15へ分岐し、論理メモリ構成一覧テーブルT7aの論理条件番号3の回路構成情報を読み出す。
・ステップS16の処理において、
ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換えた場合のテーブルT7a中のFF使用個数合計
42+0+144=186・・・・・・・・・・・・・・・・・・(2−5)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(合計)
10000・・・・・・・・・・・・・・・・・・・・・・・・・(2−6)
(2−5)<(2−6)のため、ステップS17へ分岐し、ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換え、ステップS11へ戻る。
(3回目)
・ステップS11の処理において、
論理メモリ構成一覧テーブルT7aの物理RAM総数
3+9+8=20・・・・・・・・・・・・・・・・・・・・・・(3−1)
物理RAM使用個数制限テーブルT3の物理RAM使用個数制限値
15・・・・・・・・・・・・・・・・・・・・・・・・・・・・(3−2)
(3−1)>(3−2)のため、ステップS12へ分岐し、論理メモリ候補は存在するのでステップS13へいく。ステップS13で論理メモリ候補一覧テーブルT7b−1の先頭データ(項番3のデータとなる)を読み込み、それをテーブルから削除する。
・ステップS14の処理において、
ステップS13で読み込んだ先頭データのFF総数
2090・・・・・・・・・・・・・・・・・・・・・・・・・・(3−3)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(個別)
3000・・・・・・・・・・・・・・・・・・・・・・・・・・(3−4)
(3−3)<(3−4)のため、ステップS15へ分岐し、論理メモリ構成一覧テーブルT7aの論理条件番号1の回路構成情報を読み出す。
・ステップS16の処理において、
ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換えた場合のテーブルT7a中のFF使用個数合計
2090+0+144=2234・・・・・・・・・・・・・・・(3−5)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(合計)
10000・・・・・・・・・・・・・・・・・・・・・・・・・(3−6)
(3−5)<(3−6)のため、ステップS17へ分岐し、ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換え、ステップS11へ戻る。
(4回目)
・ステップS11の処理において、
論理メモリ構成一覧テーブルT7aの物理RAM総数
2+9+8=19・・・・・・・・・・・・・・・・・・・・・・(4−1)
物理RAM使用個数制限テーブルT3の物理RAM使用個数制限値
15・・・・・・・・・・・・・・・・・・・・・・・・・・・・(4−2)
(4−1)>(4−2)のため、ステップS12へ分岐し、論理メモリ候補は存在するのでステップS13へいく。ステップS13で論理メモリ候補一覧テーブルT7b−1の先頭データ(項番5のデータとなる)を読み込み、それをテーブルから削除する。
・ステップS14の処理において、
ステップS13で読み込んだ先頭データのFF総数
2600・・・・・・・・・・・・・・・・・・・・・・・・・・(4−3)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(個別)
3000・・・・・・・・・・・・・・・・・・・・・・・・・・(4−4)
(4−3)<(4−4)のため、ステップS15へ分岐し、論理メモリ構成一覧テーブルT7aの論理条件番号2の回路構成情報を読み出す。
・ステップS16の処理において、
ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換えた場合のテーブルT7a中のFF使用個数合計
2090+2600+144=4834・・・・・・・・・・・・(4−5)
物理RAM使用個数制限テーブルT3のFF使用個数制限値(合計)
10000・・・・・・・・・・・・・・・・・・・・・・・・・(4−6)
(4−5)<(4−6)のため、ステップS17へ分岐し、ステップS15で読んだ論理メモリ構成一覧テーブルT7aの回路構成情報を、ステップS13で読んだ先頭データに置き換え、ステップS11へ戻る。
(5回目)
・ステップS11の処理において、
論理メモリ構成一覧テーブルT7aの物理RAM総数
2+5+8=15・・・・・・・・・・・・・・・・・・・・・・(5−1)
物理RAM使用個数制限テーブルT3の物理RAM使用個数制限値
15・・・・・・・・・・・・・・・・・・・・・・・・・・・・(5−2)
(5−1)=(5−2)のため、最適構成抽出処理部12での処理は終了し、論理メモリ構成一覧テーブルT7aは最終的に最適論理メモリ構成組み合わせ一覧テーブルT8となる。
次に回路記述化処理部13の動作について説明する。図22は回路記述化処理部13の動作を示すフローチャートである。
〔S21〕論理メモリを構築するために必要なパラメータを抽出する。
〔S22〕あらかじめデータとして用意されている変数化された回路記述D1を呼び出し、抽出したパラメータを各変数に代入して回路記述化を行う。
〔S23〕論理メモリ空間を実現する回路記述ファイルとして出力し処理を完了する。
図23は変数化された回路記述D1により生成される回路構成の一例を示す図である。FFMW1は、n(bit)*1(word)を持つFFで構成された1word FF RAM回路MW1を有し、m個のMW1とアドレスデコード回路(ADW1)及びMW1 FF RAMセレクト回路(MSW1)を組み合わせてn(bit)*m(word)のFFで構成されたワード補完するFF RAM回路である。
RFM1は、FFMB1(ビット補完するFF RAM回路)と物理RAM(RM1)で構成されたメモリ回路である。FFMB1は、i(bit)*1(word)を持つFFで構成された1word FF RAM回路MB1を有し、j個のMB1とアドレスデコード回路(ADB1)及びMB1 FF RAMセレクト回路(MSB1)を組み合わせてi(bit)*j(word)のFFで構成されたビット補完するFF RAM回路である。
RM1は、ライブラリより定められたサイズの物理RAMなので余分なデータビットが存在する場合がある。よってRFM1は、Data clip変数回路を有している。
MMMは、FFMW1とk個のRFM1及びアドレスデコード回路(AD2)、RAMセレクト回路(MS2)を組み合わせ、n(bit)*{m+j*k}(word)のメモリ空間を構成した論理メモリ回路である。MMMには、ライブラリより定められたサイズの物理RAM(RM1)により余分なアドレス空間がある場合があるので、Address clip変数回路を有している。
ここで、論理メモリ空間を実現する回路記述ファイルを作成する場合は、最適論理メモリ構成組み合わせ一覧テーブルT8から順次呼び出す論理メモリの回路構成情報を、パラメータ値として抽出して確定し、変数化された回路記述D1へ代入することで作成する。
図24はパラメータの一例を示す図であり、図25は各パラメータの具体的な値を示す図である。また、図26はパラメータの設定箇所を示す図である。なお、図25では最適論理メモリ構成組み合わせ一覧テーブルT8の項番3の情報にもとづく各パラメータに該当する値を示している。以下の(a)〜(o)にパラメータ名とその内容及び具体的な設定数値を示す。
(a)g_RealAddress:論理メモリ空間アドレス長を設定する。
項番3は論理条件1であり、論理条件1は42ビット×1025ワードなので、アドレス長1025を設定する。
(b)g_RealAddressBitParam:g_RealAddressを2の乗数で表した値を設定する。
210<1025<211のため、11を設定する。
(c)g_RealDataBitParam:論理メモリ空間データビット長を設定する。
論理条件1は42ビット×1025ワードなので、データビット長42を設定する。
(d)g_FF_WordParam:ワード補完FF RAMのワード数を設定する。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のワード補完FF数のワード数1を設定する。
(e)g_RAM_AddressBitParam:物理RAMワード数を2の乗数で表した値を設定する。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のワード数1024=210のため、10を設定する。
(f)g_FF_AddressBitParam:g_FF_WordParamを2の乗数で表した値を設定する。
1wordの場合は、1を設定する。図18の最適論理メモリ構成組み合わせ一覧テーブルT8ではワード数1のため、1を設定する。
(g)g_Gen_RAM_LV3:ワード補完物理RAM数。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のワード方向物理RAM数1を設定する。
(h)g_Gen_FFRAM_LV3:ワード補完FF RAMが存在する場合、1を設定する。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8にてワード補完FFが存在するため、1を設定する。
(i)g_AddressSel:g_Gen_RAM_LV3+g_Gen_FFRAM_LV3を2の乗数で表した値を設定する。
1+1=2=21のため、1を設定する。
(j)g_RAM_DataBitParam:物理RAMのビット数。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のビット数20を設定する。
(k)g_FF_DataBitParam:ビット補完FF RAMのビット数。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のビット補完FF数のビット数2を設定する。
(l)g_Gen_RAM_LV4:ビット補完物理RAM数。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8のビット方向物理RAM数2を設定する。
(m)g_Gen_FFRAM_LV4:ビット補完FFが存在する場合、1を設定する。
図18の最適論理メモリ構成組み合わせ一覧テーブルT8にてビット補完FFが存在するため、1を設定する。
(n)g_AddressClip:(物理RAMアドレスのビット数)−(論理メモリ空間データビット数)。ただし、0以上の場合に限る。物理RAMのビット数=10、論理メモリ空間データビット数=11のため、0を設定する。
(o)g_DataClip:(物理RAMビット数)−(論理メモリビット数)ただし、0以上の場合に限る。物理RAMビット数=20、論理メモリビット数=42のため、0を設定する。
次に論理メモリの具体的な構成例について説明する。図27は物理RAMの単体構成例を示す図である。データ4Bit、アドレス4096Wordの物理RAM単体の構成例を示す。なお、ADD Clipは、余分なアドレスビット‘0’を固定する機能であり、DT Clipは、データを‘0’または‘1’に固定する機能である。
図28は物理RAMの複数構成例を示す図である。データ16Bit、アドレス8192Wordの物理RAM(ZAA4B16W12)の複数構成例を示す。なお、DECは、RAMブロックに入力するアドレスをDecodeする。SELは、RAMブロックから出力されたデータをアドレスによってSelectする。
図29は物理RAM、ビット補完FF、ワード補完FFの構成例を示す図である。データ26Bit、アドレス2148Wordの物理RAM(ZAA4B20W10)、ビット補完FF(ZAA4BFF6X1024)、ワード補完FF(ZAA3WFF26X100)の構成例を示す。
図30は物理RAM、ワード補完FFの構成例を示す図である。データ20Bit、アドレス2304Wordの物理RAM(ZAA4B20W10)、ワード補完FF(ZAA3WFF20X256)の構成例を示す。
図31は物理RAM、ビット補完FFの構成例を示す図である。データ25Bit、アドレス4096Wordの物理RAM(ZAA4B20W11)、ビット補完FF(ZAA4BFF5X2048)の構成例を示す。
図32はワード補完FFのみの構成例を示す図である。データ16Bit、アドレス100Wordのワード補完FF(ZAA3WFF16X100)のみの構成を示す。
このように、論理メモリの構築時にFFを用いる場合は、FFで構成されるメモリ空間の他にアドレスデコード回路やメモリ空間セレクト回路を組み合わせて構成するものとする。
また、論理メモリの構築時に物理RAMを用いる場合は、物理RAMのみで構成するものと、物理RAM及び補完FF(FFで構成されるメモリ空間、アドレスデコード回路、メモリ空間セレクト回路を含む)を組み合わせて構成するものとする。なお、物理RAMのみで構成するものには、ライブラリより定められたサイズの物理RAMにより余分なデータビットが存在する場合があるので、余分なデータをクリップするための回路を有する。
以上説明したように、メモリ構築装置10によれば、所望の論理メモリ空間を満たすように、ライブラリに用意されている物理RAMやFFを用いて自動的に最適な論理メモリを構築するので、設計者が手作業で物理RAMとFFを組み合わせたり、あらたなマクロを作成したりする作業がなくなり、集積回路設計における利便性が向上し、TATの短縮化を図ることが可能になる。
(付記1) 集積回路設計で論理メモリの構築を行うメモリ構築装置において、
ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記論理メモリ候補の中から優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、
前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす最適論理メモリを抽出する最適構成抽出処理部と、
抽出された前記最適論理メモリを構成する前記物理メモリ及び前記レジスタを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、
を有することを特徴とするメモリ構築装置。
(付記2) 前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、論理メモリビットと物理メモリビットとを比較し、前記論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、前記論理メモリビットの方が大きい場合は、前記論理メモリビットを前記物理メモリビットで割って、ビット方向分割数と前記レジスタのビットサイズとを算出することを特徴とする付記1記載のメモリ構築装置。
(付記3) 前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、論理メモリワードと物理メモリワードとを比較し、前記論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、前記論理メモリワードの方が大きい場合は、前記論理メモリワードを前記物理メモリワードで割って、ワード方向分割数と前記レジスタのワードサイズとを算出することを特徴とする付記1記載のメモリ構築装置。
(付記4) 前記論理条件毎に存在し、前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成組み合わせ一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完無の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ候補一覧テーブルと、前記物理メモリと前記レジスタとの組み合わせから構成された場合の最適論理メモリの回路構成情報が書き込まれる最適論理メモリ構成組み合わせ一覧テーブルと、を格納するテーブル格納部をさらに有することを特徴とする付記1記載のメモリ構築装置。
(付記5) 前記論理メモリ構成処理部は、ビット補完の有・無、ワード補完の有・無、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成組み合わせ一覧テーブルに対し、前記論理条件毎の前記論理メモリ構成組み合わせ一覧テーブルに、前記論理メモリ候補の回路構成情報を書き込み、前記論理メモリ構成組み合わせ一覧テーブルには、前記論理条件を実現できるすべての前記論理メモリ候補の回路構成情報が含まれることを特徴とする付記4記載のメモリ構築装置。
(付記6) 前記論理メモリ構成組み合わせ一覧テーブルは、ビット補完無・ワード補完無、ビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の4つの状態で分類されており、前記論理メモリ構成処理部は、各状態内で、物理メモリ総数が少ない順に回路構成情報をテーブルの上位へ、物理メモリ総数が同数ならば、ワード補完物理メモリが少ない順に回路構成情報をテーブルの上位へ、ワード補完物理メモリが同数ならば、FF総数が少ない順に回路構成情報をテーブルの上位へ並び替えることを特徴とする付記5記載のメモリ構築装置。
(付記7) 前記論理メモリ構成処理部は、論理条件番号、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成一覧テーブルに対し、並び替え後の前記論理メモリ構成組み合わせ一覧テーブルから、ビット補完無・ワード補完無に関する回路構成情報を、前記論理条件毎に抜き出して、前記論理メモリ構成一覧テーブルに書き込み、論理条件番号、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ候補一覧テーブルに対し、並び替え後の前記論理メモリ構成組み合わせ一覧テーブルから、ビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有に関する回路構成情報を、前記論理条件毎に抜き出して前記論理メモリ候補一覧テーブルに書き込むことを特徴とする付記6記載のメモリ構築装置。
(付記8) 前記論理メモリ構成処理部は、前記論理メモリ候補一覧テーブルに対し、前記レジスタの総数が少ない順にテーブル上位へ、前記レジスタの総数が同数ならば、物理メモリ数が多い順にテーブル上位へ並び替えることを特徴とする付記7記載のメモリ構築装置。
(付記9) 前記最適構成抽出処理部は、前記論理メモリ構成一覧テーブルの論理条件毎の前記論理メモリの総数から、前記論理メモリの使用合計数を求め、前記使用合計数と、ライブラリに用意されている物理メモリ制限数とを比較し、前記使用合計数が小さければ、前記論理メモリ構成一覧テーブルに記載された回路構成情報を前記最適論理メモリの回路構成情報とし、前記回路記述化処理部は、前記最適論理メモリの回路構成情報にもとづき、回路記述を行い、前記使用合計数が大きければ、並び替え後の前記論理メモリ候補一覧テーブルを使用して前記最適論理メモリの回路構成情報の抽出処理を行うことを特徴とする付記8記載のメモリ構築装置。
(付記10) 前記最適構成抽出処理部は、並び替え後の前記論理メモリ候補一覧テーブルを使用して前記最適論理メモリの回路構成情報の抽出処理を行う場合、並び替え後の前記論理メモリ候補一覧テーブルの中から、最優先候補内で使用しているレジスタ数が、1つの論理条件を実現するためのレジスタ制限値よりも小さく、かつ前記レジスタ数がすべての論理条件を満たす論理メモリ構成を実現するためのレジスタ制限値よりも小さくなる回路構成情報を抽出し、前記回路記述化処理部は、抽出された回路構成情報にもとづき、回路記述を行うことを特徴とする付記9記載のメモリ構築装置。
メモリ構築装置の原理図である。 テーブル格納部の構成を示す図である。 論理条件一覧テーブルを示す図である。 物理RAM一覧テーブルを示す図である。 物理RAM・FF使用個数制限テーブルを示す図である。 論理メモリ構成処理部の動作を示すフローチャートである。 論理メモリ候補の構成状態を示す図である。 論理メモリ候補の構成状態を示す図である。 論理メモリ候補の構成状態を示す図である。 論理メモリ候補の構成状態を示す図である。 論理メモリ構成組み合わせ一覧テーブルを示す図である。 論理メモリ構成組み合わせ一覧テーブルを示す図である。 論理メモリ構成組み合わせ一覧テーブルを示す図である。 論理メモリ構成一覧テーブルを示す図である。 論理メモリ候補一覧テーブルを示す図である。 論理メモリ候補一覧テーブルを示す図である。 最適構成抽出処理部の動作を示すフローチャートである。 最適論理メモリ構成組み合わせ一覧テーブルを示す図である。 論理メモリ構成一覧テーブルの置き換えの様子を示す図である。 論理メモリ構成一覧テーブルの置き換えの様子を示す図である。 論理メモリ構成一覧テーブルの置き換えの様子を示す図である。 回路記述化処理部の動作を示すフローチャートである。 変数化された回路記述により生成される回路構成の一例を示す図である。 パラメータの一例を示す図である。 各パラメータの具体的な値を示す図である。 パラメータの設定箇所を示す図である。 物理RAMの単体構成例を示す図である。 物理RAMの複数構成例を示す図である。 物理RAM、ビット補完FF、ワード補完FFの構成例を示す図である。 物理RAM、ワード補完FFの構成例を示す図である。 物理RAM、ビット補完FFの構成例を示す図である。 ワード補完FFのみの構成例を示す図である。
符号の説明
10 メモリ構築装置
11 論理メモリ構成処理部
12 最適構成抽出処理部
13 回路記述化処理部
14 テーブル格納部

Claims (5)

  1. 集積回路設計で論理メモリの構築を行うメモリ構築装置において、
    ライブラリとしてあらかじめ用意されている数種の物理メモリ及びレジスタを読み込み、メモリ空間を定めた論理条件を満たす前記論理メモリを構成するように、前記物理メモリ及び前記レジスタの一方のみまたは両方を組み合わせて、論理メモリ候補を生成し、前記レジスタを使用しない構成、論理メモリビットの補完に前記レジスタを使用する構成、論理メモリワードの補完に前記レジスタを使用する構成、および前記論理メモリビットと前記論理メモリワードとの補完に前記レジスタを使用する構成のそれぞれの構成につき、前記論理メモリ候補のうち前記物理メモリの総数が1以上であるものの中から、前記物理メモリの総数が少ないほど高優先度とし、前記物理メモリの総数が同じ場合にはワード方向物理メモリ数が少ないほど高優先度とし、前記物理メモリの総数および前記ワード方向物理メモリ数が同じ場合にはレジスタ総数が少ないほど高優先度とする優先条件にもとづき、最優先候補の論理メモリを選択する論理メモリ構成処理部と、
    前記物理メモリ及び前記レジスタの使用個数制限を満たすように、前記最優先候補の中から、前記論理条件を満たす論理メモリを抽出する構成抽出処理部と、
    抽出された前記論理メモリを用いて回路記述を行い、回路記述ファイルを生成する回路記述化処理部と、
    を有することを特徴とするメモリ構築装置。
  2. 前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、前記論理メモリビットと物理メモリビットとを比較し、前記論理メモリビットの方が小さい場合は、ビット方向は分割なしとし、前記論理メモリビットの方が大きい場合は、前記論理メモリビットを前記物理メモリビットで割って、ビット方向分割数と前記レジスタのビットサイズとを算出することを特徴とする請求項1記載のメモリ構築装置。
  3. 前記論理メモリ構成処理部は、前記物理メモリのサイズと個数及び前記レジスタのサイズと個数から、前記論理メモリ候補を生成する際に、前記論理メモリワードと物理メモリワードとを比較し、前記論理メモリワードの方が小さい場合は、ワード方向は分割なしとし、前記論理メモリワードの方が大きい場合は、前記論理メモリワードを前記物理メモリワードで割って、ワード方向分割数と前記レジスタのワードサイズとを算出することを特徴とする請求項1記載のメモリ構築装置。
  4. 前記論理条件毎に存在し、前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成組み合わせ一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完無の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ構成一覧テーブルと、メモリ空間の空きを補完する前記レジスタの補完状態であるビット補完無・ワード補完有、ビット補完有・ワード補完無、ビット補完有・ワード補完有の状態に対応した前記論理メモリ候補の回路構成情報が書き込まれる論理メモリ候補一覧テーブルと、前記構成抽出処理部により抽出された論理メモリの回路構成情報が書き込まれる回路記述用論理メモリ構成組み合わせ一覧テーブルと、を格納するテーブル格納部をさらに有することを特徴とする請求項1記載のメモリ構築装置。
  5. 前記論理メモリ構成処理部は、ビット補完の有・無、ワード補完の有・無、前記物理メモリの名称・ビット数・ワード数・ビット方向物理メモリ数・ワード方向物理メモリ数・総数、前記レジスタのビット補完レジスタ数・ワード補完レジスタ数・レジスタ総数の項目から構成される前記論理メモリ構成組み合わせ一覧テーブルに対し、前記論理条件毎の前記論理メモリ構成組み合わせ一覧テーブルに、前記論理メモリ候補の回路構成情報を書き込み、前記論理メモリ構成組み合わせ一覧テーブルには、前記論理条件を実現できるすべての前記論理メモリ候補の回路構成情報が含まれることを特徴とする請求項4記載のメモリ構築装置。
JP2006026256A 2006-02-02 2006-02-02 メモリ構築装置 Expired - Fee Related JP4606341B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006026256A JP4606341B2 (ja) 2006-02-02 2006-02-02 メモリ構築装置
US11/698,856 US7805688B2 (en) 2006-02-02 2007-01-29 Memory construction apparatus for forming logical memory space

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006026256A JP4606341B2 (ja) 2006-02-02 2006-02-02 メモリ構築装置

Publications (2)

Publication Number Publication Date
JP2007207042A JP2007207042A (ja) 2007-08-16
JP4606341B2 true JP4606341B2 (ja) 2011-01-05

Family

ID=38323504

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006026256A Expired - Fee Related JP4606341B2 (ja) 2006-02-02 2006-02-02 メモリ構築装置

Country Status (2)

Country Link
US (1) US7805688B2 (ja)
JP (1) JP4606341B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6586759B2 (ja) 2015-04-01 2019-10-09 富士通株式会社 設計装置、プログラム、及びfpga設計方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213639A (ja) * 2002-12-13 2004-07-29 Lsi Logic Corp 集積回路のデザイン中におけるメモリの自動選択及び配置
JP2004213634A (ja) * 2002-12-09 2004-07-29 Lsi Logic Corp プログラム可能なプラットフォーム・デバイス上において変動するメモリ要件を満足するように資源の固定された組を用いてメモリを構成する方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09171527A (ja) * 1995-12-20 1997-06-30 Dainippon Printing Co Ltd メモリー生成支援装置
US7228520B1 (en) * 2004-01-30 2007-06-05 Xilinx, Inc. Method and apparatus for a programmable interface of a soft platform on a programmable logic device
JP4472424B2 (ja) 2004-05-17 2010-06-02 富士通マイクロエレクトロニクス株式会社 ネットリスト生成方法、およびそのコンピュータプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004213634A (ja) * 2002-12-09 2004-07-29 Lsi Logic Corp プログラム可能なプラットフォーム・デバイス上において変動するメモリ要件を満足するように資源の固定された組を用いてメモリを構成する方法
JP2004213639A (ja) * 2002-12-13 2004-07-29 Lsi Logic Corp 集積回路のデザイン中におけるメモリの自動選択及び配置

Also Published As

Publication number Publication date
US7805688B2 (en) 2010-09-28
US20070180213A1 (en) 2007-08-02
JP2007207042A (ja) 2007-08-16

Similar Documents

Publication Publication Date Title
US7506298B1 (en) Methods of mapping a logical memory representation to physical memory in a programmable logic device
Luu et al. Architecture description and packing for logic blocks with hierarchy, modes and complex interconnect
JP4104538B2 (ja) リコンフィギュラブル回路、リコンフィギュラブル回路を備えた処理装置、リコンフィギュラブル回路における論理回路の機能決定方法、回路生成方法および回路
JP6250548B2 (ja) 再構成可能な半導体装置の論理構成方法
US20090031106A1 (en) Reconfigurable device
CN101111834A (zh) 动态可重配置处理器
JP6564186B2 (ja) 再構成可能な半導体装置
JP6517626B2 (ja) 再構成可能な半導体装置
JP2007034887A (ja) ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置
US20130132916A1 (en) Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus
JP5890733B2 (ja) 再構成可能な半導体装置の配置配線方法、そのプログラム、及び配置配線装置
US20190213289A1 (en) Method and apparatus for implementing an application aware system on a programmable logic device
JP4606341B2 (ja) メモリ構築装置
US10031994B1 (en) Systems and methods for congestion and routability aware detailed placement
US8332798B2 (en) Using synthesis to place macros
US7590965B1 (en) Methods of generating a design architecture tailored to specified requirements of a PLD design
US6324680B1 (en) Synthesis of arrays and records
US7114061B2 (en) Information processing apparatus with configurable processor
US10366001B1 (en) Partitioning memory blocks for reducing dynamic power consumption
JP6405262B2 (ja) 再構成可能な論理デバイス
JP4260086B2 (ja) データフローグラフ生成装置、処理装置、リコンフィギュラブル回路。
JP2008198003A (ja) アレイ型プロセッサ
JP2006065786A (ja) 処理装置
JP4562678B2 (ja) データフローグラフ再構成装置、リコンフィギュラブル回路の設定データ生成装置、及び処理装置
JP4413052B2 (ja) データフローグラフ処理装置および処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100126

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100720

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100909

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: 20101005

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101005

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131015

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees