#目的
Tang-Nanoと言うボードが去年(2019)の終わりごろに売り出されていた。
一年近く立っており、今更気が付いた訳ですが。
乗っているFPGAの規模は1152LUTと書かれているので、xilinxのxc6lx9の1/5位て所かな。
但しLUT4なので、xc6lx9がLUT6なのを考慮すると1/8位ってとこ。
CPLDに比べれば大容量、でも大げさな事は出来ないだろうな。
6502とかZ80なんか入りそうにないので、遊びどころが狭くて苦しいな。
しかし、何この値段。
sでのボードの値段は535円、mでのチップ一個より安いじゃないか。
◆◆◆ よし、チップ単体より安いボードを使ってみよう ◆◆◆
まあ、サポートとか輸送費等も考慮すると、一概に高い安いとかの判定はつけられないだろうが。
#経緯
流石に日本国内では535円では買えないので、適当にチョイスして購入(800円)。まあ、値段は許容範囲かな。
ハードはUSB TYPE-Cでつなげるだけ。ドライバーはソフトと一緒に入ってくる。
ソフトの導入は、Tang-Nanoで検索すればやり方が出てきた。
SiPeed Tang Nanoの環境構築(Windows編)を参考にした。
ただ、管理者モード云々の記述が有るが、しなくても書き込みは出来た。
※Programmer -> Edit -> Cable Setting -> Cable -> Cable SettingのFrequencyが2.5MHzに設定されていた。
ライセンスは上記に書かれている、- server address 45.33.107.56 - port: 10559 で動作するはず。
※LANケーブルを外すと使えなくなる。外部サーバに頼るのはアマチュアと言えど一抹の不安が...。
サンプルプロジェクトも上記に書かれている。Tang-Nano-examples
※但し一つ注意が必要です。
某所で買ったLCD(JST-4300-E3V03)はクロックが10MHz前後。
サンプルは33MHZ動作なのでそのままだと、うすボケ表示となる。まあ写れば動作は出来ているとは言える。
修正にはPLLのクロックを10MHzにすれば良し。
Tools -> IP Core Generator の画面で、Target Deviceの横のフォルダマークをクリック、gowin_pll-> gowin_pll.ipcを選択。
IP Customizationの画面が開くので、CLKOUTDの EXxpected Frequencyを10にして再コンパイルすれば治る。
これだけでは、ここに書かれた情報なんか要らないと言われると悲しいので、よそ様ではあまり書かれていないAnalyzer Oscilloscopeについて少々解説したい。
Analyzer Oscilloscopeて何ですかと言われたら、signaltapやchipscopeみたいなものですと言っとこう。
FPGAの動作信号をパソコン画面に表示してくれる優れもの、追加ハード無し、無料で出来まっせ。
その道のプロはシミュレーションで動作検証するらしいが、素人では環境構成方法がむずかしく、そこで躓く。
アマチュアは、直接FPGA君にお伺いします。但し、LUTとかメモリを食うのが難点ですが。
#Analyzer Oscilloscopeの使い方
Analyzerの使い方にはマニュアルが有ります。Gowin Analyzer Oscilloscope
しかし、これ60ページ近くあり、しかも英語。(中国語バージョンも有った)
そこで、斜め読みの結果を軽く解説。判らなければ、原本を読んでくださいと言っておこう。
これを使うには、次の様な操作をステップを踏んで実行します。
#1.gaoファイルの作成。
予めソースをコンパイルを実行しておく。
1.1 File -> Newで GAO Config Fileを選択してOK。
1.2 ダイアログが現れるので、そのままNEXT。
※Liteを選択するとトリガなしになるが、LUTの消費が減るのでGW1Nには嬉しいかも。
今回の場合、Standard = 512LUT Lite = 162LUTという結果になっている。
1.3 Nameにファイル名を適当に設定してNext
1.4 FinishでDesignビューに***.gaoが出来ているので、選択する事により編集操作が可能となる。
#2.gaoファイルの編集。
***.gaoの選択でTrigger OptionとCaputure Optionの設定が可能となる。()内は取り合えず設定した内容。
2.1 Trigger Option
3箇所の設定が必要、ダブルクリックでダイアログが開くので設定入力。
1)Trigger Ports 「+」クリックでSearch Netsが開くので、トリガ信号を設定("counter[10]"を指定)
2)Match Units トリガ条件を設定(Match Typeを"Basic w/edges"とし"counter[10]"がValue"R"で立ち上がりトリガ!の設定となる)
3)Expressions トリガ条件の組み合わせ(ここは取り合えず"M0"だけ)
2.2 Caputure Option
1)Sample Clock キャプチャーの基準となる信号を設定(sys_clkを指定)
2)Capture キャプチャー幅を設定(サイズは256、位置は128で中央でトリガ)
※これを増やすと解析しやすくなるが、利用できるメモリが無くなる。
3)Capture Signals 表示する信号(counter[0]-[3],[10]を指定)
2.3 設定完了したらコンパイルを実行する。
2.4 Tools -> GOWIN Analyzer Oscilloscopeで、Oscilloscope画面が開く。
#3.Analyzer Oscilloscopeの実行
3.1 Enable Programmerをチェックするとプログラマー画面がプルダウンする。
3.2 書き込み釦(右端)を押す。上に有る赤かったPlease...が緑のReady...に変わる。
3.3 実行釦(三角)を押すと、実行中に変化。
3.4 トリガがかかると、キャプチャー結果が表示される。
3.5 拡大縮小(+-...)釦も活用して波形を確認。
#Tang-NanoでのAnalyzer Oscilloscopeの評価
1.このお値段で、この機能は秀逸だと思う。
2.シミュレーションの知識不要で、実機の信号が確認可能。
3.信号が目に見えるので、ロジックの動作が非常に判りやすい。
4.signaltapやchipscopeを使っていれば、操作性にさほど違和感はない。
5.この程度の単純な設定で、約500LUTとメモリ1Blockを使用。GW1Nにはちと荷が重いかな。
※Liteに設定すれば162LUT、これぐらいなら使えるかもね。
但し、トリガが効かなくなるので、キャプチャーは運任せ。
一本でいいから、トリガソースを用意してほしいな。
#感想
元々GW1N単体で纏まった処理をするのは無理で有り、マイコンに任すべきだろう。
GW1Nは10-200MHzの高速信号を処理して、マイコンに渡すような役回りだろうが、アマチュアには使いどころがなかなか難しい。
しかし、この値段とAnalyzer Oscilloscope機能を前面に押し出して、FPGAの啓蒙に使えないかな。
電子回路の教育用として、技術教育に売り込めばいいのに。なんせこの値段なんだから売り込みやすいだろうに。
口で説明するより、実物はインパクトが有るよ。更に拡張性も十分だし。
しかも、最初に使ったFPGAを、将来も使う可能性はかなり高いだろう。
まあ、ドライバーとライセンス管理には、再検討が必要かも知れないが。
なお、上記記載内容は全て無保証であり、各自の責任においてご利用願います。