著者:渡波郁
定価:本体2,800円+税
B5変型判 320ページ
ISBN:4839909865
発売日:2003年09月29日
毎日コミュニケーションズ
コンピューターの中核であるCPUという名のブラックボックス。その動作の「超」基本原理から設計までを4bitCPUを例に解説。アキバで手に入る部品だけで実際の制作も可能!実際に作らない人も読み物としてもタメになること請け合いです。
アセンブラのようなものも『CPUの創りかた』のときと同じくPythonで作った。 def generate_mif(file_name, width, depth, rom): f = open(file_name, "w") f.write("WIDTH=%d;\n" % width) f.write("DEPTH=%d;\n" % depth) f.write("ADDRESS_RADIX=UNS;\n") f.write("DATA_RADIX=BIN;\n") f.write("CONTENT BEGIN\n") format_of_code = "0" + str(width) + …
ROM、クロックジェネレーターは、『CPUの創りかた』のときに作ったVHDLをそのまま使った。 これで一往完成である。 library ieee; use ieee.std_logic_1164.all; entity cpu1738 is port( source_clk : in std_logic; manual_clk_in: in std_logic; sel : in std_logic_vector(1 downto 0); aclr_n : in std_logic; inp : in std_logic_vector(3 downto 0); halt : out std_l…
今度はA、B、OUTの各レジスタとPC (pp.115-118)。『CPUの創りかた』のときと同じく、まず共通のカウンター兼レジスターを作っておく(このとき作った74161のようなものからリプルキャリーアウト機能を省いたもの)。それを4つまとめて実体化する。 共通のカウンター兼レジスター: library ieee; use ieee.std_logic_1164.all; use ieee.numeric_std.all; entity counter_register is generic( NUM_BITS: natural := 4 ); port( clk : in std_logi…