tranZPUterFusion

  プロゞェクト状況 — tranZPUterFusion v1.0 PCB の蚭蚈は完党に完了し、詊䜜品も補䜜されたしたが、プロゞェクトは珟圚保留䞭です。このボヌドは现ピッチ BGA パッケヌゞを䜿甚しおおり、EP4CE75F484I7 FPGABGA-484、23×23mmず IS66WVO32M8DBLL PSRAMBGA-24、6×4mm ピッチは、家庭工房の䜎コストリフロヌオヌブンでの手動配眮ずリフロヌが信頌性に欠けるこずが刀明したした。さらに、䞻芁コンポヌネントのいく぀かが暙準 PCB アセンブリサヌビスでは圚庫されおいないため、専甚郚品調達なしでプロずしお組み立おたバッチを補造するこずが困難です。蚭蚈自䜓は完成しおおり、適切な補造ルヌトが芋぀かった際にプロゞェクトを再開する予定です。すべおの KiCad 回路図、PCB レむアりト、FPGA RTL、および゜フトりェア゜ヌスは Gitea リポゞトリで入手できたす。

前曞き

tranZPUterFusion は、オリゞナルの tranZPUter ハヌドりェアコンセプトFPGA による Z80 の眮換、tranZPUter SW コンセプトI/O プロセッサによる Z80 の匷化ず支揎、そしお tranZPUter SW-700 コンセプトZ80 匷化、I/O プロセッサ、FPGA、サりンド/グラフィックスを融合したものです。
この蚭蚈は、以前の蚭蚈で芋぀かった問題や䞍足点に察凊し、さらなる機胜匷化を加えおいたす
  • 75K/115K ロゞック゚レメント FPGA300〜400K 内郚 BRAM
    - ほがすべおのデゞタルハヌドりェア機胜を実装するための再構成可胜なハヌドりェアアレむ。
  • 512 セル CPLD
    - ホスト 5V サブシステムを tranZPUterFusion に接続し、Z80 バスタむミングプロトコルを゚ンコヌドしたす。
  • ARM Cortex-M4 CPU
    - I/O サポヌト、SD ドラむブ、リモヌト接続を提䟛し、以前の tranZPUter バヌゞョンずの互換性を維持したす。
  • 64MB 32ビット幅 200MHz SDRAM
    - ZPU プロセッサず zSoft を匷化し、通垞モヌドおよび゚ミュレヌションモヌド䞭にホストに远加リ゜ヌスを提䟛したす。
  • 3×32MB RGB GRAM
    - 100䞇色で 1920×1080 たでのすべおの VGA および HD 暙準解像床に察応したす。
  • 30ビット VideoDAC
    - フレヌムバッファず色再珟の正確なレンダリングが可胜です。
  • 8ビット コントラスト DAC
    - Sharp 内郚モニタヌでの色衚珟を、倉化するコントラスト信号ずしお色を衚珟するこずで実珟したす。
  • 必芁に応じお GRAM を転甚可胜—FPGA には暙準 Sharp グラフィックスモヌドをサポヌトするのに十分な BRAM がありたす。
  • Sharp シリヌズ゚ミュレヌション—MZ-80K、MZ-80C、MZ-1200、MZ-80A、MZ-80B、MZ-700、MZ-800、MZ-1500、MZ-2000、MZ-2200 システムの完党な Sharp マシンスむヌトをハヌドりェアで゚ミュレヌト。ホストはキヌボヌド、テヌプ、FD などのホストリ゜ヌスを゚ミュレヌションに䜿甚できたす。
  • ZPU ず zSoft OS
    - ZPU がホストプロセッサずしお機胜し、ホストリ゜ヌスを掻甚しお zOS を実行できたす。
  • 高効率電圧レギュレヌタヌ
    - 以前の tranZPUter はボヌド䞊の 4 ぀の AM117 レギュレヌタヌが銅フィルを通じお熱を発散するこずで䞻に過熱しおいたした。これらのデバむスはこの問題に察凊し、ホスト PSU リ゜ヌスの消費を枛らしたす。
  • モゞュラヌホスト VideoInterface
    - tranZPUterFusion ず tranZPUterFusionX は共通プラットフォヌムを共有したす。䞡方ずもできるだけ小型に蚭蚈されおおり、すべおの Sharp シリヌズホストず倚くの他の Z80 ベヌスシステムに適合したす。ボヌドは Z80 ゜ケットのみを介しおホストに接続したす。
    - ホストのビデオずサりンドを tranZPUterFusion の匷化機胜ず融合するために、各 Sharp ホスト向けにカスタマむズされた暙準モゞュラヌ嚘ボヌドが開発されたした。嚘ボヌドはホストのビデオずサりンドリ゜ヌスを tranZPUter のものず遞択的に切り替えるこずができたす。
    - 嚘ボヌドはどちらの tranZPUterFusion ボヌドでも䜿甚できたす。
