2021年11月16日

SuperSimpleController(その25)ALLPCBのUSELESSコンテストに入賞

 中華系の格安プリント基板製造業者の一つであるALLPCBさんで "Useless" Design Competition を開催していたので応募してみました。ALLPCBさんでは初登録者への無料クーポン(送料も含めて基板製造が無料)の提供などのサービスがあり、一度基板製造を依頼してみてはいかがでしょうか?

 コンテストの結果ですが、拙作のオリジナル8bit CPUが「めっちゃ面白い賞」に選ばれました(^^)/

ALLPCB "Useless" Design Competition Result

 英語ですが応募内容も貼っておきます。


Original architecture 8-bit CPU board consisting of 13 DIP ICs

### Project background ###
I like to use DIP ICs to run old CPUs such as Z80. One of my design policies is to use as few chips as possible. It's completely useless, but this time I made the CPU itself using DIP ICs.

### Design policy ###
* An 8-bit CPU with a 16-bit address bus.
* Use only DIP type logic ICs and memory ICs (GAL can be used).
* Minimize the number of ICs used.
* Implement the CPU functions and the memory required for the CPU to operate on one board.

### CPU configuration ###
In order to reduce the number of ICs used, the machine language implementation method was a microprogram method using ROM. In addition, the ALU (Arithmetic and Logic Unit) function has been realized by using a large-capacity ROM(32Mbit) as a look-up table in order to realize addition, subtraction, logical operation and bit shift arithmetic processing. Two general-purpose registers (R0, R1) are implemented, and the output of these two registers is also used as the input of the ALU. Implemented a conditional jump instruction that refers to the zero flag and carry flag output from the ALU. In addition, the carry flag is also used as the input of the ALU, and the carry correspondence processing of arithmetic operations and bit shift instructions is also implemented.
Furthermore, it has an I/O space independent of the 64K bytes memory space, and by adding a connector for I/O, it is easy to connect an external interface.

### Outcome ###
* The CPU function was realized using only 13 DIP ICs and mounted on one board (11 ICs can be seen in the photo, but 2 ICs are mounted on the back of the board).
* I made an assembler for this CPU using the macro function of the macro assembler (M80, L80) for CP/M.
* By connecting a small board for serial communication to the external interface connector, I have developed a monitor program that can operate the memory and download the executable file.
* I created a 16-bit addition, subtraction, multiplication and division operation in machine language, and created a calculator program that can execute formulas in reverse Polish notation.

### Difficulties and solutions ###
* When creating microcode to implement machine language, it is difficult to create binary data directly, so I created an environment to convert microcode instructions into bit data using the macro function of the macro assembler.
* Furthermore, when implementing complex machine language such as call instructions, even microcode instructions are inefficient, so I created microcode by writing using microcode mnemonics with a higher degree of abstraction. However, I manually converted the microcode mnemonics to microcode instructions.
* To facilitate microcode debugging, I used the PIC24FJ64 to enable external clocking. By controlling the reset and clock with PIC24FJ64, it is possible to stop processing and step operation at the specified location of the microcode.


*Reference video
https://www.youtube.com/watch?v=LzoIbzHgR4k

*Reference fig

Fig. 1

Fig. 2

Fig. 3

Fig. 4

Fig. 5


[TOP] [ 前へ ] 連載記事 [ 次へ ]
posted by skyriver at 20:07| Comment(0) | OriginalCPU | このブログの読者になる | 更新情報をチェックする

2021年09月15日

SuperSimpleController(その24)VDPSG基板の改版その2

 前回の記事で書いたように自作CPUボード(Simple8Z)用に作成したサブボード(Simple8Vdpsg)の修正版のプリント基板がALLPCBさんから2021/09/04に届きました。手配したのが2021/08/28 23時なのでかなり速いですね^^

ALLPCBさんから届いたプリント基板

 出来栄えは下の写真のように特に問題ないものでした(久々に緑色の基板です)
 無料クーポン使用時のソルダーレジストの色は緑か白の2択のようです。
 送料も込みで無料というALLPCBさんの太っ腹なクーポンサービスはありがたいですね(どういうビジネスモデルなのか心配になってしまいます)

Simple8Vdpsgプリント基板(トップ面)

