しかくいさんかく

解答略のメモ

マイクロアーキテクチャ

10日目: [CPU] FPGAでCPUを自作 (完成)

この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の10日目の記事です。 昨日に引き続きFPGAでCPUを作成していく。 復習 昨日のメインは test.sv の解説だった。 ここにはシミュレーション用のモジュールが書かれていた。 こいつ…

9日目: [CPU] FPGAでCPUを自作 (前半)

この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の9日目の記事です。 今日から2日かけて、FPGA上に昨日の命令セットのCPUを実装する。 言語はSystem Verilogを用いる。 完成品のリポジトリはこれ。 こいつでフィボナッチ数を計…

8日目: [CPU] 命令セットの策定

この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の8日目の記事です。 今日はこれまでに出てきた機械語命令を振り返り、自作するCPUの仕様を決定する。 実際にFPGAでCPUを作るのは、明日明後日やる予定。 初日から一週間経った …

6日目: [CPU] bit拡張と数値演算

bit拡張と数値演算 この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の6日目の記事です。 昨日は変数(レジスタ)の数を4個に増やして、mov命令が実行できるCPUを設計した。 しかしmov命令だけでは大したことができない。 そこで…

5日目: [CPU] レジスタの複数化とマルチプレクサ

この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の5日目の記事です。 昨日は1bitのCPUを導入した。 要するにCPUとは、クロックが立ち上がるたびに、計算した値を変数に代入するループであった。 変数はDフリップフロップを用い…

4日目: [CPU] 1bitのCPUとHDL

この記事はひとりでCPUとエミュレータとコンパイラを作る Advent Calendar 2017の4日目の記事です。 一昨日はトランジスタでNANDゲートを作り、昨日はDフリップフロップを作った。 今日はいよいよCPUを導入する。 昨日はややこしかったけど、今日は簡単だ。…