What PTSG does / PTSGが行うこと

PTSG is a Programmable Timing Sequence Generator — a compact instruction-driven sequencer that resides inside the FPGA fabric and controls external hardware via 16 simultaneous timing signals, plus state-number output for external condition generation. Its instruction memory holds 4,096 words (Maximum) of 32 bits each, structured as:

PTSGはプログラマブル・タイミング・シーケンス・ジェネレータ — FPGAファブリック内部に常駐する命令駆動シーケンサで、16本の同時タイミング信号と外部条件生成用のステートナンバー出力を介して外部ハードウェアを制御する。命令メモリは32ビット×4,096ワード(最大)で構成され、各ワードは以下の通り:

BitsFieldPurpose
D0–D3Opcode (4 types currently, 12 reserved)Instruction selection
D4–D15OperandParameter (loop count, stay length, jump target, etc.)
D16–D31Timing signals16 parallel output lines, latched per state

Four opcodes cover all current operations: Global (system control + external register operations + "background execution" during stays), Stay (timed waiting with precise clock-count control), Branch (conditional branching driven by external 1-bit Condition logic), and Jump (unconditional absolute address jump). This minimalism is intentional — the opcode space reserves 12 additional slots for future expansion, but the discipline is to keep the core compact and push complexity outward to user-designed external logic.

4種のオペコードが現在の全動作をカバーする: グローバル(システム制御+外部レジスタ操作+ステイ中の「裏実行」)、ステイ(精密なクロック単位の待機)、ブランチ(外部1ビットConditionロジックによる条件分岐)、ジャンプ(無条件絶対アドレスジャンプ)。このミニマリズムは意図的である——オペコード空間は将来拡張のために12スロットを予約しているが、規律はコアをコンパクトに保ち、複雑性をユーザ設計の外部ロジックへと押し出すことにある。

What makes PTSG distinctive / PTSGを際立たせるもの

The cleanest separation of time and space in any control architecture I know of. Stay opcode manages the time axis. State memory manages the space axis. Branch is a state-axis decision driven by externally-generated Condition signals. This separation eliminates the "tangled FSM" problem that plagues hand-coded state machines — control flow becomes linear and readable, even for highly parallel and timing-sensitive applications.

私が知る限り、いかなる制御アーキテクチャよりも明快な、時間軸と空間軸の分離...

Read more »