少しずつ

ちょぴっとずつ、勉強しています。

Z80 内部

まずは、Z80 のデータシートなど読み始めました。昔は気にしなかったけど、命令に依って M サイクル数が違うのはまあ良いとして、T サイクル数の数に規則性が見られない点に興味を持ちました。ユーザーズマニュアルみたいなほうを見たら、各 M サイクルの個別 T サイクルが載っていました。あとは、CPU 内部のブロックダイアグラム(あまり公式なものは見つからない)を見ながら、想像を巡らせるしかないのでしょうか?

簡単な回路を書いてみたい

CPU 内部のレジスタ転送とか命令フェッチとか、簡単そうなところからオモチャ的なものを書いてみようと思い、Z80 の(非公式)ブロックダイアグラムと格闘しています。実際は、命令フェッチはともかくとして、命令デコード(マイクロプログラムへの展開?)は、なかなか難しそうです。

ブロッキング代入とノン・ブロッキング代入

CPU 内部の動作を考えていたとき、ぶつかった疑問を Verilog の本で調べたら、こんな用語がありました。
<= がノンブロッキング代入で、=ブロッキング代入だそうです。ノンブロッキング代入を使っていれば、常にマスター・スレーブ FF で実現されるのかなあ。

マスター・スレーブ D フリップフロップ

学校で教わったはずの D フリップフロップの実装を忘れてしもた。復習しなくては。(クロックト・インバータってなんだ?)