Vivado 2020.2 にてSPI-Flash ROMにBINファイルを書き込む方法

 Vivadoは従来のISEと異なり、PROM(SPI-Flash ROM)にコンフィグレーション・データを書き込む際、MCSファイルを書き込む場合は何故かコンソールでコマンドを実行する必要があり、少し面倒です。一方で、BINファイルであればGUIの操作で簡単に書き込むことが出来ます。下記、手元にあるBINファイルを書き込む手順です。

1.ダウンロードケーブルが接続され、FPGAボードの電源が入っていることを確認

2.Vivadoを起動したら、まずFlow->Open Hardware Managerを選択

f:id:Susutawari:20201130034909p:plain

Open Hardware Managerを選択

3.Tools -> Auto Connect を選択

f:id:Susutawari:20201130040353p:plain

ダウンロードケーブルに接続

4.Tools -> Add Configuration Memory Deviceから、FPGAを選択

f:id:Susutawari:20201130040456p:plain

メモリの追加

 5.FPGAボードに搭載されているPROMの型番とSPIの接続方法を選択

f:id:Susutawari:20201130040736p:plain

メモリの型番選択

6.メモリへの書き込みを行うか聞かれるので、OKを選択

f:id:Susutawari:20201130040947p:plain

メモリへの書き込みを行うかのメッセージ

7.BINファイルを選択して書き込みを開始

f:id:Susutawari:20201130041114p:plain

BINファイルの選択

8.書き込み中

f:id:Susutawari:20201130033957p:plain

書き込み中

 9.書き込み完了

f:id:Susutawari:20201130034042p:plain

書き込み完了

以上がBINファイルの書き込み手順ですが、BINファイルはインプリメントオプション(-bin_file)で作成するようにしておく必要があります。

f:id:Susutawari:20201130041358p:plain

BINファイルの作成オプション

Vivadoでは何故未だにMCSファイルの生成をGUIから実行できないのか謎ですが、BINファイルが推奨ということなのでしょうか・・

AltiumのFanoutがおかしいときの原因

Altium Designerには結構前のバージョンからBGAの配線の引き出しを自動的に行ってくれる「Fanout」という機能があります。特にフルグリッドのBGAの場合、引き出し方法はあまりバリエーションが取れないため、自動配線と手動配線で差異がなく、ピン数が増えてくると手作業ではとても大変になるので、必須の機能となります。図1が部品を配置しただけの未配線の状態で、図2がFanoutによる自動引き出しを実行した結果です。

fanout001

図1.未配線の状態

fanout002

図2.Fanoutによる配線結果

この例では400pinのフルグリッドのBGAを貫通ビアのみで、4層で引き出しています。一般的に電源ラインなどの共通信号があるため、全てのピンを独立して引き出す必要はありませんが、これを編集していくことで効率良く配線できるというわけです。

実行はメニューの「Route」->「Fanout」->「Component」でFanoutしたい部品をクリックするだけです(図3)。

fanout003

図3.Fanoutの実行

部品を選択する前に表示されるオプションは下記の通りです(図4)。未使用ピンは引き出す必要がなく、差動は同一層、同一方向が良いので、図4の設定が良いと思います(貫通ビアのみの場合)。

1. ネットの割り当ての無い未使用ピンも引き出すかどうか

2. 外周の2列もViaを使って引き出すかどうか

3. Viaまでの引き出しに加え、外周まで引き出すかどうか

3.1. ブラインドビアを使うかどうか(ドリルペアが指定されてブラインドビアが有効になっていなければ関係ない)

3.2. 差動配線を優先的に同じ層、同じ方向に引き出すかどうか

fanout004

図4.Fanoutのオプション

 ここからが本題です。上記のように実行できれば問題ないのですが、今回実行結果が図5のように何故かViaが一切打たれず、外周のみFanoutされました。

fanout005

図5.外周のみFanoutされる

原因として考えられるのは下記の2つです。

1. デザインルールで指定しているViaのサイズが大きすぎて、BGAのPadの間に配置できない

2. 基板の層数がピン数に対して不足していて引き出せない

 

1についてはViaを一つ手動で置いてみて、DRCがエラーにならないか確認すれば良いわけです。2については見積もりが難しいので、400pinなら8層など多めの層数にして通るか試すのが良いと思います。

ただ、今回はいくらViaを小さくしても、層数を増やしても図5のようになり原因がわ分かりませんでした。Altiumのサポートにファイルを送って確認してもらったところ、BGAのあるパッドの上に既配線(トラック)があったことが原因でした(図6、図7)。

fanout006

図6.BGAの右下の方のPadに配線があった

 

fanout007

図7.Padの上の配線(拡大)

