2019年04月30日

CLE-215 に MicroBlaze を組み込むが、PCIが通信できない

自分用のメモ


1.基本部分をつくる
NiteFury \Sample-Projects\Project-0\FPGA-A200T-3
に create-project.bat があって、これを実行すると vivado (2018.2用) のプロジェクトが生成される
この段階では、xilinx の PCIexpress のテストツール類が動く (xdma_infoやxdma_test)

1.BASE.png


2.MicroBlaze を組み込む
FPGA内部でデータを書き換えて、PCとの通信が正常か確認したい
Automation である程度はできるが、注意点
2.1 clock
clock は上限 100MHz なので、ありもののクロックを選択



2.clock.png

2.2 Reset 
Autoconnection すると勝手に reset 端子を作るのでありものを選択

3.reset.png

2.3 DDR3 とつなぐ
AXI 経由なので Interconnect に追加する

4.ddr.png

3.完成
でも、AXI interconnect に Slave が2つある状態だと PCIexpress のデータ転送がエラーになる
C:\TOOLS\bin>xdma_test
Detected XDMA AXI-MM design.
Found h2c_0 and c2h_0:
    Initiating H2C_0 transfer of 4096 bytes...
    Initiating C2H_0 transfer of 4096 bytes...
Failed to read from stream! 1359

原因調査中

5.end.png










posted by とーふ at 07:30| Comment(0) | FPGA

2019年04月28日

PCIexpress を FPGA で実装したときは デバイスを無効にして有効にする

昨日から何をやってもFPGAで PCIexpress が認識してなかった
リビルドすること十数回

ふと、 windows を再起動すると認識していることに気が付いた
あれ?EEPROM書き換えたときは、電源入れ直しが必要だったから、今動いているのはJTAGで書き込んだやつだ
ということは...

結論:
 PCIexpress を含む部分を書き換えた際は、デバイスマネージャで デバイスを無効にして、すぐに有効にすればよい

ロスタイム1日

0428.png
posted by とーふ at 16:39| Comment(0) | FPGA

2019年04月27日

yespower on CLE-215 進捗レポート

目標 yespower on CLE-215 を作る

わかったこと
・yespower 0.5 はメインのバッファメモリに 2MB 必要
・FPGA XC7A200T は、メモリ 13Mb 
・単純な高位合成では作れない

概略WBS
・PCから CLE-215 に計算元のデータを渡す処理を作る(x86 ソフト)
 ・PCIexpress 経由で CLE-215 の内蔵 DDR3 にジョブを書き込む
・FPGA 内で、DDR3 のデータを hash 計算する
 ・yespower の局所的なメモリ操作で処理する箇所を特定する blockmix あたり?
 ・局所的なメモリ操作をFPGAロジック化する(高位合成)
 ・FPGAロジックと DDR3 でデータ交換する処理を作る(microblase ソフト)

あしたのために そのいち
 PCから CLE-215 にデータを送り、えぐりこむように打つべし

先は長い
とりあえず、エディタのフォントを好みのフォントに変えることからスタート

consolas が好きなのねん
consolas.png


posted by とーふ at 16:23| Comment(0) | FPGA

2019年04月21日

Bitstreamの書き込み方法

メモ:やりかたを書いておかないと自分でも忘れちゃう

FPGAはチップのRAMに書いたデータにしたがって動作する
でも電源を切ると、忘れちゃう
なので、EEPROM に書き込むことで、電源投入時にスタートできる


出来上がった bitstream をEEPROMに書き込むには、MCSというファイルが必要

1. Generate する

1.GenerateMCS.png


2. Memory は Spansion (合併して今は cypress) の EEPROM  256Mb 品で行けた
2.generateMCS.png

3.出来上がったMCSを書き込むのは、デバッガの Hardware 画面から、EEPROMを選んで、
Program Configuration Memory Device...
3.writeMCS.png

4.書き込む
4.programMCS.png


以上

posted by とーふ at 09:45| Comment(0) | FPGA

2019年04月20日

CLE-215 にしか見えない M.2のFPGA ボード NiteFury の開発環境構築

下のリンクは、M.2 接続で使う FPGA ボードのクラウドファンディングサイト(2019/4/25終了)


どう見ても、CLE-215 に拡張コネクタを付けた感じ

こちらが、GITHUB にあるハードウェアの回路図とサンプルプロジェクト
オープンソースだそうだ

ということで、この情報はオープンにして良さそうw


さて、CLE-215 以外に必要だったのは、Digi-key で購入
JTAG デバッガだけは国内で買えるけど、コネクタの送料無料にするため、JTAGデバッガも Digi-key で購入
5日で届きました。ビックリ

1. JTAGデバッガ(DIGILENT)
    JTAG HS2 FPGA PROGRAMMING CABLE  (1286-1019-ND)
2. コネクタハウジング(MOLEX PICO EZMATE 6極)
    1.2 W/B REC CRIMP HSG 6CKT(WM4343-ND)
3.接点付きケーブル
    PICO-EZMATE 300mm 28AWG PRE-CRIM(WM15693-ND)

接点だけなら安いけど、接点付きケーブルで正解。圧着なんて無理
なお、両側に接点が付いているので、貧乏くさく半分に切る手もある。
でも、切ったら15cm になって使いにくかったw

これをCLE-215 の裏側の JTAG って部分に接続する。
IMG_20190416_203945.jpg

回路図見てもわからなかったのは、どっちが物理的に 1pin か?
回路図上は、Pin 1から、GND  TCK  TDO  TMS  TDI  VDD
だったので、電圧を測って確認したところ、左側が 1pin だった


線が細くてハウジングに、うまく刺せなくて、線が曲がってますけど、こんな感じで接続
setuzoku.jpg

で、白いケーブルに、普通のジャンパケーブルを半田づけしてから、ジャンパピンで JTAG へ接続
jtag.jpg

最後に、CLE-215を分解して設置した状態 (ファンが壊れちゃったんで、分解済み)
ヒートシンクも外して、NVMe用のヒートシンクに付け替えたかったけど、外れなかった。

installed.jpg


あとは、勉強しつつ、やってきます。

posted by とーふ at 20:13| Comment(0) | FPGA