CPU実験室

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

486

ROM焼き

486

テストコードをROMに焼き込んでみます。 自作ROMライタにワード幅4Mビットの27C4096の読み書きアルゴリズムはすでに用意していてDIP形状では正常処理を確認していましたがPLCC形状を使うのは初めて。ずいぶん前に作ったPLCC44-DIP40変換アダプタがやっと出番…

コード配置

486

バスのアクセス状況の確認のために安定にループするプログラムを作成します。例によってもっとも単純なプログラム、JUMP $から始めます。これはx86系でも何度も書いていてコードも覚えてしまいました。 EB FE JMP $ これを486CPUのリセットベクタに配置しま…

バス波形

486

FLUSH#をH固定にしたことでようやくCPUが正常起動しバスが駆動され始めました。 ch1:アドレスバスA0、ch2:ADS# ひとまずボードのハードウェアとしては成功です 2種の周期が重畳して見にくいですがコードのフェッチ周期は約3.2MHzとなります。実行しているコ…

バス制御(3)

486

UP#の説明でCPUをバスから切り離すの意で「3-state」の語が使われているのでこれでマニュアルを検索するとこんな記述が出てきました CPUに内蔵された特殊なテストモードで全ての出力/双方向ピンを切り離すとあります。しかも通常のバス操作では切り離されな…

バス制御(2)

486

未使用端子のpullup/downがちゃんとできているか、芋ハンダになってないか確認してみましたがこれは問題なし。そもそもバスホールドモードになっているか、つまりBREQ、HLDA信号が応答しているかを見てみるとこれらの信号もふらふらしていてどうもハイインピ…

バス制御

486

電源ON・・ したのですが例によってウンともスウともです。バスの状態を観察しながらリセット再起動してもバスがピクリとも動きません 時々やらかすCOMポートから外部リセットがかかりっぱなしになっているトラブルは今回、その回路自体が別ミスで動作しない…

CPU装着

486

ここまで来たらその後の手順はいつもの通り。CPUソケットにVcc、GND、クロック、リセットが供給されていることだけ確認してi486DX2を挿しこんでしまいました ついでに何も書き込んでいないUVEPROM:HN27C4096 2個もセットして、いよいよ電源ON・・・

ファンコントローラ

486

グルーロジックが入ったCPLDは付けたのであとはROMを挿せばCPU周りの挙動を確認できますが、このボードにはもう一か所プログラマブルな部分があり、そこを先に確認しておきます。 基板の隅っこに8ピンPICを使って簡単な空冷ファンのコントローラを置きました…

ソケット取付け

486

仮置きでPLCCソケットを付けた状態でもZIFソケットのレバー開閉はかろうじてできることがわかったので本付けしてしまいました。かなりみっちり感です CPLDは仮設計ができているのでロジックを書き込んでこれも挿入、64MHzの水晶発振器も取り付けてクロック、…

表面実装完了

486

i486DXボードの方も部品実装開始しました。 今一番の懸案はZIFソケットのレバーとPLCCソケットの干渉で、PLCCソケットまで付けてみてどうしてもダメならCPUはZIFでない普通のPGAソケットにするしかありませんがPLCCソケットを付けるにはまず最初に表面実装品…

ZIFソケット仮置き

486

486DX基板にも着手しました まず実装面積でも最も大きい486用のZIFソケットが入るかですが基板上で仮置きしてもどうもしっくりする位置がこないのです。なんか変と裏返してみたらこのソケットは17×17グリッドなんですが各辺4列+インデックスピンで合計210ピ…

基板到着

486

80486DX用の基板が出来上がってきました。先週土曜の夜に注文してちょうど1週間。どんどん納期が短くなってます。前回、前々回に出来上がった基板に手を付ける間もなく出来てしまうのでたまる一方。 ハードウェアスタックは3段までなのでこれ以上積むとオ…

基板発注

486

i486DXのボードはオートルータにかけた後、手作業で徹底的に引回しのブラッシュアップを続けてきましたがほぼ納得できたのでこれでFIXしました ガーバービュワーで見た完成予定図ですが、ここで大ポカ発見! 基板上辺にあるJP1(EXTRST)、これはオートルータ…

部品追加

486

オートルータが引いたパタンに手動で細かい補正をして、ほぼ完成・・に近づいたのですがこの期に及んで一部部品を追加したくなりました。部品を追加して配線全リップアップ再ルーティングは気が遠くなるので、既設パタンに無理にねじ込みます RESET信号はTL7…

現物確認

486

TL7705のピン幅を念のため現物で確認しておきました。下のスケールは0.5mmピッチなのでICピン幅は約7.5mmあることになります SOP8やSOIC8に比べてずいぶん幅が広いですがデータシートをみたらパッケージのバリエーションとして載ってました PS(R-PDSO-G8)と…

パタン点検

