frame buffer 部の回路

先週部品選定してて確認していたのでここに書きます.

概要

  • frame buffer は 0x40000 word, 16bit databus の高速 SRAM を使用する
  • 本回路はピン数削減のため, databus 16bit と制御線5本で構成される
  • 制御線のうち2本で汎用ロジックICを制御し,databus 16bit から frame buffer の address bus を生成する

address bus 生成

  • address bus は下位12bitを 74161 x3, 残りを 74574 で制御する
  • 74161 は load で 12bit を任意に設定可かつ, counter を利用しシーケンシャルアクセスが可能
  • 74574 の CLK と 74161 の LOAD を同じ線にしているので全部のaddressを load する場合は 74161 -> 74574 の順番に行なう
  • address bus の配線は SRAM のピン配置に無関係で配線しやすい線に接続する

data bus 制御

  • bytemask pin は GND 固定にして 16bit access 専用
  • increment による address 更新から data が出てくる時間は 74LV161A の伝搬遅延と CY7C1041DV33 の read cycle の max 加算で 13.6 + 10.0 -> 23.6 ns

反省点

  • 74574 ではなく 74821 にすると 74161 を1つ減らせて基板の必要な表面積を減らせる. 74821 には LCX があるが定番ではないのでやや高い.
  • 設計当時は SRAM は frame buffer としてのみの利用を想定していたため, instruction RAM 兼用とした場合の都合に配慮できなかった.
  • 74161 は現在の新規設計としては定番の汎用ロジックでないため、最速がシリーズが LV...A で停まっている. カウンタである都合や LCX などに比べると伝搬遅延が多い.
    • 定番で早いシリーズが用意されているのは NOT, NAND, AND, OR, XOR の単純なゲートやバスバッファ(244,541)やバストランシーバ(245)とDラッチ(374,574)などに絞られる
    • カウンタ(161)やシフトレジスタ(164)などはそんなに早くないのでピン数を減らしてもスピードや表面積のトレードオフになる
  • 利用頻度が高い address の更新は 74161 を利用することになるので、 read / write cycle は 23.6 ns より早くすることはできない.
  • つまり 74574 は 74LV161A の伝搬遅延より遅くない 74VHC574 でも構わない.