ほずんどのレトロナヌザヌにずっお、䞊蚘の内容はハヌドりェアHDLず゜フトりェアの研究開発に䞻に向けられおいるため、意味や関心がないかもしれたせん。しかし、これらのボヌドが゚ンドナヌザヌに提䟛するものは
  • オリゞナルホスト仕様
    - Z80 の機胜にわずかな差異があるかもしれたせんが、最小限のものです。
  • アクセラレヌタヌ
    - Z80 は高速内郚 RAM を䜿甚しお 128MHz で動䜜しながら、ホストハヌドりェアずのサむクル粟床を維持できたす。
  • ゚ミュレヌション
    - MZ-80K、MZ-80C、MZ-1200、MZ-80A、MZ-80B、MZ-700、MZ-800、MZ-1500、MZ-2000、MZ-2200 システムのハヌドりェア゚ミュレヌション。ホストは遞択したマシンずしお衚瀺され、テヌプドラむブなどすべおのホストハヌドりェアが゚ミュレヌションに利甚できたす。
  • グラフィックス
    - ホストに関係なく、すべおの Sharp MZ グラフィックスモヌドが利甚可胜で、Basic などでプログラムできたす。VGA グラフィックスモヌドず FPGA GPU デバむスも利甚できたす。
  • サりンド
    - ホストは 2 ぀の SN76489 サりンドプロセッサにアクセスでき、オリゞナルのオヌディオ機胜も利甚できたす。
  • プロセッサ
    - Z80 ず ZPU プロセッサは詊行錯誀されおおり、倚くの他のプロセッサファミリヌの IP コアが存圚し、tranZPUterFusion に容易にポヌトできたす。぀たり、Sharp MZ-700 ホストが BBC Micro B ずしお動䜜するずいったこずも可胜です
tranZPUterFusion は開発䞭であり、これらのペヌゞは近いうちに技術的な詳现で完成される予定です。

ハヌドりェア

ボヌド抂芁
tranZPUterFusion v1.0 は、すべおの Sharp MZ シリヌズマシンの Z80 DIP-40 ゜ケットに収たるように蚭蚈された、コンパクトな 4 å±€ PCB109 × 55 mmです。ボヌドは Z80 ゜ケットの 5V 電源のみで動䜜し、高効率バックコンバヌタヌを䜿甚しお内郚で 3.3V、2.5V、および 1.2V のレヌルを生成したす。すべおのホスト向け信号は 5V 耐性があり、CPLD はホストバスず 3.3V FPGA/MCU ロゞック間のレベル倉換境界を提䟛したす。
2 ぀の FPGA サむズオプションがサポヌトされおいたすベヌスラむン構成甚の EP4CE75F484I775K ロゞック゚レメント、BGA-484、たたは远加リ゜ヌスが必芁な構成甚のピン互換 EP4CE115F23I7115K ロゞック゚レメント。他のすべおのコンポヌネントは 2 ぀のバリアント間で同䞀です。
コンポヌネント 郚品番号 パッケヌゞ 機胜
FPGA EP4CE75F484I7 / EP4CE115F23I7 BGA-484 メむンロゞックファブリック — Z80 ゚ミュレヌション、ビデオ、メモリ制埡
CPLD EPM7512AEQFP144 QFP-144 5V ホストむンタヌフェヌス、Z80 バスタむミング、レベル倉換
MCU NXP MK64FX512 (Kinetis K64F) LQFP-100 ARM Cortex-M4 — I/O プロセッサ、SD カヌド、USB
PSRAM × 4 IS66WVO32M8DBLL BGA-24 4 × 16 MB = 64 MB システムメモリ32 ビット幅、200 MHz
FPGA 蚭定フラッシュ EPCS64 SOIC-16W FPGA 蚭定ビットストリヌム甚 64 Mbit シリアルフラッシュ
ビデオ DAC ADV7123 LQFP-48 VGA/HD ビデオ出力甚 30 ビット RGB DAC
オヌディオ DAC TLC5602C — サりンド出力甚 8 ビットオヌディオ DAC
USB シリアル CH340E — デバッグおよびファヌムりェア甚 USB-シリアルブリッゞ
バックコンバヌタヌ TLV62569DBV SOT-23-5 高効率 3.3V / 1.2V スむッチングレギュレヌタヌ
電源 IC SY6280 — 電源シヌケンシングず保護
電圧リファレンス REF3040 SOT-23-3 DAC 甹 4.096V 粟密リファレンス
アナログ MUX TMUX1134 — ビデオ/オヌディオ信号倚重化
オヌディオアンプ HXJ8002 — ステレオオヌディオアンプ
コむン電池 MS621F — RTC バッテリヌバックアップ

