top of page

【Chisel/scala】Bundleのメンバにハードウェアの配列を追加する

やりたいこと 掲題の通りだが、chiselのハードウェアの配列をBundleのメンバにを追加したい。どのような状況かというと、同じ回路を複数用意して並列処理をさせるということをしたい。 UIntの配列ならば簡単なのだが、配列のメンバがハードウェアの場合にかなりてこずった。...

【Chisel/scala】overloaded method apply with alternatives

はじめに chiselでコードを書いていると、掲題のコンパイルエラーに時折遭遇する。 これの意味がいまいち分からなかったので調べてみた。 詳細 下記のエラーを例にとって一行ずつ見ていく overloaded method apply with alternatives:...

【chisel/scala】Moduleの配列を作成する

やりたいこと 自作したクラス(部品)があり、これはModuleを継承している このクラスのインスタンス(部品)を複数回路内に配置したい 試したこと Vecを使用して配列を作ろうとしたが、上手くいかなかった。 下記のように書いてもコンパイルエラーになる class...

[Chisel]Queueについて

はじめに Chiselでデータの受け渡しにキューを使いたい場合のためにQueueクラス(そのまま)が用意されています。 その使い方について説明します。 基本的な使い方 定義 val buf = Module(new Queue(gen = new UInt, entries...

[Chisel]条件分岐について

はじめに chiselを書いていると、条件分岐として以下の文法が使えることを学びます。 if when Mux (MuxCase) これらはどのように使い分けたらいいのでしょうか? ifとwhen/Mux まずこれらは条件判定に用いる変数がscalaのBoolean型かch...

他媒体発信情報

ブログ以外での発信をここにまとめます zenn https://zenn.dev/rm48 Midium https://x.gd/mZhjz

RISC-VとChiselで学ぶ はじめての自作CPU メモ その3

引き続きです。 26章 ベクトル命令とは 「ベクトルレジスタ長をプログラムから分離できる」とはどういうことか: SIMDの場合はベクトルレジスタ長ごとに命令がある(SSEは128ビットのロード、というように) このため、ハードウェアによってプログラム中で使う命令を変えなけれ...

【Flutter/Dart】TextFieldで文字列をフォーマットする

やりたいこと TextFieldで入力フォームを作りたい。 例えば入力内容が金額の場合、3桁区切りで頭に¥を付けた表記にしたい。 ただしユーザにこれらを入力させるのではなく、ユーザはあくまで数字を入力するだけで、アプリ側で自動でフォーマットしたい。 方法...

【Android】Android APIレベルとは

はじめに google play storeにアプリをアップロードしようとしたら下記のエラーが発生 現在、お客様のアプリは API レベル 31 を対象にしています。セキュリティとパフォーマンスが最適化された最新の API を利用するには、API レベル 33...

【Flutter/Dart】iosシミュレータ起動後にデバイスに保存した画像が見つからない

現象 やってること iosシミュレータで画像をデバイスのローカルに保存 保存したパスをデータベースに保存 アプリ立ち上げ時にデータベースから画像パスを取得し、そのパスの画像を画面上に表示 起きている現象 iosシミュレータを再起動した場合、上記3で「ファイルパスが見つからな...

【Flutter/dart】late変数が初期化されたかのチェック

やりたいこと 初期値さえ決まればあとは不変な変数がある ただし、コンストラクタ起動時にはまだ決定できない このような変数について late finalで変数を定義 (何らかのタイミングで)初期化されたかどうかをチェックし、されていなければ値を入れる(チェックしないとfina...

RISC-VとChiselで学ぶ はじめての自作CPU メモ その2

続きです。長くなったので分けました。 RISC-VとChiselで学ぶ はじめてのCPU自作 ――オープンソース命令セットによるカスタムCPU実装への第一歩 23章 パイプラインレジスタの実装 一瞬なぜ各ステージ間にレジスタを挟むことでパイプラインになるのかよく分からなかっ...

【RISCV/Chisel】Error: unrecognized opcode vsetvli

状況 RISCVのベクトル命令をchiselで実装中。 vsetvli命令を追加すると、掲題のコンパイルエラーが発生。 原因と解決策 コンパイル時の引数が間違っていた。 誤: riscv64-unknown-elf-gcc -march=rv32i 正:...

【RISC-V/Chisel】パイプラインのストールで躓いたところ

はじめに 「RISC-VとChiselで学ぶ はじめてのCPU自作」をやっていて少し躓いたところがあるのでまとめておきます。 自分は今までソフトウェア中心にやってきたので回路設計の考え方に慣れないところがあります、、、 概要...

bottom of page