[1chipMSX]

VM2413全体像 資料

※情報の正確さは保証できません。

OPLL互換回路VM2413 (以後 OPLL) の全体像を大ざっぱにまとめておきます。
詳細については、各ブロックの解析結果をご覧ください。



OPLL は、大ざっぱに書くと上図のような構成になっています。

ブロック名 概要
SlotCounter 1つしかない演算器を、パラメータだけを切り替えて時分割処理することにより、18回路あるように
見せかけています。また、1つの演算器も処理速度の都合等から4サイクルかけて演算しています。
18 * 4 = 72サイクルのタイミング生成回路です。
VM2413 では、すこしずつタイミングをずらした SlotCounter を4回路搭載しています。
(4回路ありますが、遅延目的のようなので1個目の出力を FF 遅延しても同じだと思います)
Controller OPLL内部を制御している部分であり、CPUからアクセスできるレジスタ値を保存するメモリもこの中に
あります。また、音色データ(プリセット/自作共)もこの中にあり、現在処理中のオペレータに対する
パラメータを音色データメモリやレジスタメモリから読み出して、各ブロックへ供給しています。
EnvelopeGenerator 音色の立ち上がり、立ち下がり、減衰などを表現するためのエンベロープを生成するブロックです。
Controller から提供されるパラメータをもとに計算して、波形の係数を求めます。
PhaseGenerator sin波形のサンプリング位相を決定するための演算回路です。sinテーブルの読み出しアドレスを生成します。
Controller から提供されるパラメータ F-Number, Block, Feedback などの値が使われています。
Operator sinテーブルの PhaseGenerator の示すアドレスの値を読み出し(sin波からのサンプリング)、EnvelopeGenerator
の示す係数を掛けて出力します。
係数を掛けるといっても、sinテーブルや係数は対数表現なので、実際の演算器は加算器になります。
OutputGenerator 対数表現の Operator 出力を、リニア表現に変換して出力します。
TemporalMixer 1チャネルに含まれる2つのオペレータ(キャリアとモジュレータ)をミックスして出力します。


[▲上へ]