G/A RAM ライブラリ作成ツールで作成されるライブラリについて

1. 作成されるライブラリの種類

このG/A RAMライブラリ作成ツールを使うと、以下のライブラリを作成することができます。

(1) RTLシミュレーション用ライブラリ (_rtl.lib, _rtl.vhd)

弊社ゲートアレイ同期RAMのRTLシミュレーション用ライブラリです。
ここで、Verilog記述用のファイル名は、"(RAMセル名)_rtl.lib"で、VHDL記述用のファイル名は、"(RAMセル名)_rtl.vhd"です。

(2) バス記述用ラッパーの例 (_wrp.v, _wrp.vhdS)

上記(1)のRAMモデルは、入出力ピンがバス記述になっておらず、接続に手間がかかります。そこで、それらのピンをバス記述へ変換するためのモジュールです。ただし、これを用いると、階層が1つ増えます。そして、このモジュールは、必ずしも使用する必要はありませんが、このモジュールを使用した場合は、お客様のRTL記述ファイルと一緒に、このファイルもお送りください。

ここで、このモジュール名は、"(RAMセル名)_wrp"になります。 また、Verilog記述用のファイル名は、"(RAMセル名)_wrp.v"で、VHDL記述用のファイル名は、"(RAMセル名)_wrp.vhd"です。

(3) 論理合成用モジュール(S1L50000シリーズのみ)

S1L50000シリーズの同期RAMは、非同期RAMにd-FFなどの回路を付加したソフトマクロです。そして、そのソフトマクロは、このモジュールを論理合成することで実現されます。つきましては、論理合成される場合は、このドキュメントの 3-2章をご参照くださり、お客様のRTLと一緒に、このファイルも合成してください。

また、弊社で論理合成させていただく場合は、お客様のRTL記述ファイルと一緒に、このファイルもお送りください。

ここで、Verilog記述用のファイル名は、"(RAMセル名)_syn.lib" で、VHDL 記述用のファイル名は、"(RAMセル名)_syn.vhd"です。

2. 注意

以下に、このライブラリに関する一般的な注意を記します。

  • S1L50000シリーズ以外のRAMの機能につきましては、それぞれのデザインガイドをご参照ください。
    S1L50000シリーズについては、このドキュメントの3章をご参照ください。
  • RTLシミュレーション・ライブラリは、簡易モデルですので、実機の動作を十分に反映しておりません。最終的には、遅延シミュレーションにて、十分に検証してください。
  • アドレスがX(不定)状態の時に書き込み動作を行うと、全てのアドレスの保持データが、Xになります。
  • コントロール信号がXになった場合、書き込み動作の可能性がある場合は、入力されているアドレスにXを書き込みます。

3. S1L50000シリーズ同期RAM

S1L50000シリーズ同期RAMは、ソフトマクロです。しかし、RTL上では、1つのマクロとして扱い、論理合成以降で、ソフトマクロとして扱います。

3-1. シミュレーションや動作に関する注意

以下に、S1L50000シリーズ同期RAMのシミュレーションや動作に関する注意を記します。

  • 同期1ポートRAMのチップ・セレクト(XCS)や同期2ポートRAMのリード・イネーブル(XRB)をインアクティブ(High)にすると、出力データは保持されません(シミュレーションでは、X(不定)状態になります)。
  • 同期2ポートRAMで、同じアドレスに、同時に書き込みと読み出しと行うと、同じサイクル内で書き込んだデータを読み出すことが可能です。しかし、その読み出しアクセス・タイムは、通常のそれとは異なること(参照:3-11)にご注意ください。
  • 同期2ポートRAMにおいて、ある読み出しアドレス(AB*)をラッチした状態で、読み出しクロック(CKB)が停止した状態でも、そのアドレスに新たなデータが書き込まれた場合、その新たなデータが読み出されることに注意してください。これは、出力データをラッチしない構造のためです。
  • ソフトマクロのため、タイミングは、配置配線後に変わります。
  • 強制チップセレクト(FCS)は、テスト専用端子です。通常動作時には、Highに固定してご使用ください。また、RTLシミュレーション・モデルでは、FCSがHighの場合にのみ正しい動作をするように記述しております。例えば、FCSがLowの場合に書き込み状態になり、その状態でFCSがHighに変化した場合、タイミングによっては、書き込み動作がなされることがありますが、このRTLシミュレーション・モデルでは、書き込みを行いません。

