To content | To menu | To search

Monday, October 18 2021

Petalinux が対応しているホスト OS バージョン

https://www.xilinx.com/support/documentation-navigation/see-all-versions.html?xlnxproducttypes=Design%20Tools&xlnxdocumentid=UG1144

こちらより。

ただツールバージョンまで考えるとキリが無い

Continue reading...

Monday, July 26 2021

antonblanchard/microwatt をもう一度動かす

前のは間違いもあったので、今度は備忘録も兼ねてもう少し細かく。

Continue reading...

Friday, October 11 2019

antonblanchard/microwatt を動かした

OpenPOWER ISA を実装した antonblanchard/microwatt を動かした話。

ただ、Python のライブラリの依存関係がうまく解消できなかったので、OS にインストール済みの Python 関係のパッケージを一旦全部削除、という乱暴なことをしているので、この手順の実用性はいまいちかもしれない。

2019/Oct/28 追記:この点については Pipenv を使えばいいらしい。

あと、本来は bit ファイルのロードも自動でされるはずが、仮想マシンで行っているためか、デバイスが検出できなかったため途中でとまる。手動でロードすれば動作する。

Continue reading...

Tuesday, February 12 2019

Xilinx の Vivado を起動しようとすると Microsoft の Visual C++ のランタイムライブラリをインストールしろと言われる問題

今回は 2017.1 をインストールした時に発生。

インストーラは「C:\Xilinx\Vivado\2017.1\tps\win64\xvcredist.exe を実行しろ」というようなメッセージを残していた。

実行すると Visual C++ 2017 Redistributable のインストールがされようとするものの、エラー番号 0x80070666 でセットアップが失敗する。

恐らく、別途 Visual C++ をインストールしているせい。

ひとまず回避したいときは、C:\Xilinx\Vivado\2017.1\bin\loader.bat を編集する。

xvcredist.exe がある行を探して、例えば拡張子を .exex 等に書き換えると、ファイルが見つからないのでスキップする。

同じことは SDK、HLS でも起きるので、C:\Xilinx\SDK\2017.1\bin\loader.bat や C:\Xilinx\Vivado_HLS\2017.1\bin\loader.bat も同じように編集しておく。

Monday, August 20 2018

OpenCAPI を少し (2)

なかなか情報が少ない気がする。

OpenCAPI のサイトでスペックをダウンロードしようとしても、レイヤーの低すぎる情報で困ってしまう。

というわけでやはり古いけれど、Coherent Accelerator Processor Interface (CAPI) の Getting Started の What is CAPI の What is CAPI のビデオを見るしかなさそう。

これによると、

  • FPGA のユーザー回路から、ホストメモリにアクセスする仕組み
  • ユーザープログラムからは clx/libclx を通して FPGA に指示を出す
  • ホストプログラムも FPGA の回路も仮想アドレスでメモリにアクセスする
  • FPGA 側の PSL は、仮想アドレスでのアクセス、FPGA からホストメモリにアクセスするときのキャッシュ、保護?の機能を提供するらしい?

PSL の規模は OpenCAPI 3.0 の OpenCAPI link ではかなり小さくなるとかなんとか。この辺りは別系統からの噂で。

その上で CAPI SNAP は「Storage, Network, Analytics and Programming」のためのフレームワークだとか。ホストプログラムと FPGA に入れ込むアルゴリズム以外をうまいことラッピングしてくれるというけれど、AXI を使って I/O とかとインタフェースとるよ、って言ってる以上、例えば AXI を意識しないということはないのかなあ。この辺りはまだ見てない。

追記 20190213

https://www.youtube.com/watch?v=2XJQvGX9yVE

Thursday, August 16 2018

メタステーブル

FPGA で、Stratix II や Virtex-II くらいの時代、「非同期信号の取り込みでのメタステーブルは、フリップフロップ2個通せば防げる」って話をどこかで聞いたか読んだかしたんだけれど、これは最近のデバイスや速いクロックの回路でもまだ通用するのかな。

「2個」については、経験則だったような気もするし、何か具体的に数字を挙げて説明されていたような気もするけれど、元ネタが思い出せない。

Tuesday, July 3 2018

OpenCAPI を少し

