FPGA MIDI ポリフォニックシンセサイザー

概要

PCもしくはMIDIインタフェースを備えた電子楽器から送信される演奏データを元に楽曲を演奏する回路をFPGA上に実装した.最大で12個の音階を同時に鳴らすことができる.今回制作した回路は,MIDIメッセージのうち NOTEON 及び NOTEOFF のみに対応している.

群馬高専での授業課題として製作した.シリアル通信部分は「わかるVerilog HDL入門」を参考に実装した.

システム構成
システム構成
モジュール構成
モジュール構成
50分の1固定分周器
XTAL (25MHz) を分周してシステムクロック500kHzを作り出す
UART受信モジュール
調歩同期式シリアル通信の受信モジュールで,8ビットのデータを受信する
インターバルカウンタ
シリアル通信のデータ採取タイミングを生成するための回路
MIDIコントローラモジュール
UART受信モジュールによって読み取られたデータを8ビットずつ読み取り,MIDIメッセージを解釈してシンセサイザ音源モジュールに対して出力する
波形生成モジュール
方形波・三角波・ノコギリ波の3種類の波形を,入力された音程の周波数で生成する
分周器
入力された任意の周波数の方形波 (duty比約50%) を作り出す

Demo