FPGA開発日記

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

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

「Zedroid - Android (5.0 and later) on Zedboard」をやってみる(1. ZedBoardターゲットハードウェアの作成)

ひょんなことから見つけた、「Zedroid」(ZedBoardでAndroidを動かす)をやってみようと思う。 環境としてはVivado 2017.1を使用し、XMPなどの過去のツールが使えなくなっているのでいろいろ問題はあるが、行けるところまで行ってみよう。 Zedroid - Android (…

DMPのAIプロセッサVIA DV700とTensorFlowプロトコルバッファ

ちょっと面白い製品がリリースされていたので調べてみた。 DMPのエッジ向けAIプロセッサVIA DV700という製品で、「エッジ向け」という名の通りIoTデバイスなどで動作することを前提としたAI用プロセッサだ。 Youtubeでデモンストレーションが公開されている…

RISC-Vでコンピュータアーキテクチャの基礎を学びたい人向けの入門書(Computer Organization and Design RISC-V Edition)

RISC-Vで書き直されたパタヘネこと"Computer Organization and Design"が発売された。 Computer Organization and Design RISC-V Edition: The Hardware Software Interface (The Morgan Kaufmann Series in Computer Architecture and Design)作者: David A…

RISC-VがGCC7.1に取り込まれた(インストール試行)

[sw-dev] Fwd: GCC 7.1 Release Candidate available from gcc.gnu.org groups.google.com 以下からダウンロードすることが可能だ。 とりあえずダウンロードして、ビルドして様子を見てみることにする。 ftp://gcc.gnu.org/pub/gcc/snapshots/7.0.1-RC-20170…

The RISC-V メモリコンシステンシモデル

RISC-Vウェブサイトに出ていたこの記事。 Vengineerさんにも言及いただいた。 @dev_msyksphinz Tool checks computer architectures, reveals flaws in emerging designApril 12, 2017https://t.co/sMVySElt8j読みました?— 無限ゲームのなか (@Vengineer) 2…

RISC-V LLVM を用いたベンチマークビルドの方法(Compressed ISAを生成させない方法)

前回のRISC-V LLVM 32ビット版命令生成には一つ問題があり、そのままパッチを当ててしまうとCompressed ISA(16ビット版 RISC-V ISA)を生成してしまう点にある。 現状自作CPUも自作ISSもCompressed ISAには対応していないので、32bit版命令しか生成しないよう…

Vivado 2017.1 AXI VIP packageの情報

Vivado 2017.1 AXI VIP Packageについていくつか情報が出ている。 japan.xilinx.com XILINX_AXI_VIP_2017_1.zipをダウンロードすると、いくつかVIPパッケージ内の機能について記述されている。 また、VivadoインストールディレクトリにはAXI VIPパッケージの…

RISC-V LLVM を用いたベンチマークビルドの方法

前回、RISC-V LLVMをビルドしたが、実際にベンチマークプログラムをビルドするためにはどのようにすればよいのだろう。 まず、チュートリアルにのっとってみるのがよいだろう。Freedomプラットフォームの32bit RISC-Vプロセッサ向けにclangを用意する。 いろ…

RISC-V LLVMのビルドとインストール手順

RISC-VはLLVMにも対応しており、リポジトリがgithubに公開されている。 github.com ブランチがいくつか存在するが、 riscv-trunk を選択すること。これは最新のLLVMを追いかけているブランチだ。 リポジトリのチェックアウトとビルド ビルドまでは非常に簡単…

Vivado 2017.1がリリースされていました

Vivado 2017.1がリリースされていた。 japan.xilinx.com 一応リリース情報を見てみよう。結構内容が盛りだくさんだ。 • Vivado IDE のユーザーインターフェイスを刷新。 まじで? こんな感じだった。 AXI Verification IP を導入 - SystemVerilog ベース、ラ…

RISC-Vコア BOOM向けのCoremarkリポジトリの準備

BOOMコアの解析の続き。やはり途中で割り込みに飛んでしまう動作が気に食わないので、riscv-testsのリポジトリをForkしてCoremarkを追加してみようと思った。 まず、Coremarkのriscv-testsのディレクトリを解析してみよう。riscv-testsのbenchmarkディレクト…

RocketChip RISC-V実装RTLにてベンチマークを計測する(3. -O3によるCoremarkコンパイル)

ずいぶん大昔の記事を引っ張り出してきたが、RASの解析などを行うにあたり、BOOMの実装を調べたくて、BOOMの実性能がどうなっているのか調べたくなってきたので調査している。 msyksphinz.hatenablog.com msyksphinz.hatenablog.com gem5を使えばBOOMのパイ…

ランニング用のイヤホンを買い替えた

ランニング時に音楽を聴くため、Bluetoothのイヤホンの非常に安いものを購入していたのだが、何度か使用しているうちに問題が分かってきた。 msyksphinz.hatenablog.com www2.elecom.co.jp このイヤホンは非常に軽くて良いのだが、コントローラの部分が左右…

プロセッサの高速化技法: リターンアドレススタックの実装方法検討

リターンアドレススタック(Return Address Stack: RAS)は、関数呼び出しなどの命令(Call命令)が実行された場合、その関数の戻り先をあらかじめスタックに記憶しておき、Return文が実行された場合にスタックから戻りアドレスを取り出し、 そこからフェッチを…

即値ジャンプ命令の分岐予測実装

即値命令、RISC-VにおけるJAL命令は分岐予測の実装としては非常に単純だ。 即値命令は比較の必要もなく、またジャンプ先も常に固定だ。予測が容易であるため、実装も簡単だ。 一つだけ難しいのは、レジスタ参照の即値ジャンプの場合。これはレジスタの内容に…

リザベーションステーションの1サイクル先出し命令発行

リザベーションステーション(Reservation Station: RS)というのは、アウトオブオーダプロセッサにおける命令待ち合わせ機構の一つで、その命令が必要とするオペランドデータが、リザルトバスに流れてくるの監視している機構である。 リザルトバスに自命令の…

命令フェッチラインに基づく最適化

マイコンでは一般的なのかもしれないが、プログラムの最適化の1つの方法として命令フェッチラインに基づく最適化というものがある。 これは早い話が、ループの境界がなるべく命令フェッチの範囲を超えないようにし、フェッチ回数を減らすというものだ。 例…

自作RISC-VのSystemVerilog化と命令発行方式の変更

ちまちまRISC-Vの自作プロセッサを改造している。まずは拡張性の向上のためにRISC-Vプロセッサの実装をSystemVerilogに置き換えている。 SystemVerilogの詳細についてはここでは述べないが、いくつか便利な記述があるので紹介。 packed struct 制御信号線周…

レアジョブを初めて200回到達した

英会話講座としてレアジョブを継続している。 レアジョブはSkypeを使った英会話教室だ。 講師はほとんどがフィリピン人だが、非常に格安、時間がどこでも選べるというのが利点だ。 www.rarejob.com 1年半前くらいから始めたのだが、1日30分のレッスンが200回…

Zephyr-RISCVはFreedom E310プラットフォーム(Arty FPGA)をサポートしている

前回少し紹介したZephyr-OSは、実行プラットフォームとしてQEMUだけでなく、Arty FPGA上で動作するFreedom E310もサポートしている。 ただし、OpenOCDによる接続が必要なため、ArtyFPGAに少し配線を追加しないといけないようだ。 手持ちにデバッグ用のケーブ…

ParallelaのオープンソースハードウェアIP

Parallela本体はさすがに無いけれども、Parallelaの周辺回路や制御するための周辺回路はGithubにいくつか公開されている。 github.com 巨大な回路は、使い道がないかもだけれども、FIFOとかデュアルポートメモリインタフェースとか、地味に便利かもね。 gith…

RISC-V on ZedBoard for Parallelaのビルド実験

試しに、RISC-V on Parallela ボードのRISC-Vデザインをビルドしてみた。 リポジトリは以下に存在している。 https://github.com/eliaskousk/parallella-riscv ここでは、Vivadoを用いて合成するので、LinuxマシンにVivadoがインストールされているのが前提…

RISC-V on Parallela Board

RISC-Vの実装としていろいろ調査している中で、Parallelaのホストボードとして利用されているZynq(またはZedBoard)上にRISC-Vを移植してアプリケーションを動作させるというプロジェクトを発見した。 Google Summer of Codeのプロジェクトの一つだったようだ…

RISC-Vプラットフォーム Freedom E300 ArtyFPGA ボードの実験

Freedom PlatformをFPGAボードへ書き込む。 ArtyFPGAを知り合いから借りてきたので、それにダウンロードした。 https://japan.xilinx.com/products/boards-and-kits/arty.html Arty FPGAにRISC-Vをダウンロードして動作させるための手順は、SiFiveにある、 “…