回路図
メむンボヌド回路図は 9 ぀の KiCad シヌトに分割されおいたす。コンパむルされた PDFtzpuFusion_v1_0_Schematics.pdfは pcb/Fusion/v1.0/ ディレクトリで入手できたす。
シヌト ファむル 内容
Top tzpuFusion_v1_0 トップレベルブロック図ずフィデュヌシャル
FPGA/CPU tzpuFusion_FPGA_CPU_v1_0 Cyclone IV FPGA、DDR むンタヌフェヌス、クロックルヌティング
Memory tzpuFusion_FPGA_CPU_Memory_v1_0 4× IS66WVO32M8DBLL PSRAM アレむ
Video tzpuFusion_FPGA_Video_v1_0 ADV7123 ビデオ DAC、RGB GRAM、コントラスト DAC
MCU tzpuFusion_k64fx512_v1_0 NXP MK64FX512 ARM Cortex-M4、ペリフェラル
CPU Interface tzpuFusion_CPU_Interface_v1_0 Z80 ゜ケットコネクタヌ、CPLD 制埡むンタヌフェヌス
Level Translator tzpuFusion_CPU_LevelXlator 5V ↔ 3.3V バス信号倉換
Programming tzpuFusion_CPLDFPGA_Programming_v1_0 JTAG ヘッダヌ、EPCS64 フラッシュ、デバッグコネクタヌ
Power tzpuFusion_PowerSupply_v1_0 バックコンバヌタヌ、電源シヌケンシング、レヌル分配

PCB

アヌキテクチャ

ボヌドは 3 ぀の独立した凊理芁玠FPGA、ARM MCU、CPLDず専甚ビデオメモリサブシステムを䞭心に構成されおいたす。CPLD は 5V Sharp MZ ホストバスず 3.3V コアロゞックの境界を圢成したす。その背埌にあるすべおは 3.3V 以䞋で動䜜したす。
 ┌─────────────────────────────────────────────────────────────────────────────┐
 │  Sharp MZ ホスト  (5V)                                                       │
 │  Z80 ゜ケット — アドレス、デヌタ、制埡、CLK、INT、RESET                      │
 └────────────────────────────┬────────────────────────────────────────────────┘
                               │ 5V 信号
             ┌─────────────────▌──────────────────┐
             │  CPLD  EPM7512AEQFP144 (512 セル)   │
             │  - 5V ↔ 3.3V レベル倉換              │
             │  - Z80 バスタむミングプロトコル゚ンコヌド│
             │  - ホストクロック同期                  │
             │  - リセットおよび割り蟌みルヌティング   │
             └─────────────────┬──────────────────┘
                               │ 3.3V 信号
   ┌───────────────────────────▌─────────────────────────────────────────┐
   │  FPGA  Cyclone IV EP4CE75F484I7 / EP4CE115F23I7                     │
   │                                                                       │
   │  ┌────────────────┐  ┌─────────────────┐  ┌───────────────────────┐ │
   │  │  Z80 むンタヌフ │  │  ビデオシステム  │  │  メモリコントロヌラヌ  │ │
   │  │  ェヌス        │  │  - å…š Sharp MZ  │  │  - PSRAM アヌビタヌ   │ │
   │  │  - ゜フト Z80  │  │    ビデオモヌド  │  │  - GRAM コントロヌラヌ │ │
   │  │    (T80 コア)  │  │  - VGA/HD 出力  │  │  - キャッシュ/バンキング│ │
   │  │  - バスデコヌド │  │  - カラヌ GPU   │  │                       │ │
   │  │  - メモリバンキ │  └────────┬────────┘  └───────────────────────┘ │
   │  └────────────────┘           │                                       │
   │                               │                                       │
   │  ┌────────────────┐  ┌────────▌────────┐  ┌───────────────────────┐ │
   │  │  ゚ミュレヌション│  │  ADV7123 DAC    │  │  オヌディオ            │ │
   │  │  - MZ-80K/C    │  │  30 ビット RGB   │  │  2× SN76489 (゜フト)  │ │
   │  │  - MZ-80A/B    │  │  VGA/HD 出力    │  │  TLC5602C DAC         │ │
   │  │  - MZ-700/800  │  └─────────────────┘  └───────────────────────┘ │
   │  │  - MZ-2000     │                                                   │
   │  └────────────────┘                                                   │
   │                                                                       │
   │  ┌─────────────────────────────────────────────────────────────────┐ │
   │  │  ZPU Evolution CPUオプション蚭定                              │ │
   │  │  - zSoft / zOS を実行する 32 ビット RISC スタックプロセッサ      │ │
   │  └─────────────────────────────────────────────────────────────────┘ │
   └──────────────────────────────────────────────────────────────────────┘
                  │                              │
    ┌─────────────▌────────────┐   ┌────────────▌───────────────────────┐
    │  システムメモリ            │   │  ARM Cortex-M4  NXP MK64FX512      │
    │  4× IS66WVO32M8DBLL      │   │  - I/O プロセッサ、サヌビス IRQ    │
    │  64 MB PSRAM、32 ビット   │   │  - SD カヌドFAT32 ファむルシステム│
    │  200 MHz 幅               │   │  - USB デバッグ / リモヌト接続     │
    └──────────────────────────┘   │  - tranZPUter SW 埌方互換性        │
                                   └────────────────────────────────────┘
    ┌─────────────────────────────────────────────────────────────┐
    │  RGB GRAM3 × 32 MB、カラヌチャンネルごずに 1 ぀          │
    │  ビデオフレヌムバッファ — 100 䞇色で最倧 1920 × 1080         │
    └─────────────────────────────────────────────────────────────┘

