FPGAってソフトなの?

最近、FPGA設計をソフト開発だと思われている方が多いようです。

一応、当方としては「FPGA設計はソフト開発ではありません」と申し上げておきます(^^;)

ややこしい説明は省略しますが、「ハードウェア記述言語」というのは所謂高級言語というものとは根本的に異なるものですし、設計するのはあくまで「ロジック回路」です。

参考までにSDRAM_DAI基板のFPGA回路の1部をお見せします。

大きなくくりでこのような規模の回路図が9枚あり、この回路の中の1つの箱は、この回路のような組み合わせ回路から構成されています。

ということで、当方は夜な夜な回路を設計しているわけなのです・・・。

 

デシメーション基板, S757Aへの取付け

PIONEERのDV-S757Aの場合、大元の3.3Vのレギュレータは電源基板上に在り、ワイヤーでメインのDVDM基板(1番値段が高そうな多層版)を経由してSACD基板へ供給されています。

 

 

クリックすると拡大画像に遷移します

 

 

 

 

このレギュレータの温度上昇にも気を配ってください(DSD2S/PDIFデシメーション・フィルタ基板の装着により消費電流がおよそ70mA増えています!)。

さて、マルチメディアプレーヤでのSACD再生の場合、クロックシステムが複雑になります。普通は映像用の27MHz水晶振動子から22.5792/24.576MHz, 16.9344MHz, 33.8688MHz, 36.864MHzなどのクロックを得ています。

たった1つの水晶振動子からこれだけの種類のクロックを得るための働き者のICが、NPCのSM8707HVです。

 

 

クリックすると拡大画像に遷移します

 

 

 

 

つまり、33.8688MHzにはすでにSM8707HVによるジッタがあることになります。加えてDSD2S/PDIFデシメーション・フィルタ基板のFPGA内部で2段PLLによって内部動作クロックを生成しますので、DACへの送出し時点ですでにPLL群によるジッタがそれなりに存在していることになります。

一方、SCD-XE600の場合、11.2896MHzの水晶発振出力をFPGA内部で動作クロック周波数に変換するのは1回だけですので、DV-S757AにDSD2S/PDIFデシメーション・フィルタ基板を組み込む場合よりもジッタという点では有利です。

しかし、FPGA基板を物理的にどこへ押し込むかという問題を抜きにして考えると、DV-S757Aへデシメーション・フィルタ基板を取り付ける方が遥かに容易です。

 

デシメーション基板その後、その6

FPGA設計内部の詳細は省略しますが、256fs版のDSD2S/PDIFデシメーション・フィルタ基板がうまいこと動作しております。予定よりも早く動作にこぎつけました。

 

 

クリックすると拡大画像に遷移します

CXD2754Qから出力する、DSD_BCK, DSD_L, DSD_Rのダンピング抵抗が何気に替っていたりします。

 

 

 

 

 

 

クリックすると拡大画像に遷移します

 

 

 

 

 

クリックすると拡大画像に遷移します

配線をもう少し短くしたいところですが、まあ、とりあえず妥協することにします。ダンピング抵抗を小さくしたことが効いて、この配線長でも波形のダレが何とか許容範囲に収まっていると判断します。

基板はタカチのL字金具でリアパネルにビス止め。

 

 

 

クリックすると拡大画像に遷移します

ぼやっと見ていると、S/PDIFの同軸出力がもともと付いていたように非常に自然にそこにあるように感じられます。

なんといってもSACD専用の同軸出力です。

 

 

このXE600の基板は少し変わった基板で、いわゆるガラスエポキシの両面基板ではなく、安っぽい感じの基材なのですが2層以上の多層構造になっているようです。

そして、銅箔が通常よりも厚いように感じられます。そこへ持ってきて鉛フリー半田でリフロー仕上げされているため、熱容量の高いしっかりとしたコテを使わないと半田を溶かすのが難しく、作業は簡単ではありません。

そういうわけで4連のチップ抵抗も普通の基板より半田付けが難しかったような気がします。慣れない方にはそこそこ改造リスクはあるとお考えください。

