ハードウェアの気になるあれこれ

技術的に興味のあることを調べて書いてくブログ。主にハードウェアがネタ。

2018-01-01から1年間の記事一覧

Chisel Bootcamp - Module2.3 (1) - フロー制御(when/elsewhen/otherwise)

前回の記事でChisel BootcampのModule2.2の組み合わせ回路の勉強が終わった。 今日からはModule2.3に入っていく。 タイトルは「フロー制御」だ。

Chisel Bootcamp - Module2.2 (2) - 練習問題

前回の記事ではChisel BootcampのModule2.2の学習を終え、残りは練習問題のみというところまで進めた。 今回はModule2.2の残りの練習問題を見ていく。

Chisel Bootcamp - Module2.2 (1) - 組み合わせ回路

前回の記事ではChisel BootcampのModule2.1の学習を終えた。 今回はModule2.2に入って学習を続けていく。内容は『組み合わせ回路』だ。

Chisel Bootcamp - Module2.1 (3) - Verilog/FIRRTLの確認とprintfデバッグ

前回の記事ではChisel BootcampのModule2.1の大体の学習が終わったところだった。 今回はModule2.1の最初のモジュールの残りを片付ける。内容的には主にデバッグの際にどうすればいいかというものだ。

Chisel Bootcamp - Module2.1 (2) - 最初のジェネレータ

前回の記事でChisel BootcampのModule2.1の最初のモジュールの作成が終わった。 今回はModule2.1の最初のモジュールの2つ目の例からスタートしていく。いよいよChiselで作るジェネレータに関しての話題だ。

Chisel Bootcamp - Module 2.1(1) - 最初のモジュール

前回の記事でChisel BootcampのModule1がやっと終わった。 徐ろに、題名につけてた”Chiselの勉強”を省いてスタート。 ということで今日からはModule2に入っていよいよChiselを使ったHW設計について学んでいく。

Chiselの勉強 - Chisel Bootcamp - Module 1(3)

前回の記事ではChisel Bootcampのモジュール1を全部まとめるつもりで読み進めていった。 、、、が分量多すぎて挫折したのでまさかモジュール1:第3回目。。 今日で終わらせる!!

Chiselの勉強 - Chisel Bootcamp - Module 1(2)

前回の記事でChisel Bootcampのモジュール1を読み進めていった。半分くらいで分割したので、今日はその残りをまとめていく。

Chiselの勉強 - Chisel Bootcamp - Module1(1)

前回の記事でChisel Bootcampで勉強を進めていくための準備を行い、jupyter notebook上でのScalaコードの実行を確認した。 今回からは本格的にChisel Bootcampに取り組んでいく。

Chisel - Chisel Bootcampの環境構築

前回の記事でChiselの情報収集を行い、Chisel Bootcampを一通りこなせれば、Chiselの大体の概要が把握できそうな感触を得た。 ということで今回はChisel Bootcampを実施していくあたって必要になる各種環境の準備を行っていく。

ハードウェア記述言語Chisel - 情報収集

Scalaの文法は少しわかってきたので、とりあえず今のタイミングでChiselの勉強も始めて行こうと思う。まずは環境構築!!ということになるが、それを行うにあたって情報収集を行った内容を記載していく。

Scalaの勉強 - トレイト(3)

今日でトレイトの章は最後で、トレイトを使った場合の初期化時に発生する変数の初期化順序とそれに纏わる問題、またこの問題に対してScalaの文法で定義されているlazyを使った遅延評価についてを見ていく

Scalaの勉強 - トレイト(2)

ちょっと間が空いたけど、再びScalaの勉強に取り組んでいく。 前回のScalaネタ最後に まだこの章は続くのだけど、今日はここまで。 www.tech-diningyo.info と書いた。なので今日はトレイトの章の残りを見ていく。 トレイトの様々な機能 菱型継承問題 overri…

SCR1の解析 - ecall命令の処理とriscv-testsの終了条件の確認

