Skip to content

Latest commit

 

History

History
36 lines (28 loc) · 4.88 KB

README_ja.md

File metadata and controls

36 lines (28 loc) · 4.88 KB

IKAOPLL

YM2413のFPGA向けVerilogコアです。ヤマハのデータシートとMadovさんとTravis Goodspeedさんのダイショットを見て、リバースエンジニアリングしました。9ビットデジタル出力のデザインとVRC7パッチはnukeyktさんのソースを参考にしました。© 2024 Sehyeon Kim(Raki)

header image

著作権のあるイメージです。ヘッダー画像としての使用の許可済。絵師はSEONGSU

特徴

  • cycle-accurate、シリコン解析基盤の、BSD2ライセンスコア。
  • 実際のチップの大体の信号を正確にエミュレート。
  • 3つのデジタル出力を用意。
  • 全てのLSIテストビットを実装。
  • 使いやすい、LPFが必要ない16ビットアキュムレート出力とミキサーを内装。

インスタンス化

インスタンス化の方法は、英語版のREADMEをご参照ください。

パラメータ

  • FULLY_SYNCHRONOUS 1 コア全体をマスタークロック同期します。(基本、おすすめ)全ての非同期制御信号入力に2-FFシンクロナイザーが付けられます。従って、全ての書き込み動作は2クロック遅延されます。0の場合、10個のラッチが使われます。書き込みリクエ用のSRラッチをエミュレートする2つのunsafe Ⅾラッチと、データバスの書き込み値を一時的に格納する8ビットⅮラッチがです。ラッチを使用する際は、ラッチ・イネーブル信号に適切なクロックまたはグローバル信号の属性がちゃんと与えられているか、確認する必要があります。Quartusはいくつかのwarningを表示し、この信号をGCLKとして扱います。ラッチ・イネーブル信号は、コンパイラーにより、クロックとみなされるので、タイミングアナライザの設定ファイルに条件を追加する必要があります。
  • FAST_RESET0に設定すると、IKAOPLLの全てのパイプラインのリセットを保証するためには、i_EMUCLKi_phiM_PCEN_nの動作中に少なくとも「phiM」72サイクル分の長さのi_IC_nのアサートが必要です。 1 の場合、i_IC_nがロジックLOWであれば、内部分周器のクロックイネーブルである「phi1_cen」を強制的にイネーブルし、i_EMUCLKと同じスピードでパイプラインがリセットされます。チップ全体をリセットするのには「phiM」18サイクル分の長さのリセットが必要です。
  • ALTPATCH_CONFIG_MODE 1に設定すると、テストレジスタのD[4]を1に設定することで、パッチを切り替えます。0にすると、セカンドパッチ(VRC7)のイネーブル信号を外部から提供する必要があります。
  • USE_PIPELINED_MULTIPLIERコンパイラがリソースを効率的に利用できるようにします。オリジナルのチップは加算と乗算を「phi1」1サイクルで処理します。

IOポート

  • i_EMUCLK はシステムクロックです。
  • i_phiM_PCEN_n は「phiM」のポジティブエッジのクロックイネーブル(負論理)です。
  • i_IC_n は同期リセットです。リセット仕様については、上の説明をご参照ください。
  • o_D_OEはFPGAのトライステートIOドライバの出力イネーブルです。
  • O_DAC_EN_MOo_DAC_EN_RO はオリジナルチップのDAC出力をイネーブルするために使われる信号です。
  • IMP_NOFLUC_SIGN はオリジナルチップのstring DACのVrefソース切り替えスイッチをトグルするための信号です。
  • o_IMP_NOFLUC_MAG はオリジナルチップのstring DACのタップスイッチを有効にするための信号です。
  • o_IMP_FLUC_SIGNED_MOo_IMP_FLUC_SIGNED_RO は最終的なサウンドの9ビットデジタル出力です。オリジナルDAC設計の欠陥によるゼロレベルの揺らぎをエミュレートします。
  • ACC_SIGNED_STRBは16ビットaccumulatedデジタル出力のストローブ信号です。このストローブ信号のポジティブエッジで、外部DFFを使用したデータのサンプリングが可能です。デューティサイクルは50%固定です。
  • o_ACC_SIGNED は16ビットaccumulatedデジタル出力です。オリジナルDACはリズム音のインパルスを2回出力するので、符号あり5ビットのスケーリングファクターを与えることで、各チャンネルの音量を調整することができます。デフォルト値はFMが+2、リズムが+3です。