FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

2017-11-01から1ヶ月間の記事一覧

Rocket-ChipとBOOMの環境の違いは何なのか?(1)

UCB(University of California Berkeley)の実装したRISC-Vコアとしては代表的なものが2つあり、1つのリポジトリでブランチが切られている。 github.com Rocket-Chip : masterブランチ BOOM-v1 : boom2ブランチ BOOM-v1 : boom-v1ブランチ しかしどうもRocket…

RISC-V向けRust-Toolchain試行(1)

RISC-V Workshopが開催されているが、このタイミングでプログラミング言語RustのRISC-V移植版が公開されているのを発見した。 やっぱり来ると思ったよ! abopen.com Rustのコンパイル環境はLLVMをベースにしているようだ。 ターゲットボードはHiFive1となっ…

ハードウェア記述言語"Chisel"のテスト環境の一例"Hardfloat"(1)

RISC-Vの実装であるRocket-Chipには、標準的な5ステージパイプラインであるRocket-Core、さらにアウトオブオーダ実行が可能なBOOM(Berkeley Out-of-Order Machine)-V1, BOOM-V2などが存在する。 これらのCPUコアはいずれもハードウェア浮動小数点演算器を持…

「リーダブルコード」を読む (第15章「「分/時間カウンタ」を設計・実装する」)

「リーダブルコード」読書会。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、体系的に学びたいので読み直す。 例によってJupyter Notebookに書いてまとめをブログに張っていくことにする。 今回は最後の章「第15章「分・時…

「リーダブルコード」を読む (第13章「短いコードを書く」第14章「テストと読みやすさ」)

「リーダブルコード」読書会。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、体系的に学びたいので読み直す。 例によってJupyter Notebookに書いてまとめをブログに張っていくことにする。 今回は「第13章 短いコードを書…

高速Verilogシミュレータ"Verilator"で「出来ないこと」

本当は、 NVDLAをVerilatorで動かしてみたかったんです。。 NVDLAがVivado Simulatorに対応になったところで、ついでにVerilatorでNVDLAを動かすことは出来るのだろうかと考え、移植を試みた。 結論から言うと、動作させることはできていない。 これはVerila…

「リーダブルコード」を読む (第11章「一度に1つのことを」、第12章「コードに思いを込める」)

諸事情で数日はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

NVDLAの勉強 (NVDLA Primerを読んでまとめる: ソフトウェア編)

