CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

謎パタン

DSP56001ボードのパタン引き回しがほぼ完了したので、念のためフットプリントを現物で最終確認しています

PGAパッケージを裏返してピンの方向を見直した途端、うわわわ・・またまたやらかしてることが発覚・・・・、なんですがそれはまた別の話にしておきます

 

それよりここで気づいたのがパッケージ裏面にある十字状に配置された金属パタンです

いったい何なのか。これについてデータシートには何の説明もないのですが、おそらくいずれかのピンと電気的に接続されているんじゃないかと思われます。ランドの形状からしてここには電源のVDDVSSが来ていて必要に応じてここにパスコンを後付けできるのかもしれません。または出荷時テスト用の内部信号か

 

これに似たものがテキサスのDSPTMS320C30GBLのパッケージ表面にもあって、こちらはデータシートにVDDVSSにつながっていることが明記されています。ただしその使い方については触れられていませんが、いかにもパスコンを付けろと云わんばかりの形状です

 

他にはAm29030にもやはり表面に謎パタンがあって、これも導通調べれば電源ピンとつながってるかもしれません。あるいはそういうデザイン、ただの飾りなのかも。

引回し見直し

ホストI/Fと汎用パラレルポートを兼用するPORT_Bにパラレル8bitのLEDを置きましたがバッファ用の74HC540が入出力逆につながっているのが発覚。PORT_Bの属性は3ステート双方向にしたためERCではひっかかりません

 

ICをひっくり返せばパタンの修正は簡単ですがICのピンとLEDは1対1につながっているのでICは表面に移動したほうが良く、そのほか軽微な修正もいれたのでオートルータの出力を全て引き剥がしてしまい再ルーティングしました。

 

この変更が良かったのかオートルータは順調に進み、最適化は途中で中断させましたがビア数が210個と30個も減りました。そのあと絡まったラインの解きほぐし、クオンタイズ作業をチマチマとやっています

 

 

 

部品配置

パスコンやアナログ部の外付けCR類もすべて入力、部品の位置関係も見直しています。オーディオ入出力ジャックは外付けとしデータメモリ空間のSRAM3個は基板裏面に移動しています。

 

オートルータ実行したところ約1時間で布線完了。直後に390個くらいあったビアがその後の1時間位の最適化処理で240個に落ち着いたので強制終了させました。

 

今回はチップ部品はなるべく裏面に配置するようにしています。その結果表側は配置にわりと余裕があります

裏面にはデータメモリ3個のほか、周辺ロジック、アナログ系やチップCRが集中しています

 

部品仮配置

アナログ部分も含め主要部品をスケマチック図面に配置、100×100mmボードにざっくり並べてみました。ADSP-2101基板の構成とほとんど同じです。SRAM6個、PLCCのROM3個は何とか載りました。

あ、オーディオ入出力用のジャックがはみ出てる・・・

 

SRAM3個は基板裏面に貼り付けるとか、ROMは1個でもいいのかもという考えもあります。ただMODE1でROM1個からブートストラップした場合、利用できるプログラムRAMは内蔵の512wordに限られてしまうのかがマニュアルから読取れてないので、念のため3個24bit幅で置いておきます

オーディオ入出力はピンヘッダを立てておいてジャック付き変換ハーネスとしたほうが組み込み用ボードとしては使い易いでしょう

メモリ構成(3)

メモリ配置をいろいろ検討してましたが、結局128kwordのSRAMを6個使うのが最も効率が良くデコードもシンプルにまとまりました

プログラムメモリとデータメモリが物理的にも別々になるのでグルーロジックも単純化します。手元に1MbitSRAM:HM678127がまとまってあるのでこれがちょうど使えます。しかもアクセスタイムが12nsと高速なのでウェイトも無しでいけます。あとは6個の占有エリアが基板に乗っかるかどうか、というところです。

プログラムROMも全く同サイズでSRAMとパラに置いてメモリ空間にどうマップするかはGALのロジック次第となります

メモリ構成(2)

DSPに外付けするメモリ構成を検討しました。DSP56001はプログラムメモリ空間とデータメモリ空間が分離されたハーバードアーキテクチャですがバスはスイッチングして共用しているので単一のメモリ空間にオーバーレイできます。プログラム空間64kwordとデータメモリ空間64kword×2セットは冗長分含めて256kwordに収まり、アドレス上位2bitは制御信号からグルーロジックで生成します

 

一方、ワード幅は24bitなのでこれは普通の8bit幅SRAMを3個並べるしかありません。ということで8bit×256kword=2MbitのSRAMがあれば3個でピッタリなのですが、なぜかSRAMのラインナップというのは2k→8k→32k→128k→512kwordという具合に4倍刻みしかありません。ROMは2倍刻みなんですが・・なので512kword(4Mbit)のHM628512を使うと半分無駄領域が出てしまい128kword(1Mbit)のHM678127では6個必要とどうも中途半端です

32kwordROMはSRAMの裏に配置しLSB側ROM1個からMODE1で特殊ブートさせるかプログラムメモリ空間にマップしてMODE2で通常ブートのどちらもできるようにしてみます

メモリ構成

DSP56Kシリーズはオリジナルのモトローラからfreescaleに移管された後、それがNXPに吸収されても脈々と継承され直系のDSP563xxはまだ現行品のようです

マニュアルを見ながらシステム構成を考えてみました。まずメモリですがプログラムメモリ空間が64kbyte、データメモリ空間が64kbyte×2(Xメモリ,Yメモリ)存在するようです

 

これらのメモリの一部はオンチップでSRAMとしてあるので外付け無しのシングルチップ動作もできます。メモリ構成はモードの切替えで選ぶことができ、構成として一番簡単なのはブート用のROMのみ外付けし電源ON、RESET解除時にROM内容を内蔵プログラムメモリに転送して起動するMODE1でいけそうです

ブート用ROMは8ビット幅(ROM1個)でよく、これはADSP2101のブート方法と同じです。内蔵プログラムSRAM200H×24bitなので、ブートROMの容量は最大600H×8bit2048(800H)×8bit構成の2716で十分収まってしまします