Simple8Vdpsgプリント基板(ボトム面)

 プリント基板は短期間で製造してもらったのですが、RCAジャックが見つからず共立エレショップさんから再購入したこと等もあり部品の取付が遅くなりました^^;
 自分自身のメモの意味合いも込めて部品取り付け後の写真を貼っておきます。
 RCAジャックのフットプリントを今回修正していますが問題無くピッタリ入りました^^

Simple8Vdpsg基板(トップ面)

 下の写真がボトム面になります。修正箇所の反映が一カ所漏れていたのでジャンパー線が1本発生してしまいましたorz
 今後のこともあるので再発防止策も検討しておきたいと思います。
 今回は目立たないようにジャンパー線の色を基板の色に合わせました。

Simple8Vdpsg基板(ボトム面)

 13個のDIP ICで構成される自作のオリジナルCPU(Simple8Z)と連結した状態が下の写真です。

CPUボード(Simple8Z)とサブボード(Simple8Vdpsg)の連結

 部品実装が終って試験プログラムを動かしてみるとVDP(TMS9918)の表示のみならずPSG(AY-3-8910)も動作しませんorz
 PSG側は回路図の机上確認でPSGのA9/ピンをGND接続に変更するという修正が漏れていたことに気が付き、ボトム面の写真のように基板を修正して動作するようになりました。

 VDP側は表示が不安定な状態で下の写真のような表示になってしまいます。

NG状態の画面表示例

 参考に画面表示が安定した際の表示例も貼っておきます。

参考)安定動作時の画面表示例

 表示するテキストコードはVRAMに概ね書けていますが、キャラクタの表示色を指定するカラーテーブルがうまく設定できていないような状態に見えます。

 カラーテーブルをモニタのOUT命令を使って設定するとうまく表示するようになったりするのでDRAMへの書込み動作が不安定な状態のようです。
 カラーテーブル設定時のDRAMのRAS/,CAS/,WE/等の信号をざっと確認して見ると下図のような状態で想定通りのように見えます。

DRAMライト時のタイミング(NG時) ロジアナサンプリング:40MHz

 NG原因が判らないのでDRAM(uPD41464-10)のライトサイクルの各タイミングが規格を満たしているか測定した結果が下図になります。
 図中の青色文字が規格値(アクセスタイム100nsの場合)で茶色と赤色の文字が測定値です。ロジアナのサンプリングは40MHzなので時間分解能は25nsになります。

DRAMライトサイクルのタイミング確認結果

 2ヶ所ある赤色の星マーク部が規格を満たしていない箇所です。
 tRCDは最大50nsとなっていますがデータシートに注意書きがあり、この値はアクセスタイム100nsを保証する場合の値であり、この値よりも大きい場合、アクセスタイムはtCAC(Access time from CAS/)に依存すると書かれています。tCACは最大50nsなので今回の場合は問題ありません。

 もう一つのNG箇所であるtRWLは純粋に規格を満たしていないので、これが原因で不安定な表示になっているものと推測されます。
 対処するにはRAS/信号を遅らせるかWE/信号を早める必要があります。後者の対処をすることにし、もともとHCT245の遅延時間対応のために付けていたWE/信号を遅延する部分が過剰だったのでCRの遅延を無くすためにC12を取り外して動作確認したところ表示が安定するようになりました(図中のMWR/信号はVDPから出力されるR/W信号です)

tRCDタイミングの修正箇所

   ★変更 2021/09/16 R3を削除すると不安定になるので残すように変更

★追記 2021/09/16 {
 上図の回路変更でR3も削除するように書いていましたが、実際にR3をショート状態にしたところ画面表示が不安定になったのでR3は残すように変更しました。パターン上はC12のみ削除するようにしたいと思います。
 尚、下図のロジアナでの測定時はR3がある状態で測定しています。
}
 安定動作時のDRAMライトタイミング図も貼っておきます。tRWLは50nsになり、規格を満たすようになりました。

DRAMライト時のタイミング(OK時) ロジアナサンプリング:40MHz

★追記 2021/09/15
 ハードディバッグ時の写真を貼っておきます。
 フッククリップは高級品の方が使い易そうなのですが結構高いので安価なものを使っています。
 ラジオペンチで先端のピンを整形しながら使っています。
 周りの状況はあまりにも混沌としているので写せませんw

ハードディバッグ時の状況