今回はPadの上の配線という非常に見つかり難いものでしたが、図8のように一部のピンを配線しておいた場合も正しくFanoutされません。例え、外周のFanoutに関係なさそうなところでもダメでした。

 

つまり、「Fanoutは対象部品のPadを配線する前に実行する必要がある」ということです。

fanout008

図8.BGAの右端の2本を配線してからFanoutを実行してみる

 なお、今回使用したAltiumのバージョンは18.1.9です。

 

Altium Designer18で3DconnexionのSpaceNavigatorを使う方法

17まで問題なく使えていた3Dマウスが18になってから3DxWareでの設定が上手く行かなくなった。
ごちゃごちゃいじっていると設定が反映される場合もあるが、いづれにしてもAltiumを起動し直すと設定がデフォルトに戻ってしまう。
原因を調べてみたら、Altiumの実行ファイル名がDXP.exeからX2.exeに代わったことが原因の模様。

C:\Users\[username]\AppData\Roaming\3Dconnexion\3DxWare\Cfg\

にある、X2.EXE.xml を削除し、代わりに AltiumDesigner.xml のDXP.EXEを指定している行の次にX2.EXEも指定する。
具体的には下記のようにする。

<ExecutableName>DXP.EXE</ExecutableName>
<ExecutableName>X2.EXE</ExecutableName>

出展:Altium Designer 18 (X2.EXE) - 3DxWare profile? - 3Dconnexion Forum

こういうUIのトラブルは地味に凹む。

Altium Designer18のUI

AltiumがVer.18にアップデートされましたが、今回のメジャーアップデートではこれまでとUIが大分変わったので、忘れないようにメモ。

1. License Managementの在り処
17までは、メニュー左端のDXPの最初に「My Account」があり、ここからLicense Management Windowを開けました。しかし18のメニューにはDXPがありません。代わりに一番右端の人の頭のアイコンをクリックすると出てくるプルダウンメニューの2番目にLicense Managementがあります。



2. 回路図のシートサイズ、グリッドやタイトル変数の変更
17までこれらは、回路図シート上で右クリック→Options→Document Optionsもしくは、シートの縁をダブルクリックで変更できましたが、18は後者のシートの縁のダブルクリックのみとなったようです。


シートの縁をダブルクリック


設定画面は別Windowではなく、ドッキングウィンドウになった。シートサイズなどのパラメータだけでなく、他の様々なパラメータもドッキングウィンドウになった模様。いちいちパラメータ設定後にOK/Cancelボタンを押さないのが今風。個人的にはこっちの方が一覧性も高くて好きだが、ノートなどで画面が狭いと見難いかも?Inspector Windowと統合されたということ?



3. デフォルトで部品がスペースキーで回転しないのは17と同様
「Always Drag」をOFFにすれば良い。設定画面は、メニューのTools -> Preferences -> Schematic -> Graphical Editing の Optionにある。



4. Find Similar Objectなどでマスクした後、マスクを外すのは、メニューバー下の「Clear Current Filter」アイコン
もしくは右クリックで同アイコンか「Shift+C」



PCB Editorの方もInspector Windowが無くなったが、それ以外は今のところあまり差異を感じない。

Altium Designer17のデフォルト設定

先日やっとAltium Designer16から17にアップデートしてみたのですが、早速基本操作でつまずきました。結果としては、Altium Designer16, 17でデフォルトの設定が変更になったとのことで、下記の設定を行うことで無事解決しました。

  • トラブル1:スペースキーで部品が回転しない

回路図エディタで部品をドラッグした状態でスペースキーを押しても、部品が回転しなくて困りました。ライブラリから部品をドラッグで取り出した直後は回転するのですが、部品を一旦配置すると、ドラッグ中にスペースキーを押しても回転しません。



ドラッグ中にスペースキーを押しても部品が回転しない

これは17からデフォルト設定が変更されたとのことで、メニューの"Preferences"->"Schematic"->"Graphical Editing"のOptionにある"Always Drag"のチェックを外すことで直りました。



"Always Drag"をOFFにする

  • トラブル2:アートワークのポリゴンが編集後にリビルドしない(Altium Designer16になってから)

ついでに、これは16からだったと思うのですが、PCBエディタの方でポリゴンを編集した際、以前は「リビルドするか?」と毎回尋ねて来ました。最近のバージョンではこれがないため、毎回"Tools"->"Polygon Pours"->"Repour All"を実行していました。



ポリゴンプレーン編集後にリビルド(Repour)されない

こちらも最近デフォルト設定が変更になったとのことで、下記設定を変更することで自動リビルドされるようになりました。"Preferences"->"PCB Editor"->"General"->"Polygon Rebuild"の"Repour Polygons After Modification"にチェックを入れる。



"Repour Polygons After Modification"をONにする

以上で無事解決しました。

メカトロパーツ天国「沙井電子城」