また、XE600の3.3V LDOからFPGAの電源を取っているとLDOはかなり発熱します(FPGA基板は70mAくらい消費します)。もともとこのLDOは非常に熱く、温度上昇値の限界に近いくらい温度が上がっているのではないかと考えられる程ですが、それに加えて更に熱くなりますので、このLDO出力を使うことは避けるべきです(何らかの放熱手段が取れればその限りではないかもしれませんが)。

当方はUNREG5Vをフィルタコンデンサの足から取ってFPGA基板上で3.3Vに落として使いましたが、結果的に音にも好ましい方に出るようです。

電源トランス自体も小さく、もともとの給電能力が目一杯という可能性もあります。残念ながらシステムの安全性まで保障して組み込み例をご紹介しているわけではございませんので(DV-S757Aの例も同様です)、その辺の加減がご自身で判断できる方(覚悟できる方)以外は改造には取り組まないようにしてください。

 

 

デシメーション基板その後、追記

SCD-XE600にデシメーション・フィルタ基板を取り付けようとするには、DSD_BCK, DSD_L/R の各信号のダンピング抵抗を交換し、基板上の11.2896MHzを3逓倍する回路を追加する必要がある旨、前回書きましたが、クロックの3逓倍については、FPGA内部のクロック管理機能を大幅に変更することで、外付け回路を不要にすることができるかもしれません(フィルタ機能・性能については仕様は全く変わりません)。

これができればSCD-XE600を使うためのハードルを少し下げることができそうです。ただ、現状の(おもにDV-S757Aなどを想定した)バージョンのデシメーション・フィルタ基板とは別バージョンになってしまいます。

8月に入ったらすぐに現状のデシメーション・フィルタ基板のリリースを再開させていただく予定です。上記の別バージョンについては、ダンピング抵抗の交換とともに、8月になりましたら検討を開始する予定ですが、現時点では変更ができることをお約束するものではないことをご了承いただきたいと思います。

 

 

DSD_BCK

セット標準の470オームダンピング抵抗出力波形

ここまで鈍らせるとDACのためになり、音が良かったりするのかな?

 

 

 

同じDSD_BCK

ダンピング抵抗の手前、CXD2754Q出力波形

 

 

 

 

基板にSACD用のピンJACKを付けてしまったので、そのままでは基板をシャーシに納められません。というわけで、とりあえずリアパネルに追加で穴を開け、検討できる日まで置いておきます。

5.1ch用JACK両脇の小穴は、タカチのUCK-P13あたりを使って、片持ち梁、ならぬ片持ちパネル?式に基板を固定するつもりのものです・・・・。

 

 

 

 

 

 

 

 

デシメーション基板その後、その5

本番のデシメーション・フィルタ基板はDV-S757Aに両面テープで取り付けてしまっていますし、手持ちの基板も一切ありませんので、別の基板にFPGAのコードを焼きつけて実際に動かしてみました。

 

クリックすると拡大画像に遷移します。

 

 

 

 

 

全体にかなりいい加減な実装ですがご容赦ください。11.2896MHzの3逓倍回路はデシメーション・フィルタ基板上に載せました。ちなみに、FPGA近くの水晶発振器は関係ありません。基板に実装されているだけです。念のため。

 

 

 

 

 

 

 

 DSD_BCK(64fs)はJACKの近くの空きチップ・ケミコンのランドを経由して半田面から部品面へ引き出しました。

 

 

クリックすると拡大画像に遷移します。

 

 

 

 

 

 

 

 

クリックすると拡大画像に遷移します。 

 

 

 

 

 で、無事にS/PDIFからPCMに変換された信号が出てきました。したがってCXD2753Rだけではなくて、CXD2754Qを使った最新のSACDプレーヤーでもデシメーション・フィルタ基板が使えることがわかりました。「ロジカル」には動作に全く問題はないようです。

CXD2754Qの場合は、マスタクロックが768fsではなくて、256fsに変わっていますのでそのままではデシメーション・フィルタ基板が動きません。外付け回路で3逓倍してから入力する必要があります。

少し不便ではありますが、使用しているXILINXのSPARTAN3は、11MHzそこそこの低い周波数のクロックではPLLで逓倍できないという仕様上の制約があり、仕方のないところです。

 ところで、なぜ部品面から信号を引き出すことにこだわるのかというご質問を受けました。回答としては、「半田面に集中しても全然問題ありません。」ただ、この基板の下にデシメーション・フィルタ基板をうまいこと押し込むことができるとは思えなかったのと、検討やメンテナンス上、セットの基板の上側に位置していたほうが都合がよかったからです。

