ハードウェアの気になるあれこれスマートフォン用の表示で見るハードウェアの気になるあれこれ技術的に興味のあることを調べて書いてくブログ。ScalaスポンサーリンクScalaの文法は少しわかってきたので、とりあえず今のタイミングでChiselの勉強も始めて行こうと思う。環境構築!!ということになるが、それを行うにあたって情報収集を行った内容を記載していく。ChiselってサンプルコードGCDMaxNMulAdderプログラミングを始めるにあたってChiselってとりあえず本家のサイトをチェック。Languageそして毎度のようにWikipediaさんをチェックしてみる。Language)の一種である。カリフォルニア大学バークレー校で開発が行われている。Chiselは、Scalaの内部DSLとして実装されている。Wikipediaものすごーーーくシンプルな概要ですこと。これだったら本家のものを引っ張ったほうが良さそう。Chiselを(適当に)訳したものを記載。ChiselはUCバークレーで開発されたオープンソースのハードウェア言語でパラメタライズされたジェネレータを使うことで高度なハードウェアデザインをサポートするDSLである。使用者による成長中のコミュニティこれはこれでシンプルすぎて(&勉強してないこともあり)わからん。勉強しながら、意味が理解できてしっくりする訳が浮かんだら更新することにしよう。環境を構築した後、再度詳しく見ていくがとりあえずコードをペタリ。0.U}とりあえずScalaの勉強をしてみたおかげで、なんとなくは読めるのは良かった!まだ推測でしか無いが、こんな感じっぽい。VerilogのmoduleはModuleを継承したScalaのclassとして定義input/outputは同様にIOクラスの中にBundleクラスを与えて定義するVerilogのreg宣言はRegでその時のビット幅はUIntクラス。この場合は32bitっぽい。io.ins.reduceLeft(Max2)}MaxNなので、N個の値の中から最大値を返すものみたいだが、実際にはMax2という2値の比較器をio.ins.reduceLeft(Max2)で処理しているだけのようだ。これで書けちゃうのか。io.y)}乗算だけど、最初の2重forループでLUT作ってる気配。carry(n)}これはほんとに加算器だな。Adder使ったやつ。FA間の接続がforループになってるのは素敵。プログラミングを始めるにあたってという、項目があったのでそれも一緒に記載しつつ学習に役に立ちそうなサイトをメモっていく。repo.からJARsファイルのコレクションとしてリリースされている。notebookを使った自分のペースで実行可能なチュートリアルが公開されている。これを使えばChiselをすぐに実行可能だ。いうことで、役に立ちそうなリンクを(これも全部Chiselの公式サイト)に載っている情報。notobookを使って実行しつつ学べるチュートリアルざっと中身を見てみたところ、Scalaの簡単な説明から始まり、Chisel環境の構築、簡単なモジュールの作成などなど一通りのことが体験できそうなので、次回以降はこれをこなしていく感じにしよう。repositoryUCバークレーが公開してくれているチュートリアル。ChiselこれはChiselの最新バージョンであるChisel3のWiki。Chisel3のユーザーガイドや、Chisel2との違い、cookbookなどが公開されている。これから勉強していくのでChisel3を使おうと思っている。ユーザーガイドはとっても役に立ちそう。ChiselChiselで書かれた"シンプルな"RISC-Vの実装のgithubリポジトリ今やっているSCR1の解析と共にこっちも見ていきたいとここまで、ざっとChisel自体の情報収集を行った結果をつらつらと書いてみた。Bootcampを使ってChiselの環境構築から実際の勉強をスタートしていきたい。技書博2にChisel本を出してきました月別アーカイブはてなブログをはじめよう!diningyo-kpuku-jougekiさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。