tranZPUter FusionX テクニカルガイド
概要
tranZPUterFusionXは、2つの主要なシリコンデバイスを中心に構築されています。1.2GHzで動作するデュアルCortex-A7コアを搭載したSigmaStar SSD202 System-On-Module(SOM)と、ホスト機へのサイクル精度のZ80バスインターフェースを提供するAltera MAX7000AE CPLD(EPM7512)です。
責任の分担は明確です。CPLDがZ80バスを制御し、ホストに対して正しい電気的タイミング動作を保証する一方、SOMは分離されたCPUコア上の専用Linuxカーネルモジュール内ですべてのエミュレーション作業を処理します。2つのデバイスは50MHz SPIリンク(SOM→CPLD、書き込み/制御パス)と直接GPIOバス(CPLD→SOM、読み取り/アドレスキャプチャパス)を介して通信します。
このアーキテクチャは最大約500MHz相当のZ80スループットを実現します。これは実際のZ80をはるかに超えるものですが、ホスト機に対しては完全に正統なZ80インターフェースを提示します。CPLDのEEPROMベースの設定セルは、バッテリーや外部不揮発性ストレージなしにプログラムされたロジックを無期限に保持します。
ハードウェアアーキテクチャ
ブロック図
┌────────────────────────────────────────────────────────────────────────┐ │ tranZPUter FusionX Board │ │ │ │ ┌─────────────────────────────────────────────────┐ │ │ │ SigmaStar SSD202 SOM (Infinity2M) │ │ │ │ ┌─────────┐ ┌─────────┐ 128MB DRAM │ │ │ │ │ CPU0 │ │ CPU1 │ 256MB NAND Flash │ │ │ │ │ Linux │ │ Z80 Emu │ Integrated WiFi │ │ │ │ │ 1.2GHz │ │ 1.2GHz │ (SSW101B 2.4GHz) │ │ │ │ └─────────┘ └─────────┘ │ │ │ │ GPIO (read path) SPI (write path, 50MHz) │ │ │ └──────────────┬────────────────┬──────────────────┘ │ │ │ GPIO │ SPI │ │ ┌──────────────▼────────────────▼──────────────────┐ │ │ │ Altera MAX7000AE CPLD (EPM7512) │ │ │ │ Z80 Bus FSM ◄─────────────────────────────────►│◄──[ 50MHz OSC ] │ │ │ SPI decoder │ │ │ │ │ Video/Audio │ │ │ │ └───────────────┬───────────────────────────────────┘ │ │ │ DIP-40 Z80 bus │ │ ┌───────────────▼───────────┐ ┌─────────────────────────┐ │ │ │ Z80 DIP-40 host socket │ │ Video/Audio outputs │ │ │ │ A0-A15, D0-D7, MREQ, │ │ GM7123 RGB DAC (30-bit) │ │ │ │ IORQ, RD, WR, HALT, │ │ TLC5602C Contrast DAC │ │ │ │ M1, RFSH, NMI, INT, │ │ TLC5602C Audio DAC │ │ │ │ WAIT, RESET, CLK, BUSRQ │ └─────────────────────────┘ │ │ └───────────────────────────┘ │ │ [ USB-serial CH340E ]──USB──►[ Linux console /dev/ttyUSB0 ] │ └────────────────────────────────────────────────────────────────────────┘
主要コンポーネント
以下の表はtranZPUterFusionXメインボードの主要コンポーネントを示しています。
| コンポーネント | 部品 | 仕様 |
|---|---|---|
| SSD202 SOM | SigmaStar SSD202 (Infinity2M) | デュアルCortex-A7 @ 1.2GHz、128MB DRAM、256MB NAND、統合WiFi |
| CPLD | Altera EPM7512AETC144-10 | MAX7000AE、512マクロセル、144ピンTQFP、5V耐性入力 |
| DRAM | オンSOM | 128MB DDR2 |
| NAND Flash | オンSOM | 256MB SPI NAND |
| WiFi | SSW101B | IEEE 802.11 b/g/n、2.4GHz、500m範囲 |
| ビデオDAC | GM7123 (3.3V) | 30ビットRGB DAC(ADV7123相当);各チャンネル10ビット |
| コントラストDAC | TLC5602C | 8ビットDAC;Sharp MZ単色CRT用4V~5Vコントラスト信号駆動 |
| オーディオDAC | TLC5602C | 8ビットDAC;ステレオ48kHz出力 |
| 電源IC | オンボードレギュレータ | 5V→SOMおよびCPLDレール用3.3V |
| USBパワースイッチ | オンボード | ホストUSBポート用切り替え可能USB VBUS |
| USBシリアルコンバータ | CH340E | 115200ボー8N1;/dev/ttyUSB0としてLinuxコンソールを公開 |
| 50MHzオシレータ | SMDキャンオシレータ | CPLDマスタークロック;Z80バスFSMタイミングに使用 |
CPLDの役割
CPLD(EPM7512AETC144-10、512マクロセル、144ピンTQFP)はFusionX設計の要です。5つの異なる機能を果たします:
- 電圧変換 — SOM GPIOは3.3Vで動作し、Z80ホストバスは5Vで動作します。MAX7000AE CPLDは5V耐性入力を持ち、LVTTL レベル(論理'1' = 3.3V)で出力を駆動します。これはホスト側の5V TTLロジックの2.4Vスイッチングしきい値を超えており、双方向で正しいインターフェースを保証します。
- サイクル精度のZ80バスタイミング — CPLDはすべてのZ80バスサイクルタイプ(オペコードフェッチ、メモリ読み取り、メモリ書き込み、I/O読み取り、I/O書き込み、割り込みアクノレッジ、バスリクエスト/グラント)に対して完全なZ80バス有限状態機械(FSM)を実装しています。すべてのFSMは50MHzオシレータでクロックされ、典型的な1MHz~6MHzのZ80ホストクロックに対して20nsの分解能を持ちます。
- SOMインターフェース — 2つの独立した通信パスが存在します:SOMがデータと制御コマンドをCPLDに送信するための50MHz SPIチャンネル(書き込みパス)、およびCPLDがアドレス、データ、ステータス信号をSOM GPIOピンに直接駆動して高速バスサイクルキャプチャを行うGPIOパス(読み取りパス)。
- ビデオおよびオーディオ切り替え — CPLDはドーターボード上のアナログマルチプレクサを制御し、ホストのネイティブビデオ/オーディオとSOM出力の間を選択します。コンポジットビデオ出力用の合成同期信号(VGA_CSYNCn)とカラーキャリア周波数(VGA_COLR)を生成し、CRTコントラスト制御用の単色ブランキング信号(MONO.BLANK)を生成します。
- リセット管理 — CPLDはRESET信号を引き伸ばして同期し、リセットイベントのソースに関わらずSOMとホスト機が協調した方法でリセットに入り、リセットから抜け出すことを保証します。
CPLDバリアント
サポートされている各ホスト機に対して別個のCPLDビルドが生成されます。各バリアントは同じコアZ80バスFSMを実装しますが、ターゲット機に適したメモリマップデコード、I/Oポートアサイン、ビデオタイミング、バンク切り替えロジックが異なります。
| バリアント | ターゲット機 | 主な違い |
|---|---|---|
| MZ80A | Sharp MZ-80A | 40/80列ディスプレイタイミング;MZ-80Aメモリマップ;RFS(ROMファイリングシステム)ページング |
| MZ700 | Sharp MZ-700 | 下位32KBのバンク切り替え;MZ-700ビデオおよびキーボードポートデコード |
| MZ2000 | Sharp MZ-2000 | 拡張メモリバンキング;追加ビデオモード信号 |
| PCW8256 | Amstrad PCW-8256 | メモリページング(4×16KBバンク);PCW I/Oポートマップ |
Z80バスFSM
CPLDはZ80バスサイクルタイプごとに専用の状態機械を実装しています。すべてのサイクルの一般的なシーケンスは以下の通りです:
- ホストZ80によってMREQ/IORQとM1/RD/WRの関連する組み合わせがアサートされるのを待ちます。
- A0~A15からアドレスをラッチします。
- 読み取りサイクルの場合はGPIO読み取りパスを介して、書き込みサイクルの場合はSPIを介してアドレスをSOMに送信します。
- 読み取りサイクルの場合:SOMからデータバイトを受け取り、CPLDが強制するTステートウィンドウ内でD0~D7をホストに向けて駆動します。
- 書き込みサイクルの場合:D0~D7からデータバイトをキャプチャしてSOMに転送します。
- Z80データシートで指定された正しいTステートタイミングで制御信号をデアサートしてバスを解放します。
| サイクルタイプ | バス信号 | Tステート | SOM通知方法 |
|---|---|---|---|
| オペコードフェッチ (M1) | MREQ↓ + M1↓ + RD↓ | 4(最小) | GPIOアドレスラッチ → SPIデータ応答 |
| メモリ読み取り | MREQ↓ + RD↓ | 3(最小) | GPIOアドレスラッチ → SPIデータ応答 |
| メモリ書き込み | MREQ↓ + WR↓ | 3(最小) | GPIOアドレス+データ → SPIアック |
| I/O読み取り | IORQ↓ + RD↓ | 4(最小) | GPIOアドレスラッチ → SPIデータ応答 |
| I/O書き込み | IORQ↓ + WR↓ | 4(最小) | GPIOアドレス+データ → SPIアック |
| 割り込みアクノレッジ | IORQ↓ + M1↓ | 4(最小) | SPI割り込みベクタ応答 |
| バスリクエスト/グラント | BUSRQ↓ → BUSAK↓ | 可変 | SPI制御コマンド |
SOMインターフェース
SOMはそれぞれの方向に最適化された2つの独立したパスでCPLDと通信します:
- SPI書き込みパス(50MHz) — SOMはSPIで50MHzでCPLDを駆動します。このパスは次のために使用されます:Z80バスへのデータバイトの書き込み(ホストが見る読み取りサイクル)、ホストへのNMIまたはINTのアサート、ドーターボード上のビデオおよびオーディオマルチプレクサの制御、バス方向/ハイインピーダンス制御の設定。SPIはすべての制御およびデータ出力操作に十分な帯域幅を提供します。
- GPIO読み取りパス — CPLDはアドレス、データ、ステータスビットを専用SOM GPIOピンに直接駆動します。SOMはLinux GPIO HALを完全にバイパスして、メモリマップされたGPIOレジスタアクセスでこれらを読み取り、最低限のレイテンシを実現します。このパスは約2MB/sのスループットを達成し、各Z80サイクルのアドレスバスキャプチャおよびホスト書き込みサイクルのZ80からのデータキャプチャに使用されます。Linux GPIOサブシステムはZ80バスタイミングに違反するスケジューリングジッタを引き起こすため、直接レジスタアクセスが不可欠です。
ビデオ出力
FusionXメインボードはすべてのSharp MZディスプレイモードおよびHDまでの追加解像度に適した30ビットRGBビデオ出力パスを提供します。
- GM7123 RGB DAC — ADV7123の3.3Vバージョンで、各カラーチャンネル10ビット(合計30ビット)を提供します。SOMが各チャンネルの上位8ビットを供給し、CPLDが補間とパレット微調整のために下位2ビットを提供します。
- コンポジット同期 — VGA_CSYNCnはCPLDによって生成され、Z80ホストクロックと選択されたビデオモードに同期されます。
- カラーキャリア — VGA_COLRはCPLDによってコンポジットカラー出力に適した周波数で生成されます。
- コントラストDAC(TLC5602C、8ビット) — Sharp MZ内部単色CRTのコントラストレベルを制御するための4V~5Vアナログ信号を駆動します。CPLDはまた選択されたビデオモードにゲートされたMONO.BLANKブランキング信号も生成します。
オーディオ
- オーディオDAC(TLC5602C、8ビット) — SOMによって駆動されるステレオ48kHz出力。エミュレートされたサウンドや任意の波形再生のためのCD品質オーディオを提供します。
- SN76489 PSGエミュレーション — SN76489プログラマブルサウンドジェネレータはSOM上のソフトウェアで完全にエミュレートされ、生成されたオーディオはDACに供給されます。3つのトーンチャンネルとノイズチャンネルすべてがサポートされています。
- オーディオアンプ — 各ドーターボードには、ホスト機の内蔵スピーカーにオーディオをルーティングするためのオーディオアンプステージが含まれています。
- マイクロフォン入力 — オーディオ録音のためのマイクロフォン入力がSOM/ドーターボードで利用可能です。
ソフトウェアアーキテクチャ
デュアルコア設計
SSD202の2つのCortex-A7コアには厳密に分離された役割が割り当てられています。CPUの分離はLinuxブート時に確立され、起動スクリプトによって強制されます。これにより、Z80エミュレーションスレッドがLinuxスケジューラによってプリエンプトされることがないことを保証します。
| コア | OS割り当て | 責任 |
|---|---|---|
| CPU0 | Linux(通常スケジューリング) | すべてのLinuxプロセス、カーネルスレッド、ハードウェアIRQ、メモリ管理、ファイルI/O、ネットワークスタック、USBサブシステム、シリアルコンソール、Webサーバー(将来)、sharpbiterアービタデーモン、k64fcpuデーモン |
| CPU1 | 分離(taskset / isolcpus) | Z80エミュレーションカーネルスレッドのみ(z80drv);他のすべてのプロセスとIRQは起動時にCPU0に移行される |
CPUの分離は2つの層で実装されています。まず、カーネルがパラメータ
isolcpus=1でブートされ、Linuxスケジューラが明示的に要求されない限りCPU1にタスクを配置しないようにします。次に、起動スクリプトstart_FusionX.shがtasksetを使用してz80drvカーネルスレッドをCPU1に固定し、他のすべての対象スレッドをそこから移行させます。結果として、CPLD GPIO割り込みに対して決定論的に応答する専用のリアルタイムコアが得られ、Linuxスケジューリングジッタがなくなります。
カーネルモジュール
2つのLinuxカーネルモジュールがFusionXソフトウェアスタックの中核を形成しています:
- z80drv.ko — Z80エミュレーションコア
- メインディスパッチループ:保留中のバスサイクル通知のためにCPLD GPIOをポーリングします。
- アドレスとサイクルタイプ(メモリ読み取り/書き込み、I/O読み取り/書き込み、オペコードフェッチ)に基づいて各サイクルを適切な仮想ハードウェアハンドラにルーティングします。
- オペコードフェッチサイクルのためにZeta Z80命令エミュレータを呼び出します。
- 主要なソースファイル:
z80driver.c(メインディスパッチ)、z80io.c(ハードウェア抽象化層)、emumz.c(命令実行ラッパー)。
- ttymzdrv.ko — MZキーボード/ディスプレイTTYドライバ
- Sharp MZキーボードマトリクスを標準Linuxキーイベントにマッピングします。
- LinuxコンソールをSharp MZディスプレイコントローラコマンドにマッピングします。
/dev/ttymz0を公開し、ホスト機のキーボードとディスプレイで直接gettyログインセッションを可能にします。- Z80エミュレーションモードとLinuxコンソールモードのクリーンな切り替えのためのサスペンド/レジュームをサポートします。
仮想ハードウェアモジュール
サポートされている各ホスト機には専用の仮想ハードウェアモジュールがあります。z80drvディスパッチループは、設定されたマシンターゲットに基づいてロード時にアクティブなモジュールを選択します。
| モジュール | ソースファイル | ターゲット | 機能 |
|---|---|---|---|
| MZ-80A | z80vhw_mz80a.c | Sharp MZ-80A | メモリマップ、キーボードマトリクス、ディスプレイI/O |
| MZ-700 | z80vhw_mz700.c | Sharp MZ-700 | バンク切り替え(下位32KB)、ビデオ/キーボードエミュレーション |
| MZ-2000 | z80vhw_mz2000.c | Sharp MZ-2000 | 拡張メモリバンキング、ビデオモード制御 |
| PCW-8256 | z80vhw_pcw.c | Amstrad PCW-8256 | メモリページング(4×16KBバンク)、標準PCW I/O |
| ROM FS | z80vhw_rfs.c | MZ-80A(40/80列) | 4つの切り替え可能なROMページ;SDカードからのMZFファイルロード |
| TZPU SW | z80vhw_tzpu.c | tranZPUter SWモード | TZFSの動作のためのK64F仮想コプロセッサスタブ |
Z80エミュレーション
- Zeta Z80ライブラリ — 命令実行にはManuel Sainz de Baranda y GoñiによるZeta Z80ライブラリ(LGPL v3)を使用します。このライブラリはすべての非公式オペコードを含む完全で正確なZ80命令セット実装を提供します。
- エミュレーションループ —
emumz.cに実装されています。ループはイテレーションごとに1命令を実行し、その命令によって生成される各メモリまたはI/Oアクセスのために仮想ハードウェアコールバック関数を呼び出します。 - メモリマップ — サポートされている各マシンのメモリレイアウト(ベースアドレス、リージョンサイズ、RAM/ROM属性フラグ)は
z80driver.hで定義されています。アクティブなマップはモジュールロード時に選択されます。 - 性能 — エミュレータは1.2GHz Cortex-A7コアで約500MHz Z80相当スループットを達成し、分離されたCPU1環境により命令あたりのオーバーヘッドが最小限です。
- タイミングモデル — ホストに対するサイクル精度はCPLDハードウェアの責任です。エミュレータはCPLDが強制するタイミングウィンドウ内で応答するだけでよく、Tステートカウントを自身では実装しません。
ユーザー空間ユーティリティ
- z80ctrl — z80drvカーネルモジュールのコマンドライン制御インターフェース。次の操作をサポートします:
loadrom(ROMイメージをエミュレーテッドアドレス空間にロード)、adddev(仮想デバイスを登録)、start/stop(Z80エミュレーションスレッドを開始または停止)、dump(エミュレーテッドZ80メモリ領域を表示)、loadmzf(MZFプログラムファイルをロードして必要に応じて自動実行)。 - k64fcpu — K64F仮想CPUデーモン。TZFS(tranZPUterファイルシステム)ROMが期待するK64Fコプロセッサをエミュレートします。共有カーネルメモリを介してz80drvと通信し、Z80プログラムが発行するコプロセッサコマンドに応答します。
- sharpbiter — アービタデーモン。ttymzdrv(Linuxコンソール)とz80drv(Z80エミュレーション)の間でSharp MZキーボードとディスプレイハードウェアへのアクセスを調整し、両サブシステムがアクティブな場合のレジスタ競合を防止します。
フラッシュとストレージのレイアウト
SSD202 SOMには256MBのSPI NAND Flashが搭載されており、以下のようにパーティションされています:
- U-bootブートローダーパーティション — 第一段階および第二段階ブートローダー;NANDからLinuxカーネルをロードします。
- Linuxカーネルパーティション — PREEMPT_RTパッチを適用したLinux 4.9-rt;FusionX defconfig(
infinity2m_spinand_fusionx_defconfig)を使用したカーネルイメージ。 - Buildrootルートファイルシステム — Buildrootで構築された最小限の読み取り専用squashfsルートファイルシステム。FusionX動作に必要なパッケージのみを含みます。
- FusionXアプリケーションパーティション — 含まれるもの:
z80drv.ko、ttymzdrv.ko、z80ctrl、k64fcpu、sharpbiter、起動スクリプト(start_FusionX.sh)、すべてのサポートマシン用ROMイメージ。 - 設定パーティション — 書き込み可能なJFFS2またはUBIFSパーティション。ファームウェアアップデート間でユーザー設定(マシン選択、ディスプレイモードなど)を保持します。
SOM上のSDカードスロットは次のための追加のユーザーアクセス可能なストレージを提供します:ユーザーデータ、追加のROMイメージ、MZFプログラムファイル、OTA(Over-the-Air)ファームウェアアップデートパッケージ。SOMブートローダーは電源投入時に適切に準備されたSDカードを自動検出し、LinuxをブートするまえにアップグレードをNANDFlashに実行します。
CPLDのビルドとプログラミング
ビルドツール
CPLD HDLはQuartus II 13.0.1 SP1 Web Editionでコンパイルされます。これはMAX7000AEデバイスファミリをサポートする最後のバージョンのQuartus IIで、Intel/Alteaから無料でダウンロードできます。
ソースファイル
| ファイル | 目的 |
|---|---|
| tzpuFusionX.vhd | メインRTL:Z80バスFSM、SPIデコーダ、ビデオ/オーディオ制御ロジック |
| tzpuFusionX_Toplevel.vhd | トップレベルエンティティ:I/Oピンアサイン、ポート接続 |
| tzpuFusionX_pkg.vhd | 共有VHDLパッケージ:型定義、定数、レコード |
マシンごとのQuartusプロジェクトは以下に配置されています:
CPLD/v1.0/MZ80A/ CPLD/v1.0/MZ700/ CPLD/v1.0/MZ2000/ CPLD/v1.0/PCW8256/
コンパイル
Quartusシェルを使用したコマンドラインからのコンパイル(MZ-80Aの例):
quartus_sh --flow compile tzpuFusionX_MZ80A
コンパイルされた出力ファイルは以下に書き込まれます:
build/output_files/tzpuFusionX_MZ80A.pof
プログラミング
CPLDはFusionXボードの10ピンJTAGヘッダに接続されたAltera USB-BlasterケーブルでJTAGを介してプログラムされます:
quartus_pgm -c "USB-Blaster" -m JTAG -o "p;tzpuFusionX_MZ80A.pof@1"
MAX7000AEはEEPROMベースの設定セルを使用しており、バッテリーや外部不揮発性ストレージなしにプログラムされたロジックを無期限に保持します。プログラミングはCPLD設計が更新された場合にのみ必要です。
Linuxファームウェアのビルド
ツールチェーンとSDK
- クロスコンパイラ —
arm-linux-gnueabihf-gcc(ARM ハードフロートABI、Linuxターゲット) - SDK — SigmaStar SDK:U-boot + Linux 4.9-rt + Buildroot
- マスタービルドスクリプト —
Build_FusionX.sh
フルファームウェアビルド
cd software/linux/ ./Build_FusionX.sh -f nand -p ssd202 -o 2D06 -m 256
ビルドは以下のステージを順番に処理します:
- SSD202 NANDターゲット用のU-bootブートローダーのコンパイルと設定。
- defconfig
infinity2m_spinand_fusionx_defconfigを使用したLinuxカーネルビルド。 - Buildrootルートファイルシステム構築(最小パッケージセット)。
- FusionXアプリケーションビルド:カーネルモジュール、ユーティリティ、起動スクリプト、ROMイメージパッケージング。
- パーティションイメージアセンブリとNANDフラッシュイメージ作成。
カーネルモジュールのみ(高速イテレーション)
開発中はz80drvカーネルモジュールのみを再ビルドするだけで十分な場合がよくあります。以下はMZ-80AバリアントのZ80drvを単独でビルドします:
cd software/FusionX/src/z80drv/src.mz80a make
フラッシング
- 初期プログラミング — SigmaStar ISPツールをUSBで使用して、ベアまたはファクトリリセットされたSOMにフルNANDイメージを書き込みます。
- SDカードによるOTAアップデート — SDカードに準備済みファームウェアパッケージを配置します。U-bootブートローダーが次の電源サイクルでアップデートパッケージを検出し、LinuxをブートするまえにNANDアップグレードを自動実行します。
デバッグ
シリアルコンソール
CH340E USBシリアルコンバータは
/dev/ttyUSB0で115200ボー、8N1でLinuxコンソールを公開します。Linuxシェルとカーネルログ出力(dmesg)にアクセスするために任意のターミナルエミュレータ(例:minicom、picocom、PuTTY)をこのポートに接続してください。これはブリングアップとランタイム診断中の主要なデバッグインターフェースです。
JTAG
FusionXメインボードの10ピンJTAGヘッダはCPLDのプログラミングと検証のためにAltera USB-Blasterに接続されます。同じインターフェースはQuartus IIに内蔵されたインシステムロジックアナライザであるQuartus SignalTap IIをサポートし、外部プローブなしでZ80バスFSM状態レジスタ、SPIデコーダ状態、すべてのバス制御信号などのCPLD内部信号のリアルタイムキャプチャと表示が可能です。
カーネルモジュールデバッグログ
z80drvカーネルモジュールにはコンパイル時デバッグ定義
DEBUG_PIOが含まれています。この定義が設定されると、モジュールはすべてのZ80バストランザクションのための詳細なバスサイクルログをカーネルリングバッファに出力します。シリアルコンソールでdmesg -wを使用して出力を表示してください。これは仮想ハードウェアハンドラ呼び出しのトレース、メモリマップデコードの確認、CPLDとSOMの間のタイミング問題の診断に役立ちます。
z80ctrl --dump
z80ctrl --dumpコマンドはz80drvにクエリを送り、すべてのエミュレーテッドZ80メモリ領域の現在の内容を16進数形式で表示します。ROMロードの確認、RAM状態の検査、仮想ハードウェアレジスタが実行中のZ80プログラムによって正しく書き込まれていることの確認に役立ちます。
Quartus SignalTap II
Quartus SignalTap IIは外部テスト機器なしにCPLDのインシステムロジック解析を提供します。SignalTap IIの設定ファイルをCPLDビットストリームにコンパイルすることで、Z80バスFSM状態機械の遷移、SPIフレームデコード、アドレスおよびデータバスの値、すべての制御信号エッジのリアルタイムキャプチャが可能になります。キャプチャされたデータはUSB-Blaster JTAG接続でQuartus IIの波形ビューアに表示されます。
参考サイト
| リソース | URL |
|---|---|
| tranZPUter FusionX プロジェクトページ | eaw.app/tranzputer-fusionx |
| ユーザーマニュアル | eaw.app/tranzputer-fusionx-usermanual |
| デベロッパーズガイド | eaw.app/tranzputer-fusionx-technicalguide |
| SigmaStar SSD202 | sigmastarmicro.com |
| Altera MAX7000AE データシート | intel.com — MAX 7000AE Programmable Logic Device Family |
| Zeta Z80 ライブラリ | github.com/redcode/Zeta |
| Quartus II 13.0.1 SP1 ダウンロード | intel.com — Quartus II Web Edition |
| Sharp MZ シリーズリファレンス | sharpmz.org |
| Amstrad PCW リファレンス | cpcwiki.eu/index.php/PCW |
無線規制に関する注意事項
本デバイスは SigmaStar SSD202 SOM に内蔵された SSW101B 2.4 GHz IEEE 802.11 b/g/n 無線トランシーバを搭載しており、世界各国の無線周波数規制(米国の FCC Part 15 Subpart C、欧州連合の無線機器指令 2014/53/EU を含む)において意図的放射器に該当します。
SOM モジュール自体は既存の規制認証を取得していますが、そのモジュールレベルの認証は、モジュールを組み込んだ完成品に自動的に適用されるものではありません。事前認証モジュールの免除規定は、個人の趣味愛好家が個人使用、実験、または教育目的で少数のデバイスを製作する場合に、個別の機器認可を取得せずに行うことを許可するものです。
重要な制限事項
本設計に基づいて製作されたデバイスが、管轄区域内の適用されるすべての無線周波数規制に準拠することは、製作者の単独の責任です。著者は本設計を個人使用、教育、および趣味愛好家向けに提供しており、本設計から製作されたデバイスが商業的配布の規制要件を満たすことについて、いかなる表明も行いません。
- 組み立てられたデバイスは、完成品が独自にテストされ、該当する管轄区域で機器認可(例:FCC ID、認定機関による CE マーキング評価)を取得しない限り、第三者への販売、販売の申し出、贈与、またはその他の方法での配布を行ってはなりません。
- 個人使用のために少数を製作することは、趣味愛好家および実験使用の規定(例:FCC § 15.23)に基づき、デバイスが有害な干渉を引き起こさない限り、一般的に許可されています。
- 規制要件は国によって異なります。米国外の製作者は、適用される規則について自国の無線周波数当局に確認してください。
本設計に基づいて製作されたデバイスが、管轄区域内の適用されるすべての無線周波数規制に準拠することは、製作者の単独の責任です。著者は本設計を個人使用、教育、および趣味愛好家向けに提供しており、本設計から製作されたデバイスが商業的配布の規制要件を満たすことについて、いかなる表明も行いません。