★追記 2021/09/21
 タイミング調整可能なようにC12のパターンは残すこととし、修正版をVer0.03としてALLPCBさんの太っ腹クーポンを使って9/20に製造依頼しました。

Vdpsg基板の修正


★追記 2021/09/25
 今回はALLPCBさんに9/20に製造依頼してなんと9/25の朝に届きました。
 パッケージに書いてあるように SO QUICK です^^
 今回も6枚入っていました。

早々に届いたプリント基板


★追記 2021/09/27
 製造と配達の工程記録を貼っておきます。

No.ProcessTime(GMT+8)
1 Cutting2021-09-20 T21:30
2 First Drilling2021-09-20 T21:46
3 Copper Plating2021-09-21 T01:25
4 Panel Plating2021-09-21 T03:09
5 Dry Film Coating2021-09-21 T05:01
6 Circuit Inspection2021-09-21 T05:49
7 Etching2021-09-21 T05:49
8 Etching Inspection2021-09-21 T05:59
9 Solder Mask2021-09-21 T05:59
10 Solder Mask Positioning2021-09-22 T09:20
11 Solder Mask Positioning Inspection 2021-09-22 T11:27
12 Silk Screen2021-09-22 T11:28
13 Surface Finishing2021-09-22 T15:14
14 Testing2021-09-22 T16:09
15 Profiling2021-09-22 T20:22
16 FQC2021-09-22 T21:52
17 Final Inspection2021-09-22 T21:52
18 Packing2021-09-23 T00:43

Time Operation 2021-09-23 12:00:00 Shipment picked up 2021-09-23 15:41:00 Processed at ZHEJIANG PROVINCE-CHN 2021-09-23 16:19:00 Departed Facility in ZHEJIANG PROVINCE-CHN 2021-09-23 16:30:30 Clearance processing complete at EAST CHINA AREA-CHN 2021-09-23 19:10:00 Arrived at Sort Facility EAST CHINA AREA-CHN 2021-09-24 01:20:00 Processed at EAST CHINA AREA-CHN 2021-09-24 01:44:00 Departed Facility in EAST CHINA AREA-CHN 2021-09-24 09:59:00 Transferred through NARITA-JPN 2021-09-24 10:06:02 Customs status updated 2021-09-24 11:59:00 Clearance processing complete at TOKYO-JPN 2021-09-24 13:10:00 Processed at TOKYO-JPN 2021-09-24 13:32:00 Departed Facility in TOKYO-JPN 2021-09-24 14:19:00 Arrived at Delivery Facility in YOKOHAMA-JPN 2021-09-24 16:01:00 Forwarded for delivery 2021-09-25 07:06:00 Forwarded for delivery 2021-09-25 09:40:00 Delivered - Signed for by

[TOP] [ 前へ ] 連載記事 [ 次へ ]
posted by skyriver at 06:33| Comment(0) | OriginalCPU | このブログの読者になる | 更新情報をチェックする

2021年08月29日

SuperSimpleController(その23)VDPSG基板の改版

 前回の記事で自作CPUボード(Simple8Z)用に作成したサブボード(Simple8Vdpsg)でPSG(AY-3-8910)を使った自動演奏について書きましたが、Simple8Vdpsgボードがうまく動いているようなので回路図に修正部分を反映して整理しました。
 自分のためのメモの意味も込めて整理後の回路図などの情報を記録しておきたいと思います。

 初版の回路図は「SuperSimpleController(その17)TMS9918Aの接続 その2」の記事に書いていますが、今回は下記の変更を行っています。
  1. RCAジャックのフットプリントの変更
  2. DRAMのOE/タイミングの調整
  3. PSGの制御信号の見直し
  4. PSGのBポートのコネクタ出力
 4項は初耳(初目?)だと思いますが、PSGはポート毎に入力/出力の設定ができるのでA/Bの両ポート共にコネクタに出力するようにしました。
 下図が修正した回路図になります。制御のためのコネクタ部はSIMPLE8というバスに準拠しており、Z-80等のCPUでも簡単に繋がるはずです。

修正後のSimple8Vdpsgの回路図

  ★変更 2021/09/18 Ver0.03 VDPのA9/端子をGNDに接続(修正反映漏れ^^;),C12:100pF->0pF

 回路図の変更に伴いパターン図もアップデートしました。

