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

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

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

2021年を振り返ってみる

2021年もおしまいなので、振り返りの意味もこめてサクッとまとめを。 2021年振り返り 反省。。。 良かったこと 来年は

iotestersからChiselTestへの移行を考える

この記事はHDL (SystemVerilog/Verilog/VHDL/Chisel/etc.) Advent Calendarの20日目の記事です。 Chiselも含まれてたので、Chiselネタで何か、、、、と考えた結果、あんまりちゃんと調べて&まとめてなかったChiselTestについて書くことにしました。

ゲームボーイを作る(17) - LCDの調査

ゲームボーイを作るその17。CPUを作るのに若干飽きてきたので、LCD周りの調査を始めた。今回は入手したLCDについて調べた事を少しまとめてみる。

ゲームボーイを作る(16) - ジャンプ命令のサイクル数について

ゲームボーイを作るその16。今回はジャンプの挙動について、どう扱うべきかについて迷ったのでメモ書き程度にまとめておく。 ジャンプ命令(JPNN/JPHL)

ゲームボーイを作る(15) - DAA命令の調査

ゲームボーイを作るその15。少しずつCPUの実装を進めている所なのだが、DAAという命令の挙動がよくわからん!となったので、調べたことをまとめておく。 DAA (Decimal Adjust Accumulator)命令

ゲームボーイを作る(14) - キャッシュ機能付きCI環境構築

ゲームボーイを作るその14。テストを作って実装を進めているが、この作業を進めるうちに、少し前に実装してPASSしたテストがFAILするという事がチラホラ起き始めた。そろそろCIを導入してデグレを早期発見できるようにしてみようと思う。 GitHub Actionsを使…

ゲームボーイを作る(13) - フラグレジスタの確認

ゲームボーイを作るその13。加算・減算などを実装しようと思って、仕様を読んでいたのだがフラグ系のレジスタの動きを整理しておきたいと思ったので、簡単にまとめておく。 CPUの算術/論理演算とフラグレジスタ 各命令セットのFlagsの見方 Zero (Z) N H (Ha…

ゲームボーイを作る(12) - レジスタ表示の改善

ゲームボーイを作るその12。ちょっと寄り道して、デバッグのためにレジスタ表示を改善する。

ゲームボーイを作る(11) - ロード命令の実装

ゲームボーイを作るその11。前回作ったテストをパスするため、ロード命令を実装していく。 ゲームボーイのCPUの命令 CPUの動作波形 とりあえずロードの実装

ゲームボーイを作る(10) - CPUのレジスタ実装

ゲームボーイを作るその10。前回でCPUレジスタの仮実装を行ったので、テスト環境側の期待値比較処理を作っていく。

ゲームボーイを作る(9) - CPUのレジスタ実装

ゲームボーイを作るその9。今回はテストの体裁を調えるために、CPU内部のレジスタを仮実装していく。

ゲームボーイを作る(8) - テストROMビルドのsbtタスク化

ゲームボーイを作るその8。前回に引き続き、ハードウェアの検証環境を整備していく。と書きながら、今回はバイナリ→HEX変換のタスク化の話。

ゲームボーイを作る(7) - CPUのテストベンチ作成

ゲームボーイを作るその7。前回は最初のテストコードの準備をしたので、今回はハードウェアの検証環境を整備していく。 CPUのテストベンチ作成 メモリ CPU CpuTb テストクラス ChiselTest CPUのテストクラス

ゲームボーイを作る(6) - 最初のCPUテストコードの作成

ゲームボーイを作るその6。CPUを作るためにcpu_instrsを解析していたが、最初に動かすテストとして使うのは厳しそうということで、まずは自前のテストコードをそれを動かす環境を用意する。

ゲームボーイを作る(5) - テストROMの解析3

ゲームボーイを作るその5。元に戻ってblargg-gb-testsのcpu_instrsの解析を続ける。

ゲームボーイを作る(4) - ビルド環境(wla-dx)の整備

ゲームボーイを作るその4。やっぱりビルドの環境があった方が良い気がしたので、そのあたりを整備していく。

ゲームボーイを作る(3) - テストROMの解析2

ゲームボーイを作るその3。今日は実装に使用するテストROMを解析してメモった内容の続き。今の段階では解析して、こう見える、、、程度の状態で書いているので、何か誤認識があるかもです。(後で気づいたことは、適宜修正入れていきます。) テストROMの解…

ゲームボーイを作る(2) - テストROMの解析1

ゲームボーイを作るその2。今日は実装に使用するテストROMを解析してメモった内容。 テストROMの解析1 cpu_instrs PASS/FAIL判定 shell.inc

ゲームボーイを作る(1)

何か動かして楽しいものを!と思いついたのが、昔のゲーム機器だったのだが、情報収集してみた結果ゲームボーイが比較的資料も豊富に存在していて、これなら作れるかもと思った。(先駆者の皆様に感謝!) 今回はゲームボーイを作るに当たって、色々調べてる…

sbtの変数&タスク定義について

2021年になって、早半年(´゚д゚`) なんか知らぬ間に時間が経っていきますね。。。。 謎に落ちていたモチベーションも戻ってきつつあるので、またゴニョゴニョ活動してる内容をブログにしていこうと思います。 という事で、Chiselで使っているsbtについて、気…

2021年の抱負的なアレ

新年明けて、もう1週間以上経ちましたね、おめでとうございます! 新年なので、今年何をしたいかとざっくりと書いておこうと思います。 すでに出遅れ間満載ですが、いわゆる年始のポエム的なやーつです。