2017-02-01から1ヶ月間の記事一覧

FPGA 版 FM 音源 (73) -- FPGA 版 EG (17)

デュアル・ポート RAM を使ったレジスタ・アレイ・インターフェース部の Verilog ソースを下に示します。

FPGA 版 FM 音源 (72) -- FPGA 版 EG (16)

前々回の記事で述べたように、スロット・アドレスの割り付けには 8 バイト中に 2 バイトの「穴」(未使用領域) があり、これをどう扱うかで次の 3 つの方法が考えられます。

FPGA 版 FM 音源 (71) -- FPGA 版 EG (15)

Altera の内蔵メモリ・ブロック「M4K」では、名称に「4K」が含まれることから分かるように、ひとつのブロックで 4 K = 4096 ビットの容量を持ち、 1 ビット × 4096 ワード 2 ビット × 2048 ワード 4 ビット × 1024 ワード 8 ビット × 512 ワード 16 ビット ×…

FPGA 版 FM 音源 (70) -- FPGA 版 EG (14)

今回はスロット・パラメタ・レジスタ・アレイのホスト・インターフェース部についてです。 各スロットの発音パラメタは、継続的に該当タイム・スロットで「タイムリー」に供給される必要があります。 その一方で、ホスト側からのアクセスについてはなるべく…

FPGA 版 FM 音源 (69) -- FPGA 版 EG (13)

EG の本体回路だけでなく、周辺回路も含んで (無印) Cyclone にインプリメントした「op3_EG_cyc()」の Verilog ソースを下に示します。 モジュール名、ファイル名に含まれる「cyc」は「Cyclone」を意味しています。

FPGA 版 FM 音源 (68) -- FPGA 版 EG (12)

ステレオ 16 ビット・シリアル入力 DA 用送信モジュール「i2s_tx()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (67) -- FPGA 版 EG (11)

16 ビット入力 1 次シグマ・デルタ型 1 ビット DA モジュール「sdm1_16()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (66) -- FPGA 版 EG (10)

S/PDIF 送信モジュール「spdif_tx()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (65) -- FPGA 版 EG (9)

今回は対数 — リニア値変換モジュール「opl3_lb2lin()」についてです。 OPL3 では、サイン波 ROM や EG の出力は「真数」(リニア値) ではなく、 2 を底とする「対数」で表現されていて、対数値同士の加算後に対数 — リニア変換を行なうことによりハードウェ…

FPGA 版 FM 音源 (64) -- FPGA 版 EG (8)

2017 年 1 月 28 日付けの記事 (→こちら) の「周辺回路」部分の Verilog ソースを記載していきます。 まず、EG クロック・ジェネレータ・モジュール「opl3_EG_clk()」の Verilog ソースを下に示します。

FPGA 版 FM 音源 (63) -- FPGA 版 EG (7)

EG モジュールのトップレベル回路図「opl3_EG_top.bdf」を下に示します。 (図をクリックすると拡大します)

FPGA 版 FM 音源 (62) -- FPGA 版 EG (6)

EG スロット・メモリ・モジュール「opl3_EG_mem()」を回路図で表現したものを下に示します。

FPGA 版 FM 音源 (61) -- FPGA 版 EG (5)

EG コントロール・モジュール「opl3_EG_ctrl()」を回路図で表現したものを下に示します。