TSNのXilinxのIPを部分的に確認してみた

FPGA

XilinxのTSNのIPを部分的に確認してみました。基本的には個人では使用できないIPです。

評価ボードのデザインファイルから一部参照することが可能です。

確認する手順を紹介します。

 

スポンサーリンク

TSNのXilinxのIPを部分的に確認してみた

XilinxのTSN(Time Sensitive Networking)のIPを部分的に確認してみました。

基本的には個人では使用できないIPです。

ダウンロードするには販売代理店のエンジニアの確認が必要になるためです。

 

ただし、KR260のハードウェアデザインからTSNのIPを部分的に確認できます。

KR260は実際にTSNをテストできるXilinxのFPGAボードです。

ダウンロードから確認方法までの流れを紹介します。

 

TSNとKR260について

TSNとKR260については、今までに下記記事で使い方をまとめています。

もし興味ある方はご一緒にご確認ください。

 

TSNの通信テストと環境構築に関しては下記記事で実施・紹介しています。

TSN Ethernetの実装をFPGA(KR260)で試してみた

TSN Ethernetの実装をFPGA(KR260)で試してみた
TSN(Time Sensitive Networking)のイーサネット環境を作ってみました。 KR260というTSN対応のFPGAボードを使ってテストしています。 TSNの環境構築から実装・通信テストまで一連の流れを紹介します。

 

TSNスイッチ、またマスター・スレーブとして設定を確認しています。

TSNスイッチとして使えるFPGAの評価ボード(KR260)

TSNスイッチとして使えるFPGAの評価ボード(KR260)
XilinxのKR260というFPGAボードはTSNに対応しています。 更にTSN対応のRJ-45(LAN)コネクタが2つあります。 TSN スイッチとして、またエンドポイントとしても使えることを紹介します。

 

テストしたPTP通信がTSNに対応しているかの確認を下記記事で紹介しています。

TSNとPTPの違いは?通信テストの設定・ログから確認してみた

TSNとPTPの違いは?通信テストの設定・ログから確認してみた
TSNの環境構築して、PTPの通信テストを行いました。 そしてテストしたPTPの設定が、TSNの規格に適応しているのか確認してみました。 設定・ログを見直しながら、PTPとTSNの違いを確認した内容を紹介します。

 

テスト環境は「PTP対応のLANカード(NIC)」と「TSNに対応のFPGAボード」です。

PTP対応のLANカード(NIC)の詳細については下記記事で紹介しています。

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた

IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
IEEE-1588/PTP対応のLANカード(NIC)を購入してみました。 実際にPCにカードを取り付けて、PTPの動作確認まで実施しています LANカード(NIC)の選定から、PTP通信までの内容を紹介します。

 

またTSNに対応のFPGAボード(KR260)に関しては下記記事で紹介しています。

KR260を購入してUbuntuを動かすまでのメモ

KR260を購入してUbuntuを動かすまでのメモ
XilinxのKria KR260のロボティクス スターター キットを買ってみました。 Digi-Keyから個人で購入しています。 Ubuntuを動かすまでの流れを紹介します。

 

Xilinxの公式のIP・ハードウェアデザイン

XilinxのTSNのIPは「100M/1G TSN Subsystem」という名称です。

 https://japan.xilinx.com/products/intellectual-property/1gtsn.html

※ダウンロードするにはXilinxの販売代理店のエンジニアの確認が必要です。

 

KR260のハードウェアデザインを参照する手順は、下記ドキュメントを参照しています。

 https://xilinx.github.io/kria-apps-docs/kr260/build/html/docs/build_vivado_design.html

同様に実施する方はご確認お願いします。

 

Vivado(Vitis)をインストールする

XilinxのFPGAのIPを確認するには、専用のソフトを使用する必要があります。

Vivado・Vitisを用意します。まとめてインストールできます。

筆者の環境はLinuxのデスクトップPCで実施しています。

 

公式ページからインストーラーをダウンロードして、実行します。

 https://japan.xilinx.com/support/download/index.html/content/xilinx/ja/downloadNav/vitis.html

 

下記のライブラリは最低限インストールはしておいた方が良いです。

 

Vitisがインストールのデフォルトだとroot/toolsに作られます。

インストールしたい箇所にフォルダ作って、権限を付けてインストールしておきます

 

sudo ./Xilinx_Unified_2022.1_0420_0327_Lin64.bin

 

KR260のハードウェアデザインを入手する

KR260のハードウェアデザインは誰でもダウンロード可能です。

Linuxの環境でgitcloneできます。

KR260含めた、KRIAというプラットフォーム環境を入手できました。

 

TSN通信するサンプルデモのデザインも含まれています。

「kr260_tsn_rs485pmod」という名称です。

「kria-vitis-platforms/kr260/platforms/vivado/kr260_tsn_rs485pmod」でmakeします

 

起動に関してはvivadoのセッティングのスクリプトを起動して、立ち上げるだけです。

 

makeするに32GBのメモリが必要だった

makeするのに注意点があります。それなりのスペックを持ったPCが必要です。

筆者のLinuxのデスクトップPCはメモリ16GBです。

それでもOut of memoryが出ました。(メモリ不足のエラー)

 

メモリが16GBでは足りなかったので、メモリスワップの容量を16GB増やしました。

 

再ビルドにはTSNのIPが必要

一応makeしてTSNを使ったデザインを復元できるのですが、完全ではありません。

エラーが出ています。TSN関連のIPが無い旨の内容です。

 

サンプルデザインを見るぐらいは可能

一応makeしたプロジェクトを開けばデザインは確認できます。

(先述しましたがTSNのIPが入手できないので、本当に表面上だけの確認になりますが…)

 

実際にKR260のTSN通信のサンプルデモを開くと、TSNのIP箇所も確認できます。

(接続量を見ると、個人で一から配線できるレベルではなさそうです…)

 

ただ中身まで見ると、基本的なIPの機能は確認できます。

「物理的なIF…RGMII」「TSNのIPのモード…Endpoint Switch」などがあります。

(基本的な内容程度ならば確認できそうです)

 

まとめ

XilinxのTSNのIPを部分的に確認してみました。基本的には個人では使用できないIPです。

(早く一般公開してほしいIPです)

但し、評価ボードのデザインファイルから一部参照することが可能です。

 

よろしければ皆さまも、TSNのIPが気になりましたら試してみて下さい。

 

コメント