この製品の場合、空きスペースが広大ですから、基板の半田面から空いている空間へ信号を引き出せば良いのでは?と考える方が多いと思います。ところが、この製品の場合、信号線を可能な限り最短の長さでデシメーション・フィルタ基板まで導かないと、ラッチミス(データの取込みエラー)を起こして出力データにノイズが乗ってしまいます。そのために配置の自由度があまり無いという問題があります。

実際、今回はデシメーション・フィルタ基板をかなりラフに実装しており、信号線は中継点から130mmくらいの長さのリード線でFPGA基板まで引き込んでいることもあり、まれにノイズがでることがありました。

ノイズの原因はズバリDSD_BCKの信号の鈍りです。DSD_BCKはDACチップを3個ドライブしなければなりませんし、もともとのパターンも長いですので、さらに加えてリード線で合計20cm近くも引きまわしている状態では誤動作もやむを得ませんが・・・。

したがって、デシメーション・フィルタ基板を恒久的にセットに組み込むためには、DSD_BCK(DSD_L/DSD_Rも)の引き出し線は極限まで短くする必要があります。

なぜ信号の鈍りが大きくなるかというと、DSD_BCK, DSD_L, DSD_Rの各信号がCXD2754Qから引き出される際の大元のダンピング抵抗が470オームと値が大きいからだと考えています。リード線で引き出す前の標準の状態でもかなりダンプが効いている感じです。

 

 

クリックすると拡大画像に遷移します。

DIYERへの嫌がらせか(笑)、あるいはFCC(※)を通すための苦肉の策かわかりませんが・・・。

 

 

 

ここの集合抵抗を22オームあたりに交換すればラッチミスの可能性はなくなると踏んでいます。ただ、鉛フリー実装であるということと、1608が4つ集まった小さなサイズですので、慣れない人にとっては半田付けが厄介だと思います。したがって気軽に試してみて下さいとは言えないのが苦しいところです・・・(私はいつかきっとやりますが)。

結局、最近の機種は鉛フリー半田と実装密度の問題によって、弄り難いというところに落ち着いてしまいそうです。

いったん終了します

 ※アメリカにおける電波障害の規制

デシメーション基板その後、その4

もうバレバレのようですから明記してしまいますが、実験台のセットはSONYのSCD-XE600という最廉価SACD機です。ネットなどを見ていると、上位機種のSCD-X501やSCD-XA1200ESと基板が共通部品となっているようです。

まずは基板上で信号を追って、必要な信号をどこから取り出すかを調査しなければなりません。

 

クリックすると大きい画像に遷移します

 

 

 

 

 

SCD-XE600には同軸OUTがありませんが、上位機種のSCD-XA1200ESなどには存在しており、基板上には東芝のTOS-LINKの右側に空きランドがあります。このランドに同軸用のJACKを取り付けて、ここからSACD専用のS/PDIFを出すことにします。

次に、DSD_BCK, DSD_L, DSD_R, そしてDSD_MCK(このセットの場合は11.2896MHz)を取り出すポイントを明確にしておきましょう。 

  

クリックすると、信号引き出しポイントが記載された大きい図へ遷移します。
 
 
 
 
 
 
 
下流から信号を追っていくと、結局DSD信号3兄弟は半田面からしか引き出せないようです。信号のチェックパッドが用意されていて、そこから何とか引き出せそうです(が、慣れない人には少し細かい作業となります)。

結局、部品面から直接引き出せそうな信号は、DSD_MCK(11.2896MHz)のみになっています。

 

クリックすると、信号引き出しポイントが記載された大きい図へ遷移します。

 

 

 

 

 

ここもランドが小さいので細心の注意を払って作業しないとはがれてしまうこともあります。決してどなたにもお奨めできる作業というわけではありません。

電源関係も半田面から引き出してこなければなりません。

 

クリックすると、信号引き出しポイントが記載された大きい図へ遷移します。

 

 

 

 

 

次に、半田面から引き出した信号をどうやって基板表(この場合は部品面)に持ってくるかを考えます。

 

 