昨日の記事の結びで以下のように書いた。 > ということは`ecall`命令がうまく処理されていないことになるが、そもそも`ecall`命令って何??な状態なので次回は`ecall`命令の中身を把握するところからやっていきたい。 [https://www.tech-diningyo.info/entr…

SCR1の解析 - riscv-tests処理内容の確認

昨日の記事でVivadoシミュレータ上で実行した[riscv-testsのaddiテスト](https://github.com/riscv/riscv-tests/blob/master/isa/rv64ui/addi.S)が正常に終了しない件についての調査を行い、テストベンチ上の`$finish`に辿り着く条件を満たしていないことが…

RISC-Vの実装の1つ - SCR1の解析 - シミュレーション環境の疑問点の確認(2)

前回のSCR1ネタではVivadoシミュレータを使用した際に`$readmemh`がうまく行かない問題を解析していった。 今回はもうひとつ残っているシミュレーションが正常に終わらない問題について解析していく。

RISC-Vの実装の1つ - SCR1の解析 - シミュレーション環境の疑問点の確認(1)

前回のSCR1ネタ最後に以下のように書いた。 ここまでに記載したようにとりあえず...の対策をいくつか施して動かした部分もあるし、実はこのシミュレーションも正常に終わってなかったりしているので、引き続きもう少しシミュレーション環境の調査を行ってい…

Scalaの勉強 - トレイト(1)

今日はトレイトの章を。 トレイト 概要 複数のトレイトを1つのクラスやトレイトにミックスインできる 直接インスタンス化できない クラスパラメータ(コンストラクタの引数)を取ることができない トレイト 概要 今までどの言語でも見たことのない用語。"tra…

Scalaの勉強 - オブジェクト

今日はオブジェクトの章を。 オブジェクト 概要 用途 コンパニオンクラス NGになるケース OKになるケース オブジェクト 概要 ポイントっぽいところをまとめると以下。 Scalaでは全ての値がオブジェクト これはpythonと一緒の思想。pythonの場合は全ての値がo…

Scalaの勉強 - クラス

今日はクラスの章を。 クラス クラス定義 メソッド定義 複数の引数リストを持つメソッド フィールド定義 抽象メンバー 継承 練習問題 クラス クラス定義 記法を除けばJavaのクラスと同等らしい。(Javaはよくわかってない) 構文は以下の通り。 class <クラ…

Scalaの勉強 - 制御構文(2) - match式

先日に引き続きScalaの制御構文の章を。 制御構文の続き match式 パターンをまとめる パターンマッチによる値の取り出し 中置パターン 型によるパターンマッチ JVMの制約による型のパターンマッチの落とし穴 練習問題 制御構文の続き match式 Javaのswitchの…

RISC-Vの実装の1つ - SCR1の解析 - riscv-testsの実行

前回のSCR1の記事ではriscv-toolsのビルドを行い、spikeを使ってRISC-Vのバイナリの実行が可能なことを確認した。 tech-diningyo.hatenablog.com 今回はビルドしたRISC-V用のtoolchainを使ってriscv-testsをSCR1向けにビルドしVivadoのシミュレータでシミュ…

Scalaの勉強 - 制御構文(1)

引き続きScalaのお勉強を。 記法の章は各種文法をどう記載するかを書いてあるだけなので飛ばして、今日はScalaの制御構文の章を。 制御構文 「構文」、「式」、「文」とは ブロック式 if式 練習問題 while式 練習問題 for式 練習問題 制御構文 「構文」、「…

Scalaの勉強 - sbtを使ったコンパイルと実行

引き続きScalaの学習をドワンゴのScalaの研修資料を見ながらやっていく。 今日は"sbtでプログラムをコンパイル・実行する"。 sbtプロジェクトの作成 sbtプロジェクトの実行 scalaコマンドでの実行 sbtプロジェクトの作成 適当な名前でプロジェクト用のディレ…

Scalaの勉強 - 基本的な文法(2)

前回、ドワンゴのScala研修資料のScalaの基本を読み進めていた。 そのままなぞっているだけだが意外に長くなってたので今回はその続き。 tech-diningyo.hatenablog.com 変数の基本 変数val 変数var 変数の型の指定 練習問題 変数の基本 ということで変数の基…

Scalaの勉強 - 基本的な文法(1)

Scalaのお勉強ってことで、引き続きドワンゴの研修資料を読んで勉強していく。 今日はScalaの基本の章を。 基本的には章の構成のとおりに進めていく感じです。 REPLでScalaを触ってみる Hellow, World! 練習問題 簡単な計算 Int型 Double型 練習問題 REPLでS…

Scalaの勉強 - 統合開発環境IntelliJ IDEAのインストール

前回の記事では、Scalaの環境を整えるためにsbtをインストールしてsbt consoleコマンドでsbt consoleが立ち上がることを確認した。 tech-diningyo.hatenablog.com 今回も引き続き、ドワンゴが公開してくれているScalaの研修資料を参考に統合開発環境をインス…

Scalaの勉強 - Scalaの環境構築

最終的に扱えるようになりたいのはChiselなのだけれども、Chiselを勉強しようにもそもそもベースになってるScalaも書けないのでまずはそこから一通り見ていく。 Scalaって?? Scala環境の構築 sbt Java環境の確認 sbtのインストール 動作確認 Scalaって??…

RISC-Vの実装の1つ - SCR1の解析 - riscv-toolsのビルド

前回SCR1のVivadoシミュレーション環境の起動が確認できて、HW側の準備は整った。 今回は実際のRISC-Vバイナリを使ってシミュレーションするために必要となるriscv-toolsのビルドを行っていく。

RISC-Vの実装の1つ - SCR1の解析 - Vivadoプロジェクト準備(3)

今回も引き続き、SCR1のVivadoシミュレーション環境のエラー解析を行っていく。 今回はVivadoシミュレーション本体がSIGSEGVでツールごと落ちる問題を見ていく。