Simple8Vdpsgのパターン図(グランドベタ化前)


 グランドベタ化後のトップ面とボトム面のパターン図が下図になります。

Simple8Vdpsgのパターン図(トップ面)


Simple8Vdpsgのパターン図(ボトム面)


 3Ⅾ表示した図も貼っておきます。

Simple8Vdpsg基板のCADによる3D表示


 また、今回はtwitter等で話題になっているALLPCBさんに基板製造を依頼しました。
 腹周りが2mくらいあるんじゃないかと思える太っ腹なクーポンにより初回の注文は輸送費も含めて只になります(7月に只クーポン使った人は8月にも只クーポンを貰えたらしい)

 注文時の設定画面が下図でMin Spacingに関しては、今回0.3mmで設計しmil換算では 11.8 mil(=0.3/(2.54/100))なので10milを選択しました。
 今回の設計ではビアの穴径を0.42mmにしたのでMin Hole Sizeを0.4mmにしています(CPU基板(Simple8Z)の方は高密度化のために0.3mmで設計しています)

ALLPCBでPCB製造注文時の設定例


 上記の設定値と価格との関連は未確認ですが、今回は下図の最初の行の「Order Now」ボタンを押すことで、クーポンを使った只の注文ができました。
 Order Time:2021/8/28 23:17:33 で現在(8/29 14:00)のステータスは Allpcb auditing(ALLPCBで監査中)です。
 出荷予定日は Estimated Shipping Time:2021/09/01 となっています。

ALLPCBでの注文形態選択一覧


★追記 2021/09/22
 製造依頼したプリント基板は9/4に届きました。ALLPCBさんでは毎月送料込みでの無料クーポンが発行されるようで9月分も発行されました。
 また、ALLPCBさんのサイトで今回のプリント基板製造工程の時刻が結構詳しく確認できたので貼っておきます。

No.ProcessTime(GMT+8)
1 Cutting2021-08-30 T11:22
2 First Drilling2021-08-30 T12:50
3 Copper Plating2021-08-30 T18:41
4 Panel Plating2021-08-30 T22:53
5 Dry Film Coating2021-08-30 T23:30
6 Circuit Inspection2021-08-31 T00:59
7 Etching2021-08-31 T00:59
8 Etching Inspection2021-08-31 T01:07
9 Solder Mask2021-08-31 T01:08
10 Solder Mask Positioning2021-08-31 T02:13
11 Solder Mask Positioning Inspection 2021-08-31 T03:35
12 Silk Screen2021-08-31 T03:36
13 Surface Finishing2021-08-31 T07:10
14 Testing2021-08-31 T08:43
15 Profiling2021-08-31 T10:45
16 FQC2021-08-31 T13:07
17 Final Inspection2021-08-31 T13:14
18 Packing2021-08-31 T17:00

★追記 2021/09/23
 DHLでの配達記録も参考に貼っておきます。
Time Operation 2021-09-01 13:34:00 Shipment picked up 2021-09-01 16:58:00 Processed at ZHEJIANG PROVINCE-CHN 2021-09-01 17:12:00 Departed Facility in ZHEJIANG PROVINCE-CHN 2021-09-01 17:19:04 Clearance processing complete at EAST CHINA AREA-CHN 2021-09-01 19:51:00 Arrived at Sort Facility EAST CHINA AREA-CHN 2021-09-02 00:27:00 Processed at EAST CHINA AREA-CHN 2021-09-02 01:22:00 Departed Facility in EAST CHINA AREA-CHN 2021-09-02 04:10:02 Customs status updated 2021-09-02 18:30:06 Customs status updated 2021-09-03 11:24:00 Arrived at Sort Facility TOKYO-JPN 2021-09-03 12:27:00 Clearance processing complete at TOKYO-JPN 2021-09-03 13:31:00 Processed at TOKYO-JPN 2021-09-03 13:33:00 Departed Facility in TOKYO-JPN 2021-09-03 14:12:00 Arrived at Delivery Facility in YOKOHAMA-JPN 2021-09-03 14:47:00 Forwarded for delivery 2021-09-04 07:15:00 Forwarded for delivery 2021-09-04 10:08:00 Delivered - Signed for by

[TOP] [ 前へ ] 連載記事 [ 次へ ]
posted by skyriver at 14:10| Comment(0) | OriginalCPU | このブログの読者になる | 更新情報をチェックする