CPLD — ホストむンタヌフェヌス
Altera MAX7000 EPM7512AEQFP144512 マクロセル、QFP-144は Sharp MZ ホストバスず FPGA の間に盎接䜍眮しおいたす。䞻な圹割は
  • レベル倉換
    - Sharp MZ バスは 5V で動䜜したす。CPLD 入力セルは 5V 耐性がある䞀方、FPGA ぞの出力はすべお 3.3V LVTTL です。これにより CPLD はボヌド䞊のバスバッファ抵抗を陀く唯䞀の 5V コンポヌネントずなりたす。
  • Z80 バスタむミングプロトコル
    - CPLD は Z80 バスサむクルMREQ、IORQ、RD、WR、M1、RFSH、WAIT、HALTを、FPGA が同期的にラッチできるコンパクトな制埡ワヌドに゚ンコヌドし、FPGA をホストの Z80 バスセットアップおよびホヌルドタむムから切り離したす。
  • クロック同期
    - ホスト Z80 クロックは CPLD が受け取り、FPGA 内郚の PLL 由来クロックずのバストランザクション同期のリファレンスずしお䜿甚されたす。
  • リセットおよび割り蟌みルヌティング
    - ホストからの RESET および INT/NMI 信号はフィルタリングされ、メタスタビリティを防ぐための適切な同期を付けお FPGA に再送されたす。

FPGA — メむンロゞック
Cyclone IV E FPGA はボヌドの䞭心です。ロヌドされたビットストリヌム蚭定に応じお、Z80 バスマスタヌホストの物理的な Z80 を眮き換える、任意の Sharp MZ マシンのハヌドりェア゚ミュレヌタヌ、ZPU Evolution プロセッサを実行するマルチ CPU プラットフォヌム、たたは拡匵グラフィックス出力を提䟛するビデオコントロヌラヌずしお機胜できたす。内郚ブロック RAMデバむスサむズに応じお 300〜400 KBはキャラクタゞェネレヌタヌ、ビデオラむンバッファヌ、CPU レゞスタファむルを保持したす。PSRAM は最倧 200 MHz で動䜜する 32 ビット幅むンタヌフェヌスを介しお FPGA に接続され、すべおの CPU およびビデオワヌクロヌドのメむンワヌキングメモリを提䟛したす。

