非同期True Dual Port SRAM FF版
2017/02/05
※サーバー移行しました: http://cf661650.cloudfree.jp/altmo_toolbox
|
[Prev]
[Next]
[Top]
,
Digital Design
[Prev]
[Next]
[Digital Design Top]
|
SRAMの機能をFFで記述する
-
True Dual Port SRAM(TDP SRAM)(*1)は、言うなればSingle Port SRAM(SP SRAM)としてのインタフェースを二組持ったSRAMと言えば良いでしょうか。ある程度データサイズが大きい場合、FPGA/ASICともにSRAMのマクロを使っても良いですが、小さい場合...例えば512bit未満等の場合は、マクロに置き換えずにFF(Flip-Flop)で記述したほうがパワー/面積とも抑えられることが多いです。
- このFFを使ってSRAM相当の機能を記述する場合ですが、SP SRAMの場合はSingle Clockなので、普通に書けば良いです。Dual Port SRAM(DP SRAM)の場合も、Single Clockは言うに及ばず、Write/Read Clockが別の場合も、FF側のクロックはWrite側を使用すれば良いため、これもそれ程は問題(*2)ないです。
-
問題はTDP SRAMです。Single Clockは他と同様に問題ありませんが、A/B port別Clockの場合は少し考える必要が出ます。port A側のクロックとport B側のクロック両方でWriteが発生するからです。しかもこれらのクロックは非同期想定となります。今回のレポートでは「Write Clockをどうするか」が話の中心になります。
Clock gatingでClockを混ぜる
- 回路の話をする前に、ポート構成をクリアにしておきます。今回作成する非同期TDP SRAM FF版のパラメータとポートリストをTable 1 に示します。
表1.parameter and port list
- 非同期TDP SRAM FF版のポイントは、A/B port Clock を Clock Gating回路を用いたセレクタを経由して、データ保持用に入れるという点です。とりあえず回路図を見て下さい。Figure 1 はWrite側論理を示しています。
Figure 1.非同期TDP SRAM FF版 Write側論理
-
Figure 1 の clk_a_wen[] 及び clk_b_wen[] に注目して下さい。これらの信号は、各アドレスに対してどのクロックからWriteが行われるかを示しています。これらの信号がクロックセレクタ i_cg[] に入り、mem[]レジスタへのクロックを制御しています。次はFigure 2にクロックセレクタの構造を示します。

Figure 2.クロックセレクタ
-
見ての通り、二つのクロックゲーティング回路出力をORしたものです。clk_a 及び clk_b それぞれについてはゲーティング回路でGlitchが出ないようにしていますが、clk_a/clk_bの同時enableについては全く対処されていません。つまりGlitchless Selectorではありません。
-
ここをGlitchless Selectorにすると、クロックの切替にLatencyが発生します。言い換えると内部にPipelineを持たせる等でLatencyが許容できるならまた違った作り方も可能です。ですがTDP SRAMの場合同一アドレへの同時Write禁止は「お約束」なので、通常のSRAMと同じサイクルで操作できることを重視しました。禁止アクセスの検出はSimモデル側で対処する方針です。
RTLとテストベンチ
-
RTL(RTL zip archive)は、非同期TDP SRAM FF版 である com_ram_tdp_async_reg.v と、そこから呼び出しているクロックセレクタの com_ram_tdp_clkgate_ab.v です。
-
テストベンチ(test bench zip archive)は、テストベンチ(tb.v)と実行時のvcd(wave.vcd)が入っています。きれいにPASS/FAILを出すものではなく波形を見て動作確認するものです。手抜きですみません。
-
正直言ってなかなか無駄論理が付いています。なので使う機会は滅多に無いだろうなと思っています。実際合成した後にマルチクロックのSTAでどれほど文句を言われるか考えると気持ちがダウンします(^^;。あくまでお遊びということで...。
|
Notes
|
|
[Prev]
[Next]
[Top]
,
Digital Design
[Prev]
[Next]
[Digital Design Top]
|