SRAMのつなぎ方
最近、40代のエンジニアと話をしたときに「16ビットバス幅のSRAMに1バイトだけデータを書き込むのはどうやって動いているんでしょう」という質問を受けました。えっ?!とビックリしたのですが、確かに最近は非同期のSRAMをCPUバスに直接つなぐことはなかなか無いので、知らない人がいても不思議じゃないです。インターネットを検索してもズバリな情報が見つからなかったこともあって、ロストテクロノジーを残しておこうと、この記事を作りました。
ハードウェア接続
以下の図のように接続します。
この時、nBE0とnBE1はそれぞれアドレス0とアドレス1の位置につなぎます。
リトルエンディアンの場合は以下です。
D15-D8にnBE1を、D7-D0にnBE0をつなぎます。
タイミングチャート
アドレス0に1バイト書き込むときには信号線は以下のようなタイミングチャートになります。
この時R/nWの信号の立ち上がりエッジでデータがSRAMに書き込まれます。
アドレス1に1バイト書き込むときには信号線は以下のようなタイミングチャートになります。
アドレス0と1に同時に2バイト書き込むときには以下のようなタイミングチャートになります。
補足
一般的には16ビットバス幅のSRAMはアドレス0と1につなぎますが、全てのCPUがそうとは限りません。データシートをよく読んで判断してください。