#工学
バスの動きから見て書込み信号/WRがアクティブの時、データバス最上位ROM3の出力がイネーブルになってしまっているのは明らかです。ROM周りの回路図を確認しました。整然とバス・信号線が引かれているように見えます ですがROM3のあたりを見てみると・・ あ…
アドレス0x800200と/WRのANDをとったパルス状の/LEDCS信号を8ビットラッチ74HC574のクロックに接続しパラレルLEDをドライブしていますが、先ずこの/LEDCSが全くアクティブになりません。それではこのアドレスの元となるMOV命令のオペランド0x800200がROMから…
パラレルLEDへのハード的なアクセスは用意できたので、意味のあるプログラムで動作確認していきます。まずはいつものようにLEDチカチカですが最小のコードはこのようになりました。 レジスタの内容をLEDがあるポートに出力したあと、レジスタ内容を…
ジャンプ先のディスプレースメント表記に疑問が残るのですが、もうすこし大きいプログラムで様子見することにします。プログラムの動きを外から見るため8ビットパラのLEDをアクセス出来るようにI/Oデコーダが含まれる2個目のGALにロジックを書き込みました 1…
リファインした8031基板が到着しました。 今回も約3週間かかりましたが、急ぐこともないのでのんびりやります。 2019-10-22 19:33:47 Order received2019-10-22 19:34:48 Your payment information has been confirmed, we will process your order as soon…
それではためしにディスプレースメントを-1にしたらどうなるかやってみました。 JUMP *-1 この場合、バイナリコードは[7F/DA/7F/00]となります。 -1がどうして「FF」でなく「7F」かというとNS32000ではディスプレースメントの上位1ビットか…
まずハード的な接続:アドレスバスとデータバスのROM~バッファは導通OKでしたが、バッファ~CPU間はCPUの生足が触れないのでつながってるとこれはもう信じるしかありません。 次はインストラクションコードのバスへのアサインです。 これは前にM…
出来上がったコード「7F」「DA」「00」と32ビットアクセスされることを考えてもう一つダミーで「00」、計4個のコードをそれぞれ先頭番地に1バイトづつ焼いたROMを用意し基板に挿しこみました。この状態で実行させればアドレスバスはダブルワード…
初めて使うCPUで最初に実行させる、いつもの最小ループをやってみます。単純にして明快。これだけで基本的なハードウェアは確認できてしまいます。 LOOP: JUMP LOOP 「JUMP $」でもいいのですが文法的にロケーションカウンタ$が使えるかわからなかったの…
ハード環境がほぼ準備でき、いよいよプログラムを書くにあたってまず必要なインストラクションセットのマニュアルとアセンブラですが、これは先に紹介したサイトで見つけてきました。・・・というかここ以外にはNS32000シリーズに関する情報はほとんど皆無と…
GALのピン配置はあらかじめ特定してパタンができていて、今回メモリマップが決まったのでこれはもう機械的にPLD設計ツールに入力するだけです。いつものようにロジック図を書いていきます 基本的にCPUから出力されるバスイネーブル/BE0~/BE3をROM…
いままでNS32000シリーズのアーキテクチャもプログラミングモデルも良く理解しないままハード作成をしてきてしまいましたが、いよいよソフト的な検討を始めなければなりません。ただメモリ構成についてはほとんどの制御線をGALで生成しているのでまだ柔軟な…
とりあえずTCU:NS32C201が動作していること、CPUがアドレスバスをドライブしていそうなことはわかりました。アドレスバスはCPUしかドライブしない訳でしかも24本とも何かしらパタパタしています。DIP,PLCC,QFPならCPUの生足を触れられるのでまだいいですがP…
クロックはCPUへちゃんと供給されているのですがバスがうんともすんとも動かない!とおもったらRESET信号がアクティブになっていました。今までのボードも大体そうなのですが、ホスト側から遠隔でハードリセット出来るようにシリアルポートのDSR信号をリセッ…
既に実装してしまっているSRAMがへんにアクティブにならないようにチップセレクトをHに固定しておきます。チップセレクトを生成するGALに仮のロジックを書き込みました。 /ADS(アドレスストローブ)入力もまだ不要ですが1本も入力がないロジックはコンパイ…
ちょっとはやまった感はありますがCPU:NS32032とTCU(Timing Control Units):NS32C201を実装しました。 本来はブロックごとにハードデバッグをするべきなんですが8086基板でもそうだったようにCPUとシステムコントローラ、バスバッファは相互に接続されてい…
このNS32032ボードはCPUチップセット以外は一般的な部品ばかりなのでどんどん実装を進めていますが機構部品でネックになるのがCPU用のソケットです。CPU形状がLCC(Leadless Chip Carrier)のため専用のICソケットが必要ですがLCCな…
SOPパッケージのIC類も半田付けしました 手持ちがない値のCR類を除いて表面実装のものは完了したので、この後はスルーホール部品、背の高い部品を付けていきます 裏面です
手持ちの表面実装CR、LED類は実装完了しました 見た目にはまだ何もついてないようにみえますが・・・
自動配線されたパタンを見ているとやはり細かい点が気になってきます。機械的に最適化しているのだとは思いますが、少し遠回しにしたりビアを打ってラインを表裏スイッチしたりした方がスッキリする場合もありちょっとづつ手を入れてます。 特に影響が大きい…
GAL内容変更によってピンアサインも変わったので回路図に書き戻しました。 22V10の全てのピンを使い切ってます。 この状態でオートルータを起動して再度アートワークを行いました。今回も1時間ほどで最適化まで完了しましたが、自動配線された結果に…
信号ピンが割り付けられない・・というのは22V10に内蔵されるOLMCの数10個以上の出力を要求しているということなのですが、パッと見るとロジック図の右側に並んでいる出力パッドはちょうど10個でありギリ収まるはずです なのに何故エラーかとい…
また寄り道してましたがいよいよ部品実装を開始。 部品表でいうと先ずチップコンデンサ0.1μF×30個を一気に付けました 30個のうち4個はRS232Cドライバのチャージポンプ用で残り全ては電源パスコン用です。ちなみにコンデンサ実装前基板の電源ライン間の静電容…
これの対処方法は、組合せロジックで出来るクロック(アドレスデコードと/WRの論理積)をいったん信号として外部のピンに取出し、外部接続で改めてGALの固定クロックピンに再注入してやれば行けそうです。 赤枠の中が変更点、CLKOUTピンとCLKピンをGALの「外…
さてこのロジック図をispLEVERでコンパイルかけると論理式には難なく展開されますがその後デバイスにフィッティングさせるツールの中で必ずエラーに落ちてしまいます。 FIT Generic Device FitterispLEVER Classic 2.0 Copyright(C), 1992-2005, Lattice Sem…
最後に気になったところはGAL内のロジック設計です。今回の回路変更でGALへの入出力信号線は次のようになっています。 基本的にメモリやI/Oへのチップセレクト信号の生成なのでAND項だけで合成できる小規模PLDの最も得意とするところで、例に…
MCS-51(i8031)基板のリファインもこっそり進めています。 実装品をレイアウトしてオートルータを走らせると5分余りで結線完了。その後のオプティマイズも1時間ほどでコンプリートになりました 結構きれいに引かれているので手修正は最小限で済みそう。前…
8085、8031プロジェクトが間に入ってしまいましたがそれぞれ一応動いたので、放置していたNS32032プロジェクトを再開します 5ヵ月我慢していた真空パックを開封しました。
前にも一度失敗しているのですがSOPのICは幅がメーカ品種によってバラバラなのでパタンを一度紙に印刷して実物合わせしておきます。 最初、ライブラリに標準で含まれる28ピンSOICのフットプリントは狭すぎ、20ピンは広すぎでした。いくつかバリエーショ…
実際に作るか判りませんが変更は容易なので現状のプロジェクトをコピーして回路修正をしてみました。メモリ構成として256kbitSRAMを1個追加しただけです あとは既存の不具合対応としてリセットSWの後にリセットIC(TL7705)を追加。 このICは昔からあります…