FGPA

Pynquinoを屋外/展示会場などラボ外の環境で利用する

FAN4のワークショップのデモで、有線LANにアクセスできず、困ったことがあった。 また出張先など「有線が使えないがWi-fiが使える」 or 「モバイルSIMのテザリングでインターネットに出られる」環境で Pynquino GUIにアクセスしたいことがある。PYNQ自体はロ…

Intel NUC KitをローカルでMacと共有してVivadoを使う

一枚のNICに2つのIP(DHCPと固定ローカルIP)を設定 参考:http://engetu21.hatenablog.com/entry/2014/09/30/070236 /etc/network/interfaces # interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eno1 iface eno1 i…

SDSoCの注意点:Releaseでビルドする

Array Partitionのサンプルをビルドしてみたら Release環境でビルドしないとPYNQ-Z1には入りきらなかった Debugでビルドした場合 Releaseでビルドした場合

MicroBlazeのソフトリセット

安全な方法ではないらしいが、以下でリセットできる https://forums.xilinx.com/t5/Embedded-Development-Tools/Software-reset-of-MB-processor/td-p/188732 void mb_reset() { microblaze_disable_interrupts(); (*((void (*)())(0x00)))(); // restart }

MicroBlazeでsprintf()でfloatを指定("%f")すると落ちる

https://renesasrulz.com/synergy/f/synergy---forum/7006/sprintf-with-float リンカースクリプトで、ヒープサイズを増やしたら落ちなくなった 最初はスタックサイズ0x200, ヒープサイズ0x200 変更後はスタックサイズ0x400, ヒープサイズ0x800

PYNQのUARTLITEで文字列の受信

pynqmbのuart.c/uart.hを編集してuart_readline()関数を実装する 実装は以下を参考にした: ZYBO / Pmod / UART > PmodからUART接続してみた (UARTLITE使用) https://qiita.com/7of9/items/d93d24766bd8ff13631a https://github.com/shohei/PYNQ/commit/d14d…

Xilinx SDK上にPynquinoの開発環境を構築する(その2)

https://github.com/shohei/Zsprinter-pynquino にも書いた 1. base designをビルドする。 必要な変更は以下 1. UART1を追加:http://d.hatena.ne.jp/seinzumtode/20180729/1532826360 2. BRAMを64Kから256Kに:http://d.hatena.ne.jp/seinzumtode/20180814/…

Ubuntu上にPynquinoの開発環境を構築する

A. Xilinxツールのバージョン Vivado 2017.4.1 Xilinx SDK 2017.4 B. PYNQライブラリをGitHubからクローンしてtop.bitを作成する PYNQ/boards/Pynq-Z1/base/に移動してmakeするだけ。1時間くらいでtop.bitができる。 C. Address EditorでBRAMを拡張してtop.b…

Xilinx SDK上にPynquinoの開発環境を構築する(その1)

新しい記事も参考→ Xilinx SDK上にPynquinoの開発環境を構築する(その2) http://d.hatena.ne.jp/seinzumtode/20180815/1534292975 A. VivadoのAddress editorでBRAMへの割当てを増やしてGenerate bitstream B. Xilinx SDKでPynquino対応のBSPを作成する 0…

PYNQ ArduinoIOPのbspの作りかた

PYNQ/boards/sw_repoの下にmakefileがあるので、これをMakeすればいい

PYNQ Arduino IOPで2つのUARTを使う

UART0はデフォルトで入っている 1. Chipkit GPIO[15:0]の16bitの2つを削って、14bitとする。 2. UART1を追加 自動配線だとMicroBlazeに配線されないので、Arduino IOP内のAXI Interconnectにつなぐように手動で配線する。UARTLITE0を参考にすればいい。 あ…

PYNQでChipkit GPIOのテスト

ck_gpio[15:0]のck_gpio[0]=IO26を点灯させる コード #include <stdio.h> #include "platform.h" #include "xil_printf.h" #include "xparameters.h" #include "xgpio.h" #define GPIO_EXAMPLE_DEVICE_ID XPAR_GPIO_1_DEVICE_ID #define LED_DELAY 10000000 #define </stdio.h>…

PYNQのArduino GPIOとChipkit GPIOのピン配置

Arduino GPIO Chipkit GPIO

PYNQのArduino IOPでUART0(UARTLITE)を使う

http://pynq.readthedocs.io/en/v2.1/overlay_design_methodology/pynq_microblaze_subsystem.html baudrate 115200で問題なく通信できそう。 1. PYNQライブラリ(uart.c, uart.h)を使う実装(こっちの方が簡単) #include <stdio.h> #include "platform.h" #include</stdio.h>…

PYNQでPartial reconfiguration