クリックすると、信号引き出しポイントが記載された大きい図へ遷移します。

 

 

 

基板の角の部分を見ると、GND, L, R, と書かれたコネクタの空きランドが見つかりました。SCD-XA1200ESにはヘッドフォン端子がありますから、それ用のAMP回路を出力するためのコネクタかもしれません。AMP回路?はOPAMP1石のシンプルな回路のようです・・・。

周辺回路はもちろん実装されていませんから、ここをDSD_L, DSD_R あたりの信号引き出し口にできそうです。

JACKにも一つ空きがあります。上位機種では2ch専用出力用のピンJACKが出ていますが、特に必要ないので電源の引き出し口にしようと思います。

 

 

クリックすると、信号引き出しポイントが記載された大きい図へ遷移します。

 

 

 

 

あとはDSD_BCKをどこから部品面に引き出してくるかですが、走りながら考えるとしましょう。

続く・・・

 

デシメーション基板その後、その3

見落としていました!

前回の記事で、セットの基板上の11.2896MHz発振回路からはクロック信号を取り出せるポイントが無いと書きましたが、あらためてパターンをよく見たところ、発振回路からCXD2754Qへ入るクロックラインの途中にチェック用のパッドがしっかりと存在していました。ここから11.2896MHzのクロックが引き出せそうです。

ということで、例によって方針がコロコロ変わりますが、3分周作戦は置いておいて、3逓倍作戦を敢行することにします。

 DSD2S/PDIFデシメーション・フィルタFPGAは、クロックとして768fs(=33.8688MHz)が必要です。でも、セットのシステムには256fs(=11.2896MHz)のクロックしかありませんから、これを3倍の周波数に逓倍しようというわけです。

SOP14ピンタイプのTC74VHCU04とチップタイプのL,C,R部品を使って、変換基板上に上記の回路を組みあげました。電源は3.3V。ちなみに、DIPタイプのICとリードのL,C,Rではうまく動作しないかもしれません。

 

 

Aitem-Labという会社の小さな変換基板を使いました。

 入口の抵抗1個だけはリードタイプを使いました。

 

 

 

 

 

チップ部品は裏へ半田付。

 

 

 

 

 

 11.2896MHzのクロック発生器出力を実際に上記の回路へ入れてみました。

 

なぜかSDRAM_DAI基板らしき物体がありますが、ここでは単に11.2896MHzの信号発生器として利用しただけです。

 

クリックするとオシロの波形写真へ飛びます 。

 

 

 無事に3逓倍の回路が働いています。これをセットの基板につないで33.8688MHzを作れば、DSD2S/PDIFデシメーション・フィルタFPGAを動かすことができそうです!これならばセットの基板を(水晶発振回路を取り払うといった)改造しないで済みます。

続く・・・

 

 

 

デシメーション基板その後、その2

外装を開けてみたものの、考えてみたら動作確認すらしていませんでした。順番が全く逆ですが、DENONのSACDチェックディスクをかけて1kHzの正弦波信号をオシロで観測することにしました。

 

クリックして拡大画像を見てください。

 

 

 

 

 

DSDのノイズがかなり出ていますが、DSDを入力するDAC ICの出力をもつ機種では珍しいことではないようです。良くも悪くも、要はこれがSACDなのでしょう(このページのQ6を参考までにご参照ください)。

さて、システムクロックが11.2896MHzの機種にデシメーション・フィルタFPGAを接続するには3倍の周波数の33.8688MHzをなんとかして用意してやる必要があります。

2通りの考え方があると思います。ひとつには、11.2896MHzを3逓倍するという手段が考えられます。この場合、unbuffered type のCMOS IC(要はHCU04)を使った共振回路でアナログ的に3逓倍する方法があるようです。

次に、独立した33.8688MHzの発振器を用意し、デシメーション・フィルタFPGAにこれを供給するとともに、システムにはこのクロックを3分周した11.2896MHzを供給するという考え方があります。

どちらを採用するかですが、システム基板のパターンを追っていくと、11.2896MHzのクロックを引き出すのに都合のよいポイントが無さそうですので、今回は後者の方法を採用することにします。

ただし、オンボードに実装されている水晶振動子と周辺のC,Rを撤去する必要はあります。

