toyintelligence’s diary

コンピュータの基礎を遊んで学ぶ趣味ブログ

フリップフロップ自作

CPU

お次はフリップフロップ。これは数を記憶する機械。フリップフロップにも色々あるようだが、一番簡単そうなRS型をチョイス。RとSが入力で、Q(とその反転)が出力。一度Sに1を入力するとQが1になり、Sを0にもどしてもその状態が維持される。Rに1を入力すると…

全加算器自作

CPU

前回作った半加算器を二個組み合わせて全加算器を作る。全加算器はA、B、Cinの計3つの1bit入力を足し合わせて2bitの値を得て、C、Sの計2つの1bitとして出力する機械。2つの数を足し算するときに、その2進数版のある桁に着目し、その桁の数字A、Bを下の桁から…

半加算器自作

CPU

もうちょっと計算っぽいことをやりたいので、半加算器を作る。半加算器とは1bitの数2つを足し合わせて2bitの出力を得る計算機。例の本に載ってる回路例はAND、OR、NOTゲートを組み合わせたもの(こんなの)だが、うちの文明は万能なるNANDゲートを手にしてい…

NAND回路自作と74HC00

CPU

NAND回路ができた。昨日の不具合は電流が足りなくてLEDが光らなかった様子。抵抗を小さくしたらちゃんと動いた。ついでに赤を計算結果表示用、緑を導通確認用にしたら見やすくなった。カタログスペックは同じはずなんだが…なお電圧チェック中にショートさせ…

AND回路とNOT回路の自作

CPU

初歩的なパーツが揃ったので本格的に遊びだす。 CPUを作るのにパソコンを使うのもおかしいので、紙とペン、そして計算尺(!)を使っていく。まあ計算尺の出番はないと思うけど、雰囲気は大事。パソコンは情報収集と発信にのみ使う。 いきなり74HCとかのブラ…

千里の道も一歩から

CPU

材料が届いたのでLEDを光らせてみた。電圧が理論通りの値になってて一安心。最初は抵抗の値が合わなくて「なにこれ壊れてるじゃん」という考えが一瞬頭をよぎってしまったが、自分がテスタのゼロ合わせを忘れてただけだったwあの本に書いてあった「初心者の…

Brainf*ck;

github.com 大昔(何年前か数えてみたら戦慄したので書かない^^;)に作ったPython製のBrainf*ckインタプリタ。通常のBrainf*ckに加えて、メモリ内容を整数として標準出力に吐く命令:と標準入力を整数として読み取る命令;を実装してあるので、数字の入出力が…

習作インタプリタ言語myownlang

github.com 一月ほど前に試しに作ったPython製のインタプリタ言語。何も勉強せず自前で(なので名前はmyownlang。つまらん名前だw)作った。ASTすら使ってないので大変非効率的だが、それなりに動く。メモリ管理はPythonの辞書に丸投げ。 普通のプログラミ…

『CPUの創り方』購入

CPU

名著と言われる『CPUの創り方』を購入。原理を理解して実装していくという書き方が読んでて心地よい。これに沿って創っていこうと思う。 とはいえ、こんなマニアックな本を買っておきながら実は電子工作は初めてなのでゆっくりやっていきます。まずはNAND回…

ブログの目的

コンピュータ関連の基礎論を勉強したくなったので、ついでに記録を残すことにする。当面の目標は CPUを創る インタプリタ言語を創る コンパイル言語を創る 気長にやっていきます。

hello world

始めに言葉ありき