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