シンセ・アンプラグド RSSフィード

2016-12-10

FPGA 版 FM 音源 (54) -- YMF297 (OPN3/OPL3) 測定 (20) -- EG クロック・プリスケーラ (7)

EG プリスケーラ部の CLK_EN 信号と SFT_SEL 信号の波形写真を示します。

まず、CLK_EN の波形です。

続きを読む

2016-12-08

FPGA 版 FM 音源 (54) -- YMF297 (OPN3/OPL3) 測定 (19) -- EG クロック・プリスケーラ (6)

EG をディケイの DR = 13、Rof = 0〜3 の範囲に限りハイレートに対応させました。

アタックに関してはハイレートでは EG アキュムレータ部に (パラレルな実現では) バレルシフタが必要になりますが、ディケイについては EG アキュムレータの増分の定数が「1」と「2」の 2 種になるだけなのでハードウェアの増加量を抑えられます。

続きを読む

2016-12-06

FPGA 版 FM 音源 (53) -- YMF297 (OPN3/OPL3) 測定 (18) -- EG クロック・プリスケーラ (5)

PSoC5LP UDB 上にローレート専用の EG アキュムレータ部分も実装して、連続してアタックとディケイを交互に繰り返す回路を作りました。

回路図を下に示します。 (図をクリックすると拡大します)

続きを読む

2016-12-03

FPGA 版 FM 音源 (52) -- YMF297 (OPN3/OPL3) 測定 (17) -- EG クロック・プリスケーラ (4)

前回の psc4 コンポーネントによるプリスケーラ部に加え、バレルシフタ部も実装して EG クロック・イネーブル出力を得る回路全体を PSoC5LP の UDB 上に作成しました。

オシロで出力波形の確認および周波数カウンタでの出力周波数の確認をしてあります。

回路図を下に示します。 (図をクリックすると拡大します)

続きを読む

2016-12-02

FPGA 版 FM 音源 (51) -- YMF297 (OPN3/OPL3) 測定 (16) -- EG クロック・プリスケーラ (3)

標準ロジック・ファミリではバイナリ・レート・マルチプライア IC として、TTL の 74 シリーズでは 7497 (6 ビット)、メタルゲート CMOS の 4000B シリーズでは 4089B (4 ビット) などがあります。

それらの機能を一部簡略化し、ほぼ同等の PSoC コンポーネントとして実現した回路を下に示します。 (図をクリックすると拡大します)

続きを読む

2016-12-01

FPGA 版 FM 音源 (50) -- YMF297 (OPN3/OPL3) 測定 (15) -- EG クロック・プリスケーラ (2)

2016 月 11 月 18 日付けの記事 (→こちら) で述べた EG クロック・プリスケーラの動作は、よく考えればレート・マルチプライア (rate multiplier) そのものでした。

パイプライン方式で複数オペレータを実現する場合に各オペレータ固有の内部変数として 8 進レート・マルチプライアの状態を保持する必要があると思っていましたが、EG クロック・プリスケーラをレート・マルチプライアで実現すれば、ひとつのプリスケーラ・ハードウェアを全オペレータで共有でき、内部変数を持つ必要はなくなります。

FPGA / CPLD での RTL 記述、およびソフトウェアによる実現に適した計算方法を下に示します。 (対象はローレートのみ)

続きを読む

2016-11-28

FPGA 版 FM 音源 (49) -- YMF297 (OPN3/OPL3) 測定 (14) -- EG ミュート状態

リニア出力のアナログ EG では、ディケイ/リリース回路に 1 次 RC 回路の放電特性エクスポネンシャル・カーブを利用していれば、時間の経過とともに出力電圧はサステインあるいはグラウンド・レベルへ限りなく接近していきます。 

リリース状態で「放置」していても、グラウンド・レベルに貼りついたままであり、不都合を起こす心配はありません。

一方、対数ドメインで動作するディジタル EG では、ディケイ/リリースのエクスポネンシャル・カーブでの減衰は、EG アキュムレータに定数を足しこんでいって、減衰量を増やすことによって実現されています。

リリース状態を「放置」しておくと、どんどん増加する EG アキュムレータの値がいつかは最大減衰量を超えてオーバーフローし、ラップ・アラウンドして減衰量が小さな状態に突入してしまいます。

したがって、EG アキュムレータの値の更新を最大減衰量 (あるいは、その付近) で停止させる、「OFF」あるいは「ミュート」と呼ぶべき状態を設ける必要があります。

下に実チップのキャプチャではなく、アタック/ディケイのみのソフトウェア EG シミュレーションプログラムを使って作成した、最大減衰量付近のふるまいの図を示します。

続きを読む