目次 NVIDIAのディープラーニングアクセラレータNVDLAをVivadoでシミュレーションする NVDLAの勉強 (NVDLA Primerを読んでまとめる: ハードウェア編) NVDLAの勉強 (NVDLA Primerを読んでまとめる: ソフトウェア編)> NVDLA 1.0 がVerilatorに対応している(が…

「リーダブルコード」を読む (第9章「変数と読みやすさ」第10章「無関係の下位問題を抽出する」)

諸事情で数日はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

NVDLAの勉強 (NVDLA Primerを読んでまとめる: ハードウェア編)

関連記事 NVIDIAのディープラーニングアクセラレータNVDLAをVivadoでシミュレーションする NVDLAの勉強 (NVDLA Primerを読んでまとめる: ハードウェア編) NVDLAの勉強 (NVDLA Primerを読んでまとめる: ソフトウェア編)> NVDLA 1.0 がVerilatorに対応している…

「リーダブルコード」を読む (第7章「制御フローを読みやすくする」第8章「巨大な式を分割する」)

諸事情で数日はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

NVIDIAのディープラーニングアクセラレータNVDLAをVivadoでシミュレーションする

関連記事一覧 NVIDIAのディープラーニングアクセラレータNVDLAをVivadoでシミュレーションする NVDLAの勉強 (NVDLA Primerを読んでまとめる: ハードウェア編) NVDLAの勉強 (NVDLA Primerを読んでまとめる: ソフトウェア編)> NVDLA 1.0 がVerilatorに対応して…

「リーダブルコード」を読む (第5章「コメントすべきことを知る」第6章「コメントは正確で簡潔に」)

諸事情で週末はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

Rocket-Chipにおけるコンフィグレーション別の面積比較(各種構成での面積比較)

前回の続き。多少は面積比較できる程度に環境が構築できてきたので、いろんな構成でもってVivadoで合成して面積を比較してみた。 まず大前提の問題として、Vivadoの面積レポートはとても読みにくい。まあSynopsysのDesign Compilerのように、単純にゲート数…

「リーダブルコード」を読む (第3章「理解しやすいコード」第4章「美しさ」)

諸事情で週末はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

「リーダブルコード」を読む (「第1章: 理解しやすいコード」「第2章: 名前に情報を埋め込む」)

諸事情で週末はネットワークをあまり使えないので、RISC-Vに関連する調査は中止。 あまりやることが無いので例によって一人読書会をしている。 今回は「リーダブルコード」。名著と呼ばれており、私も一度さっくりと読んだ。 ただし忘れていることもあるし、…

Rocket-Chipにおけるコンフィグレーション別の面積比較 (BOOMConfigで同様の合成調査)

前回のRocket Chipの面積比較に続いて、BOOMでも同様のことを実施した。 BOOMはVersion 1とVersion 2があり、それぞれでVerilogを生成してVivadoで合成してみる。 まだ集計できていないが、だいたいの面積の概要は以下のようになっている。BOOM v1の方が少し…

Rocket-Chipにおけるコンフィグレーション別の面積比較 (BlockRAMを推論させる方法調査)

前回のRocket Chipの標準論理合成では、FPGA向けにVivadoで合成してもBlockRAMが正常に推論されず、Dcacheが面積のほとんどを消費してしまう構成になってしまっていた。 msyksphinz.hatenablog.com どうにかしてBlockRAMを使うように変更することはできない…

「GPUを支える技術」を読了

GPU

Hisa Ando氏の「GPUを支える技術」を、とりあえず読了した。最後の方はだいぶ適当に省略してしまったが、メインの部分はかなりちゃんと読み込んだと思う。 GPUの基礎を分かっていない私にとって、一から解説してくれる良い本だった。詳細までは触れることは…

Verilog-HDLで記述されたオープンソースのハードウェアライブラリ"BaseJump"

HotChips29 で発表された、学生が開発したRISC-V SoC ”Celerity”について資料を読んだ。 news.mynavi.jp Celerityは学生の作ったRISC-Vのメニーコアチップで、4大学が共同して9か月で作成したチップとなっている。 9か月という短期間で作るための秘訣として…

「GPUを支える技術」を読む(第6章 GPUの周辺技術)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第6章。PC…

「GPUを支える技術」を読む(第5章 GPUプログラミングの基本)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第5章。NV…

Rocket-Chipにおけるコンフィグレーション別の面積比較 (BlockRAMへのマッピングの問題)

Rocket Chipは構成によってどのようなコンポーネントが含まれているのかが変わっているのだが、それ以外にもリビジョンによっても結構構成が変わって、FPGAへのインプリメントに使用する面積が変わったりもする。 比較対象として、以下のリビジョンを使用し…

「GPUを支える技術」を読む(第4章 後半)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第4章後半…

「GPUを支える技術」を読む(第4章 前半)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第4章前半…

「GPUを支える技術」を読む(第3章)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第3章。 I…

プログラミング言語Rustに入門中 (goblinを使ってelfファイルを解析する3.)

Rustのライブラリを使えばElfの解析だってできる。 バイナリファイルを読み込んで、HashMapにアドレスとデータの対を格納するプログラムを作成した。 各セクション毎にデータを読み込んで一つのHashMapにバイト単位でデータを書き込む。このモデルを作成すれ…

「GPUを支える技術」読む (第2章)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 今回は第2章。 G…

「GPUを支える技術」読む (第1章)

GPU

Hisa Ando氏の著書「GPUを支える技術」を買っていたのだが、ずいぶんと積ん読にしているのだった。 なので、一応最後まで読んでいきたい。こういうのは、きちんと宣言しないと途中で辞めちゃうので宣言する。頑張って最後まで読んでいこう。 一応、Jupyter N…

プログラミング言語Rustに入門中 (goblinを使ってelfファイルを解析する2.)

RustのライブラリであるGoblinを使って、バイナリファイルを解析のプログラムを作成している。Rustの構造はなかなか慣れないので、進めるのが大変だ。 Goblinを使った場合、Sectionを一つずつ解析して、バイナリの入っている部分を取り出していく必要がある…