FPGA開発日記

FPGAというより、コンピュータアーキテクチャかもね! カテゴリ別記事インデックス https://msyksphinz.github.io

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (9. 整数行列計算回路の実装)

AWS F1インスタンス HDK の勉強を続けている。 目標としては、以下の部分にAXIマスタを接続してDRAMにアクセスし、データをフェッチする。 DMAでホストからデータをDDR4メモリに格納する。 AXIマスタデータをフェッチする 演算し、結果を格納する。 として、…

「30日でできる!OS自作入門」を読み始めた (27日目 LDT / GDTと環境の改善)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 27日目はLDTの改造と環境の改善だ。GDTに対する理解が甘いので、LDT…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (8. cl_dram_dmaにAXIマスタを追加する)

AWS F1インスタンス HDK の勉強を続けている。 遅いながらにどうにか進めている。cl_dram_dma についてなんとなく分かってきた。 前回はアサーションを追加してAXIバスが動作していることを確認した。 次はAXIをどうにか動かすことはできないだろうか?目標…

C++で記述された軽量CNN実装 mojo-cnn 試行 (3. RISC-V on FPGAで動かしてみる)

前回はmojo-cnnをRISC-V向けに移植したので、今度は実機で動くかどうか試してみよう。 mojo-cnnはモデルデータをファイルとして保持しており、真面目に動かすならば1つのバイナリにすべきなのかもしれないが、とりあえずRocket-ChipにあるProxy Kernelがホス…

C++で記述された軽量CNN実装 mojo-cnn 試行 (2. RISC-V 向けにリコンパイルとシミュレーション)

※ 画像はイメージです。 前回はmojo-cnnをx86上で動作させてみたのだが、最終的にはRISC-Vプロセッサ上で動作させてみたいので、RISC-V向けにリコンパイルしてみよう。 やることはMakefileのg++の部分を書き換えるだけだ。 examples/makefile diff --git a/e…

C++で記述された軽量CNN実装 mojo-cnn 試行 (1. x86上での動作試行)

※ 画像はイメージです。 ディープラーニングと言えばTensorFlowだのKerasだのChainerだの、高級なインタフェースを持ったツールを使うケースが多いが、例えばマイコンや組み込みプロセッサなどでディープラーニングを動かしたいときは、そこまで高級な機能は…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (7. cl_dram_dmaプロジェクトの解析)

AWS F1インスタンス HDK の勉強を続けている。 前回ModelSimを使ってcl_dram_dma の波形パタンを取得しようとしたが、動作が非常に遅くなってしまい失敗した。 どうにかして波形以外の情報を取得するためには、アサーションのようなものを組み込んでテキスト…

RISC-V仕様のFormal表現いろいろ

8th RISC-V Workshop in Barcelona で非常に気になったワーキンググループの一つ、RISC-V Formal Specification について調べた。 Formal Group は、 RISC-Vの仕様を、英語で書かれた仕様書としてだけでなく、マシンでもチェック可能なプログラムのような形…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (6. cl_dram_dmaの波形取得の試行)

AWS F1インスタンス HDK の勉強を続けている。なかなか時間が取れなくて遅々として進まないが... 何か一つF1インスタンス向けに一つデザインを作って動かしてみたい。そのためには、DRAMのメモリアクセスを理解して実装できるようにならなければならない。 …

「30日でできる!OS自作入門」を読み始めた (26日目 ウィンドウの高速化と複数コンソール起動のサポート)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 26日目はウィンドウを完了する。前半はウィンドウの表示の高速化と、…

「30日でできる!OS自作入門」を読み始めた (25日目. 複数ウィンドウの操作)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 25日目はコンソールの拡張だ。コンソールはこれまでは1枚だったがこ…

RISC-V Fedora ディスクイメージを立ち上げるための BBL (Berkeley Boot Loader) をコンパイルする

