Make/Day

毎日なにか作ります

自作CPU

ジラーチの図案 ~劇場版2連発!~

こんにちは!今日は消しゴムはんこの話題で更新します。今週も週末にポケモン映画のリバイバル上映を見てきました。先週とは打って変わって今回は「七夜の願い星 ジラーチ」の上映で、こちらも映画館では初めて見ることができました。劇場で聴く主題歌はまさ…

7セグメントLEDで24時間時計を作ってみた

こんにちは!今日はデジタル回路の話題で更新します! 今回は、以前紹介した7セグメントLEDの応用先として、時計を作ってみたので紹介します❕ ↓7セグ周辺の回路を作った時の話 in-reality.hatenablog.com 普段は回路のソースコードを貼ったりして色々中身の…

コンピュータの検証完了!

こんにちは!今日はデジタル回路の話題で更新します! 今回は、前回に引き続き自作コンピュータの検証を行い、ついに動作するところまで確認できたので、その報告をします! 確か前回はプログラムカウンタが動かずメモリからCPUへ命令を読みだせないことを確…

66日目 ~物言わぬコンピュータ~

こんにちは!今日もデジタル回路の話題で更新します。 今回は、前回に引き続きコンピュータ本体の検証を行っていきます。まずは、先日紹介した1~10まで累算するプログラムを機械語にしてメモリの中へ書き込んでいきます。 全部で20行のプログラム うん、メモ…

65日目 ~テストプログラム~

こんにちは!今日はデジタル回路?の話題で更新します。"?"となっているのは、今回は直接回路設計を行う話題ではないためです。 この記事ではコンピュータをテストするときに使用するテストプログラムについて考えていきたいと思います。やはりテストなので…

62日目 ~CPUの検証完❕~

こんにちは!今日はデジタル回路の話題で更新します。今回は、これまで何回かの更新(関連記事はこの記事の最後に貼っています)で悩んできたCPUの検証を終わらせてしまいます! というわけで、長かったテストベンチもこれで終わりです。前回はプログラムカウ…

57日目 ~CPUの検証その②~

こんにちは!今日はデジタル回路の話題で更新します。 今回は、前回に引き続き自作CPUの検証を行っていきます。以前の記事では、期待値と出力の比較結果がすべて一致しておらず、おかしいぞ...(・_・?)となっていた所でした。 in-reality.hatenablog.com 出力…

55日目 ~CPUの検証がfailする話~

こんにちは!今日はデジタル回路の話題で更新します。今回は、以前より実装を進めていたCPUの検証を行っていきます。この検証のおかげで、今までの僕の実装がまぁまぁボロボロだったことが判明しました(|||O⌓O;) なんか色々と詰まっていることを察してもらえ…

53日目 ~コンピュータの仮組み~

こんにちは!今日はデジタル回路の話題で更新します。今回は、検証をするためにとりあえずコンピュータを仮組みしてみました。 こんな構成過去記事で載せた通りに組んでいきます。といっても、これまで実装してきた部品をただ繋げるだけなので非常に単純です…

51日目 ~メモリの実装~

こんにちは!昨日は記念すべき50日目だったのに変わり映えのしない更新しかしなかったIn_Realityです(*_ _) 今日はデジタル回路の話題で更新します。今回はメモリの実装に移っていきます。ただのメモリとはいえ、参考書籍の方では周辺回路をいろいろ繋げてい…

48日目 ~実装!!CPU!!~

追記2:8/7にソースコードのミスを修正いたしました。 追記:7/31にソースコードのミスを修正いたしました。 こんにちは!今日はデジタル回路の話題で更新します!今回は!ついに!CPUの実装を行っていきます! このコンピュータ自作プロジェクトの中でも非常…

47日目 ~7segLEDデコーダ~

こんにちは!今日はデジタル回路の話題で更新します。今回は番外編ということで、CPUの出力などに使用する予定の7segLEDデコーダを設計していきます。 デコーダとは、入力信号からデータを複合して例えば人がわかるような出力に変換するような回路のことを指…

45日目 ~16bitコンピュータの構成~

こんにちは!今日はデジタル回路の話題で更新します。今回はソースコードは無く、ALUまで設計が完了した今、今後どのように設計していくかを図とともに書き起こしてみるつもりです。 16bitのALUができたら、まずはCPUの設計ですよね。 Nand2tetrisの本で紹介…

42日目 ~ALUの検証~

こんにちは!今日はデジタル回路の話題で更新します。今回は、ようやくALU(演算装置)の検証を行います。 ALUはCPUが様々な演算を行う要のデジタル回路です。 過去記事からのつながり 確か、設計自体は20日以上前にしたはずです。in-reality.hatenablog.com …

41日目 ~16bit伝播加算器~

