2018-01-01から1年間の記事一覧
前回の記事でChisel BootcampのModule2.2の組み合わせ回路の勉強が終わった。 今日からはModule2.3に入っていく。 タイトルは「フロー制御」だ。
前回の記事ではChisel BootcampのModule2.2の学習を終え、残りは練習問題のみというところまで進めた。 今回はModule2.2の残りの練習問題を見ていく。
前回の記事ではChisel BootcampのModule2.1の学習を終えた。 今回はModule2.2に入って学習を続けていく。内容は『組み合わせ回路』だ。
前回の記事ではChisel BootcampのModule2.1の大体の学習が終わったところだった。 今回はModule2.1の最初のモジュールの残りを片付ける。内容的には主にデバッグの際にどうすればいいかというものだ。
前回の記事でChisel BootcampのModule2.1の最初のモジュールの作成が終わった。 今回はModule2.1の最初のモジュールの2つ目の例からスタートしていく。いよいよChiselで作るジェネレータに関しての話題だ。
前回の記事でChisel BootcampのModule1がやっと終わった。 徐ろに、題名につけてた”Chiselの勉強”を省いてスタート。 ということで今日からはModule2に入っていよいよChiselを使ったHW設計について学んでいく。
前回の記事ではChisel Bootcampのモジュール1を全部まとめるつもりで読み進めていった。 、、、が分量多すぎて挫折したのでまさかモジュール1:第3回目。。 今日で終わらせる!!
前回の記事でChisel Bootcampのモジュール1を読み進めていった。半分くらいで分割したので、今日はその残りをまとめていく。
前回の記事でChisel Bootcampで勉強を進めていくための準備を行い、jupyter notebook上でのScalaコードの実行を確認した。 今回からは本格的にChisel Bootcampに取り組んでいく。
前回の記事でChiselの情報収集を行い、Chisel Bootcampを一通りこなせれば、Chiselの大体の概要が把握できそうな感触を得た。 ということで今回はChisel Bootcampを実施していくあたって必要になる各種環境の準備を行っていく。
Scalaの文法は少しわかってきたので、とりあえず今のタイミングでChiselの勉強も始めて行こうと思う。まずは環境構築!!ということになるが、それを行うにあたって情報収集を行った内容を記載していく。
今日でトレイトの章は最後で、トレイトを使った場合の初期化時に発生する変数の初期化順序とそれに纏わる問題、またこの問題に対してScalaの文法で定義されているlazyを使った遅延評価についてを見ていく
ちょっと間が空いたけど、再びScalaの勉強に取り組んでいく。 前回のScalaネタ最後に まだこの章は続くのだけど、今日はここまで。 www.tech-diningyo.info と書いた。なので今日はトレイトの章の残りを見ていく。 トレイトの様々な機能 菱型継承問題 overri…
昨日の記事の結びで以下のように書いた。 > ということは`ecall`命令がうまく処理されていないことになるが、そもそも`ecall`命令って何??な状態なので次回は`ecall`命令の中身を把握するところからやっていきたい。 [https://www.tech-diningyo.info/entr…
昨日の記事でVivadoシミュレータ上で実行した[riscv-testsのaddiテスト](https://github.com/riscv/riscv-tests/blob/master/isa/rv64ui/addi.S)が正常に終了しない件についての調査を行い、テストベンチ上の`$finish`に辿り着く条件を満たしていないことが…
前回のSCR1ネタではVivadoシミュレータを使用した際に`$readmemh`がうまく行かない問題を解析していった。 今回はもうひとつ残っているシミュレーションが正常に終わらない問題について解析していく。
前回のSCR1ネタ最後に以下のように書いた。 ここまでに記載したようにとりあえず...の対策をいくつか施して動かした部分もあるし、実はこのシミュレーションも正常に終わってなかったりしているので、引き続きもう少しシミュレーション環境の調査を行ってい…
今日はトレイトの章を。 トレイト 概要 複数のトレイトを1つのクラスやトレイトにミックスインできる 直接インスタンス化できない クラスパラメータ(コンストラクタの引数)を取ることができない トレイト 概要 今までどの言語でも見たことのない用語。"tra…
今日はオブジェクトの章を。 オブジェクト 概要 用途 コンパニオンクラス NGになるケース OKになるケース オブジェクト 概要 ポイントっぽいところをまとめると以下。 Scalaでは全ての値がオブジェクト これはpythonと一緒の思想。pythonの場合は全ての値がo…
今日はクラスの章を。 クラス クラス定義 メソッド定義 複数の引数リストを持つメソッド フィールド定義 抽象メンバー 継承 練習問題 クラス クラス定義 記法を除けばJavaのクラスと同等らしい。(Javaはよくわかってない) 構文は以下の通り。 class <クラ…
先日に引き続きScalaの制御構文の章を。 制御構文の続き match式 パターンをまとめる パターンマッチによる値の取り出し 中置パターン 型によるパターンマッチ JVMの制約による型のパターンマッチの落とし穴 練習問題 制御構文の続き match式 Javaのswitchの…
前回のSCR1の記事ではriscv-toolsのビルドを行い、spikeを使ってRISC-Vのバイナリの実行が可能なことを確認した。 tech-diningyo.hatenablog.com 今回はビルドしたRISC-V用のtoolchainを使ってriscv-testsをSCR1向けにビルドしVivadoのシミュレータでシミュ…
引き続きScalaのお勉強を。 記法の章は各種文法をどう記載するかを書いてあるだけなので飛ばして、今日はScalaの制御構文の章を。 制御構文 「構文」、「式」、「文」とは ブロック式 if式 練習問題 while式 練習問題 for式 練習問題 制御構文 「構文」、「…
引き続きScalaの学習をドワンゴのScalaの研修資料を見ながらやっていく。 今日は"sbtでプログラムをコンパイル・実行する"。 sbtプロジェクトの作成 sbtプロジェクトの実行 scalaコマンドでの実行 sbtプロジェクトの作成 適当な名前でプロジェクト用のディレ…
前回、ドワンゴのScala研修資料のScalaの基本を読み進めていた。 そのままなぞっているだけだが意外に長くなってたので今回はその続き。 tech-diningyo.hatenablog.com 変数の基本 変数val 変数var 変数の型の指定 練習問題 変数の基本 ということで変数の基…
Scalaのお勉強ってことで、引き続きドワンゴの研修資料を読んで勉強していく。 今日はScalaの基本の章を。 基本的には章の構成のとおりに進めていく感じです。 REPLでScalaを触ってみる Hellow, World! 練習問題 簡単な計算 Int型 Double型 練習問題 REPLでS…
前回の記事では、Scalaの環境を整えるためにsbtをインストールしてsbt consoleコマンドでsbt consoleが立ち上がることを確認した。 tech-diningyo.hatenablog.com 今回も引き続き、ドワンゴが公開してくれているScalaの研修資料を参考に統合開発環境をインス…
最終的に扱えるようになりたいのはChiselなのだけれども、Chiselを勉強しようにもそもそもベースになってるScalaも書けないのでまずはそこから一通り見ていく。 Scalaって?? Scala環境の構築 sbt Java環境の確認 sbtのインストール 動作確認 Scalaって??…
前回SCR1のVivadoシミュレーション環境の起動が確認できて、HW側の準備は整った。 今回は実際のRISC-Vバイナリを使ってシミュレーションするために必要となるriscv-toolsのビルドを行っていく。
今回も引き続き、SCR1のVivadoシミュレーション環境のエラー解析を行っていく。 今回はVivadoシミュレーション本体がSIGSEGVでツールごと落ちる問題を見ていく。