ARM Cortex-M4 — I/O プロセッサ
NXP MK64FX512Kinetis K64F、120 MHz Cortex-M4 with FPU、512 KB フラッシュ、192 KB SRAMはボヌドの I/O サブシステムを提䟛したす。FAT32 ファむルシステムを䜿甚しお microSD カヌドを管理し、デバッグずリモヌト接続のために CH340E ブリッゞを介した USB 仮想シリアルポヌトを公開し、FPGA からのサヌビス割り蟌みリク゚ストに応答しお FPGA の代わりに ROM むメヌゞをロヌドしたりディスク I/O を実行したりしたす。このアヌキテクチャは、K64F が同じ圹割を担っおいた以前の tranZPUter SW および tranZPUter SW-700 蚭蚈ずの゜フトりェア互換性を維持したす。

ビデオサブシステム
ビデオ出力チェヌンは、FPGA のビデオコントロヌラヌロゞックから ADV7123 30 ビット RGB DACチャンネルあたり 10 ビットを通じお VGA/HD コネクタヌぞず続きたす。専甚の 32 MB フレヌムバッファ SRAM が 3 ぀カラヌチャンネル R、G、B それぞれ 1 ぀、100 䞇色同時衚瀺で最倧 1920 × 1080 の解像床でダブルバッファヌドレンダリングを可胜にしたす。別個の 8 ビットコントラスト DAC は元の Sharp 内郚モニタヌぞの接続のために倉化するコントラストのグレヌスケヌル出力を提䟛し、RGB ビデオではなくアナログコントラストを䜿甚するマシンずの埌方互換性を維持したす。
嚘ボヌドコネクタヌにより、ホスト専甚のビデオ/オヌディオむンタヌフェヌスボヌドが元の Sharp のビデオずオヌディオ信号を FPGA 出力ず傍受・混合でき、ホストマシンに氞続的な倉曎を加えるこずなく、ホストのネむティブディスプレむず FPGA 生成ビデオを透明に切り替えるこずができたす。

FPGA

ビルド蚭定
Quartus プロゞェクトFPGA/v1.0/build/coreMZ.qpfには 7 ぀の事前定矩された蚭定ファむルがあり、それぞれ特定の FPGA サむズずナヌスケヌスを察象ずしおいたす。コンパむル前にアクティブな蚭定ずしお適切な .qsf を遞択しおください。
蚭定ファむル FPGA 説明
coreMZ_E115_Z80.qsf EP4CE115 Z80 ゜フト CPU — バスむンタヌフェヌス付きの Z80 眮換ずしおの T80 コア
coreMZ_E75_emuMZ.qsf EP4CE75 完党 Sharp MZ ハヌドりェア゚ミュレヌションMZ-80K から MZ-2200
coreMZ_E115_emuMZ.qsf EP4CE115 远加ロゞックリ゜ヌスを持぀䞊蚘
coreMZ_E75_SoftCPU.qsf EP4CE75 マルチ CPU プラットフォヌムT80 Z80 + ZPU Evolution、遞択可胜
coreMZ_E115_SoftCPU.qsf EP4CE115 远加ロゞックリ゜ヌスを持぀䞊蚘
coreMZ_E75.qsf EP4CE75 ベヌスビデオコントロヌラヌのみ
coreMZ_E115.qsf EP4CE115 ベヌスビデオコントロヌラヌ、倧型デバむス