3分周の回路は、というと、LSI設計的には次のような回路がまず思い浮かびます。

でもこれは失格ですね。素子が2個必要です。

このような回路なら素子が1個で済みますのでベターでしょう(2個目のJKFFの/Q端子から出力をとればインバータは不要です)。図ではopenになっていますが、PRNやCLRN端子は’H’ (3.3V)にしておきます。念のため・・・。

問題は、3分周回路の出力は、デューティーが50%にならないということです。

 

 11.2896MHzは、信号を追ってみると、DAC ICの他にはどうやらDSDデコーダLSIとサーボLSI?に入っているようです。

世の中にはクロックのデューティーが50%でないと正しく動作しないLSIがあります。代表的なものはDDR SDRAMなどがそうで、要は内部でクロックの両エッジ(立上りと立下り)を使っているようなLSIでは50%でないと正しく動作しません。一般的には動作速度の速いLSIで両エッジを使うことが比較的よくあるようです。

デジタルオーディオのような低速なアプリケーションではおそらく片エッジしか使っていないと思いますが、確認してみる必要はありそうです。

「確認」といっても、実際に入力してみて動作がおかしくならないことを「祈る」だけなんですが・・・。

 続く・・・

 

デシメーション基板その後、その1

デシメーション基板を入手された方から、DV-S757Aに組み込んだ結果、素晴らしい音質が得られて大変満足していらっしゃるというご連絡をいただきました。私としても非常にうれしく思っています。DV-S757Aに限らず、CXD2753Rを採用している機種であれば、信号の引出し口さえみつければかなりの機種で動作するのではないかと思っています。

私は、と言えば、実は今回の検討でDV-S757Aを酷使しすぎたせいか、まれにローディング不良が発生するようになってしまいました。PIONEERサービスから部品だけの購入ができないこともあり、マシンが完全におかしくなる前に「後継ぎ」を確保しておく必要があります。

とはいっても、CXD2753R搭載機種も、今となっては過去の機種になってしまい、今からヤフオクなどで競り合うのも「なんだかなあ」と思ってしまいます。

ということで、改造の母体となり得る現行機種を探してみることにし、検討した結果候補となる母体を見つけ、早速ゲットしました。税込・送料込みで24,000円を少し切ったあたりの価格でした。

 

 ごらんのとおり、内部はスカスカです。これだけ空間が大きいと、メンテナンス性は抜群です。

 

 

 

 

 

 

メイン基板は4層基板で、それなりに実装密度は高いですが、調査の結果、信号の取り出し口は何とかなります。

メインのLSIはCXD2754Qという最新のDSDデコーダです。

 

 

 この機種はうれしいことにクロック系が非常にシンプルで、PLLなどもありません。基板上に11.2896MHzの振動子が載っています。何を隠そう、DVDプレーヤーではなくて、オーディオ専用機なのです。

DACチップは特注品のようで、メーカーのカタログには載っていません。DACにI/V出力はなく、アナログ回路は単電源でオペアンプを駆動していることから、自作DACファンには興味がわかない機種だと思います。

デジタルアウトは光のみですが、基板は上位機種と共通になっていて、同軸出力用のパターンやジャックのランドが設けられていますので、これは使えそうです。

 

 

非常にかわいいトランスが鎮座しており、メカの左側もガラガラです。スイッチング電源ではないので、トランスを替えたり追加したりしたくなる方もいるかもしれません。

 

 

 

続く・・・

 

LED基板リリースします

大変遅くなりましたが、SDRAM_DAI基板用のLED基板をリリースさせて頂きます。下の記事ではfs LED用の3 to 8 DECODERに74LS138を使うようにご案内しましたが、今回は3.6Vの小型レギュレータも添付し、74HC138を使うように変更しますのでご了承ください。回路図どおりに製作ください。

添付品は以下のとおりです。

  • 基板1枚
  • TD62083AF
  • 74HC138
  • TOREX 3.6V LDO
  • 1608チップコン 0.1uF × 3

1セット1,500円、送料(ヤマトメール便)は100円です。下記のフォームからお申し込みください。

 回路図

 特定商取引に関する法律に基づく表示、ならびに個人情報保護ポリシー