Posts Issued on December 10, 2018

posted by sakurai on December 10, 2018 #75

設計指針

設計指針を記述していきます。

  • サウンドデータはwaveフォーマットでROMに8bit単位で格納する。フォーマットは非圧縮PCM、8bit、モノラル、11.025KHzサンプリング
  • FSMはFSMCLKで動作する。FSMCLK=176.4KHz(=1/8*SCK)。
  • 8bitサウンドデータの読み出しは、FSMからアドレスを与えることで行う。
  • FSMから並列直列変換(以降パラシリ)にROMデータを供給する。
  • パラシリでは8bitデータをDACの要求する16bitデータに伸長する。具体的にはROMデータを上部8bitに詰め、下部8bitはゼロを詰める。
  • パラシリのシフトはSCK(=BCLK)で行う。SCK=1.4112MHz。ただし、これを出力しなければ自動的にDACの内部クロックモードとなり、MCLKから適当にシフトクロックを生成するとのこと。
  • パラシリの1フレームはLRCLKの立下りで開始する。LRCLK=44.1KHz(=1/32*SCK)。
  • マスタークロックはMCLK=11.2896MHz
  • 変換されたシリアルデータは1SCK遅らせてDACに出力する。

アーキテクチャ設計

以上の指針からブロック図を書くと以下のようになります。

図75.1
図75.1 サウンドコントローラブロック図

詳細設計

上記ブロック図(アーキテクチャ設計)をもとに、ブロック内部をRTLで記述したものを下図に示します。 SCKはシリアルクロック(=ビットクロック)ですが、内部クロックモードを使用するために、コンスタント出力としています。基本的にZynqを除き、ブロック図と一致しています。

図75.1
図75.1 Vivadoのブロック図

左矢前のブログ 次のブログ右矢