こんにちは!今日はデジタル回路の話題で更新します。今回実装するのは、伝播加算器です。なんぞそれ?と思われた方もいらっしゃるかもしれませんが、これまで紹介してきた16bit云々のと同じで、ユニットを縦に繋げただけの意外と単純なものです。 今回は、…

37日目 ~半加算器のテストベンチ~

こんにちは!今日はデジタル回路の話題で更新します!今回は、ついにこれまで作ってきた回路の検証に入っていきます。 まずは、小手調べに半加算器の検証を行ってみます。↓半加算器の回 in-reality.hatenablog.com確か、半加算器は足し算の基本回路の一つで…

31日目 ~rom~

こんにちは!今日もデジタル回路の話題で更新します!今回は、CPUへの命令を保存するためのメモリ装置(Read Only Memory略してROM)を設計していきます。 といっても、ROMはROM専、つまり読むだけの機能しか持たないので、前回のramよりも機能は少なくなりま…

30日目 ~ram~

こんにちは!今日はデジタル回路の話題で更新します!今回は順序回路から、RAM(Random Access Memory)の実装をしていきます。(読み込み専用のRead Only Memolyはまた次回) 参考書籍である、nand2tetrisの本では実装したレジスタブロックから積み重ねてメモリ…

28日目 ~プログラムカウンタ~

こんにちは!今日はデジタル回路の話題で更新します。今回紹介するのは、プログラムカウンタ(略して、PC)です。 PCは、実行する命令のアドレスを指し示し、さらにそれを更新するための重要な順序回路になります。 そんな回路なので、値を保持するDFFの周りに…

24日目 ~Register~

こんにちは!今日はデジタル回路の話題で更新します。今回は、19日目に更新した内容の続きで順序回路を作っていきます。 その名も、Nbitレジスタです。 レジスタは、前回紹介したDFFから作られる記憶素子の一つになります。(というか、前回の最後に紹介したD…

21日目 ~ALU~

こんにちは!今日はついにALUの機能紹介と実装を行います。また、テストベンチの実装は次回になるため、今回紹介するコードは参考書籍の環境での検証までしか行っていません。使用する際は、自己責任でお願いしますm(_ _)m対象となるALUはNand2tetris(参考書…

19日目 ~DFF~

こんにちは!今日も引き続きデジタル回路の話題で更新していきます。 ALUは少し後回しにして、今回はDフリップ・フロップ回路(DFF)を紹介していきます。 DFF単体は、組み合わせ回路の出力を保存することのできる記憶素子です。 以下に示す図で、DFFがどんな…

18日目 ~デマルチプレクサ~

こんにちは!今日はデジタル回路の話題から、デマルチプレクサ(略してDMUX)を紹介していきます!この回路は、選択信号(sel)に従って、入力(in)を複数の出力(Yx)のうちのどれかに振り分ける機能を持ちます。 例えば、1入力4出力の場合、2bitで選択する必要が…

15日目 ~マルチプレクサの多ビット化、多入力化~

こんにちは!今日は前回の続きでマルチプレクサの多ビット化、多入力化を行います。まず多ビット化についてですが、これは前回の論理ゲートと同じように書くことができます。 module Mux16 ( input wire [15:0] a, b, input sel, output wire [15:0] out ); …

14日目 ~多ビット、多入力化~

こんにちは!今日はデジタル回路の話題について紹介します。 まずは論理ゲートの多ビット化! といっても、入出力の本数を増やすだけなので、直感的に理解できるものかもしれません。 まず図を見てもらうと、 1bitの入力nbit入出力となるだけです。 要するに…

12日目 ~マルチプレクサ~

こんにちは!今日は、デジタル回路から、信号の選択を行うマルチプレクサ(略してMUX)の紹介です。マルチプレクサは入力された信号、例えば、a,bがあった際、select信号(s)の値に沿って出力をスイッチングします。 そして、その結果をoutから出力する回路にな…

10日目 ~加算器の補足~

こんにちは!今日は時間がなかったので、6日目の記事の補足をしようと思います。 具体的には、加算器についてです。 in-reality.hatenablog.com 前回の記事では、半加算器や、全加算器の回路がどんなものか紹介していなかったため、いきなりコードが現れて驚…

9日目 ~お題に挑戦?~

今週のお題「本棚の中身」 気になったので、お題に挑戦することにしました。 流石に家の中の写真を撮るのははばかられるので、どんな本を読んでいるのかと、その中でも気に入っている本を紹介しようと思います。 私の部屋の本棚は、基本的に半導体関連の書籍…

6日目 ~Nandで書く加算器~

7/17日更新 補足記事もあるのでぜひ参考にしてください❕ in-reality.hatenablog.com

4日目 ~コンピュータの基本!?~

今日はいつもと趣向を変えてHDL(ハードウェア記述言語)で論理ゲートを書いてみました。 いつものように毎日投稿には時間がないので、今日は基本的なコンピュータの構成要素となる部分のみの記述を紹介します。まずは、すべての論理素子の基本となるNandゲー…