2019年10月20日

ADPCM修正

ADPCM対応ソフトが無く、シミュレーションで波形を送り込んで何となく動くことを確認だけしていたのですが、どうやらADPCM再生時にそもそもRAMにデータを取りに行っておらず、SDRAMコントローラもADPCMからのリード動作に異常があり異常動作になることが判明しました。
その修正版になります。とりあえず、音は出ます。喋ります。
release-de0cvdemu2.191020.qar
posted by プー at 21:50| Comment(0) | 日記 | 更新情報をチェックする

2019年06月27日

CD-4ディモジュレータ(FPGA)改良版

FPGA版のCD-4ディモジュレータですが、PC版から音に直接関係する部分で一部、割愛した部分がありました。
それは、RIAAのイコライザは低周波ほどゲインが上がりますがADコンバータの構造やFM復調によって直流分が出力される可能性があり、直流は10倍も増幅されてしまうため、RIAAの前に除去したほうがDレンジを大きく取れるため、PC版ではRIAAの前にIIRのHPFがついています。
ですがFPGA版では回路規模から収まらなかったため、割愛していました。
ですが、RIAAのイコライザもIIRフィルタですし、左右・前後のRIAAイコライザ用IIRを時分割にして共有することでFPGA版でもHPFが入れられるようになりました。
release-CD4dem.190627.qar
posted by プー at 21:50| Comment(0) | 日記 | 更新情報をチェックする

2019年04月11日

画面周り割込み修正版

画面周りやタイマ/カウンタの動作に間違いがありましたので修正しました。
ラスタ割込みはどこからどう数えての数値で割り込みを掛ければいいのかがいろいろな資料を読んでも分からなかったので適当に実装していましたが、どうやら垂直表示期間が終わってブランクに入ったラスタを0として、ラスタ毎にカウントアップするのが正しそうで、インターレース表示の時には奇数行・偶数行関係なくラスタをカウントすればいい?ようなのでそのように修正しました。
もともと僕の実装では表示期間があって、ブランク/同期期間がある、という順番(数値)になっていましたが、実機では先にブランク/同期でその後に表示期間のようです。
また、タイマ・カウンタはカウント値が1になった次にトリガがかかった時に割り込みを掛け、次のトリガでカウント値を初期化していましたが(カウント値0が存在する)、実機では同時にカウント値を初期化するのが正しいようです。
そのように修正しました。

release-F68k_DE0CVDEMU.190411.qar

垂直同期割込みやラスタ割込み等使用しているソフト、且つ15kHz水平同期の物ではタイミングが改善されると思います。
posted by プー at 18:37| Comment(0) | 日記 | 更新情報をチェックする