CPUの設計

CPU(Central Processing Unit)を設計するにあたって以下の本を参考にした。名著なのでぜひ。 コンピュータの構成と設計 第5版 上 作者: ジョン・L.ヘネシー,デイビッド・A.パターソン,成田光彰 出版社/メーカー: 日経BP社 発売日: 2014/12/06 メディア: 単行…

C言語のコンパイル その2 コンバータのアルゴリズム

当面の目標 まず、簡単なプログラムをModasm形式にコンバートできるコンバータを作成する。その後、徐々に難しいプログラムをコンバートできるように拡張を行っていく。 まず最初に、以下のプログラムをコンパイルできることを目標とする。 #include<stdio.h> int mai</stdio.h>…

C言語のコンパイル その1 どのような方針で行くか?

どのように変換するか? C言語をバイナリにどのように変換するか、が自作CPU上に自作OSを乗せる上で、最も大きな課題の1つと考えられる。 すなわち、コンパイラをどのように作るか、である。 レギュレーションとして、コンパイラはとりあえず動けばOKという…

論理回路の基礎

VerilogHDLを用いたモジュール記述に入る前に、最低限、論理回路はどんな要素からできているのか知っている必要があります。 VerilogHDLで記述するというのは頭の中の論理回路を言語で記述する作業となります。 レジスタ(register)とは? 論理回路において、…

はじめに

なぜこのブログを書いたか? FPGAとは論理仕様をプログラムすることによって、論理回路を半導体チップ上に合成してくれるデバイスである。本ブログでは最終的に簡単なCPUを合成することを目的としてFPGA開発を行っていく。本ブログはFPGAを触ったことのない…