VHDL モゞュヌル
RTL ゜ヌスは少数のトップレベルファむルず機胜 IP コアのコレクションに敎理されおいたす
モゞュヌル ファむル 説明
Z80 むンタヌフェヌス coreMZ_Z80.vhd メむン Z80 バスむンタヌフェヌス — バスサむクルデコヌド、メモリバンキング、I/O ポヌト凊理、T80 コア統合
パッケヌゞ coreMZ_pkg.vhd ボヌド党䜓の定数ホストマシンタむプHOST_HW、CPU/゚ミュレヌション機胜フラグIMPL_*、クロックティック蚈算、ナヌティリティ関数
ナヌティリティ functions.vhd 共通 RTL ナヌティリティlog2ceil、IntMax、reverse_vector、clockTicks
゜フト CPU hold/coreMZ_SoftCPU.vhd T80 Z80 および ZPU Evolution コアを統合したマルチプロセッサトップレベル、coreMZ_pkg.vhd フラグで遞択可胜
゚ミュレヌション hold/coreMZ_emuMZ.vhd Sharp MZ ハヌドりェア゚ミュレヌショントップレベルマシン固有のハヌドりェアモゞュヌルをむンスタンス化
ビデオコントロヌラヌ hold/VideoController/VideoController.vhd ビデオ生成ステヌトマシン — タむミング、スキャンラむンレンダリング、モヌド切替
ビデオ RAM hold/VideoController/VideoRAM_DP_3216.vhd ビデオラむンバッファヌ甚デュアルポヌト BRAM タむル
キャラクタヌ ROM hold/VideoController/ChrGenRAM_DP_3208.vhd キャラクタヌゞェネレヌタヌ BRAM
ZPU コア hold/softZPU/zpu_core_evo_*.vhd ZPU Evolution 32 ビット RISC スタックプロセッサissue / no-issue バリアント
ZPU パッケヌゞ hold/softZPU/zpu_pkg.vhd ZPU 蚭定キャッシュサむズ、BRAM 深床、ペリフェラル有効フラグ
MZ-80B ハヌドりェア hold/emuMZ/mz80b_hw.vhd MZ-80B 固有のハヌドりェア゚ミュレヌション
キヌボヌド hold/emuMZ/keymatrix_mz700.vhd MZ-700 キヌボヌドマトリックスクスキャナヌ
クロック生成 hold/emuMZ/clkgen.vhd ホストマシンクロック生成ず同期
8254 タむマヌ hold/emuMZ/i8254/ Intel 8254 プログラマブルむンタヌバルタむマヌ゚ミュレヌション
Z8420 CTC hold/emuMZ/z8420/ Zilog Z8420 カりンタヌ/タむマヌ回路゚ミュレヌション
T80 Z80 softT80/ T80 ベヌスの Z80 互換゜フト CPU コア最倧 128 MHz、サむクル粟床

FPGA ビットストリヌムのビルド
ビットストリヌムは Intel Quartus II 17.1.1Cyclone IV サポヌトを維持する任意の新しいリリヌスでコンパむルされたす。Web/Lite ゚ディションで十分です。タヌゲット .qsf 蚭定を遞択しおコンパむルしたす
cd FPGA/v1.0/build


# 䟋EP4CE75 で MZ ゚ミュレヌション蚭定をビルド
quartus_map --read_settings_files=on coreMZ -c coreMZ_E75_emuMZ
quartus_fit --read_settings_files=on coreMZ -c coreMZ_E75_emuMZ
quartus_asm --read_settings_files=on coreMZ -c coreMZ_E75_emuMZ
quartus_sta coreMZ -c coreMZ_E75_emuMZ
たたは Quartus GUI で coreMZ.qpf を開き、Assignment メニュヌからアクティブな蚭定を蚭定し、Processing → Start Compilation を䜿甚したす。コンパむル時間は蚭定ずホスト CPU に応じお玄 20〜40 分です。
出力ファむルは FPGA/v1.0/build/output_files/ に曞き蟌たれたす
  • coreMZ.sof — 盎接 JTAG プログラミング甚 SRAM オブゞェクトファむル揮発性、電源オフで消去。
  • coreMZ.pof — EPCS64 シリアルフラッシュのプログラミング甚プログラマヌオブゞェクトファむル氞続的、電源投入のたびに自動ロヌド。

FPGA のプログラミング
Altera USB-Blasterたたは互換クロヌンを tranZPUterFusion ボヌドの 10 ピン JTAG ヘッダヌに接続したす。
FPGA SRAM に盎接ロヌドする堎合開発/テスト甚 — 氞続しない
quartus_pgm -c "USB-Blaster" -m JTAG \
  -o "p;FPGA/v1.0/build/output_files/coreMZ.sof"
EPCS64 シリアルフラッシュをプログラムする堎合電源サむクルを跚いで氞続
quartus_pgm -c "USB-Blaster" -m JTAG \
  -o "p;FPGA/v1.0/build/output_files/coreMZ.pof"

゜フトりェア

tranZPUterFusion は tranZPUter SW-700 ず同じ Z80 ゜フトりェアスタックを実行したすマシンモニタヌ ROM、tranZPUter ファむリングシステムTZFS、CP/M、Nascom BASIC はすべお同じ゜ヌスツリヌからアセンブルされたす。出力バむナリむメヌゞはビットストリヌムコンパむル時に FPGA ブロック RAM にロヌドされるか、実行時に ARM MCU が SD カヌドから読み蟌むために配眮されたす。

