ぱたへね

はてなダイアリーはrustの色分けができないのでこっちに来た

Altera FPGAを使って step by step でCPUを作るには?

[fpga-cpu]で面白そうな話題がありました。コンピュータアーキテクチャの授業で、Altera FPGAを使って簡単なCPUを作るので、生徒とTAに1冊に勧める一冊の本を教えて欲しいという質問です。

このメールへのリプライに出てきた本とURLを紹介します。

opencoreの中のcpu_lecture

http://opencores.org/project,cpu_lecture
上のURLからpdfがダウンロードできます。Atmelの8bitCPUをVHDLで実装しています。コンパイラは、既存のgcc-avrを使っています。

ヘネパタとパタヘネ

Hennesy and Peterson's Computer Architercture
D.A. Patterson, J.L. Hennessy: Computer Organization & Design
定番の2冊。私はパタヘネが一押しです。パタヘネのCDROMの中にはHDLの環境も入っています。

Digital Design and Computer Architecture by David Money Harris and Sarah L. Harris (Morgan Kaufman, 2007).

Digital Design and Computer Architecture
邦訳は「ディジタル回路設計とコンピュータアーキテクチャ」です。パタヘネに比べるとHDLの実装もあり、CPUを実際に動かすならとても良い本です。
私のレビューはこちらです。
http://d.hatena.ne.jp/natsutan/20080709/1215574171

Digital Design: Principles and Practices, Third Edition

Digital Design: Principles and Practices, Third Edition
Amazonの評判は良いです。発売元を確認してみると、Forth Editonも出ているようです。indexを見てみると、初版のころのパタヘネを実装寄りにしているようです。シンプルなCPUならこの本も良さそうです。

Digital System Design with VHDL

Digital System Design with VHDL
著者のWebを見ると、同じ人がSystemVerilogの本も書かれてますね。

Digital Design, An Embedded Systems Approach Using VHDL, Peter J Ashenden

Digital Design (VHDL): An Embedded Systems Approach Using VHDL
Digital Design (Verilog): An Embedded Systems Approach Using Verilog
MLで紹介されていたのはVHDLですが、Verilog版もあります。

ESL Design and Verification: A Prescription for Electronic System-Level Methodologyに載っていました。この本自体は読んでないのですが、ESLの本では『デジタル回路の教科書は、ゲートレベルの事を教えてばっかりだ。100ページ以上も読んでようやく、小さな組み合わせ回路や、ALU、ステートマシーンがでてくる。そうじゃなくて、HDLを使ってデータパスと制御回路といった抽象度の高いシステム設計ができるようなアプローチが良い』という形で紹介されています。参考 ESL Design and Verification: A Prescription for Electronic System-Level Methodology

Blue Processor

http://blue.hotsolder.com/wiki/Main_Page
Computer Architecture (Computer Science Series)
XilinxのSpartan 3で動かすことができる16bitプロセッサです。

Bit-slice Microprocessor Design

Bit-sliceMicroprocessor Design
この本は知らなかったので、早速Amazonで注文しました。

2011/03/03 追記

本が届いたので早速見てみました。CPUの動く仕組みを丁寧に説明してあり良い本でした。ただ、回路が74シリーズ等を使っており、今からCPUの仕組みを勉強するには古く感じました。昔にCPUがどうやって動いていたかの、歴史的価値は十分あります。