FPGA

Visitのhello worldを動かしてみました(on Zybo)

Visitをインストールし、次にZyboでVisitのHello worldを動かしたので、備忘録として記載します。 参考元 Vitis + Vivado + zynq = 楽しい - Qiita Zybo Z7でしたが、Vitisで書き込むまでの手順が明記されていました。 ZYBO (Zynq) 初心者ガイド (2) Hello W…

Xilinx Vitisをインストールしました

先日、Zynq内にはFPGA部分にもARMのプロセッサが乗っていることを思い出しました笑 データシートを読んでみると、ZynqはARMだけではなく、Synopsys, Cadence, Arasanと著名なIPベンダのIPで構成されていることがわかりました。 こんなおもしろチップなのに、…

Chiselで分周クロックを作って、RISCVの合成をTiming Metさせました!

先日、Vivadoで合成したら、タイミングMetしませんでした。 そのため、何らかの対策をすることが必要になりました。 それは、パイプライン設計とマルチクロックです。 thira2.hatenablog.com パイプラインは中々に手間なので、マルチクロックにしようと思い…

シリアル怪奇現象の正体見たり、「使用しているライブラリの仕様には注意」

先日、FPGAにシリアル接続すると、データが化けるという怪奇現象が発生することがわかりました。 thira2.hatenablog.com 原因が不明でオシロスコープやロジアナでみないといけない(持ってないですが)と思ったのですが、 識者の方からのコメントではボーレー…

シリアルの怪奇現象を追っている話

先日、Uartの通信がPCとFPGA間でできるようになったので、 次にFPGAにChiselのMemを置いて書き込めるか確認しようとしました。 他にもGPIO設定できるものや、スイッチの設定値を読める機能もついでに追加しました。 で、テスト用のプログラムを作って、動作…

FPGAとシリアル通信しました

先日、Chiselでシリアル通信のループバックモジュールを作成しました。 Chiselでテストしようとしたのですが、1データテストするのに1分くらいかかることがわかりました。 UARTの転送bit数は8bitなので、全部テストするのに、256分くらいかかるということで…

Chiselでシリアル送信器のテストしていたら、OutOfMemoryError: Java heap spaceが発生した話

先日、chiselでシリアル受信器を作成したので、次に送信器を作ってみました。 以下のようなループバックになるようにしてみました。 シリアル受信器で受診したデータを送信器に送る。 送信器はPCに送り返す。 chiselのテストは送受信で行うので、時間として…

Vivadoを使ってChiselで作ったシリアル受信器をFPGA上で動作確認しました

先日、Uart受信器を作ったので、試しにFPGAで動かしてみることにしました。 FPGAは、大昔に購入しずっと眠っていてホコリをかぶっていた、Digilent Zybo Zynq-7000を使ってみることにしました。 以下ボードなんですが、数万ゲートは対応できそうなので、RISC…

WindowsにVivado19.2を入れて、UVMを動かしてみた

先日、vivado 19.2が出たということで調べてみと、なんとSimulatorがUVM1.2対応してました。 そうとなれば、Vivadoを使わないといけないので、 備忘録として、Vivadoのインストールから、UVM simulationするまでの手順を以下にまとめます。 OS: Windows 10 P…

WindowsにQuartus 18.01をインストールして、MAX10評価ボードのLEDを光らせました

Windows開発環境を手に入れたので、せっかくなので、Intel Quartusをインストールしてみることにしました。 備忘録として、MAX10サンプル動作まで記載します。 Windows用の19.1 Liteは11/17(日)時点でまだ公開されてないようでしたので、18.1を使っています…

DockerでVivadoを動かそうとして失敗した話

先日、Mac OS XからVivadoを使いたいと思いました。 以前Viratual boxで同じように立ち上げたことあったんですが、今回は試しにDockerを使ってみることにしました。 忘備録として記載します。 はじめにDocker for MacをDownloadしてインストール します。 参…