コンピューター理論、チョットデキルようになりたい

コンピュータサイエンスの学び直しです

2020-01-01から1ヶ月間の記事一覧

学び直し14日目:3章 順序回路⑤(3章完了)

記録 PC RAM RAM512 RAM4K RAM16K 今日の筋トレ 記録 手間取ったけど、全部書けた。やっと次の章に行ける! PC の実装。API の If 文の優先順位に従って処理が実施されるようにすればよい。つまり、「reset > load > inc > 現状維持」の優先度。「reset Or l…

学び直し13日目:3章 順序回路④

記録 RAM8 RAM64 今日の筋トレ 記録 RAM8, RAM64 を書いた。入力を load、sel を address とした Dmux で load 先を選んであげたらよい。入力は全部のレジスタにつなげておく。 下位のメモリができれば、あとは再帰的に組んでいけばよい。Ram64 の場合、addr…

学び直し12日目:3章 順序回路③

記録 Bit Register 今日の筋トレ 記録 DFF を使って、Bit とレジスタの HDL を実装した。ちょっと頭がはたらかないので、メモリ以降は明日やる。 Bit Mux 使ってフィードバックループを作ればよい。 load が1のとき in を読み込む。0のときは out の値を維持…

学び直し11日目:3章 順序回路②

記録 今日の筋トレ 記録 DFF、レジスタ、メモリ、カウンタの仕様(= API)を確認。目新しいことはなかったかな。明日から実際に実装しよう。入力やloadでひとつ前のサイクルで準備された値が次のサイクルで出力されるという単純なしくみなのだけど、ゲート数…

学び直し10日目:3章 順序回路①

記録 組合せ回路と順序回路 クロック フリップフロップ レジスタ メモリ カウンタ 今日の筋トレ 記録 順序回路に突入。とりあえず背景まで読んだ。 組合せ回路と順序回路 いままでやってきたゲートは組合せ回路というもので、入力に応じて出力が時間差なく追…

学び直し九日目:2章 ブール算術⑤(2章完了)

記録 ALU の実装 ハマった... 教訓 今日の筋トレ 記録 ALU の実装 昨日の考え方であっていた。"ALUの" コード自体は合っていた。だが、ハマった。。 // This file is part of www.nand2tetris.org // and the book "The Elements of Computing Systems" // b…

学び直し八日目:2章 ブール算術④

記録 今日の筋トレ 記録 ALU 実装中。ほぼ形はできたが、出力の仕方がよくわからない。 こちらの方の記事を参考にさせてもらいつつ、明日完成かな。 blog.tojiru.net 今日の筋トレ 今日は自宅Aメニューの日。フォーム重視。大胸筋への刺激を感じることができ…

学び直し七日目:2章 ブール算術③

記録 今日の筋トレ 記録 ALU の実装を考えた。HDL は書けていないが、以下のゲートがあれば実装できそう。 Mux4way16 3個 Add16 1個 And16 1個 Or8way 2個 Or 1個(Or8way x 2 と合わせることで、Or16way となる) Not16 8個くらい 実装はまた明日。 今日の…

学び直し六日目:2章 ブール算術②

記録 半加算器 全加算器 加算器 インクリメンタ 今日の筋トレ 記録 半加算器、全加算器、加算器、インクリメンタ、ALU 仕様確認。 半加算器、全加算器、加算器、インクリメンタの実装。 半加算器 真理値表を見たら、Xor と And で書ける。 // This file is p…

学び直し五日目:2章 ブール算術①

記録 仕事が急に架橋となり三日間離れてしまった。。。再開。 記録 論理ゲートから ALU を作る。 2の補数という概念が理解できた気がする。超絶画期的でおもしろいと思った。オーバーフローした桁を都合よく無視できるから成立する考えなんだろうな。 負の数…

学び直し四日目:1章 ブール理論⑤(1章完了)

記録 HDL書けた コード Not And Or Xor Mux Dmux 多ビットNot 多ビットAnd 多ビットOr 多ビットMux 他入力Or 他入力Mux(4way と 8way) 他入力DMux(4way と 8way) 記録 HDL書けた 昨日に続き、Mux, DMux, 多ビットゲート数種類の HDL を書いた。 一応コードを…

学び直し三日目:1章 ブール理論④

記録 HDLを書いた シミュレーターを使ってテストした 参考リンク 記録 HDLを書いた Nand から、Not、And、Or、Xor を作った。 HDLは、大きくヘッダーとボディに分かれる。ヘッダーは上位へのAPI(インターフェース)。ボディはその回路の実装部分。下位のゲ…

学び直し三日目:1章 ブール理論③

記録 1章 実装について 参考リンク 記録 1章 実装について 実装方法について考えた。次こそはいよいよ HDL 書いて、シミュレータを回すことになる。楽しみだ。 Nand をプリミティブな回路として、Not, And, Or, Mux(マルチプレクサ), DMux(デマルチプレク…

学び直し二日目:1章 ブール理論②

記録 1章 仕様について 付録A ハードウェア記述言語 記録 1章 仕様について 取り扱う回路の仕様に一通り目を通せた。次はいよいよ HDL を使った実装。 ソフトウェアプログラミングで言うところのコンパイルは、HDLでハードウェアプログラミングしたコードを…

学び直し一日目:1章 ブール理論①

このブログを書くモチベーション やること 記録 0章 まえがき ハードウェア 抽象化 1章 ブール理論 トラブった 追伸:解決 このブログを書くモチベーション 10年くらい電気・電子系のおしごとをしていますが、いまだにハードウとソフトウェアの境目が分から…