FPGA開発日記

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

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

FreeRTOSをRISC-V Spike ISSで動作させるためのオプション

しばらくFreeRTOSをRISC-Vの自作ISSや、Spikeシミュレータで動作させることが出来ず悩んでいたのだが、いつの間にかSpike-ISSに以下のオプションが追加されているのを発見した。 $ spike --help spike: unrecognized option --help usage: spike [host optio…

資格試験(TOEIC)の勉強をRedmineで管理してみる試行

TOEIC受けてきた。毎年1度は受験するようにしているのだが、今回は比較的大きな会場だったのだが、音響もしっかりしている分、聞き取りにくいということは無かった。 去年の春からTOEICは新形式になっており、一応勉強はしていたのだがやはり時間配分や問題…

「アジャイルサムライ」を(とりあえず)読了した

アジャイルサムライ−達人開発者への道−作者: Jonathan Rasmusson,西村直人,角谷信太郎,近藤修平,角掛拓未出版社/メーカー: オーム社発売日: 2011/07/16メディア: 単行本(ソフトカバー)購入: 42人 クリック: 1,991回この商品を含むブログ (255件) を見る ア…

RISC-VのJavascriptエミュレータはC言語から生成されている

前回の続き。RISC-Vエミュレータであるriscvemuのコンパイルオプションを調べていたのだが、やっと意味が分かってきた。 riscvemuのディレクトリにはjs/が入っており、RISC-VのJavascriptエミュレータが入っている。 最初はC言語からこのJavascript記述を呼…

RISCVEMU(高速RISC-Vエミュレータ)には2つのビルドモードがある(Emscriptenの調査)

RISCVEMUは高速RISC-Vエミュレータだが、その実装の仕組みを探っていると、どうやら2つのビルドモードがありそうだということが分かった。 msyksphinz.hatenablog.com RISCVEMUはLinuxも立ち上げることが出来る高速エミュレータだが、その実装の仕組みを探っ…

setjmpとlongjmp はどのように実現されているのか

setjump(), longjump()について基本的なことを調査するために、まずは以下のページなどを読んで勉強した。 http://www.nurs.or.jp/~sug/soft/super/longjmp.htm (制限はあるが)どのような場所からでも、setjump()を実行した場所に戻ってくることが出来る。こ…

FreeRTOS-RISCVの起動シーケンスを追いかける(1)

FreeRTOSの話題の続き。前回FreeRTOSのRISC-V版を少しエミュレータで試してみたものの、何も動作せずに終わっていたのだった。 (そしてそれを特に原因究明せず放置していた。) msyksphinz.hatenablog.com それではあまりにもつまらないので、自作ISSを使って…

RocketChip/BOOMプロセッサの波形ダンプの方法

RISC-VのUC Berkeley実装であるRocketChip/BOOMはエミュレーション時にVerilatorを使用している。 基本的な命令トレースなどは出力することが出来るが、波形を出力するためのオプションが存在する。 make CONFIG=BOOMConfig output/rv64ui-p-add.vcd テスト…

エンジニアだってあなたのことが嫌いなわけじゃない

megamouth.hateblo.jp 読んだ。すごく良い記事だと思った。エンジニアの試行回路をトレースされているようで、読みながら「分かるーーー!!」ってなってしまった。 (僕の知る限り)新しいプロジェクトが始まるとき、不完全なものを作ろうとするエンジニアな…

Verilogの慣性遅延と伝播遅延

最近までハードウェア設計における慣性遅延と伝播遅延について知らなかったのでメモ。 VHDLでは、明確に慣性遅延と伝播遅延についての文法があるらしい。Verilogでは結構ややこしい。 まずは例題 以下のようなVerilogを記述した。それぞれinertial_ff, trans…

FreeRTOSとZynqの勉強(アドレスマップについて)

そういえばFreeRTOSの勉強をする前に、Zynqについても基本的なアドレスマップについてちゃんと調査したことがなかった。 Zynqのアドレスマップは、Xilinxの資料を調べると以下のようになっていた。 Zynq-7000 All Programmable SoC Technical Reference Manu…

FreeRTOSをZedBoardで動作させる(1. チュートリアルを実行する)

以前、FreeRTOSを調査したときは、RISC-Vのターゲットとして調査したものだった。ところが、調査を進めると普通にFreeRTOSはZynqチップにも移植されており、Cortex-A9でも動作させることが出来るらしい。 msyksphinz.hatenablog.com 今回はRTOSの勉強の最初…

個人の開発進捗管理のためにBitnami RedmineをさくらのVPS上に構築した

msyksphinz.hatenablog.com 前回の記事で、Bitnami Redmineの構築方法を確立したため、桜インターネットのVPSサービスを利用して、個人開発用のRedmineを構築した。 Redmineは開発の項目だけでなく、いろんなプロジェクト、例えばマラソンとか、資格試験の勉…

RISC-VがLinley GroupのRISC-V chosen as Best Technology of 2016に選ばれました

riscv.org The Linley Group Announces Winners of Annual Analysts' Choice Awards The Linley Group - The Linley Group Announces Winners of Annual Analysts' Choice Awards まあ私は関係者でもなんでもないんだけど、おめでとうございます。 Linley Gr…

「QEMUの仕組み」を探る(実装の詳細について)

引き続き、QEMUの論文を読んでいく。dyngenトランスレータの基本は分かったので、実装の詳細について説明を読み進めていこう。 QEMU, a Fast and Portable Dynamic Translator, Fabrice Bellard http://archives.cse.iitd.ernet.in/~sbansal/csl862-virt/201…

「QEMUの仕組み」を探る (dyngenによるターゲット命令の動的変換)

いろんな事情でQEMUについて勉強したくなったので、QEMUとはいったいどういう機構で動いているのか、簡単に勉強できる文章を探していたのだが、以下のような論文を見つけた。 QEMU, a Fast and Portable Dynamic Translator, Fabrice Bellard http://archive…

個人の開発進捗管理のためにBitnami Redmineを構築する

自分の趣味の開発や、趣味のプロジェクトの進捗管理のためにRedmineを構築する。 これまでもRedmineを使っていたのだが、サーバのレンタルを止めてしまいRedmineも止めていたのだった。 Redmineの構築はいつもステップが多くて面倒なのだが、今回はBitnami R…

教育用RISC-V実装Clarviの調査 (Modelsim Altera starter editionのインストールとコンパイル)

前回Clarviの調査ということで概要を把握したのだが、SystemVerilogを実行できるシミュレータを持っていなかったため、シミュレーションが実行できなかった。 msyksphinz.hatenablog.com ところがその後各方面から「Modelsim Altera starter editionを使えば…

FreeRTOSのRISC-V移植版

RISC-Vのメーリングリストを読んでいて知ったのだが、FreeRTOSという無償のリアルタイム向けOSがあるらしい。これをRISC-V向けに移植している人がいるそうだ。 www.freertos.org RISC-Vへの移植が進められており、Privilege v.1.9への移植版が公開されていた…

教育用RISC-V実装Clarviの調査

Twitterでvengineerさんに教えてもらった教育用RISC-V実装、Clarviについて簡単に調査してみた。 Clarviは大学が教育用に作成したRISC-Vプロセッサで、もちろんRISC-Vの仕様に完全に準拠しているわけではないが、非常にコンパクトな実装と、教育用に簡単な拡…

RISC-V実装におけるのリグレッションテスト実施方針

RISC-VにおけるテストセットのPass/Fail判定 過去の記事でも少し解説したが、RISC-Vではriscv-testsというテストパタンセットが用意されている。 msyksphinz.hatenablog.com パタンの説明では、どうやら0x8000_1000への書き込みでもってパタンの終了を判定し…

アウトオブオーダプロセッサの性能解析(リネーミングユニットから命令の受け渡し)

msyksphinz.hatenablog.com 前回の性能解析でそもそもバグとして残っていた部分だが、アウトオブオーダプロセッサが実行中の命令というのはリオーダバッファで管理されており、もちろんこのリオーダバッファが溢れるような状態になると命令の発行を中止しな…

RISC-Vの特権レジスタ群のアクセス権限まとめ

Reserved Writes Ignored, Reads Ignore Values (WIRI) WIRIビットフィールドの例 Reserved Writes Preserve Values, Reads Ignore Values (WPRI) WPRIビットフィールドの例 Write/Read Only Legal Values (WLRL) WLRLビットフィールドの例 Write Any Values…

GPU対応TensorFlowをWindowsにインストールする方法まとめ(試行錯誤した結果)

ずいぶん昔の話だが、TensorFlowがWindowsに対応した。どうやらコマンドプロンプト経由でインストールする形式のようだ。 今回初めてTensorFlowをWindowsに導入してみたので、その手順を記録しておく。 msys2経由でのWindows版TensorFlowは難しい(不可能だっ…

RISC-Vの特権レジスタ群の割り当てまとめ

訳あってRISC-Vの特権レジスタ群の仕様を読み込んでいるのだが、Privilege Instructionの仕様書をしっかり読むとなかなか面白い。 Chapter-2のControl and Status Registers(CSR)ではCSRレジスタ群についてまずは簡単に分類がされているのだが、いろんなこと…

マニュアルなどの文章をRestructuredTextに移行した

しっかりした文章や、マニュアルなどを作成してpdfやhtmlとして公開したい場合や他人に見てもらいたい場合、いくつかの方法が存在する。 LaTeX : それなりに昔から使われている文章整形ツール。非常に美麗な文章が作成できる。数式などもお手の物。ただし作…

あけましておめでとうございます

あけましておめでとうございます。本年も、本ブログをよろしくおねがい致します。 昨年は、 RISC-Vをベースとした自作ISS/RTL設計 Vivado-HLSの勉強 技術翻訳で文書2本を翻訳 など、様々なことに手を出した一年でした。 今年の目標として、 ZedBoardを用いて…