前回の続き。前回は QEMU for RISC-V のビルド実行 Fedora の vmlinux, bbl, ディスクイメージをダウンロード (http://msyksphinz.hatenablog.com/entry/2018/05/07/040000) まで実施した。次に、フルスクラッチからこれらの環境を作るために以下のことをや…

RISC-V版QEMUでLinuxを立ち上げる試行

QEMU が RISC-Vのプラットフォームに対応した。 v.2.12 から、RISC-Vに対応している。 QEMU ChangeLog/2.12 (RISC-V) ChangeLog/2.12 - QEMU さっそくダウンロードして使ってみる。ついでに、いくつかRISC-Vに対応しているLinuxプラットフォームがあるので試…

「30日でできる!OS自作入門」を読み始めた (24日目. ウィンドウ操作)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 24日目はウィンドウ操作だ。順調に進んでいったのだがタイマの設定だ…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (5. aws-fpga hdkプロジェクトを Vivado WebPack で動かしたい)

AWS F1インスタンス HDK の勉強を続けている。なかなか時間が取れなくて遅々として進まないが... HDKのサンプルプログラムは、当然だがF1インスタンスのFPGAを前提にしている。 つまり Xilinx の VU9Pだ。 ところが、このFPGAは私のような貧乏な個人が所有し…

「30日でできる!OS自作入門」を読み始めた (23日目. APIを拡充する)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 23日目はAPIを拡充していく。APIの数が増えてきたのでなんだかわから…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (4. cl_hello_world の波形を取得する)

cl_hello_world の勉強の続き。 波形を解析する方法がやっと分かった。過去の資料を参照して、波形が取得できるようになった。 gitpitch.com まずはリポジトリのスクリプトを以下のように変更した。 diff --git a/hdk/cl/examples/cl_hello_world/verif/scri…

MIPSのマルチスレッディング対応マルチコアプロセッサI7200

新生MIPSによる新世代CPUコアのリリースだ。I7200という、ミドルレンジのCPUコアらしい。 MIPS Announces I7200 32-bit CPU With New nanoMIPS ISA I-class-I7200-multiprocessor-core – MIPS New MIPS I7200 Processor Core Delivers Unmatched Performance…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (2. cl_hello_worldの実行)

Amazon EC2 F1 インスタンス | AWS via kwout AWS EC2 F1インスタンスについて何となくわかってきたので、もう少し自分のデザインを使ったりだとか、カスタムデザインをF1に載せたりしてみたい。 Verilog-HDLを使ったデザインを使って、AWS F1を使ってみたい…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (3. cl_hello_worldの構成)

cl_hello_world の勉強の続き。 DUTのポートについては、 aws-fpga/hdk/common/shell_v071417d3/design/interfaces/cl_ports.vh に宣言されている。 基本的にこのVerilog Headerを使用することで、どのようなデザインでも使用することができるということか。…

「30日でできる!OS自作入門」を読み始めた (22日目. C言語でアプリケーションを開発する)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る C言語でアプリケーションを作る会。どっちにしろ、hrb2bim などの独…

Ubuntu 18.04 LTSがリリースされたのでRISC-V Tools の導入試行する

www.ubuntu.com Ubuntu 18.04 LTSがリリースされた。久しぶりのLTSなので今後はこちらに移行しようかな。とりあえずVirtualBox上にインストール完了した。 例によってVirtualBoxにインストールしてみた。ついでにRISC-Vのツール群も一通り使えるかチェックし…

AWS EC2 F1インスタンスを使ったハードウェア開発の勉強 (1. HDKのセットアップ)

AWS EC2 F1インスタンスについて何となくわかってきたので、もう少し自分のデザインを使ったりだとか、カスタムデザインをF1に載せたりしてみたい。 F1インスタンスのハンズオンセミナーの時はSDAccelを使ったC/C++を使ったチュートリアルだったのだが、やは…

Amazon EC2 F1インスタンス ハンズオン 参加

大崎にあるXilinxさんで開催されたAmazon EC2 F1インスタンスのハンズオンに参加してきました。 EC2 F1インスタンスに興味を持ったのは、RISC-VのFireSimがもともとF1インスタンスを対象としているから。 また、大きめのデザインを開発しても、なかなか大き…

2018年のRISC-V Workshopのスケジュールが公開されました

2018年のRISC-V Workshopのスケジュールが公開されたようです。 日本でもRISC-V Day Tokyoの第2回が開催のようですね。 riscv.org RISC-V Workshop in スペイン・バルセロナ (05/07 - 05/10) RISC-V Day 上海 (06/30) RISC-V Workshop in インド・チェンナイ…

RISC-VツールセットをインストールしたDockerコンテナ作成(3. 自作RISC-Vエミュレータのリグレッション)

RISC-V 対応の自作エミュレータを作成している。テストパタンセットであるriscv-toolsがかなりPassできるようになってきた。 前回RISC-Vのツールセットが入ったDockerコンテナを用意したので、RISC-Vのテストパタンセットを動作させてみる。 以下のようなDoc…

RISC-VツールセットをインストールしたDockerコンテナ作成(2. RISC-Vコンテナの作成)

RISC-V 対応の自作エミュレータを作成している。テストパタンセットであるriscv-toolsがかなりPassできるようになってきた。 満足したところで公開したいので、一応リグレッションテストをいつでも実行できるような状態にしておきたい。 とりあえず自分で色…

技術書典4に参加してきました

普段はイベントに参加することはあまりないのだけれども、技術書典4は面白そうだったので参加してきました。 とりあえず会場についてビックリ。整理券なんて配布しているのか! 整理券を受け取ってから、入場まで1~2時間くらいかかりそうだったので会場を離…

「30日でできる!OS自作入門」を読み始めた (21日目. OSを守る)

30日でできる! OS自作入門作者: 川合秀実出版社/メーカー: 毎日コミュニケーションズ発売日: 2006/03/01メディア: 単行本購入: 36人 クリック: 735回この商品を含むブログ (299件) を見る 30日でできる!21日目はOSを守る。目的がなんだかわからなくなってき…

RISC-Vの32bitモードと64bitモードの動作の違いについて

RISC-V にはRV32とRV64のモードが存在しており、これはアドレッシングモードのみを示しているものと思いがちだが、 RV32 : 汎用レジスタ長は32ビット (XLEN=32) RV64 : 汎用レジスタ長は64ビット (XLEN=64) と決められている。 For RV32, the x registers ar…