IBM の MCGA (Multi-Color Graphics Array) は、PS/2 モデル 25 および 30 で導入された低コストのビデオ チップセットです。Epson Equity 1E は MCGA 互換ビデオを使用しますが、同じチップは使用しません。
IBM チップセットには、メモリ コントローラー ゲート アレイとビデオ フォーマッタ ゲート アレイが含まれています。これらのサンプルの中には、IBM の内部ゲート アレイ プロセスで作成されたものもありますが、セイコーの外部ゲート アレイ パーツを使用したものもあります。
メモリ コントローラ ゲート アレイ (72X8300)
このゲート アレイには、MC6845 同期ジェネレータ IC の実装が含まれており、ISA バス上のビデオ RAM インターフェイスを管理し、キャラクタ RAM インターフェイスを管理し、クロック選択やモニタ ID リードバックなどのその他のいくつかの機能を実行します。
私がリバース エンジニアリングした例は、seiko SLA6430 ゲート アレイを使用して実装されています。 4,342 個の基本セル (BC) があり、それぞれに 4 つのトランジスタが含まれています。 BC は 167 行と 26 列で構成されます。これは、2 つの金属層を備えた 2um CMOS プロセスです。
画像は 72×8300-sla6430j からのものです
リバース エンジニアリングされた回路図とレイアウトは、mcga72x8300 flat サブディレクトリにあります。
ビデオ フォーマッタ ゲート アレイ (72X8205)
フォーマッタ ゲート アレイは、ISA メモリと IO ポート アドレスをデコードし、RAMDAC インターフェイスを管理し、グラフィック モードとテキスト モードの両方でピクセル データを生成します。
この IC には 2 つの画像があります。まず、72×8205-gl14105fs は内部 IBM ゲート アレイ プロセス上にあるようです。残念ながら、デキャッピング中に最上部の金属層が除去されたため、ネットリストを抽出できませんでした。 2 番目の 72×8205-sla6330j はリバース エンジニアリングされています。mcga72x8205 flat サブディレクトリを参照してください。
セイコー SLA6330 ゲートアレイです。 3,312 個の基本セルがあり、それぞれに 4 つのトランジスタが含まれています。 BC は 144 行と 23 列で構成されます。
72×8300 (メモリ コントローラー ゲート アレイ)
リバース エンジニアリングの取り組みに基づいて、MCGA に関する新しい情報が発見されました。
-
MCGA は、外部 HSYNC および VSYNC 信号をジーンロックできます。これらの信号はビデオ コネクタに送られます。ピン 12 (ID1) は VSYNC、ピン 11 (ID0) は HSYNC です。このモードを有効にするには、レジスタ 0x12 のビット 1 からビット 3 (キャラクタ ジェネレータ インターフェイスと同期極性、またはディスプレイ センス) を書き込みます。 PS/2 モデル 30 のテクニカル リファレンス マニュアルでは、このビットは「Reserved = 0」と記載されています。おそらく、このゲンロック モードでは、25 MHz または 14 MHz クロック入力に接続された外部クロック PLL が必要となります。
-
レジスタ 0x10 (モード制御) ビット 3、「互換性」は、80×25 テキスト モードのみに影響します。これにより、水平タイミング レジスタが 2 倍になります (0x00 の場合は水平合計が 1 増加し、0x02 の場合は 1 減少して水平同期が開始されます)。
-
レジスタ 0x10 (モード制御) ビット 2、「クロック = 1」は、どのクロックがビデオ回路を駆動するかを制御します。デフォルトでは、ほとんどのビデオ回路は 25.175MHz クロックを使用します。このビットを 0 に変更すると、クロック周波数を 14.318 MHz 入力に設定できます。
-
レジスタ 0x10 (モード制御) ビット 6、「予約 = 0」はまだ完全には理解されていません。
-
レジスタ 0x20 (予約済み) は製造テスト モード レジスタです。
| 一部 | お祝い |
|---|---|
| 7 | 14.318 MHz 代替クロック モード (不明) |
| 6 | VCK ピン代替モード (通常は VCKIN のみが VCK になります) |
| 5 | スピードアップモード: 不明 |
| 4 | スピードアップモード: カーソル位置ハイカウンター |
| 3 | スピードアップモード: カーソル位置ロー/文字カウンター |
| 2 | 高速化モード:垂直トータル調整カウンタ |
| 1 | スピードアップモード: 垂直カウンター |
| 0 | 高速化モード: 水平カウンター |
カウンタ スピードアップ モードでは、基本的に各カウンタの下位 4 ビットだけでなく上位 4 ビットにもクロック信号が注入され、カウンタの動作が速くなります。チップテスターでの工場テストを支援します。
72×8205 (ビデオ フォーマッタ ゲート アレイ)
拡張モード レジスタ 0x1A には、書き込まれていないビットが 2 つあります。
| 一部 | お祝い |
|---|---|
| 1 | 不明。他の解像度でも 256 カラー モードが強制される可能性があります。 |
| 0 | 不明。ディスプレイ全体に境界線の色を適用する可能性があります。 |
追加の製造テスト レジスタは、次の場所にアクセスして利用できます。
- レジスタ 0x19 – 製造レジスタ アドレス
- レジスタ 0x18 – 製造レジスタ データ
特定の製造テスト レジスタにアクセスするには、アドレスをレジスタ 0x19 にロードし、その内容をレジスタ 0x18 に読み書きします。
製造テスト レジスタは次のとおりです。
| 住所 | 登録する |
|---|---|
| 0 | 実装されていない |
| 1 | 読み取り専用。 RAMDAC (P) に送信されるデータの最新の内容が含まれます。[7:0] ピン)。 |
| 2 | 読み取り専用。 VRAM(CP)から受信したデータの最新の内容が含まれます。[7:0] ピン)。 |
| 3 | 読み取り専用。書式設定ロジックからの不明な 16 色モード データが含まれています。 |
| 4 | レジスタへの書き込みのみ。操作については以下を参照してください。 |
アドレス 4 の書き込み専用レジスタは、次の 2 ビットのみを実装します。
| 一部 | お祝い |
|---|---|
| 0 | リセットピンと同等のハードリセットを作成します。デバイスをリセット状態にするには「1」を書き込み、リセットを解除するには「0」を書き込みます。 |
| 1 | 「1」を書き込むと、RAMDAC への出力を含む多数の出力が無効になります。 |
リバースエンジニアリングプロセス情報
72×8300 の画像は 21808×21778 から 10904×10889 に縮小されました。出力 jpg ファイルは、スペースを節約するために 85% 圧縮に設定され、48DPI に設定され、0.103170 のスケール係数で KiCAD にインポートされました。これにより、BC 間の差は KiCAD 単位で「3 mm」になります。
ネイティブ細胞タイプが識別され、回路図シンボルに関連付けられたときに、ライブラリ フットプリントがネイティブ細胞タイプごとに作成されました。オリジナルでは多くの BC がミラーリングされていたため、フットプリントを回転できるようにすべてのパッドが中央に配置されました。
ゲート アレイでは 2 つの金属層が使用されており、層間の接続を理解するのは困難な場合があります。一般に、受け入れられる連絡先は少数しかありません。
- メタル1からメタル2へ
- メタル 2 からポリシリコン (ゲート)
- メタル2の拡散
各列にはメタル 2 上に 2 本の平行ワイヤがあり、VCC (右側) と GND (左側) を伝送します。したがって、各 BC の左側の 2 つのトランジスタは NMOS で、右側の 2 つのトランジスタは PMOS です。 BC では、2 つのトランジスタが 1 つのゲートを共有し、各ゲートには 3 つの接続パッドがあります。接点により、2 つのトランジスタ間の共有チャネル接続の拡散領域に VCC または GND を接続したり、一方のトランジスタ、他方、または両方のトランジスタに絶縁チャネル接続を追加したりできます。
論理ゲートに出入りする外部信号 いつもの メタル 1 上のセル全体を横切る水平マークを使用して接続します。論理ゲートの内部配線は通常、メタル 2 上で行われます。
メタル 2 上で電力とグランドを伝送する垂直の平行ワイヤに加えて、同じく電力とグランドを伝送する別の水平ワイヤのセット (メタル 1 上) があります。私のリバース エンジニアリング レイアウトでは、これらの線は信号線ではないため、マークはこれらの線の上には配置されません。
トレースには純粋な名前が付けられ、フットプリント パッドから始まり、下にある金属をたどって、他のすべての接続されたパッドに結び付けられ、回路図に伝播して戻ります (通常の KiCAD プロセスとは異なります)。
- KiCAD ネットリストから Verilog を生成することを検討してください








Leave a Reply