3-2. 論理合成時の注意

以下に、S1L50000シリーズ同期RAMを含んだRTLを、論理合成する場合の注意を記します。

  • 上記1-(3)で説明した、論理合成用モジュールには、S1L50000シリーズの標準セルが記述されていますので、リンク・ライブラリにも、S1L50000シリーズのライブラリを指定してください。

    例) set link_library { * s1l50000_33v.db }

  • 上記1-(3)で説明した、論理合成用モジュールに、"DL2"という遅延セルが内蔵されていますので、これが論理圧縮されて消えないよう、ドント・タッチの指定をお願いします。

    例) set_dont_touch s1l50000/DL2

  • 上記1-(3)で説明した、論理合成用モジュルール(_syn.vまたは_syn.vhd)を、他のRTLソース・ファイルと一緒に読み込んでください。

    例) read_verilog SK06008X_syn.v

3-3. 概要

以下に、S1L50000シリーズ同期RAMの概要を説明します。

  • 同期RAMには、1ポート・タイプと、2ポート・タイプがあります。同期2ポートRAMは、ポートAが、書き込み専用で、ポートBが、読み出し専用です。
  • ワード深さ(ワード数)は、4Word刻みで8Word ~ 256Wordの範囲で構成可能です。また、ワード幅(ビット数)は、1bit刻みで1bit ~ 32bitの範囲で構成可能です。ただし、内蔵されている非同期RAMにおきまして、非存在アドレスへのアクセス(例. 94 word RAMのアドレス94へアクセス)が禁止されております。回路的に、その可能性があります場合は、ワード深さが2のベキ乗のRAMを組み合わせてご使用ください。

3-4. ワード・ビット構成とセル名

S1L50000シリーズ同期RAMのセル名は、以下のように、その大きさによって決まります

  • 同期1ポートRAMのセル名 … SJwwwbbX
  • 同期2ポートRAMのセル名 … SKwwwbbX

ここで、www: ワード深さ(ワード数)を、16進数で表した3桁の文字
bb: ワード幅(ビット数)を、16進数で表現した2桁の文字

表1. 1ポートRAMのセル名例

ビット/ワード 32 Word 64 Word 128 Word 256 Word
8 bit SJ02008X SJ04008X SJ08008X SJ10008X
10 bit SJ0200AX SJ0400AX SJ0800AX SJ1000AX
16 bit SJ02010X SJ04010X SJ08010X SJ10010X
32 bit SJ02020X SJ04020X SJ08020X SJ10020X

表2. 2ポートRAMのセル名例

ビット/ワード 32 Word 64 Word 128 Word 256 Word
8 bit SK02008X SK04008X SK08008X SK10008X
10 bit SK0200AX SK0400AX SK0800AX SK1000AX
16 bit SK02010X SK04010X SK08010X SK10010X
32 bit SK02020X SK04020X SK08020X SK10020X

3-5. ベーシック・セル数

S1L50000シリーズ同期RAMのベーシック・セル数(BC数)は、非同期RAMに、以下の付加回路の大きさを加えたものになります。 ここで、非同期RAMの大きさは、S1L50000シリーズデザインガイドをご参照ください。

  • 同期1ポートRAMの付加回路の大きさ

    ((アドレス・ピン数) + (ワード幅) × 2) × (D-FFのBC数) + 13 [BC]

  • 同期2ポートRAMの付加回路の大きさ

    ((アドレス・ピン数) × 2 + (ワード幅) × 2) × (D-FFのBC数) + 13 [BC]

ここで、D-FFのBC数は、S1L50000シリーズMSIライブラリをご参照ください。ただし、とりあえずの目安をでよろしければ、ローノイズ・タイプSCAN―FFの10BCで計算するといいでしょう。

3-6. 同期1ポートRAM端子説明

表3に、同期1ポートRAMの端子説明を示します。

表3.同期1ポートRAM端子説明

