GOWIN FPGA Designerには、シミュレータは付属していませんが、代わりにGAOというFPGA内の波形を見るツールがあります。GAOはGowin Analyzer Oscilloscope の略です。
もちろん、FPGAのリソースを使用するので一度にたくさんの信号をみたり、長時間キャプチャさせることは難しいですが、ちょっと確認したい時等には役にたちます。
日本語の説明書は、C:\Gowin\Gowin_V1.9.10.03_x64\IDE\doc\JP の SUG114-3.1J_Gowinアナライザオシロスコープ ユーザーガイド.pdf です。
今回はGAOがとりあえず使える程度の設定について説明します。
File→New… を選ぶと左のダイアログが表示されます。
GAO Config Fileを選択しOKを押します。
GAO Settingは左のように選択します。
For RTL Designは、合成最適化前の
RTL信号をキャプチャします。
For Post-Synthesis Netlistは、合成最適化後のNetlist 信号をキャプチャします。
Modeは、Standardを選択します。
(最初はLiteを選ぶ方が設定が少なく、簡単かもしれません)
適当なファイル名を付けて保存します。
デフォルトでも良いでしょう。
Nextを押して、次のダイアログでOKを押します。
一番下の GAO Config Filesのフォルダに設定ファイルが出来ていますので、ダブルクリックします。
(この例では、fpga_project_verilog_test.rao)
Capture Optionのタグを選んで、Sample Clockを設定します。モニターする信号より早いクロックを選ぶ必要がありますが、あまりに速い信号だと短時間しかキャプチャできません。
Capture Signalsにモニターしたい信号を追加します。Storage SizeとCapture Amountは大きくするほど長く多くの信号をキャプチャできますが、当然FPGAのリソースを消費します。その場合は減らすか、トリガを工夫することになるでしょう。
また、Trigger Positionをセットすることで、取り込み開始位置を変更することができます。オシロスコープと同じですね。
例ではカウンタをトリガにしていますので、0になるときをトリガにして、Trigger Positionを100にすれば、100カウント前の位置からキャプチャします。
次は、トリガの設定です。
まだ何もトリガが設定されていない状態ですね。
Triger Port 0をダブルクリックしトリガ信号を選択します。
緑の+を押して、トリガに使いたい信号を選択します。この例では、24ビットのカウンタを選択しています。
選択したら、OKを押します。
L0のcounter(24ビット)を選択しました。
Match UnitでM0をチェック、選択しダブルクリックします。
Match Unit 0 の On Trigger Portで先ほど設定した、Trigger Port 0をプルダウンから選択します。
カウンタがどの値になったら、トリガを掛けるかをValueで設定します。
(カウンタではなく、ポートを選択した場合は、1か0ですね)
この例では、49900をセットしています。
Expressionsの欄でダブルクリックまたは右クリックしてAddを選ぶと電卓のようなダイアログが表示されるので、M0を選択しOKを押します。
複数のトリガを作成し、論理演算でトリガも作れます。
ここまでできたら、保存します。
いつも通り、合成(Synthesize)と配置(Place & Route)を行います。
Tools→Gowin Analyzer Oscilloscope を選ぶと、GAOが起動します。
Enable Programmerをチェックして、Fs File(ビットストリームファイル)を選択します。(デフォルトで選択されているはずです)
FsファイルをTang Nano 4K にダウンロードし、Ready to acquire と緑で表示されたら、Startボタンをクリックします。
下の部分で、トリガ値とポジションを変更することもできます。
トリガーを検出してキャプチャーしたら、波形が表示されます。トリガポイント0は、上で設定した、499900になっていますね。
ルーペアイコンで、拡大縮小ができます。
設計通り、500000カウント目でled_oが反転していることが確認できました。
GOWINのツールにはシミュレータが付属していないのが弱点ですが、GAOを使えばある程度はカバーできそうです。
なお、シミュレータとしては、MetricsのDsimが使えるようになったようです。GOWINの日本代理店である丸文のWebにDsimのインストール方法や使い方の資料があります。Dsim Desktopは無料で使えるそうですが、まだ試していません。