構想から基板設計まで
Spartan-7ボードの完成と出図
2019.12.19
Spartan-7ボードですが、今日も夜中から微調整を行い、3時ごろにようやく設計完了です。
微調整のはずが、FPGAの奥の方のパッドからLEDの配線を8本引き出したり、全然、微ではすみませんでした。
シルクの図を紙に印刷して、シルクとパッドが被っている場所がないかなど、念入りに確認します。
裏面には、令和元年を奉祝する文字を入れました。この「令和」の文字を入れるために部品を少し動かしたり。
ピンヘッダの横にFPGAのピン番号を入れました。これで、回路図を見なくてもピン配置がわかる!
面付成功したのは3:50ごろ。眠くて吐きそうになったので、今日は寝ます。
そして、寝て起きてびっくり。
面付した基板のシートは別の基板のものを流用していたので、デザインルールが違っていて、実は電源ラインが細いやばい基板になっていたとか。
やはり、時間をおいて再確認は必須ですね。
朝起きて面付しなおして、ガーバビューワで確認。
よし、これなら大丈夫。
朝の9時ごろ、基板データ送信完了。
超特急コースなので6層基板だけど3日後の日曜日には届きます。
私は近畿地方のある基板メーカーにいつもお願いしています。
昔は某.com経由で東アジアの国で製造していましたが、数年前から国産メーカーに切り替えました。
こっちのほうがはるかに安くて早いのです。
そうしたら、実装用の配置座標ファイルや外形図、シルク図、メタルマスク図、部品表などを実装屋さんに送ります。
本来はDigikeyから部品が今日届くはずだったのですが、悪天候でUPSが一日遅れて明日になるようです。
本当に明日に来るかな?
Spartan-7ボード、ひとまずの完成
2019.12.18
日付も変わって、設計再開です。
まずは未配線のネットを引きつつ、未配置のコンデンサや抵抗などを配置していきます。
午前3:12。
ようやく全配線ができてViolationが消えました。
表面は
裏面は、
ただし、まだ完成ではなくて、この後、
- REFDESの付けなおし
- ポリゴン貼り
- 配線の微調整
- LEDの配線
- シルクの位置調整
- シルクで様々な説明を入れる
- 面付
などの微調整が残っています。
ところで、今回の基板のダウンロードページをgithubに作りました。
https://github.com/tokuden/Spartan7
今後、回路図やFPGAの設計データなどはここに公開していきます。
Spartan-7ボードのI/Oの配線とLANの設計
2019.12.17
Spartan-7ボードのI/Oポートへの配線を始めます。
わずか数センチの配線なのですが、平行線を見ていると無限に長く感じてきます。
下側の汎用I/Oへの配線が引けました。
上側も1時間程度で引けるはずなのですが、午前6時なのでちょっと仮眠を取ります。
ZZZ
寝て起きて、日常の業務を終えた後で再び基板の設計に戻ります。
USBとFPGAとDDR3Lの面積が小さくできたのと、I/Oを配線しても大して面積は食わないことがわかったので、空いたスペースにイーサネットコントローラ(100BASE)とMicroSDカードとMIPI-CSIのコネクタを置いてみました。
イーサネットのコネクタはさすがに乗らないので8ピンのピンヘッダを立てておくことにしました。
100BASE-TXのイーサネットは、TX+/-、RX+/-の4本の線だけでよいのですが、パルストランスの中点やGND、LEDを含めても8本あれば十分です。そのため8ピンのピンヘッダを立てておいて、LANを使いたい人はここから配線を引き出せばよいようにしておきます。
ただし、LANチップの裏はSDカードなので裏面にパスコン等を配置することができないため、実質的に片面基板になりました。ここが一番苦労したところかな。
頑張った甲斐があって、FPGA、USB2.0、DDR3、100BASEのLANインタフェースICと、MIPI CSI、MicroSDカードを載せてI/Oの配線もすべて引くことができました。
FPGAにMicroBlazeを入れれば、一応、組み込みLinuxのボードになりますが、本命はRISC-Vですね。
未配置の部品と未配線はあと100か所くらい残っているので、明日には終わるかなという感触です。
Spartan-7基板のUSBと電源まわりの設計
2019.12.16
少し回り道をしたけど、電源の保護回路の方針などが決まったのでSpartan-7基板の設計を再開します。
今はこの状態。
まず、USBのコネクタを何にするか。
選択肢としてはB、Mini-B、Micro-B、Cがあります。
ノーマルのBは大きすぎるので論外。
Micro Bは工業用製品に使うには弱すぎます。粗雑に扱うと壊れそうで怖いし、ケーブルが弱い力で引っこ抜けます。
最近では充電器をはじめとして様々な機器に使われてきていますが、MicroBが意外と丈夫なのはケースとケーブルが密着して力がケーブルの樹脂の部分に分散するからです。MicroBのコネクタの金属の部分だけだと簡単に折れます。
FPGA評価ボードはケースがなくて金属の部分だけで支えるので、破断する可能性が高いのでMicroBもやめることにします。
Type-Cはオーバースペックすぎる。
結局のところ、評価ボードにはそこそこ丈夫なType-Bがちょうど良いという結論です。
昨日のMOSFETによる保護回路と合わせてUSB周りの配置とざっくりとした配線ができました。
また、USBインタフェースICのCY7C68013AからFPGAへの配線がですが、意外と簡単でした。
このくらい↓の配線なのですが、
かなりすっきりと配線できました。
現在の基板の全体像はこのような感じです。
USBとFPGAとDDR3メモリの配置とざっくりとした配線ができました。
10年前のSpartan-6基板と比べると狭いところに詰め込めていて、かなり基板の面積が余りそうな感じです。
Spartan-7のMIGの配線を検証する
2019.12.13
Spartan-7ボードのDDR3メモリの配線が正しいかどうかを検証するために、MIGを使ったデザインで回路図のとおりに配置を指定して、論理合成できるかどうかを確かめるというプロセスを行います。
こんな感じのデザインを作りました。
回路図を見ながら、MIGの設定画面で一つずつピン番号を入力していきます。
そして保存して、いざ論理合成!とすると、突然、Vivadoが落ちるのです。
酷い時にはMIGのIPをクリックするだけで落ちます。
いろいろ回避策を試しました。
まず、AR71898という「MIG 7 Series - パッチ - 2018.3 での既知の問題」というアンサーが出ているのですが、プロジェクト名/ディレクトリにスペースはないので、これも違います。一応、パッチのAR71898_vivado_2018_3_preliminary_rev4.zipもあててみました。
関係ないですが、このパッチは面白いですよ。
ZIPファイルを解凍すると、AR71898_vivado_2018_3_preliminary_rev4というフォルダが出来るので、D:\Xilinx\Vivado18.3\の下に自分でpatchesというフォルダを作り、このAR71898_vivado_2018_3_preliminary_rev4フォルダをコピーするのです。どのファイルをどうするとかではなく、フォルダごとpatchフォルダの下にコピーするのです。 
すると、次からVivadoを起動したときにタイトルにパッチ名が付いて、更新済みVivadoであることが示されるわけです。
残念ながらこの方法でもうまくいかなかったので、Vivado 2019.2を試すことにしました。
せっかくだからVitisを入れようとしたのが失敗。
24GBをダウンロードして100GBのアプリをインストールするわけなので、午前中から昼過ぎまで何もできませんでした。
Vivado 2019.2ならクラッシュせずに論理合成ができたのですが、何か腑に落ちないですね。
ここで終わらせてはいけないので、徹底的に原因を探りたくなります。
Spartan-7とDDR3Lの配線
2019.12.11
Spartan-7とDDR3Lの配線が引けました。
過去に作成したSpartan-7基板のメモリの部分から配線のデータをコピーしてきて、Spartan-7のBank35につなげます。
XILINX FPGAのDDRメモリインタフェースは一つのバンクのT0~T3で表されたブロックの中にデータ線とDQSとDMを入れておけば配置は自由にできるので、Bank35のT3にデータバスを押し込み、T0~T2にアドレス線や制御信号を詰め込みました。
つまり、メモリからFPGAに引きやすいように配線を引いて、後からFPGAの端子を割り当てる作戦です。
DDR3の配線をしなければならないというのは気が重くなりますが、やってみるとそんなに難しくはなかったです。やはりメモリが一個だからでしょう。
基板全体に占めるFPGAとメモリの面積は下の図のような感じです。
Spartan-6基板(2009年の設計)の頃と比べると随分と縮んだように感じます。
デバイスの面積が小さくなったせいでしょうか?
Spartan-7ボードの設計を再開します
2019.12.10
1年くらい前から設計途中で中断していたSpartan-7評価ボードをやはり仕上げることにしました。
Spartan-7を中心として、DDR3L SDRAM、USB2.0(USB-JTAG付き)、2.54mmピッチの40pinピンヘッダ2個にI/O 64本、7cm×5cmという仕様です。
10年くらい前ならこういう評価ボードは日本の各社から結構出ていてたのですが、現在ではアジア製の安い評価ボードが簡単に買えて、
- 具体的に言うと、Zyboとか、Artyとか、PYNQとか。
しかもリファレンスデザインも充実しています。
今、誰もが最初に購入しようとするFPGAボードはZyboかArtyかPYNQじゃないですか?
学校とかでFPGAで何かを作る課題があったとして、実際に使うボードは上の3つのどれかじゃないですか?
こういう安くてコモディティ化したボードが巷にあふれている状況で、シンプルなボードを、名もない日本企業が、そんなに安くもない価格で出す意味があるのか、と悩んでいました。
海外ボード勢の価格は、日本で作ろうとしたらどう頑張っても原価さえ回収できず赤字となってしまいます。しかもgithubで手の込んだリファレンスデザインも出しているとなっては、もう手も足もでません。おそらくFPGAやメモリ、電源ICなどのを、一般価格よりも相当低い価格で仕入れることができているのでしょう。
そういう理由で、もうFPGA評価ボードは作るのをやめようと思っていた次第です。
しかし、FPGAを工業用の組み込みモジュールとして使うなら、スイッチやLEDやLAN、PMODなどが出ていないほうが使いやすいのではと思うところもあります。はがき大のサイズのボードだと機器に組み込むにはちょっと大きいし、背の高いLANコネクタは邪魔になります。
それに、原価低減のためなのか実装面積を削減するためなのか、こういった海外ボードはユーザガイドに示された推奨数のパスコンが乗っていないこともあります。(Kintex以上だとパスコン内蔵ですが)
小型高密度で、ちゃんとパスコンを載せたボードがあってもいいかもしれない。
されど高密度で極小サイズで作ってしまうと、コネクタがメザニンになってしまい、万能機版が使えなくなり、評価用や1台~2台の工業製品に組み込むボードとしては使いにくいものになってしまいます。
よって、2.54mmピッチのコネクタにたくさんのI/OがついたFPGAボードというのは、まだ少しでも需要があるかもしれない
・・
などと、ぐずぐず考えて判断した次第です。
ただ、こういう汎用の「何にでもなれるけど何者でもないFPGAボード」を設計するのは最後にしたいと思い、このボードの名前を以下のように決めました。
LAST BOARD(ラスト☆ボード)


