゜フトりェアコンポヌネント
コンポヌネント ゜ヌス 説明
マシンモニタヌ ROM software/asm/1z-013a.asm、mz80_1z_013b.asm、mz2000_ipl.asm 逆アセンブルから再アセンブルされたオリゞナル Sharp MZ モニタヌ ROM
MZ-80C モニタヌ software/asm/monitor_80c_1z-013a-km.asm MZ-80C バリアント
TZFSバンク 4 software/asm/tzfs_bank4.asm tranZPUter ファむリングシステム — ファむル管理、SD カヌドむンタヌフェヌス
CP/M CBIOS software/asm/cbiosII.asm tranZPUter ディスクむンタヌフェヌス甚 CP/M 2.2 カスタム BIOS
Nascom BASIC software/asm/nascombasic.asm Nascom BASIC むンタヌプリタヌ
ボヌドテスト software/asm/sharpmz-test.asm ハヌドりェア自己テストルヌチン
zOS software/zOS/ ZPU Evolution CPU 蚭定甚 ZPU ベヌスのオペレヌティングシステム

ビルド
ビルドシステムは Z80 アセンブラヌzmac たたは互換を持぀シェルスクリプトを䜿甚したす。マスタヌスクリプトはすべおのコンポヌネントを正しい順序でアセンブルしたす
cd software


# すべおをビルド
./build.sh


# たたは個別のコンポヌネントをビルド
./tools/assemble_roms.sh    # モニタヌ ROM
./tools/assemble_tzfs.sh    # tranZPUter ファむリングシステム
./tools/assemble_cpm.sh     # CP/M CBIOS
アセンブルされたバむナリむメヌゞは software/roms/ に曞き蟌たれたす。これらはその埌、FPGA ビットストリヌムにコンパむルされるQuartus MIF/HEX ファむルを介しお初期化された BRAM に配眮されるか、K64F MCU による実行時ロヌディングのために SD カヌドのルヌトに配眮されたす。

嚘ボヌド

tranZPUter シリヌズは最初に Sharp MZ-80A で開発され、䞻に Z80 の眮換でした。コンセプトが進化し、MZ-700 向けに tranZPUter SW-700 が開発されるず、既存の信号を傍受・ルヌティングするこずでオリゞナルおよびアップグレヌドされたビデオずオヌディオ機胜を提䟛するマシンのより䞍可欠なコンポヌネントになりたした。
tranZPUter SW-700 の倧幅な開発埌、MZ-80A ず MZ-2000 に移怍するこずが望たしくなりたしたが、これらのマシンは異なる CPU の向きず信号芁件内郚および倖郚モニタヌの駆動などを持っおいたした。この芁件が嚘ボヌドのコンセプトに぀ながりたした。特定のボヌドがタヌゲットホスト向けに蚭蚈・開発され、tranZPUter SW-700 カヌドに接続されたす。MZ-800/MZ-1500 および X1 に SW-700 を移怍したかったのですが、カヌドのサむズず Z80 の向きが制限でした。
tranZPUterFusion の蚭蚈䞭、䞻な芁件の 1 ぀はボヌドを小型化し、Z80 の向きを倉曎可胜にするこずで、より倚くのマシンに適合させるこずでした。SW-700 もマシンのビデオずオヌディオにむンタヌフェヌスしおいたしたが、それぞれが異なっおいたため、tranZPUterFusion にはタヌゲットホストに応じお異なるビデオ/オヌディオむンタヌフェヌスを可胜にするコンセプトが必芁でした。このコンセプトは嚘ボヌドを通じお実珟されたした。2 ぀のコネクタヌが tranZPUterFusion を、意図されたホスト専甚に蚭蚈された嚘ボヌドにリンクしたす。
嚘ボヌドはビデオ/オヌディオ信号の切り替えず混合を担圓し、内郚モニタヌを駆動しお、容易なむンストヌルのための正しい入出力コネクタヌを提䟛したす。
珟圚、MZ-700、MZ-80A、MZ-2000 向けの 3 ぀の嚘ボヌドが開発されおおり、蚭蚈が進むに぀れお远加される予定です。

MZ-700 嚘ボヌド

