四畳半テクノポリス

コロナのストレスで気が狂い、D進した院生

コンピュータアーキテクチャ

SRAMのお話をするよ

本稿はSRAMに関するお話です。はっきり言ってしまえばSRAMはHDLには関係ありませんね、ですが皆さんSRAMはよく使うと思うので理解していて損はないと思います。LSI焼くときに役に立つと思いますので。 とりあえずここでは一週間遅れてしまったことをお詫びし…

日本語のRISC-Vに関する一般書籍を全部紹介する

日本語のRISC-Vに関する一般書籍を全部紹介します。なぜだか家に全部あるんですよ、本屋で見かけた翌日には本棚の本の隙間になぜか出現します。SCPみたいですね。 冗談はさておきAmazonで入手可能なRISC-Vの書籍に関して紹介してゆきます。順番は入門者が読…

VIVADOのAXI4Streamを読む:Master編

アドベントカレンダーにはリングオシレータについて書くとの宣言していたのですが、最近後輩指導のために書いていたVivadoのテンプレートからAXI4Streamの記事がいい感じだったのでこちらの記事を掲載させていただくことにしました。 AXIStream VivadoのIP P…

ChiselのBitpadとListLookupがまるでわからない?

命令デコーダって難しい CPUをVerilogで生成していたところ、命令デコーダの生成で作ったIf文にラッチができてしまいました。 オペランドがそのままCase文でマルチプレクサなどの制御に使える単純なアーキテクチャであれば気にする必要はありませんが、RISC-…

RISC-Vの設計図

Day4:Risc-Vの設計図 RISC-Vの設計図 最近色々うだうだしていて進捗があまりないのですが、とりあえずRISC-Vの設計図が出来上がったので中間報告します。印刷してはマーカーでバスをなぞってデバッグする作業で割と面倒臭かったですが、二回やってなんとか動…

Risc-Vの即値表現

Day3:Risc-Vの即値表現 risc-vの命令を逆アセンブラを作成しているときに即値のビット列が並び変わっていてややこしく感じたのでそれについて便所の落書き程度に書く。 Risc-Vには即値命令のデータを用いる命令がいくつか存在するが、その中でも S-type,B-ty…

Risc-Vの逆アセンブラ

Day2:Risc-Vの逆アセンブラ ビッグエンディアン リトルエンディアン 命令コード: 使い方 フォームに32bit(16進数で8桁)の命令を入力します。 Disassembleボタンを押します。 枠内にニモニックが表示されます。 なぜ逆アセンブラを作ったのか 最初はRisc-V…

Rsic-Vの開発環境の構築

Day1:Risc-Vの開発環境の構築を行ったメモです。 エミュレータの開発を行おうにも正しいバイナリが存在しなければ動作させることができません、そこでRisc-V財団が提供しているRisc-Vのコンパイラをビルドしてみました。Risc-Vのコンパイラのビルド方法は公…

自作CPU上でセルフホスティングできる自作コンパイラを動かしたい

自作CPU上でセルフホスティングできる自作コンパイラを動かしたい 知っている方は知っていると思うが、私は去年大学院入試で失敗し今年の前半は大学院浪人生活を送っていた、前半は浪人生として真面目に勉強していたのだが8月の院試に合格すると本格的にニー…

スタックマシンの実装方法

状態遷移図 今回は前回作成したスタックマシン型のCPUをVerilogで実装する。そのためにCPUの動作を表した状態遷移図の作成を行った。 状態遷移図の各状態での動作は以下に示す通りである。 命令フェッチ 命令デコード データフェッチ データ操作命令実行 演…

Verilogによるスタックマシンの作成

スタックマシン スタックマシンとはデータをスタックと呼ばれるデータ構造を用いた計算機である。スタックと呼ばれるLastInFirstOutのデータ構造Push(データの挿入)、Pop(データの取り出し)、演算、という3種類の操作を行うことで計算を行う。このあたり…