気が向いたら更新していきましょう

Continue reading...

Monday, September 26 2016

FPGArduino をさわってみる(3)

とりあえず動いた

Continue reading...

Thursday, September 22 2016

FPGA の回路規模の見積もり

ちょっと前に話題にあがったので。みんなどんな風にしているんだろう。

Continue reading...

FPGArduino をさわってみる(2)

昨日の続き

Continue reading...

Wednesday, September 21 2016

FPGArduino をさわってみる(1)

幸い Xilinx Spartan 3A/3AN Starter Kit を自由に使える環境があるので、まずはバイナリで動かしてみた。
シリアルポートが、まだ USB-UART が無くて、D-SUB 9pin の PS/2 側を使わないといけなかったのはハマったけれど、とりあえず動いた。

けど f32c\rtl\proj\xilinx\s3a_700_bram\s3a_700_bram.xise をそのまま ISE 14.7 で通そうとしてもエラーになる。

 ERROR:HDLParsers:3375 - "f32c/rtl/generic/bram.vhd" Line 81. Choices for an array aggregate (result of operator) must be locally static unless there is only one choice. (LRM 7.3.2.2)

だそうで。
Makefile 使わないとだめなんだろうか。
でもこれ長くて読むのつらい。

元々、これまた自由に使える ML605 に移植しようと思ったけれど、どこから手をつけていいのか分からない。
なので素直に f32c\rtl\generic\glue_bram.vhd から手をつけていきますか。

基本的には、http://www.nxlab.fer.hr/fpgarduino/ のページの My board isn't listed above, is there any hope? の手順のはずなんだけど。

と、generic で Synthesize 走らせたら通った。失敗したときはパッケージ系のファイルが入っていなかっただけかもしれない。
C_clk_freq に MHz で数字を設定したら通った。
読み込んだファイルは

f32c/rtl/generic/glue_bram.vhd
f32c/rtl/generic/bram.vhd
f32c/rtl/cpu/pipeline.vhd
f32c/rtl/cpu/alu.vhd
f32c/rtl/cpu/debug.vhd
f32c/rtl/cpu/defs_f32c.vhd
f32c/rtl/cpu/defs_mi32.vhd
f32c/rtl/cpu/defs_rv32.vhd
f32c/rtl/cpu/idecode_mi32.vhd
f32c/rtl/cpu/idecode_rv32.vhd
f32c/rtl/cpu/loadalign.vhd
f32c/rtl/cpu/mul_dsp.vhd
f32c/rtl/cpu/mul_iter.vhd
f32c/rtl/cpu/shift.vhd
f32c/rtl/generic/bptrace.vhd
f32c/rtl/generic/reg1w2r.vhd
f32c/rtl/generic/bootloader/boot_rom_mi32el.vhd
f32c/rtl/generic/bootloader/boot_sio_mi32eb.vhd
f32c/rtl/generic/bootloader/boot_sio_mi32el.vhd
f32c/rtl/generic/bootloader/boot_sio_rv32el.vhd
f32c/rtl/generic/bootloader/defs_bootblock.vhd
f32c/rtl/soc/gpio.vhd
f32c/rtl/soc/sio.vhd
f32c/rtl/soc/spi.vhd
f32c/rtl/soc/timer.vhd

そしてこれをラッピングして ML605 につながるようにして bit ファイル作ったら、とりあえず Arduino IDE と通信はできた。
動作クロックは 150MHz を指定。というか C_clk_freq は integer といってるし、166.6 はどうやって指定するんだろうな。

ただ、LED のアサインが違っているようで、blink は動いてくれなかった。その他も、まだこれからかな。

Saturday, April 25 2015

Just a plan

This is Just a plan.

Continue reading...

Wednesday, August 14 2013

Xilinx の FPGA の cross clock の制約設定

調査中。 こことか
http://forums.xilinx.com/t5/General-Technical-Discussion/False-Timing-Paths-using-FIFO-to-cross-clock-domains/td-p/220259
そこからのリンクでこことか。
http://forums.xilinx.com/t5/Virtex-Family-FPGAs/Virtex-5-metastability-protection/m-p/196834#M12512
UG612 がどうにもうまく理解できてないので。