こんにちは。
マクニカでインテル® FPGA 製品の技術サポートをしている インテル・F・ハナコ です。

 

 

Can't recognize silicon ID for device

インテル FPGA ダウンロード・ケーブル II(通称 USB-Blaster™ II)を使用して FPGA にデータ転送したり、インテル製のコンフィギュレーション・デバイスにプログラミングをする際に、このエラー・メッセージが出た場合は、まず以下の FAQ を確認しましょう。

Can’t recognize silicon ID for device というエラーが表示され、プログラミングができません。

この要因の5番目にある "ノイズの影響" だった場合に試してもらいたいことがあります。
それは USB-Blaster II の TCK 周波数を変える!!

USB-Blaster II の TCK 周波数は、デフォルト 24MHz です。
信号品質(シグナル・インテグリティ)低下の度合いにもよりますが、TCK の周波数を下げることで回避できるかもしれません。 また、FPGA へのダウンロードのタイミングが 24MHz 動作を許容しないときにも、有効な方法です。

Notes :
・ USB-Blaster は TCK 周波数を変更できません。TCK 周波数は 6MHz (typ) です。

TCK 周波数はいくつに変更できる?

TCK の周波数に指定できるラインナップは、下記のとおりです。

  • 24 MHz
  • 16 MHz
  • 6 MHz
  • 24/n MHz (10 KHz ~ 6 MHz;n は整数)

TCK 周波数を変更する方法

USB-Blaster II の TCK 周波数を変更する方法は、Quartus® Prime のエディションやバージョンによって異なります。

 

Quartus Prime 変更手法

Quartus Prime Pro Edition

※ Quartus Prime Standard および Lite Edition の 19.1 以降をご利用の場合にもこちらをご覧ください。

Programmer の GUI により変更
Quartus Prime Standard Edition / Lite Edition (ver.18.1 以前) コマンドにより変更

Notes :
事前にパソコンと USB-Blaster II を接続してから変更作業を行ってください。
変更した TCK 周波数は、パソコンからケーブルを外すと初期化されます。その都度変更作業を行ってください。

Quartus Prime Pro Edition における TCK 変更方法

1. Quartus Prime Pro Edition の Programmer を起動します。

 

2. Programmer の Hardware Setup ボタンをクリックし、

  Currently selected hardware のプルダウン・リストから USB-Blaster II を選択します。

  Hardware frequency 欄に、24000000 (Hz) が表示されます。

Article header 20190130 img1  1
Hardware Setup 画面

3. 設定したい TCK の周波数の値を、Hardware frequency 欄に入力します。
  例えば、16MHz に変更したい場合はこのように設定します。

Article header 20190130 img2  1
TCK 周波数を 16MHz に設定

4. [Close] ボタンをクリックします。

 

以上で TCK 周波数の変更作業は完了です!

 

5. (オプション作業) 現在設定されている TCK 周波数は、再び Programmer の Hardware Setup 画面を起動して確認できます。

Quartus Prime Standard および Lite Edition における TCK 変更方法

1. Quartus Prime Standard (Lite) Edition の Programmer を起動します。

 

2. Programmer の Hardware Setup ボタンをクリックし、

  Currently selected hardware のプルダウン・リストから USB-Blaster II を選択します。

 

3. コマンドプロンプトを起動します。(Nios® II Command Shell でもOK。)

 

4. cd コマンドで Quartus Prime のインストール・フォルダ下の bin64 フォルダ へ移動します。

 

5. jtagconfig コマンドで “cable number” を確認します。

jtagconfig

パソコンに装着されている USB-Blaster 系のダウンロード・ケーブルの本数分が表示されます。

下記は、ダウンロード・ケーブル1つだけが装着されている状態です。

この、USB-Blaster II の先頭に表示された番号(cable number)を覚えておきます。

Article header mos 20190206 img1  1
jtagconfig コマンド

6. 以下のコマンドにより、TCK の周波数を設定します。

jtagconfig --setparam <cable number> JtagClock <frequency><unit prefix>
表1. パラメータの説明
cable number 操作3で確認した番号
frequency 設定した TCK 周波数の数値
unit prefix 周波数の単位 (Hz を除く)。MHz の場合は M、KHz の場合は K を入力する。Hz の場合は未入力。

 

例えば、16MHz に変更したい場合はこのように設定します。

Article header mos 20190206 img2  2
TCK = 16MHz に設定

TCK = 150KHz に変更したい場合は、"24/160" ではなく "150K" または "150000" を入力します。

Article header mos 20190206 img3  1
TCK = 150KHz に設定

以上で TCK 周波数の変更作業は完了です!

 

7. (オプション作業) 現在設定されている TCK 周波数は、以下のコマンドで確認できます。

jtagconfig --getparam <cable number> JtagClock

以下のように、現在の設定値が表示されます。

Article header mos 20190206 img4  1
TCK = 16MHz を確認



私が検証したときに確認できたエラー・メッセージの一部を以下に書いておきます。これらは、TCK の周波数を下げることでエラーを回避することができました。

[エラー・メッセージの一例]
・ Can't recognize silicon ID for device 1
・ Connected stsyem ID hash not found on target at expected base address.
・ Flash Loader IP not loaded on device 1
・ No Nios II target connection paths were located. Check connections and that a Nios II .sof is downloaded.

参考にしてください。


おすすめ記事/資料はこちら

USB-Blaster II のドライバをインストールしてみよう
インテル® FPGA の開発フロー/FPGA トップページ

おすすめ FAQ はこちら

USB-Blaster/USB-Blaster II 関連の FAQ
インテル® FPGA 関連の FAQ