2016年4月に4度目となる深センを訪問、その際これまでとは違い、モーターやギアなどのメカトロニクス部品を扱うエリアを見つけたので報告します。
これまで深センと言えば、電子部品だけと思っていました。電子部品のお店が集積している華強北路は秋葉原に比べると非常に広く、ここを見て回るだけでいっぱいでした。
しかし、今回は現地の家電メーカに勤められていた久原さん(日本人)に教えて頂いた「沙井電子城」というメカトロ部品のお店に行ってきました。



沙井電子城という名前のバス停。深セン宝安国際の北に位置し、華強北路からバスで1時間くらい。




高須さんの深センツアーの後に、一緒に行ってきました。



建物は一つですが、とても広い。メカトロ部品のショッピングセンターと言ったところ。3階建てで、1階が計測器、コンプレッサー、大型動力機、刃先工具、中古部品、電子部品、2階が小型モーター、ギア、エアー部品、3階がPCショップ、レジスターといったところ。



まず1階の入り口でミツトヨの測定器具を発見(左)。一緒に中華製のも取り扱い(右)。



中古のリニアガイドやボールネジ



こちらは新品のリニアエンコーダ。SONIというメーカ。SONYではないし、SONYのはMagnescaleになったしw



空圧系の何か



空圧系マニピュレータ



ギアいっぱい(サンプル展示?)



リレーとブレーカーいっぱい(ここから2階)



メータ。空圧用にしては値が細かいような・・



カップリング



PLC(中古?)



ステッピングモータその1



ステッピングモータその2(上記とこのモータを買ってきましたw)



梱包の丁寧さは、以前の上海の炭素屋さんと同じ感じがするw



隣に文具城なるものがあって、気になったので行ってみました。



確かに文具城



輪ゴムの袋売り!



帰りに高須さんにフィギュアショップがあるというので連れて行って貰いました。場所は地下鉄の老街駅の周辺。



秋原とは。ビルの一角にこんな感じのお店が10店舗程度入っていて、深センとしてはまだ規模がとても小さかったです。



友利奈緒(持ってるカメラ逆w)



クリス 180元(2,800円)は安いのでは・・



こちらは良くわからないけど、400〜500元(6,200〜7,800円)と高い。

ということで、今回はメカトロ部品、文具、フィギュアと、電子部品以外の深センの一面を見てきました。
華強北路ではステッピングモータを扱っている店舗を2か所しか見つけられなかったのですが、沙井電子城では5箇所くらいありました。
ただ、モーターは思ったより安くなく、上記のモーターその1が1個55元(860円)でした。取り扱い点数としては、空圧系の部品が多い印象です。
お客さんは周辺の工場のようで、取り外した工作機械の制御パネルを持ってきて相談している人を見かけました。
ちなみに沙井電子城の3階は普通のPCショップが少し入っているだけなので、つまらないです。

最後のフィギュアショップに関しては、ラジオ会館の1フロア分くらいの取り扱い数で、まだこれからという印象です。
フィギュアの通販を行っている知り合いの中国人の話では、客層は10代〜20代が多く、400〜500元というのはかなり高額とのこと。
そのため、売れ行きが良いのはUFOキャッチャーの景品などのもう少し安価なものらしい。
また扱っているキャラクターは割と新しいものが多い印象でした。

FabLab佐賀レポ

2014年9月20日、FabLab太宰府のオープニングイベントの後、今度はそのままFabLab佐賀の見学に伺いました。



FabLab佐賀はJR佐賀駅から車で5分くらいの商店街の中にあります。



うちよりもお店ぽいのではw



入口がショウウィンドウぽくて良いです。





FabLab佐賀のFab Charter



レーザー加工機はうちと同じEPILOG miniシリーズの24x12inch 40W版



ロータリーテーブルもある。



あれ?ビニールカッターは太宰府と同じく、ここもbrother製。



他にはMDX-20



UPなど。



UPの出力作品や書籍が並んだ棚。



UPの出力作品の中に、つくばの常連のお客さんが作られたFPGAボード向けの基板スペーサが・・



そしてやはり、レーザー加工機の排気が気になったので、排気装置の中を見せて頂くw



活性炭多いな。



排気は2階を通って屋外へ。



コンプレッサーはうちより静か。



エアテックス社のAPC-005Nというやつ。



さらにロータリーテーブルを詳しく見せて頂く。



モーター部



コネクタ部。ああ、やっぱりw と一人で納得。



ところでレーザー加工機は時間で使用料を決めているとのことで、こんな装備も。



不要なところは触られないように、アクリル板で塞ぐなどの工夫が。



太宰府のイベントの直後で、お疲れだったにも関わらず、じっくり見学させて頂きました。陣内さん、ありがとうございました!

つづく。