486

オートルータが出力した結果を検図しています。例によって迂遠な引き回しをしているところはいったん配線剥がして手動で引き直したり、近傍の25milグリッドにスナップできるようなラインは修正しておきました。ただ本当に微妙なクリアランスで成立していると…

ルーティング実行

486

部品配置が決まったのでオートルータにかけてみます。ライン幅は電源周りが12mil、その他が6mil、クリアランスが6milと製造デザインルール限界に設定してあります わんぱくなラインがしばしば取付孔の外側を回って引かれてしまうことがあるので四隅の取付孔…

配線解きほぐし

486

オートルータをかけるとき元のラッツネストができるだけ単純だと成績が良くなります ラッツネストが最も込み合っている部分、ROM-SRAM間のバス接続をよく観察してみるとデータバスD0~D31が妙に交差してるのが気になりました 回路図と突き合わせてみたらD0~…

部品レイアウト変更

486

i486DXはZIFソケットを使いますが今のレイアウトで乗っかるかどうか実物を使って検証してみました。ユニバーサル基板を使ってZIFソケット、44ピンPLCCソケット5個、タクトスイッチ、水晶を100milメッシュで並べて干渉を見ています その結果、ZIFソケット周囲…

仮配線

486

QuartusⅡが出力したピンアウトをCPLD周りの回路図に書き戻しました ピン配置は機能グループとは関係なくバラバラですがおそらくコンパイラがフロアプランで最適化していると思われ、そのまま接続しておきます。ヘタにピン再配置するとフィッティングできなく…

ロジック追加

486

CPLDの空きピンに余裕ができたので残り必要そうなロジックを仮入力しておきました。 1.システム制御レジスタ:CPUの動作を外部から制御する出力ポートでA20M/KEN/FLUSH/IGNFEピンへH/Lを設定します(A20はDon't CareなのでA20M(アドレスA20マスク)は不要だっ…

メモリ再配置

486

アドレスデコードは一見これで良さそうなんですが、既存ボードでこの部分悩んだような覚えがあって改めてi486DXのリセット後の挙動をマニュアルを読み返してました。 やはりちゃんと書いてあります 起動時、リセットベクタ0xFFFFFFF0からのジャンプ後は最下…

ロジック修正

486

CPLDの不要、冗長な信号を削除してピン数を確保しなければなりません まず以下のバスセレクト回路は既存ボードのロジックからそっくり持ってきたのですがこれは明らかに冗長な回路でした。最初のボード設計時に自信が無く4個のROM、4個のRAMのチップセレクト…

グルーロジック設計

486

脇道プロジェクトのTMS3631ボードの方が先に基板設計できてしまいあとは発注にまでこぎつけたので放置していたi486DXボードの設計を再開しました。 いままでCPUボードで使っているプログラマブルデバイス:CPLDとかGALはハード的にまず適当に接続しておき、…

SRAM構成

486

i486CPUでのメモリ構成を考えています。Pentiumとちがいi486ではBUS SIZE CONTROLピン:BS8#,BS16#を使ってバスサイジングが可能であるとされていてそれならブートROMは1個にできるかもと考えていました。ところがマニュアルをよく見ると8、16ビット幅のメ…

グルーロジック検討

486

大まかな基板配置が決まったところでCPU周辺ロジックにどれくらいの規模が必要か検討してみました。これが今想定しているCPLD:EPM7064で収まるかどうかにかかわってきます 動作実績がある以前の自作手製ボードを参考にしてみます CPUの左側の大きいPLCC:XC…

シンボル作成

486

ターゲットCPUはi486DX2/DX4ODPRに定め、まず面倒なシンボル作成に取り掛かりました。ピン数は多いですが機能は整理されていてデータバス32本、アドレスバス32本、電源関係52本はひたすらコピペ。全く使用しないつもりのキャッシュ、バースト制御、JTAG関連…

方針転換

486

Pentiumプロセッサの64bitメモリシステムと電源供給を2層基板で実現するのはやはりいろいろ問題を起こしそうな気がしてきました。4層以上の多層基板の価格がこなれてくるまで保留にしておきます。 そこで早くもコンティンジェンシープランを発動しました。プ…

ピン配置

486

基板CADの部品ライブラリにはPentiumなんて当然ないのでシンボル、フットプリントは自作しなければなりません。マニュアルのPINOUTを見るとやはり電源ピンが相当数あります。細いボンディングワイヤで合計3A流す必要があるわけでこれは仕方ありません。 ピン…

部品レイアウト

486

主要な部品を仮に基板上にレイアウトしてみました。基板サイズは安価にできる100×100mmはさすがに無理なので100×150mmでやってみます。 基板の左側半分弱を占める巨大な水色の四角はPentiumプロセッサ、本体だけでも約55×55mmありますが専用ZIFソケットがレ…