皆様こんにちは。お久しぶりです。
突然ではありますが、なんか欲が湧いてきたのでCombo384とEfinix Trion T20F256開発キットを使ってUSB-DACを自作したいと思います。
さすがに筐体設計まではしませんので悪しからず。w
今回は・・・
Amanero Combo384とT20F256開発キットを接続する基板を設計します。
ジャンパー線でピンヘッダ同士を接続しても良いんですが、やはり「信号線とGNDパターンが並走できる」という点で通信の安定を考えて基板を作成します。
安易に4層使ってごめんなさい pic.twitter.com/44pnoJ3pnk
— AUDIY (@AUDIY14) May 20, 2023
設計に関して
FPGAを他のデバイスと接続するときに設計者が考えないといけないことは「ピン配置」です。
IOピンならどこでも良いかと言われるとそうではなく、「クロック入力専用ピン」や「制御信号入力推奨ピン」が各FPGAデバイスに設定されていて、特にクロック入力専用ピンは「そこに入力したクロックでないと内部のD-FFを駆動できない」なんてデバイスもあります。
実際にTrion T20F256のピン配置を見てみます。
※「Trion Packaging User Guide v4.6」より引用
「なんのこっちゃ」と思われる方も多いと思いますが、「CLKn」(nは任意の整数)と記載のあるピン(例:G1ピンがCLK7)がクロック入力ピン、「CTRLn」が制御信号入力推奨ピン(例:H1がCTRL2)です。
それ以外にもLVDS入出力ピン(図の紫色の箇所)やPLL用クロック入力ピン(PLLINと記載のあるピン)等、配線を間違えたらとんでもありません。
開発環境でピン設定が通るか確認する
ということで、基板設計をする前に各入出力ピンの設定(クロック入力なのか、制御信号なのか、GPIOなのか)を開発環境で確認します。
流れをざっくり書きますと、
まずはトップモジュールを作成します。
内部処理が空だとエラーになるので何かしらの信号を出力にスルーアウトさせてください。
次にEfinity IDEでプロジェクトを作成し、作成したトップモジュールを論理合成します。
エラーがなければInterface Designerを起動して、トップモジュールの信号を各ピンに配置していきます。
このとき、開発キットの回路図を追いながら「どこがクロック入力か」、「どこが制御信号入力か」を探しながら配置していきます。
ピンの信号名はトップモジュールの入力・出力の信号名に合わせます。
GPIOR_120とGPIOR_124をクロック入力専用として設定したんですが、データシートを確認したらグローバルクロックラインが重複してしまっています。
2箇所重複しているので問題は無いと思います(コンパイル時に自動振り分けされるはずです)が、まぁ問題があれば基板の作り直しですかね。
※「T20 Data Sheet v5.1」より引用
スルーアウトする分には問題なさそうですので、とりあえずはコレで変換基板を発注したいと思います。