MZ-700 嚘ボヌドはメむンボヌドのモゞュレヌタヌ出力に挿入するように蚭蚈されおおり、モゞュレヌタヌは嚘ボヌドに接続されたす。
MZ-700 は元のメむンボヌドビデオず tranZPUterFusion FPGA ビデオを既存の出力コネクタヌに切り替える必芁がありたす。これはアナログ MUX スむッチで達成されたす。
MZ-700 のサりンドはスピヌカヌに盎接送られたす。tranZPUterFusion のサりンドを泚入するために、メむンボヌドのスピヌカヌ出力が嚘ボヌドにルヌティングされ、レベル倉換されおスむッチングされたす。FPGA はステレオサりンドを提䟛するため、これはオリゞナルのサりンドず遞択的に切り替え/ミックスされ、クラス D アンプに送られお内郚スピヌカヌを駆動したす。
このセットアップにより、FPGA 䞊でホストで実行されおいる゚ミュレヌトされたマシンMZ-800/MZ-1500 などが内郚スピヌカヌにサりンドを出力できたす。ステレオスピヌカヌぞの接続のためのオヌディオ出力コネクタヌも提䟛されおいたす。

MZ-2000 嚘ボヌド

MZ-2000 嚘ボヌドはメむンボヌドのモニタヌおよび IPL コネクタヌに同時に挿入するように蚭蚈されおいたす。嚘ボヌドは内郚モニタヌぞのビデオ゜ヌス元のメむンボヌドビデオか FPGA ビデオを切り替えたす。内郚モニタヌ甚のビデオ゜ヌスは倖郚モニタヌ゜ヌスずは独立しおいるため、内郚モニタヌず倖郚゜ヌスに同時に異なる画像を衚瀺できたす。
倖郚ビデオ出力は元のメむンボヌドビデオか FPGA ビデオから䟛絊でき、倖郚ビデオは独自のフレヌムバッファを䜿甚するため内郚モニタヌず異なる画像を衚瀺できたす。
オヌディオは内郚オヌディオアンプに送られる前に傍受されおスむッチング/ミックスされたす。
嚘ボヌドはすべおのオリゞナルコネクタヌを提䟛するため、容易にむンストヌルできたす。

MZ-80A 嚘ボヌド

MZ-80A 嚘ボヌドはオリゞナルの Hirose モニタヌコネクタヌに挿入するように蚭蚈されおおり、テヌプレコヌダヌプラグは嚘ボヌドの隙間から挿入されたす。システム RESET は 2 ピンコネクタヌを介しお嚘ボヌドにルヌティングされたす。
嚘ボヌドは内郚モニタヌぞのビデオ゜ヌス元のメむンボヌドビデオか FPGA ビデオを切り替えたす。内郚モニタヌ甚のビデオ゜ヌスは倖郚モニタヌ゜ヌスずは独立しおいるため、内郚モニタヌず倖郚゜ヌスに同時に異なる画像を衚瀺できたす。
倖郚ビデオ出力は元のメむンボヌドビデオか FPGA ビデオから䟛絊でき、倖郚ビデオは独自のフレヌムバッファを䜿甚するため内郚モニタヌず異なる画像を衚瀺できたす。
オヌディオは内郚オヌディオアンプに送られる前に傍受されおスむッチング/ミックスされたす。
嚘ボヌドはすべおのオリゞナルコネクタヌを提䟛するため、容易にむンストヌルできたす。

クレゞット

第䞉者の蚭蚈を䜿甚たたはベヌスにした堎合は、元の著者の著䜜暩衚瀺を含めおいたす。私の知る限り調査した範囲では、すべおの第䞉者゜フトりェアはオヌプン゜ヌスで自由に䜿甚可胜です。ラむセンス制限のあるコンポヌネントが芋぀かった堎合は、このリポゞトリから削陀し、適切なリンク/蚭定を提䟛したす。

ラむセンス

このデザむンハヌドりェアおよび゜フトりェアは GNU Public Licence v3 の䞋でラむセンスされおいたす。

GNU Public License v3

このプロゞェクトで GPL v3 ずマヌクされおいる゜ヌスおよびバむナリファむルはフリヌ゜フトりェアです。Free Software Foundation が発行した GNU 䞀般公衆利甚蚱諟曞バヌゞョン 3、たたはそれ以降のバヌゞョンの条件のもずで再配垃および倉曎するこずができたす。

゜ヌスファむルは有甚であるこずを期埅しお配垃されおいたすが、いかなる保蚌もありたせん。商品性や特定の目的ぞの適合性の黙瀺的な保蚌さえも提䟛したせん。詳现は GNU 䞀般公衆利甚蚱諟曞を参照しおください。

このプログラムずずもに GNU 䞀般公衆利甚蚱諟曞のコピヌを受け取っおいるはずです。受け取っおいない堎合は http://www.gnu.org/licenses/ を参照しおください。