https://github.com/AEW2015/PYNQ_PR_Overlay 論文 A dynamic partial reconfigurable overlay concept for PYNQ(リンク切れ?) A Hardware Accelerator Framework Approach for Dynamic Partial Reconfigurable Overlays on Xilinx PYNQ

PYNQでFTDIドライバを有効にする

FTDIデバイスがlsusbだと見えるんだけど、/dev/ttyUSB0にマウントされない カーネルモジュールを入れる必要がある(usbserial.koとftdi_sio.ko)クロスコンパイル環境のUbuntuでカーネルモジュールをビルドする この記事を参考:PYNQでデバイスドライバを開発…

PYNQでデバイスドライバを開発する

cdc-acm.koが必要になったので、そのビルド まずカーネルソース(linux-xlnx)を落とす git clone https://github.com/Xilinx/linux-xlnx.git該当のブランチをチェックアウト 今回はPYNQ v2.1を使う。https://github.com/Xilinx/PYNQ/releases によれば v2.1…

PYNQでUSB Wi-fiドングルでWifi通信する

いろんな記事でドライバのパッチ当てろとか見たけど、PYNQのnotebookから設定したら一瞬で接続できた notebooks/common/usb_wifi.ipynb を使う 結局は/etc/network/interfaces.d/ に無線LAN用の設定ファイルを作っているだけ $ lsusb Bus 001 Device 002: ID…

PYNQの時刻合わせ

https://askubuntu.com/questions/1009729/unable-to-start-ntpd-service sudo apt install ntp sudo systemctl restart ntp.service

PynquinoでJupyterからZsprinterにG-codeを送信する

import time BUFSIZE = 6 FAST_DELAY_TIME = 0.01 with open('data/octo.gcode') as file: lines = file.readlines() line_number = 0 buflen_accum_last = 0 buflen_accum = 0 bufdiff = 0 buflen_accum_finished = 0 buflen_accum_finished_last = 0 bufle…

PYNQ Arduino IOPでタイマー割込み(その3)

http://d.hatena.ne.jp/seinzumtode/20180416/1523849621 のコードは引数が間違っていたので修正した #include <stdio.h> #include "xil_types.h" #include "xtmrctr.h" #include "xparameters.h" #include "xil_io.h" #include "xil_exception.h" #include "xintc.h"</stdio.h>…

PYNQのMicroBlazeでC++を使う

基本的なところでスタックした 以下にあるように、CでビルドしたライブラリとC++でビルドしたライブラリ名前のマングリングが異なっている。 http://kaisk.hatenadiary.com/entry/2014/06/23/172411は Cのライブラリのヘッダを以下のように変えることでC++か…

PYNQ Arduino IOPでタイマー割込み(その2)

【追記】以下のコードは複数タイマで動かない→修正した( http://d.hatena.ne.jp/seinzumtode/20180419/1524107851 ) インスタンス名をARM Cortex A-9コアでやったとき(= http://d.hatena.ne.jp/seinzumtode/20171011/1507704033 )と合わせてみた #includ…

PYNQ Arduino IOPでタイマー割り込み

ここを参考に http://e-trees.jp/wp/2015/10/14/post-316/PYNQ Arduino IOPにはタイマーが複数(0~5までの6個)あるので 今回はタイマー0を使ってみた main.c #include <stdio.h> #include "platform.h" #include "xtmrctr.h" #include "xintc.h" #include "xparame</stdio.h>…

PYNQのbspをXilinx SDKで読み込む

コツが必要だった 動画

PYNQ(v2.1)のuart関係のバグ

https://groups.google.com/forum/#!topic/pynq_project/rgXq6egbmuIPYNQ/boards/sw_repo/bsp_iop_arduino_mb/iop_arduino_mb/libsrc/pynqmb_v1_0/src にあるuart.cとuart.hを修正する1. XPAR_XUART_NUM_INSTANCES > XPAR_XUARTLITE_NUM_INSTANCES 2. uart u…

Vivado HLSでTclスクリプトを実行する

hoge.tclを実行する場合Vivadoのとき $ vivado -mode batch -soruce hoge.tclVivado HLSのとき $ vivado_hls hoge.tcl

PYNQでPython関数の高速化

How to accelerate a Python function with PYNQ

SDx2017.4でxfopencvを試す その2

下のやり方に沿ってやってみる Using the xfOpenCV Library on a Custom Platform https://www.xilinx.com/html_docs/xilinx2017_4/sdsoc_doc/ejq1506318012907.htmlARM向けのOpenCVをincludeしてビルドするのはここでの知見が役に立った http://d.hatena.ne…

SDx2017.4でxfopencvを試す その1(失敗)

https://github.com/Xilinx/xfopencv のexamples/accmulateを試す。 0. SDxプロジェクトを作成→サンプルプロジェクトのファイルをインポート Arty-Z7-20のPlatformを使って空のSDxプロジェクトを作成した。File>Import>File system>を選択して、インポートす…