端子名 信号名 説明
CK クロック入力 このクロック入力(CK)の立ち上がりエッジ(L->H)で、FCS以外の入力信号をラッチします。
XCS チップ・セレクト入力 CKでラッチされた値が、Lowの場合、RAMが動作します。このラッチされた値が、Highの場合は、出力Y*が不定になり、直前のデータは保持されないことにご注意ください。
XWE ライト・イネーブル入力 CKでラッチされた値が、Lowの場合は、書き込み動作を、それがHighの場合は、読み出し動作を行います。
A0 ~ An アドレス入力 アドレス入力端子です。
D0 ~ Dn データ入力 書き込みデータ入力端子です。
Y0 ~ Yn データ出力 読み出し動作時には、CKの立ち上がりエッジからアクセス時間後に、読み出しデータが出力されます。書き込み動作時には、サイクルの前半は不定で、後半に書き込んだデータが読み出されます。
FCS 強制チップ・セレクト入力 テスト時に、非同期RAMを強制的にディスエイブルするために用います。通常使用時は、Highに固定してください。

3-7. 同期1ポートRAM構成図

同期1ポートRAMは、図1のように、非同期1ポートRAMとD-FFとゲートを用いて構成されています。

3-8. 同期1ポートRAMタイミング仕様

図2と図3に、同期1ポートRAMのタイミング図を示し、表4に、タイミング・データを示します。

表4.同期1ポートRAMタイミング・データ

端子名 信号名 説明
アクセス・タイム tACS (D-FF遅延)+(非同期RAMアクセス・タイム)
入力信号セットアップ・タイム tSI D-FFのセットアップ・タイム
入力信号ホールド・タイム tHI D-FFのホールド・タイム
出力ホールド・タイム tHO (D-FF遅延)+(非同期RAM出力ホールド・タイム)
クロック・ハイ・パルス幅 tWH (非同期RAMライト・パルス幅)+(マージン)
書き込み後読み出し遅延 tDWR (非同期RAM・RWアクセス・タイム)+(DL2遅延)+(OR21遅延)

3-9. 同期2ポートRAM端子説明

表5に、同期2ポートRAMの端子説明を示します。

表5.同期2ポートRAM端子説明

名称 記号 説明
CKA クロックA入力 ポートA(書き込みポート)用のクロック入力です。このクロック入力(CKA)の立ち上がりエッジ(L->H)で、ポートAの入力信号(XWAとAA*とD*)をラッチします。
XWA ライト・イネーブル入力 CKAでラッチされた値が、Lowの場合は、書き込み動作を行います。
AA0 ~ AAn ライト・アドレス入力 書き込みポート用アドレス入力端子です。
D0 ~ Dn データ入力 書き込みデータ入力端子です。
CKB クロックB入力 ポートB(読み出しポート)用のクロック入力です。このクロック入力(CKB)の立ち上がりエッジ(L->H)で、ポートBの入力信号(XRBとAB*)をラッチします。
XRB リード・イネーブル入力 CKBでラッチされた値が、Lowの場合は、読み出し動作を行います。この入力が、Highの場合は、出力Y*が不定になる(直前のデータを保持しない)ことにご注意ください。
Y0 ~ Yn データ出力 読み出し動作時には、CKBの立ち上がりエッジからアクセス時間後に、読み出しデータが出力されます。
FCS 強制チップ・セレクト入力 テスト時に、非同期RAMを強制的にディスエイブルするために用います。通常使用時は、Highに固定してください。

3-10. 同期2ポートRAM構成図

同期2ポートRAMは、図4のように、非同期2ポートRAMとD-FFとゲートを用いて構成されています。

3-11. 同期2ポートRAMタイミング仕様

図5と図6に、同期2ポートRAMのタイミング図を示し、表6に、タイミング・データを示します。

表6.同期2ポートRAMタイミング・データ

名称 記号 説明
アクセス・タイム tACS (D-FF遅延)+(非同期RAMアクセス・タイム)
入力信号セットアップ・タイム tSI D-FFのセットアップ・タイム
入力信号ホールド・タイム tHI D-FFのホールド・タイム
出力ホールド・タイム tHO (D-FF遅延)+(非同期RAM出力ホールド・タイム)
クロック・ハイ・パルス幅 tWH 非同期RAMライト・パルス幅+マージン
同じアドレスへの同時書き込み後読み出し遅延 tDWR CKAに対して、(DL2遅延)+(IN1遅延)+(NO2遅延)+(非同期RAMアクセス・タイム)