4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Tang nanoのバウンダリスキャン

Last updated at Posted at 2019-12-03

GOWINのサポートに連絡し、代理店経由でBSDLファイルを頂くことができました。さっそく、Tang nanoをバウンダリスキャンしてみたいと思います。

デバイスの認識に成功

BSDLファイルをMITOUJTAGというツールに登録し、自動認識すると、
image.png
と認識されます。

認識された直後のようすです。
image.png

端子の可視化

画面上に表示されたFPGA(GW1N-1-LV)を選択し、可視化ボタン
image.png
を押します。

これでリアルタイムにTang nanoのFPGAの端子の状態が見えるようになりました。
tn-jtag.jpg

端子の色の意味

端子のH/L、In/Outの状態が色分けで表示されます。
image.png

  • 塗りつぶしのピンクはH出力
  • 塗りつぶしの水色はL出力
  • 網目のピンクはH入力
  • 網目の水色はL入力
  • 緑はJTAG端子
  • 赤と黒は電源端子
    です。

ピン定義の読み込み

FPGAの端子にはデフォルトでは名前がないので、名前を付けないと何の信号を見ているかわからなくなります。

Tang nanoにデフォルトで入っているサンプルプロジェクトのソースはおそらくgithubの
https://github.com/sipeed/Tang-Nano-examples/blob/master/example_lcd/lcd_pjt
にあります。

ピン定義ファイルは
https://github.com/sipeed/Tang-Nano-examples/blob/master/example_lcd/lcd_pjt/src/rgb_psram.cst
と思われるので、この中の記述をコピペしてUCFファイル風に書き換えます。

tangnano.ucf
NET "LCD_B[0] LOC = "41";
NET "LCD_B[1] LOC = "42";
NET "LCD_B[2] LOC = "43";
NET "LCD_B[3] LOC = "44";
NET "LCD_B[4] LOC = "45";
NET "LCD_CLK LOC = "11";
NET "LCD_DEN LOC = "5";
NET "LCD_G[0] LOC = "32";
NET "LCD_G[1] LOC = "33";
NET "LCD_G[2] LOC = "34";
NET "LCD_G[3] LOC = "38";
NET "LCD_G[4] LOC = "39";
NET "LCD_G[5] LOC = "40";
NET "LCD_HYNC LOC = "10";
NET "LCD_R[0] LOC = "27";
NET "LCD_R[1] LOC = "28";
NET "LCD_R[2] LOC = "29";
NET "LCD_R[3] LOC = "30";
NET "LCD_R[4] LOC = "31";
NET "LCD_SYNC LOC = "46";
NET "LED_B LOC = "18";
NET "LED_G LOC = "17";
NET "LED_R LOC = "16";
NET "KEY LOC = "15";
NET "XTAL_IN LOC = "35";
NET "nRST LOC = "14";

これをファイルとして保存し、MITOUJTAGでピン定義ファイルの読み込みを行います。いずれMITOUJTAGがcstファイルに対応するといいですね。
image.png

JTAGロジックアナライザの起動

MITOUJTAGのロジアナを起動します。
image.png

先ほどピン定義ファイルを読み込んで名前をつけたので、一つ一つのピンに名前が付いています。
image.png

スキャン開始!!
image.png

XTAL_INの信号は入力で規則的な波形、LCD_SYNCは規則的な波形、LCD_HSYNC、LCD_DEN、LCD_CLKは密度が高い波形、RGBは密度が薄い波形として見えています。

Tang nanoのスイッチを押すとKEYという信号が反応するのが見えます。
image.png

EXTESTモードで端子を操作

JTAGを使うと、FPGAのI/Oを乗っ取って操作することができます。これをEXTESTモードといいます。

MITOUJTAGのメイン画面でFPGAを選択し、端子操作というボタンを押します。
image.png

この状態で操作したい端子をクリックし、トグルを選択します。
image.png

あとは、操作したい端子をクリックするたびにH→L→H→L・・・と切り替わります。

動画にしました

MITOUJTAGでTang nanoの端子を見たり、操作したりする動画です。端子の状態を観察し、波形で見て、マウスクリックでLEDの色を変えています。
クリックすると再生します。
Youtubeの動画

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?