JPH0844787A - タグレジスタを用いたマルチポートメモリエミュレーション - Google Patents

タグレジスタを用いたマルチポートメモリエミュレーション

Info

Publication number
JPH0844787A
JPH0844787A JP7066549A JP6654995A JPH0844787A JP H0844787 A JPH0844787 A JP H0844787A JP 7066549 A JP7066549 A JP 7066549A JP 6654995 A JP6654995 A JP 6654995A JP H0844787 A JPH0844787 A JP H0844787A
Authority
JP
Japan
Prior art keywords
memory
write
port memory
read
tag
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
Application number
JP7066549A
Other languages
English (en)
Inventor
Thomas B Huang
トーマス・ビー・ヒュアン
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.)
Quickturn Design Systems Inc
Original Assignee
Quickturn Design Systems Inc
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 Quickturn Design Systems Inc filed Critical Quickturn Design Systems Inc
Publication of JPH0844787A publication Critical patent/JPH0844787A/ja
Pending legal-status Critical Current

Links

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/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • G06F30/331Design verification, e.g. functional simulation or model checking using simulation with hardware acceleration, e.g. by using field programmable gate array [FPGA] or emulation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C8/00Arrangements for selecting an address in a digital store
    • G11C8/16Multiple access memory array, e.g. addressing one storage element via at least two independent addressing line groups

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Evolutionary Computation (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Static Random-Access Memory (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Dram (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

(57)【要約】 【目的】 複数のプログラマブル論理素子のメモリ資源
を用いてマルチポートメモリ回路をエミュレートするこ
と。 【構成】 まず、プログラマブル論理素子内のメモリ資
源において、複数の記憶場所を有するリードポートメモ
リアレイのネットリストを生成し、そのネットリストを
複数回複製して書き込みポートメモリアレイのネットリ
ストを生成し、次いで、書き込みポートメモリアレイの
ネットリストを複数回複製し、複数の書き込みポートメ
モリアレイを構成するため、上記メモリ資源をプログラ
ムしさらに、特定の書き込みポートメモリアレイ内の各
書き込みポートメモリアレイの特定の記憶場所にデータ
を書き込み、その最新に書き込まれた記憶場所に最新に
書かれたことを示すタグを付する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、一般的にハードウエ
アエミュレーションに関し、より詳細にはマルチポート
エミュレーションに関する。
【0002】
【従来の技術】集積回路を設計する際には種々のツール
が使用される。そのようなツールの1つはハードウエア
エミュレーションシステムである。このようなエミュレ
ーションシステムの例はサンプル等(Sample e
t al.)に与えられた米国特許第5,109,35
3号及びバッツ等(Butts et al.)に対し
て与えられた米国特許第5,036,473号に開示さ
れており、これら2つの特許は参考文献としてここに編
入される。集積回路を設計する際には集積回路のネット
リストによる記述が生成される。ネットリストは集積回
路の要素と電気的接続関係の記述である。ネットリスト
は集積回路の実際の製造に必要な全てのマスクを作成す
るために使用することができる。上記サンプル等及びバ
ッツ等の特許に記述されているように、エミュレーショ
ン技術は現に設計している集積回路が搭載されるシステ
ムにおいて、実際に動作することを確認するために使用
される。再構成可能なエミュレーションシステムは典型
的には、フィールド・プログラマブル・ゲートアレイ
(FPGAs)の如き多重に接続された再構成可能な論
理素子からなる。再構成可能な論理素子はある与えられ
た集積回路設計の論理回路のエミュレーションにとって
理想的である。しかしながら、現代のマイクロプロセッ
サの如き集積回路は、適当にエミュレートすることが困
難であるメモリ回路とも共働する。さらに、メモリ回路
は設計上しばしばマルチポートでありマルチポートメモ
リは正確にエミュレートすることがより困難である。典
型的なメモリ回路はそれらが多数の記憶場所を持つよう
に配列される。各記憶場所はある数のビットを格納する
ことができる。メモリ回路は、典型的にはそのメモリが
要する記憶場所の数(多くの場合、メモリ回路の深さと
参照される)及び各記憶場所に格納しうるビット数(メ
モリ回路の幅と参照される)によって分類される。それ
故、32の記憶場所と各記憶場所において8ビットを格
納しうるメモリ回路は32×8のメモリ回路と呼ばれ
る。メモリ回路がマルチポートを有する場合、メモリ回
路はさらに書き込みポートの数と読み出しポートの数に
よって規定される。
【0003】従来のマルチポートメモリでは、データは
複数の記憶位置へ異なるポートを通して書き込まれる。
各書き込みポートは各記憶場所をアクセスし、各書き込
みポートは同時に書き込みを行う。しかしながら、異な
るポートが同じ記憶場所に同時にデータを書き込むこと
はできない。同様に、各読み出しポートは各記憶場所に
アクセスでき、かつ、各読み出しポートはデータを同時
に読むことができる。しかしながら、書き込みポートと
は異なり、異なる読み出しポートは同じアドレスから同
時にデータを読み出すことができる。再構成可能な論理
素子のより新しい世代は、その構成可能な論理ブロック
即ち、CLB内においてメモリ回路を構成する能力を有
する。そのような再構成可能な論理素子の1つは、カリ
フォルニア,サンホセのキシリンクス・インコーポレイ
テッド(Xilinx,inc.)により提供されるX
C4000ファミリーである。XC4000ファミリー
においては、各CLBは16×2もしくは32×1のス
タティック・ランダム・アクセスメモリ(RAM)を構
成することができる。しかしながら、マルチポートメモ
リの可能性はない。エミュレーションシステムにおける
マルチポートメモリ回路の構成方法の1例はマルチポー
トメモリエミュレーションと題する係続中の米国特許出
願第08/067,571号に開示されている。この係
続中の出願は、参考文献としてここに編入される。この
方法では、メモリのネットリストのトランジスタレベル
の定義をキシリンクス(FPGA)内においてメモリを
構成するために論理の定義に変換する。
【0004】
【発明が解決しようとする課題】しかしながら、この方
法はエミュレーションシステムの膨大なCLB能力を要
求する。それ故、多数のCLBを必要としないようなマ
ルチポートメモリのエミュレーション方法を与えること
が好ましい。本発明は、エミュレートされるマルチポー
トメモリ回路のメモリアレイを複製し、かつ、2重のメ
モリアレイ内の記憶場所にタグを付すという独特の方法
によって従来技術の問題点と不利な点を克服せんとする
ものであって、2重のメモリアレイは異なる複製のメモ
リアレイ内における同じ記憶場所がそこにデータが書き
込まれた後にデータが書き込まれるようになっている。
【0005】
【実施例】構成要素の構成と結合における種々の新規な
実例を含む本発明の種々の特徴が添付の図面を参照して
より詳細に記述され、かつ、特許請求の範囲において記
載される。本発明を実施する特定の方法や回路は単に図
示のためのものであって、本発明を限定するものではな
い。当業者ならば理解できるようにこの発明の原理と特
徴は本発明の技術範囲を逸脱することなしに種々の、か
つ、多くの実施例において採用されるであろう。図面を
参照して本発明の好ましい実施例が記述される。図1
は、従来のマルチポートメモリ回路10を示している。
図1の回路10は、2つの書き込みポート12と14及
び3つの読み出しポート16,18,20を備える。書
き込みポート12と14は、メモリ回路10のメモリア
レイ22内のいかなる記憶場所にも書き込むことがで
き、読み出しポート16,18,20はメモリ回路10
のメモリアレイ22内のいかなる記憶場所からもデータ
を読み出すことができる。図1における書き込みポート
数及び読み出しポート数は単なる例示にすぎない。マル
チポートメモリ回路は、図示した書き込み及び読み出し
ポートより少ない、あるいはより多いポートを持つこと
ができる。
【0006】図2は、XC4000ファミリーの再構成
可能な論理素子の1つのCLB30の図式的なダイヤグ
ラムを示す。CLB30は、ファンクションジェネレー
タ32,34からなるこれらのファンクションジェネレ
ータ32,34は論理機能を構成する際に使用されるル
ックアップテーブルを含む。CLB30内においてメモ
リ回路が構成される時には、それらの内部のルックアッ
プテーブルはスタティックRAMとして機能する。しか
しながら、各CLB30内のファンクションジェネレー
タはRAMとして機能するときには、それらはマルチポ
ートメモリ回路としての機能はない。あるエミュレーシ
ョンシステムにおいて、マルチポートメモリ回路を構成
するためにはCLBはシングルポートメモリ回路として
利用される。しかしながら、シングルポートメモリ回路
はマルチポートメモリ回路をエミュレートするように利
用される。
【0007】本発明の実施例のフローチャートが図3に
示されている。図3は、本発明の実施例におけるステッ
プ1000がエミュレートされるべきデザインのネット
リストの記述を読み込む。ステップ1100において、
システムは定義されるべきネットリスト内においてメモ
リ要求が起こるか否かを決定する。これはエミュレート
されるべきメモリ回路が一般的にトランジスタで定義さ
れるからであり、そのようなトランジスタは通常はエミ
ュレーションシステムによって処理することはできな
い。図3に示す要求の定義は、マルチポートメモリ回路
のためのものである。マルチ要求の定義はエミュレート
されつつある各ネットリストについて起こり得る要求の
定義1100の後、マルチポートメモリ回路のアレイ2
2はステップ1300において生成される。アレイ22
の生成1300に加えてTAGアレイがステップ120
0において生成される。以下に議論されるようにTAG
アレイは複数のタグレジスタとこれらレジスタに関連す
る論理(素子)からなる。タグレジスタの数はエミュレ
ートされるマルチポートメモリ回路の書き込みポート数
とエミュレートされるメモリ回路の深さとの掛け算によ
って決定される。メモリアレイ22がステップ1300
で生成された後、読み出しポートメモリアレイがステッ
プ1400で生成される。その後ステップ1500にお
いて、書き込みポートメモリアレイが生成される。書き
込みポートメモリアレイはエミュレートされるマルチポ
ートメモリ回路の各書き込みポートに対応する。各書き
込みポートはステップ1400で生成された読み出しポ
ートメモリアレイの各々からなる。
【0008】ステップ1500において、書き込みポー
トメモリアレイが生成された後、それらはTAGアレイ
に併合され、ステップ1400で定義されたメモリ要求
のためのネットリストがステップ1600において生成
される。ステップ1700において、シングルポートメ
モリコンパイルが発生する。このステップ1700はキ
シリンクスのごときプログラマブル論理回路ベンダー
(vendor)によって提供されるメモリコンパイル
ソフトウエアを使用する。ステップ1800では、平坦
化(flattened)されたメモリネットリストが
生成される。ステップ1900では、他のネットリスト
がコンパイルされる。最後にステップ2000では、マ
ルチポートメモリ回路がエミュレートされた回路の目的
システムにおいてエミュレートされる。
【0009】本発明において、エミュレートされるマル
チポートメモリ回路のメモリアレイ22は、まず複製さ
れる。メモリアレイ22が複製される回数は、エミュレ
ートされるべきマルチポートメモリ回路が有する読み出
しポートの数によって決定される。エミュレートされる
マルチポートメモリ回路が有する読み出しポートごとに
読み出しポートメモリアレイが生成される。各読み出し
ポートメモリアレイは、メモリアレイ22の複製からな
り、それ故メモリアレイ22の記憶場所の各々を含む。
読み出しポートメモリアレイは、メモリアレイ22を記
述するネットリストの該等部分を複製することによって
生成される。読み出しポートメモリアレイが生成された
後、書き込みポートメモリアレイが生成される。書き込
みポートメモリアレイはエミュレートされるマルチポー
トメモリ回路の各書き込みポートについて生成される。
書き込みポートメモリアレイは、各読み出しポートにつ
いて複製された各読み出しポートメモリアレイの複写を
含む。従って、各書き込みポートメモリアレイはエミュ
レートされるマルチポートメモリ回路の各読み出しポー
トについて1つの読み出しポートメモリアレイを含んで
いる。
【0010】図5には、マルチメモリポート回路が示さ
れている。図5は、n個の読み出しポートとm個の書き
込みポートを備えたマルチメモリポートメモリ50を示
す。エミュレートされるマルチポートメモリ回路の実際
のメモリアレイ22の複写された読み出しポートメモリ
アレイ52a,52b…52nは、各読み出しポートに
ついて生成される。その後、各読み出しポートメモリア
レイ52a,52b…52nは、各書き込みポートにつ
いて複製され、それによって、書き込みポートメモリア
レイ54a,54b…54mを生成する。とりわけ、書
き込みポートメモリアレイ54aは読み出しメモリポー
トアレイ52a,52b…52nからなる。書き込みポ
ートメモリアレイ54bは読み出しポートメモリアレイ
52a1,52b1…52n1からなる。書き込みメモリ
ポートアレイ54mは読み出しメモリポートアレイ52
m、52bm…52nmになる。このアーキテクチャ
は、以下に説明するようにデータを複数の書き込みポー
トから書き込み、複数の読み出しポートから読み出すこ
とを可能にする。図1に示すようなマルチポートメモリ
回路においてデータがある記憶場所に書き込まれた時
に、書き込まれるべきデータはこの記憶場所におけるデ
ータと置き換えられる。本発明のマルチポートメモリ回
路においては、しかしながら、記憶場所が多くの読み出
しポートメモリアレイにおいて複製されているためその
記憶場所においてデータを置き換えることは困難であ
る。もしもある特定の記憶場所に書き込まれるべきデー
タがその場所が複製されたいずれの個所においても置き
換えられるとすると、そのシステムは実用化するにはあ
まりにも遅いものとなる。それ故、ある特定の書き込み
ポートを通してある記憶場所にデータが書き込まれるべ
き時には、実際に書き込みを行う書き込みポートに関連
する書き込みポートメモリアレイからなる複製された書
き込みポートメモリアレイの各々における対応する記憶
場所にそのデータが書き込まれる。しかしながら、その
データは書き込みを実行しない書き込みポートメモリア
レイからなる他の読み出しポートメモリアレイには書き
込まれない。
【0011】この構成はシングルポートメモリ回路のみ
を与えるプログラマブル論理回路内におけるマルチポー
トメモリの完全なエミュレーションを可能にする。しか
しながら、データはそのデータを書き込んだ書き込みポ
ートメモリアレイ54m内に位置する読み出しポートメ
モリアレイ52am,52bm…52nmにのみ書き込ま
れるので特定の書き込みポートメモリアレイ54m内の
1つの読み出しポートメモリアレイ52nm内における
特定の記憶場所が異なる書き込みポートメモリアレイ例
えば54bの部分である複製された読み出しポートメモ
リアレイ例えば52a1内の同じ記憶場所におけるデー
タとは異なり得ることを可能にし、従って、このシステ
ムアーキテクチャは最も最近書き込まれた特定の記憶場
所について読み出しポート56a,56b…56nがデ
ータを読み出すということが重要である。1つの読み出
しポート56aが書き込みポートメモリアレイ54a,
54b…54mの各々の内部の第1読み出しポートメモ
リアレイ52a,52a1…52amからの入力を持つ。
読み出しポートメモリアレイ52a,52a1…52am
からの入力の各々はドライバー60WmRnに接続される。
2番目の読み出しポート56bは書き込みポートメモリ
アレイ54a,54b…54mの各々の内部の第2読み
出しポートメモリアレイ52b,52b1…52bmから
の入力を持つ。読み出しポート56nは書き込みポート
メモリアレイ54a,54b…54mの各々の内部のn
読み出しポートメモリアレイ52n,52n1…52nm
からの入力を持つ。
【0012】図8を参照して、読み出しポートが特定の
記憶場所について最新に書かれたデータを読み出すこと
が重要であることを示す例が示されている。特定の記憶
場所についてデータが書き込みポート1を通じて書き込
まれたとすると、特定の書き込みポートメモリアレイに
ついて各読み出しポートメモリアレイ内の該当する記憶
場所にそのデータが書き込まれるであろう。その記憶場
所は本例では*で表されている。そして、データが書き
込みポート2を通して同じ場所に書き込まれるとすると
そのデータは特定の書き込みポートメモリアレイについ
て各読み出しポートメモリアレイ内の該当する記憶場所
にのみ書き込まれ、その場合をXで表している。このよ
うにして、各書き込みポートメモリアレイ内の同じ記憶
場所はそこに異なるデータを格納することになる。マル
チポートメモリ回路のエミュレーションを正確に行うた
めには、その記憶場所に書き込まれた最新のデータは選
択された読み出しポートによって読み出されなければな
らず古いデータは無視されなければならない。
【0013】選択された読み出しポートが固有の読み出
しポートメモリアレイ内の記憶場所からデータを読み出
すことを保証するために、一連のタグレジスタが使用さ
れる。タグレジスタは、特定の記憶場所に書き込まれた
最新のデータのみがエミュレートされたメモリ回路から
読み出されることを保証するために使用される。必要と
されるタグレジスタの数は、エミュレートされるべきマ
ルチポートメモリ回路の深さと書き込みポートの数によ
って決められる。タグレジスタのアーキテクチャは、図
4から図7を参照して説明される。上で述べたように、
タグレジスタの数は書き込みポートの数に記憶場所の数
をかけ合わすことによって決められる。図4に示すマル
チポートメモリでは、m個の書き込みポートとx個の記
憶場所がある。従って、m×x個のタグレジスタが必要
となる。図5から図7もタグレジスタのアーキテクチャ
を示す。タグレジスタは特定の書き込みポートメモリア
レイに関連する特定のタグレジスタが1つのグループと
して分類されるように配列されている。以下に見られる
ように、各タグレジスタはセット−リセット形式のフリ
ップ・フロップであり得る。
【0014】図5は、書き込みポートメモリアレイ54
aに関連するタグレジスタを示す。図6は、書き込みポ
ートメモリアレイ54bに関連するタグレジスタを示
す。図7は、書き込みポートメモリアレイ54mに関連
するタグレジスタを示す。ある書き込みポートメモリア
レイ内には各記憶場所に対して1つのタグレジスタが存
在する。従って、図5において、タグレジスタ100a
1が書き込みポートメモリアレイ1,54a内の記憶場
所1に書き込まれたデータがその場所に最新に書き込ま
れたものであるときにはそのデータをタグするのに用い
られる。タグレジスタは、書き込みポートメモリアレイ
内の各記憶場所に対して生成されているので、いかなる
数のタグレジスタも生成でき、最終的にタグレジスタ1
00x1に達する。図5から図7を参照してタグレジス
タ100a1,100a2及び100amは記憶場所1に
書き込まれた最新のデータは各読み出しポートを通して
読み出されることを保証する。タグレジスタ100
1,100x2及び100xmは記憶場所xに書き込ま
れた最新のデータが各読み出しポートを通して読み出さ
れることを保証する。各タグレジスタ100a1…10
0x1,100a2…100x2及び100am…100x
mの各々に入力される論理は以下の通りである。ライト
エネーブル,ライトエネーブル1(W1),ライトエネ
ーブル2(W2)…ライトエネーブルm(Wm)のための
入力を有する第1のアンドゲート105a1…105
1,105a2…105x2及び105am…105xm
からの出力は第2のアンドゲート110a1…110
1,110a2…110x2及び110am…110xm
にそれぞれ入力される。第1の書き込みポートメモリア
レイ内の第1からx1番目の記憶場所に対するタグレジ
スタ100a1…100x1に関連する第1アンドゲート
105a1…105x1はそのW1入力を“真”としてセ
ットする一方、W2…Wm入力は“偽”としてセットされ
る。第2の書き込みポートメモリアレイ内の第1から
x’番目の記憶場所に対するタグレジスタ100a2
100x2に関連する第2のアンドゲート105a2…1
05x2は、そのW2入力を“真”としてセットする一
方、W1…Wm入力は“偽”としてセットされる。最後に
m’番目の書き込みポートメモリアレイ内の第1から
x’番目の記憶場所に対するタグレジスタ100am
100xmに関連するm’番目のアンドゲート105am
…105xmはそのWm入力を“真”としてセットする一
方、残りのW1…W2入力を“偽”としてセットする。
【0015】第2アンドゲート110a1…110x1
110a2…110x2,及び110am…110xmへの
第2の入力は、その書き込みポートメモリアレイ内の特
定の場所、例えばW11、に対するライトエネーブル信
号であり、上記W11は第1メモリ記憶場所に対するラ
イトエネーブル信号である。第2アンドゲート110a
1…110x1,110a2…110x2及び110am
110xmの出力は、特定の記憶場所に対するセット信
号であり、セット信号は記号Smxでラベル付けされ上
記mは特定の書き込みポートであり、xは特定の記憶場
所である。このSmx信号はタグレジスタ100a1
100x1,100a2…100x2及び100am…10
0xmのセット入力に入力される。第1オアゲート11
5a1…115x1,115a2…115x2及び115a
m…115xmの出力はそれぞれタグレジスタ100a1
…100x1,100a2…100x2及び100am…1
00xmのリセット入力にそれぞれ入力される。第1オ
アゲート115a1…115x1,115a2…115x2
及び115am…115xmへの入力は他のポートに対す
る同じ記憶場所に関連するタグレジスタへのセットSm
x信号入力である。
【0016】各タグレジスタ100a1…100x1,1
00a2…100x2及び100am…100xmの出力
は、書き込みポート,読み出しポート及び記憶場所に関
連しており、ある関連ポートメモリ内の読み出しポート
メモリアレイの特定の記憶場所が特定の記憶場所につい
て書き込まれた最新の書き込みデータを有するか否かを
指示する。それ故、タグレジスタは3次元のアレイ、即
ち、書き込みポート次元,読み出しポート次元及び記憶
場所次元を形成する。タグレジスタの出力に対するこの
応用において用いられるべき規約はTAGWmRnLxであ
る。特定の書き込みポートを通して書き込まれるデータ
はその書き込みポートメモリアレイの各読み出しポート
メモリアレイ内の同じ記憶場所に書き込まれるので各タ
グレジスタの出力は、TAGWmRnLxが各読み出しポート
メモリアレイについて生成されるように分割される。例
えば、図5おいてタグレジスタ100a1の出力はTA
W1R1L1,TAGW1R2L1…TAGW1RnL1を生成する。
【0017】タグレジスタ100a1…100x1,10
0a2…100x2及び100am…100xm出力である
TAGWmRnLxは、第3のアンドゲート120WmRnLxの入
力に接続されている。第3のアンドゲート120WmRnLx
の他の入力は、TAGWmRnLxに関連する記憶場所に対す
るリードエネーブル信号である。例えば、タグレジスタ
100a1からの出力は、第1書き込みポートメモリア
レイ54s内の第1,第2…n読み出しポートメモリア
レイ内の第1記憶場所をタグする故にTAGW1R1L1,T
AGW2R2L1…TAGW1RnL1として表示され、それぞれ第
3アンドゲート120W1R1L1,120W1R2L1…120
W1RnL1に入力される。第1記憶場所R11,R21…R
n1に対するリードエネーブル信号は第3アンドゲート
120W1R1L1,120W1R2L1…120W1RnL1への他方入
力である。第3アンドゲート120WmRnLxは特定の書き
込みポートメモリアレイの特定の読み出しポートメモリ
アレイに関連するものが特定の第2オアゲート125
WmRnにそれらの出力を送ることができるように配列され
ている。たとえば、第3アンドゲート120W1R1L1の出
力は第2オアゲート125W1R1への入力である。さら
に、第3アンドゲート120W1R1Lxの出力は同じ第2オ
アゲート125W1R1への入力である。
【0018】種々の第2オアゲート125WmRnの出力
は、最終のタグ信号TagWmRnを生成し、そのタグ信号
は特定の書き込みポートメモリに対する読み出しポート
メモリアレイがある記憶場所について最新に書き込まれ
たデータを有するか否かを示す。第2オアゲート125
WmRnの出力TagWmRnは読み出しポート56a,56b
…56nの種々のドライバー60WmRnへ入力され、ある
ドライバーが接続されている読み出しポートメモリアレ
イが特定の記憶場所に最新に書き込まれたデータを持つ
ならばそのドライバーを能動化し、上記特定の記憶場所
について読み出しポートメモリアレイが特定の記憶場所
に最新に書き込まれたデータを持たない場合にはそのド
ライバーを非能動化する。タグレジスタ100a1…1
00x1,100a2…100x2及び100am…100
mは特定の記憶場所に最新に書き込まれたデータのみ
が特定の読み出しポートから読み出されることを保証す
る。例えば、記憶場所1(L1)に論理値“1”を書き
込むために、ライトエネーブル信号が書き込みポート
1,54a(W1)に生じた場合、本発明のエミュレー
ションシステムでは各読み出しポートメモリアレイ52
a,52b…52n内に位置する各L1に論理値“1”
を書き込む。書き込み動作が生じている間、読み出し出
力はラッチによってラッチされ(図9,図10の例参
照)、それによってリードエネーブル信号とライトエネ
ーブル信号とが同時に発生した場合において、読み出し
データが書き込まれないようにしている。
【0019】データが読み出しポートメモリアレイ52
a,52b…52nに書き込まれると同時に、ライトエ
ネーブル信号は特定の記憶場所に対するタグレジスタに
送られる。このライトエネーブル信号W1は、第1アン
ドゲート105a1…105x1,105a2…105x2
及び105am…105xmのそれぞれに入力される。W
1が“真”でW2とW3が“偽”から“真”に反転される
ので、第1書き込みポートメモリアレイ54aに関連す
る第1アンドゲート105a1…105x1の出力は
“真”となる。尚、W1信号は他のすべての第1アンド
ゲート105a2…105x2及び105am…105xm
に入力されるが、“真”W1信号はそれらのアンドゲー
ト105a2…105x2,105am…105xmには
“偽”として入力されるので、それら他のアンドゲート
105a2…105x2,105am…105xmの出力は
“偽”でなければならない。W11が“真”であり、一
方、W1xが“偽”であるので(L1に対してのみライ
トエネーブル信号が発生する)、第1記憶場所に関連す
る第2のアンドゲート110a1の出力のみが“真”と
なる。このようにして、S11信号は“真”となり、タ
グレジスタ100a1のセット入力に対して“真”を与
える。同時に、S21及びSm1信号は“偽”であるの
で、第1オアゲート115a1はタグレジスタ100a1
のリセット入力に“偽”を与える。
【0020】かくして、第3アンドゲート12
W1R1L1,120W1R2L1…120W1RnL1へのTAG
W1R1L1,TAGW1R2L1…TAGW1RnL1入力はそれぞれ
“真”となる。記憶場所1に対するリードエネーブル信
号(R11,R21…Rn1)が発生した場合、そのリ
ードエネーブル信号は第3アンドゲート120W1R1L1
120W1R2L1…120W1RnL1にも入力され、第2オアゲ
ート125W1R1,125W1R2…125W1Rnに対し“真”
を与え、従って第2オアゲートは“真”出力を発生す
る。これらの出力は、TagW1R1,TagW1R2…Tag
W1Rnと指定され、第1書き込みポートメモリアレイ内の
記憶場所1から論理値“1”を出力するためにドライバ
ー60W1R1,60W1R2…60W1Rnに入力される。データ
が書き込みポート1,54aを通して記憶場所1
(L1)に書き込まれた後、新しいデータ、例えば、論
理値“0”が書き込みポート2,54bを通して記憶場
所1(L1)に書き込まれた場合、書き込みポート1,
54aに以前に書き込まれたデータ、即ち“1”でな
く、L1について最新に書き込まれたデータ即ち“0”
のみが読み出されることを保証するために以下のことが
実行される。
【0021】論理値“0”を書き込むため、書き込みポ
ート2、54b(W2)にライトエネーブル信号が発生
した時には本発明のエミュレーションシステムでは、読
み出しポートメモリアレイ52a1,52b1…52n1
内に位置する各記憶場所1,L1に論理値“0”を書き
込む。書き込み動作が行われている間、読み出し出力
は、ラッチによってラッチされ(図9,図10の例参
照)、リードエネーブル信号とライトエネーブル信号と
が同時に発生した場合において読み出しデータが書き込
まれないようにすることを保証している。データが読み
出しポートメモリアレイ52a1,52b1…52n1
書き込まれていると同時に、ライトエネーブル信号W2
は、タグレジスタ論理に送られる。このライトエネーブ
ル信号W2は、第1アンドゲート105a1…105
1,105a2…105x2及び105am…105xm
に入力される。W2が“真”であり、W1とW3が“偽”
から“真”に反転されるので第2書き込みポートメモリ
アレイ54bに関連する第1アンドゲート105a2
105x2の出力は“真”となる。尚、“真”W2信号は
他の全ての第1アンドゲート105a1…105x1及び
105am…105xmにも入力されるが、W2の反転信
号がこれら他のアンドゲート105a1…105x1及び
105am…105xmに入力されるので、これらアンド
ゲート105a1…105x1及び105am…105xm
の出力は“偽”となるはずである。W21が“真”であ
る一方、W2xが“偽”であるので(ライトエネーブル
信号はL1に対してのみ発生する)、第1記憶場所に関
係する第2アンドゲート110a2の出力のみが“真”
となる。かくして、S21信号は“真”であり、それに
よってタグレジスタ100a2のセット入力に対し
“真”を与える。と同時に、S11及びSm1信号は
“偽”であるので、第1オアゲート105a2はタグレ
ジスタ100a2のリセット入力に対し“偽”を与え
る。
【0022】このようにして、第3アンドゲート120
W2R1L1,120W2R2L1…120W2RnL1への入力TAG
W2R1L1,TAGW2R2L1…TAGW2RnL1はそれぞれ“真”
となる。記憶場所1に対するリードエネーブル信号(R
11,R21…Rn1)が発生した場合、その信号はT
AGW2R1L1,TAGW2R2L1…TAGW2RnL1入力に関連す
る第3アンドゲート120W2R1L1,120W2R2L1…12
W2RnL1へ入力される。これら第3アンドゲートは従っ
て、第2オアゲート125W2R1,125W2R2…125
W2Rnに“真”を与え、これら第2のオアゲートは“真”
の出力を生成する。これら出力はTagW2R1,Tag
W2R2…TagW2Rnと指定され、ドライバー60W2R1,6
W2R2…60W2Rnに入力され第2書き込みポートメモリ
アレイ54b内の記憶場所1から論理値“1”を出力す
る。読み出しポート1,56a内のドライバー60W1R1
と60WmR1,ドライバー60W1R2と60WmR2さらにドラ
イバー60W1Rnと60WmRnはタグレジスタによって非能
動化されるので、読み出しポートメモリアレイ52
1,52b1…52n1内に格納されたデータ、即ち、
最新に書き込まれたデータのみが読み出しポート56
a,56b…56nを通して読み出される。
【0023】第2書き込みポートメモリアレイ54b内
の第1記憶場所L1は“真”としてタグ付けされている
ので、“真”にセットされていたTagW1R1,Tag
W1R2…TagW1Rn信号は“偽”にリセットされることが
重要である。第1書き込みポートメモリアレイ54aの
第1記憶場所に関連する第1アンドゲート105a1
入力されるライトエネーブル信号W1はライトエネーブ
ル信号W2が“真”に変化した時に“偽”に変化される
ので上記のリセットは実際に生じる。“偽”が第2アン
ドゲート110a1に与えられるので第2アンドゲート
はタグレジスタ100a1のセット入力に対し“偽”を
与える。更に、S21が今では“真”であるので第1オ
アゲート115a1はタグレジスタ100a1のリセット
入力に対し“真”を与える。かくして、TAGW1R1L1
TAGW1R2L1…TAGW1RnL1は“偽”となる。そして、
“偽”は第3アンドゲート120W1R1L1,120W1R2L1
…120W1RnL1に与えられ、これら第3アンドゲートは
“偽”を第2オアゲート125W1R1,125W1R2…12
W1Rnに“偽”を与える。このため、TagW1R1,Ta
W1R2…TagW1Rnは“偽”となり、それによってドラ
イバー60W1R1,60W1R2…60W1Rnを非能動化する。
それ故、第1書き込みポートメモリアレイ54aの読み
出しポートメモリアレイ52a,52b…52n内の第
1記憶場所に格納されたデータは読み出されない。
【0024】タグレジスタの使用は1つの例を参照する
ことによって理解されるであろう。図9と図10は3つ
の書き込みポートと1つの読み出しポートを備えた2×
1のRAMを示す。このメモリ回路をエミュレートする
ために複製読み出しポートメモリアレイ205a,20
5a1,205a2が形成される。これら読み出しポート
メモリアレイ205a,205a1,205a2の各々は
2×1のメモリ回路である。読み出しポートメモリアレ
イ205aは第1書き込みポートメモリアレイ200a
内に位置する。読み出しポートメモリアレイ205a1
は第2の書き込みポートメモリアレイ200b内に位置
する。また、読み出しポートメモリアレイ205a2
第3書き込みポートメモリアレイ200c内に存在す
る。各ポートメモリアレイ200a,200b,200
cに対して各ポートアドレス及び読み出しポートアドレ
ス用入力を持つマルチプレクサ210がその読み出しポ
ートメモリアドレス205a,205a1,205a2
それぞれ入力される。従って、書き込みポートメモリア
レイ200a内の読み出しポートメモリアレイ205a
は書き込みポート1アドレスと読み出しポートアドレス
用入力を備え、電気的に読み出しポートメモリアレイと
接続されたマルチプレクサ210を有する。書き込みポ
ート1のデータは読み出しポートメモリアレイ205a
内の適当な記憶場所に直接に入力される。書き込みポー
トメモリアレイ200b内の読み出しポートメモリアレ
イ205a1は書き込みポート2アドレスと読み出しポー
トアドレスの入力を備え、読み出しポートメモリアレイ
に電気的に接続されたマルチプレクサ210を有する。
書き込みポートメモリアレイ200c内の読み出しポー
トメモリアレイ205a2は書き込みポート3アドレスと
読み出しポートアドレスの入力を備え、読み出しポート
メモリアレイに電気的に接続されたマルチプレクサ21
0を有する。書き込みポート3のデータは読み出しポー
トメモリアレイ205a2内の適当な記憶場所に直接に
入力される。読み出しポートメモリアレイ205aは、
ラッチ215に接続され、さらにドライバー220aに
接続されており、読み出しポートメモリアレイ205a
1はラッチ215に接続され、さらに、ドライバー22
0bに接続され、読み出しポートメモリアレイ205a
2はラッチ215に接続され、さらにドライバー220
Cに接続されている。
【0025】上で議論したように、特定のデザインのた
めに必要なタグレジスタの数は書き込みポート数に記憶
場所の数を掛け合わせることによって決められる。図9
及び図10の例では、3個の書き込みポートと2個の記
憶場所が存在するので、6個のタグレジスタ225a,
225b,227a,227b,229a及び229b
が必要となる。タグレジスタ225a,227a及び2
29aは記憶場所1(L1)に最新に書き込まれたデー
タが各読み出しポートを通して読み出されることを保証
する。タグレジスタ225b,227b及び229bは
記憶場所2(L2)に最新に書かれたデータが各読みポ
ートと通して読み出されることを保証する。各タグレジ
スタ225a,225b,227a,227b,229
aおよび229bはこの例ではセット・リセット形式の
フリップ・フロップである。
【0026】各タグレジスタ225a,225b,22
7a,227b,229a及び229bへの入力論理は
以下の通りである。各ライトエネーブル信号、即ち、こ
の信号ではライトエネーブル1(W1),ライトエネー
ブル2(W2)及びライトエネーブル3(W3)のための
入力を有する第1アンドゲート235からの出力は第2
アンドゲート240に入力される。第2アンドゲート2
40への第2の入力はそのライトポートメモリアレイ内
の特定の位置に対するライトエネーブル信号であり、そ
れは例えば、第1記憶位置へのライトエネーブル信号で
あるW11である。第2アンドゲート240の出力は特
定の記憶場所に対するセット信号であり、上で述べたよ
うに、この信号はSmxとラベル付けされ、ここでmは
特定の書き込みポートでありxは特定の記憶場所であ
る。このSmx信号はタグレジスタ225a,225
b,227a,227b,229a及び229bのセッ
ト入力に入力される。タグレジスタはそれに関連する特
定の書き込みポートメモリアレイによって配列される。
第1アンドゲート235に対するW1,W2及びW3入力
はそのタグレジスタが関係する特定の書き込みポート入
力に対する入力が“真”であるときにのみ行われるよう
になっている。この例では、第1書き込みポートメモリ
アレイ200aに関連するタグレジスタ225aと22
5bに対するW1入力のみが“真”となる。第2書き込
みポートメモリアレイ200bに関連するタグレジスタ
227a,227bに対するW2入力のみが“真”とな
る。同様に、第3書き込みポートメモリアレイ200c
に関連するタグレジスタ229a,229bに対するW
3入力のみが“真”である。
【0027】第1オアゲート245の出力はタグレジス
タ225a,225b,227a,227b,229a
及び229bのリセット入力に入力される。第1オアゲ
ート245への入力は他のポートに対して同じ記憶場所
に関連するタグレジスタへ入力されるセットSmx信号
である。タグレジスタ225a,225b,227a,
227b,229a及び229bの出力、即ち、TAG
WnRmLxは第3アンドゲート250の入力に接続されてい
る。この例では、シングル読み出しポートのみが存在す
るのでタグレジスタからは単一の出力が得られることに
なる。第3アンドゲートに対する他方入力はTAG
WnRmLxに関連する記憶場所に対するリードエネーブル信
号である。この例ではタグレジスタ225aからの出力
は第1書き込みポートメモリアレイ内の第1読み出しメ
モリアレイ内の第1記憶場所をタグ付けするのでTAG
W1R1L1で指示される。TAGW1R1L1は第3アンドゲート
250に入力される。さらに、第1記憶場所に対するリ
ードエネーブル信号は第3アンドゲート250に入力さ
れる。
【0028】タグレジスタ225a,225b,227
a,227b,229a及び229bの各々に対して第
3のアンドゲート250が存在する。特定の書き込みポ
ートメモリアレイに関連する第3アンドゲート250の
各々の出力は特定の第2オアゲート255に入力され
る。第2オアゲートの出力は種々のドライバー220
a,220b,220cへの入力される信号である。タ
グレジスタ225a,225b,227a,227b,
229a及び229bは特定の記憶場所に最新に書き込
まれたデータのみが選択された読み出しポートから読み
出されたことを保証する。例えば、論理値“1”を記憶
場所に(L2)に書くためにライトエネーブル信号が書
き込みポート1、200a(W1)に発生した場合、本
発明のエミュレーションシステムでは論理値“1”を各
読み出しポートメモリアレイ205a,205b及び2
05cの各々の内部に位置する各L2に書き込む。書き
込み動作が発生している間読み出し出力はラッチ215
によってラッチされ、それによって、リードエネーブル
信号とライトエネーブル信号が同時に発生した場合にお
いても読み出されたデータが書き込まれないようにして
いる。データが読み出しポートメモリアレイに書き込ま
れるのと同時にライトエネーブル信号は特定の記憶場所
に対するタグレジスタに送られる。このライトエネーブ
ル信号W1は第1書き込みポートメモリアレイ内の第1
及び第2記憶場所のためのタグレジスタ225aおよび
225bに関連する第1アンドゲート235を通して入
力される。W1は“真”であり、W2とW3は“偽”から
“真”に反転されているので、第1書き込みポートメモ
リアレイ200aに関連する第1アンドゲートの出力は
“真”となる。なお、W1信号は他の全ての第1アンド
ゲート235にも入力されるが、反転信号がそれら第1
アンドゲート235には入力されるのでそれら他のアン
ドゲートの出力は“偽”とされる。しかしながら、W1
1が“偽”である一方、W12が“真”であるので、
第2記憶場所に関連する第2アンドゲート240の出力
のみが“真”となる。このようにして、S12信号が
“真”となり、それによってタグレジスタ225bのセ
ット入力に“真”を与える。同時に、S22及びS32
信号は“偽”となるので、第1オアゲートはタグレジス
タ225bのリセット入力に“偽”を与える。
【0029】かくして、第3アンドゲート250へのT
AGW1R1L2入力は“真”となる。記憶場所2(R12
に対するリードエネーブル信号がその信号はTAG
W1R1L2入力に関係する第3アンドゲートに入力され、上
記第3アンドゲートは第2オアゲート225に“真”を
与え、この第2オアゲートは“真”出力を生成する。こ
の出力はTagW1R1と指定される。第1書き込みポート
メモリアレイ内の記憶場所2から論理値“1”を出力す
るためにドライバー220aに入力される。書き込みポ
ート1、220aを介して記憶場所2(L2)にデータ
が書き込まれた後新しいデータ、例えば論理値“0”、
が書き込みポート2,200bを通して記憶場所2(L
2)に書き込まれた時には、以前に書き込みポート1に
書き込まれたデータ即ち“1”ではなしにL2に対して
最新に書き込まれたデータ即ち“0”が読み出されるこ
とを保証するために以下のことが行われる。論理値
“0”を書き込むために、ライトエネーブル信号が書き
込みポート2,200b(W2)に発生したときには本
発明のエミュレーションシステムは読み出しポートメモ
リアレイ205a1内に位置する各記憶場所2,L2に論
理値“0”を書き込む。書き込み動作が行われている
間、読み出された出力はラッチ215によってラッチさ
れ、それによってリードエネーブル信号とライトエネー
ブル信号が同時に起こった場合に読み出されたデータが
書き込まれないようにすることを保証している。データ
が読み出しポートメモリアレイ205a1に書き込まれ
ると同時に、ライトエネーブル信号W2は特定の記憶場
合に対するタグレジスタに送られる。このライトエネー
ブル信号W2は第2書き込みポートメモリアレイ内の第
1及び第2記憶場合に対するタグレジスタ227a及び
227bに関連する第1アンドゲート235を通して入
力される。W2は“真”であり、W1とW3は“偽”から
“真”に反転されるので、第2書き込みポートメモリア
レイ200bに関連する第1アンドゲートの出力は
“真”となる。なお、“真”であるW2信号は他の第1
アンドゲート235の全てに入力されるが、これらのア
ンドゲート235には反転信号が入力されるので、これ
ら他のアンドゲートの出力は“偽”となる。しかしなが
ら、W21が“偽”であることをW22は“真”である
ので、第2記憶場合に関連する第2アンドゲート240
の出力のみが“真”となる。かくして、S22信号は
“真”となり、それによってタグレジスタ227bのセ
ット入力には“真”が与えられる。同時に、S12及び
32信号は“偽”であるので、第1オアゲートはタグ
レジスタ225bのリセット入力に“偽”を与える。
【0030】かくして、第3アンドゲート250へのT
AGW2R1L2入力は“真”となる。記憶場所2(R12
に対するリードエネーブル信号が発生した場合、そのエ
ネーブル信号はTAGW2R1L2入力に関連する第3アンド
ゲートに入力され、それによって、第2オアゲート25
5に対し“真”を与え、第2オアゲートは“真”出力を
生成する。この出力はTagW2R1と指定され、第1書き
込みポートメモリアレイ内の記憶場所2から論理値
“1”を出力するためにドライバー220bに入力され
る。第2書き込みポートメモリアレイ205b内の第2
記憶場所L2は“真”としてタグ付けされているので、
“真”に設定されたTagW1R1信号が“偽”にリセット
されることが重要である。ライトエネーブル信号W2
“真”となる時に、第1書き込みポートメモリアレイ2
05aに関係する第1アンドゲートに書き込みエネーブ
ル信号W1が入力されるので上記のことは実際に保証さ
れる。“偽”が第2アンドゲート240に対して与えら
れるので、タグレジスタ225aのセット入力に対して
“偽”が与えられる。さらに、S22が現在は“真”で
あるので、第1オアゲート245はタグレジスタ225
bのリセット入力に対して“真”を与える。かくして、
TAGW1R1L2は“偽”となり、この“偽”は第3アンド
ゲート250に与えられ、第3アンドゲートは第2オア
ゲート255に“偽”を与える。このことによってTa
W1R1は“偽”となる。それ故、第1書き込みポートメ
モリアレイ205a内の第2記憶場所は読み出されるこ
とがない。以上のように、マルチポートメモリエミュレ
ーションのための好ましい方法と装置について詳述し
た。この発明の実施例とその応用が図示されかつ記述さ
れたけれども、当業者にとって明らかなようにここに開
示した発明思想から逸脱することなしにより多くの実施
例やその応用が可能である。本発明はそれ故、添付のク
レームのエッセンス内におけるのを除いて限定的に解釈
されるべきではない。
【図面の簡単な説明】
【図1】 図1は、マルチポートランダムアクセスメモ
リ回路のブロックダイヤグラムである。
【図2】 図2は、キシリンクス型のフィールド・プロ
グラマブル・ゲートアレイの全体の論理ブロックの図式
的なダイヤグラムである。
【図3】 図3は、マルチポートメモリ回路をエミュレ
ートするために使用される本発明の実施例に係るフロー
チャートである。
【図4】 図4は、本発明に従って書き込みポートメモ
リアレイと読み出しポートメモリアレイとが備えられた
マルチポートランダムアクセスメモリ回路のブロック回
路である。
【図5】 図5は、図4に示すマルチポートランダムア
クセスメモリ回路をエミュレートする際に使用されるタ
グレジスタの1部のブロックダイヤグラムである。
【図6】 図6は、図4に示すマルチポートランダムア
クセスメモリ回路をエミュレートする際に使用されるタ
グレジスタの1部のブロックダイヤグラムである。
【図7】 図7は、図4に示すマルチポートランダムア
クセスメモリ回路をエミュレートする際に使用されるタ
グレジスタの1部のブロックダイヤグラムである。
【図8】 図8は、特定の記憶場所について最新に書き
込まれたデータを追跡することが重要である理由を示す
ダイヤグラムである。
【図9】 図9は、本発明の技術思想に基づいたマルチ
ポートメモリ回路の構成の一例のブロックダイヤグラム
である。
【図10】 図10は、本発明の技術思想に基づいたマ
ルチポートメモリ回路の構成の一例のブロックダイヤグ
ラムである。
【符号の説明】
52a…52n,52a1…52n1,…52am…52
m 読み出しポートメモリアレイ、 54a,…,54m 書き込みポートメモリアレイ、 56a,…,56n 読み出しポート、 100a1,…,100x1 タグレジスタ、 100a2,…,100x2 タグレジスタ、 : : : 100am,…,100xm タグレジスタ。

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 プログラマブルな論理素子群内に存在す
    るメモリ資源を用いてマルチポートメモリ回路をエミュ
    レートする方法であって、マルチポートメモリはデータ
    を格納するためのX個の記憶場所と、X個の記憶場所か
    らデータを読み出すためのY個の読み出しポートと、X
    個の記憶場所にデータを書き込むためのZ個の書き込み
    ポートを有しており、上記方法は以下のステップからな
    る:上記プログラマブル論理素子のメモリ資源内におい
    て実行できるX個の記憶場所を備えた読み出しポートメ
    モリアレイのネットリストの定義を発生する;上記読み
    出しポートメモリアレイの上記ネットリストの定義をY
    回複製して書き込みポートメモリアレイのネットリスト
    の定義を生成する:上記書き込みポートメモリアレイの
    ネットリストの定義をZ回複製する;上記プログラマブ
    ル論理素子のメモリ資源を上記Z個の書き込みポートメ
    モリアレイを構成するようにプログラムする、上記Z個
    の書き込みポートメモリアレイの各々はY個の書き込み
    ポートメモリアレイを有し、上記Y個読み出しポートメ
    モリアレイの各々はX個の記憶場所を有しており、更
    に、上記Z個の書き込みポートメモリアレイ内に位置す
    る上記Y個の読み出しポートメモリアレイの各々はX個
    の記憶場所を有しており、上記Z個の書き込みポートメ
    モリアレイの選択された1つ内に位置する上記Y個の読
    み出しポートメモリアレイの各々の内にあるX個の記憶
    場所の選ばれた1つにデータを書き込む;及び上記Z個
    の書き込みポートメモリアレイの選択された1つの内部
    に位置する上記Y個の読み出しポートメモリアレイの上
    記X個の記憶場所の選ばれた1つを最新に書き込まれた
    としてタグを付する。
  2. 【請求項2】 請求項1に記載のマルチポートメモリエ
    ミュレーション回路をエミュレートする方法であって、
    該方法はさらに以下のステップを含む:上記読み出しポ
    ートメモリアレイの各々の出力を各々対応するマルチプ
    レクサに電気的に接続させる;及びデータがその記憶場
    所に書かれたときに上記1つの書き込みポートメモリア
    レイ内に位置する上記読み出しポートメモリアレイの各
    々の記憶場所を最新に、データが書かれたことを示すタ
    グを付ける。
  3. 【請求項3】 上記プログラマブル論理素子は構成可能
    な論理ブロックを含み、かつ、上記タグ付けステップが
    さらに以下のステップを含む請求項2記載の方法:各書
    き込みポートメモリアレイ内に位置する各複製記憶場所
    に対してタグレジスタを与え、上記タグレジスタは上記
    プログラマブル論理素子内の構成可能な論理ブロック内
    に備えられており、かつタグレジスタはセット入力とリ
    セット入力と出力とを備える;及び上記タグレジスタの
    各々の出力と上記マルチプレクサの各々の選択入力と
    を、該マルチプレクサが最新に書き込まれた記憶場所を
    マルチポートメモリ回路の読み出しポートに接続しうる
    ように電気的に接続させる。
  4. 【請求項4】 メモリ資源と論理資源を有するプログラ
    マブル論理素子内にマルチポートメモリ回路を構成する
    方法であって、上記マルチポートメモリ回路はデータを
    格納するための記憶場所、記憶場所からデータを読み出
    すための読み出しポートと記憶場所にデータを書き込む
    ための書き込みポートとを備えており、上記方法は以下
    のステップからなる:読み出しポートメモリアレイを定
    義するために上記プログラマブル論理素子のメモリ資源
    内に記憶場所を生成する;上記マルチポートメモリ回路
    の読み出しポートの各々について上記読み出しポートメ
    モリアレイを上記プログラマブル論理素子のメモリ資源
    内において複製し、それによって書き込みポートメモリ
    アレイを定義し、該書き込みポートメモリアレイは上記
    マルチポートメモリ回路の読み出しポート数に等しい数
    の読み出しポートメモリアレイからなり;上記書き込み
    ポートメモリアレイを上記マルチポートメモリ回路の書
    き込みポートの各々についてプログラマブル論理素子の
    メモリ資源内において複製する;及び上記プログラマブ
    ル論理素子の論理資源内においてタグアレイを構成し、
    該タグアレイは各書き込みポートメモリアレイ内に位置
    する記憶場所の各々に対するレジスタからなり、該レジ
    スタはそのレジスタに対応する記憶場所にデータが最新
    に書き込まれたか否かを示すデータを格納する。
  5. 【請求項5】 複数の再プログラマブル論理回路におい
    て、集積回路をエミュレートする方法であって、再プロ
    グラマブル論理回路はメモリ資源を備えており上記集積
    回路はデータを格納するためのX個の記憶場所と、X個
    の記憶場所からデータを読み出すY個の読み出しポート
    とX個の記憶場所にデータを書き込むためのZ個の書き
    込むポートを有するメモリ回路を含んでおり、上記方法
    は以下のステップからなる:プログラマブル論理素子の
    メモリ資源内において、実施可能なX個の記憶場所を備
    えた読み出しポートメモリアレイのネットリスト記述を
    生成する;上記読み出しポートメモリアレイを上記ネッ
    トリスト記述内においてY回複製して、書き込みポート
    メモリアレイを定義する;上記書き込みポートメモリア
    レイを上記ネットリスト記述内においてZ回複製する;
    及びZ個の書き込みポートメモリアレイのいずれのもの
    が最新に書かれたデータを有しているかを格納するタグ
    アレイを定義し、該タグアレイはX×Zのタグレジスタ
    からなる。
JP7066549A 1994-03-24 1995-03-24 タグレジスタを用いたマルチポートメモリエミュレーション Pending JPH0844787A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/217,049 US5448522A (en) 1994-03-24 1994-03-24 Multi-port memory emulation using tag registers
US217049 1998-12-21

Publications (1)

Publication Number Publication Date
JPH0844787A true JPH0844787A (ja) 1996-02-16

Family

ID=22809481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7066549A Pending JPH0844787A (ja) 1994-03-24 1995-03-24 タグレジスタを用いたマルチポートメモリエミュレーション

Country Status (5)

Country Link
US (2) US5448522A (ja)
JP (1) JPH0844787A (ja)
DE (1) DE19510902A1 (ja)
FR (1) FR2717923B1 (ja)
GB (1) GB2287810B (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5550782A (en) * 1991-09-03 1996-08-27 Altera Corporation Programmable logic array integrated circuits
IL109921A (en) * 1993-06-24 1997-09-30 Quickturn Design Systems Method and apparatus for configuring memory circuits
US5680583A (en) * 1994-02-16 1997-10-21 Arkos Design, Inc. Method and apparatus for a trace buffer in an emulation system
US5920712A (en) * 1994-05-13 1999-07-06 Quickturn Design Systems, Inc. Emulation system having multiple emulator clock cycles per emulated clock cycle
US5566123A (en) * 1995-02-10 1996-10-15 Xilinx, Inc. Synchronous dual port ram
US5819065A (en) * 1995-06-28 1998-10-06 Quickturn Design Systems, Inc. System and method for emulating memory
US5923865A (en) * 1995-06-28 1999-07-13 Quickturn Design Systems, Inc. Emulation system having multiple emulated clock cycles per emulator clock cycle and improved signal routing
US5822564A (en) * 1996-06-03 1998-10-13 Quickturn Design Systems, Inc. Checkpointing in an emulation system
US5841967A (en) 1996-10-17 1998-11-24 Quickturn Design Systems, Inc. Method and apparatus for design verification using emulation and simulation
US6389379B1 (en) 1997-05-02 2002-05-14 Axis Systems, Inc. Converification system and method
US6026230A (en) * 1997-05-02 2000-02-15 Axis Systems, Inc. Memory simulation system and method
US6134516A (en) 1997-05-02 2000-10-17 Axis Systems, Inc. Simulation server system and method
US6421251B1 (en) 1997-05-02 2002-07-16 Axis Systems Inc Array board interconnect system and method
US6321366B1 (en) 1997-05-02 2001-11-20 Axis Systems, Inc. Timing-insensitive glitch-free logic system and method
US6009256A (en) * 1997-05-02 1999-12-28 Axis Systems, Inc. Simulation/emulation system and method
US5960191A (en) 1997-05-30 1999-09-28 Quickturn Design Systems, Inc. Emulation system with time-multiplexed interconnect
US5970240A (en) 1997-06-25 1999-10-19 Quickturn Design Systems, Inc. Method and apparatus for configurable memory emulation
US6263484B1 (en) 1997-10-01 2001-07-17 Yang-Sei Yang Prototyping system and a method of operating the same
US6191998B1 (en) * 1997-10-16 2001-02-20 Altera Corporation Programmable logic device memory array circuit having combinable single-port memory arrays
US5883852A (en) * 1998-02-23 1999-03-16 Dynachip Corporation Configurable SRAM for field programmable gate array
US6467017B1 (en) 1998-06-23 2002-10-15 Altera Corporation Programmable logic device having embedded dual-port random access memory configurable as single-port memory
US6279146B1 (en) 1999-01-06 2001-08-21 Simutech Corporation Apparatus and method for verifying a multi-component electronic design
US6701491B1 (en) * 1999-06-26 2004-03-02 Sei-Yang Yang Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US6272451B1 (en) * 1999-07-16 2001-08-07 Atmel Corporation Software tool to allow field programmable system level devices
US6556579B1 (en) * 1999-09-21 2003-04-29 3Com Corporation Method and apparatus for detecting duplicate buffers in a descriptor based multi-port queue
US7111110B1 (en) 2002-12-10 2006-09-19 Altera Corporation Versatile RAM for programmable logic device
US6654308B1 (en) 2002-12-23 2003-11-25 Hewlett-Packard Development Company, Lp. Memory having multiple write ports and multiple control memory units, and method of operation
US6813215B2 (en) * 2002-12-23 2004-11-02 Hewlett-Packard Development Company, L.P. Memory having multiple write ports and method of operation
US6754130B1 (en) 2002-12-23 2004-06-22 Hewlett-Packard Development Company, Lp. Memory having multiple write ports and write insert unit, and method of operation
US7924845B2 (en) * 2003-09-30 2011-04-12 Mentor Graphics Corporation Message-based low latency circuit emulation signal transfer
US20060089829A1 (en) * 2004-10-21 2006-04-27 International Business Machines Corporation Method and apparatus to efficiently access modeled memory in a logic simulation hardware emulator
US8959010B1 (en) 2011-12-08 2015-02-17 Cadence Design Systems, Inc. Emulation system with improved reliability of interconnect and a method for programming such interconnect
US8743735B1 (en) 2012-01-18 2014-06-03 Cadence Design Systems, Inc. Emulation system for verifying a network device
US8595683B1 (en) 2012-04-12 2013-11-26 Cadence Design Systems, Inc. Generating user clocks for a prototyping environment

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0787032B2 (ja) * 1985-07-08 1995-09-20 日本電気アイシ−マイコンシステム株式会社 半導体記憶装置
US4862347A (en) * 1986-04-22 1989-08-29 International Business Machine Corporation System for simulating memory arrays in a logic simulation machine
US5148397A (en) * 1989-03-16 1992-09-15 Oki Electric Industry Co. Ltd. Semiconductor memory with externally controlled dummy comparator

Also Published As

Publication number Publication date
FR2717923B1 (fr) 1997-01-31
FR2717923A1 (fr) 1995-09-29
GB2287810A (en) 1995-09-27
US5448522A (en) 1995-09-05
DE19510902A1 (de) 1995-09-28
US5563829A (en) 1996-10-08
GB9505638D0 (en) 1995-05-10
GB2287810B (en) 1998-07-29

Similar Documents

Publication Publication Date Title
JPH0844787A (ja) タグレジスタを用いたマルチポートメモリエミュレーション
US7769577B2 (en) Hardware accelerator with a single partition for latches and combinational logic
US5940603A (en) Method and apparatus for emulating multi-ported memory circuits
US6265894B1 (en) Reconfigurable integrated circuit with integrated debugging facilities for use in an emulation system
US5944813A (en) FPGA input output buffer with registered tristate enable
US4914612A (en) Massively distributed simulation engine
US6701491B1 (en) Input/output probing apparatus and input/output probing method using the same, and mixed emulation/simulation method based on it
US8947954B2 (en) Random access memory for use in an emulation environment
JPH07177008A (ja) 改良されたプログラマブル論理セルアレイアーキテクチャ
CA1246743A (en) Array for simulating computer functions for large computer systems
EP0178163B1 (en) A dual access digital storage device
Jones et al. A 9-kbit associative memory for high-speed parallel processing applications
US5995425A (en) Design of provably correct storage arrays
US5150290A (en) Processor array system incorporating n-bit scalar processor and m x m-bit processor array
US7248491B1 (en) Circuit for and method of implementing a content addressable memory in a programmable logic device
US6389580B1 (en) Computer readable storage medium having logic synthesis program, and logic synthesis method and apparatus
US7242633B1 (en) Memory device and method of transferring data in memory device
Ortega-Sánchez et al. Fault-tolerant Systems: The way Biology does it!
Garimella et al. A system for automated built-in self-test of embedded memory cores in system-on-chip
Tavares et al. On the development of an island-style FPGA
KR100315842B1 (ko) 필드 프로그래머블 메모리 어레이의 각 메모리 셀에 대해 비트기입 동작을 수행하는 시스템 및 메모리 시스템
Walker A 4-kbit four-transistor dynamic RAM
Berthet et al. Synthesis of VHDL arrays on RAM cells
JPH0447492B2 (ja)
JP2002510802A (ja) 自動回路検証のための制御を与えるテストセルの配列を有する集積回路構造

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050510

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20051206