HDLでのCPUの読みやすく教育的な実装


37

VHDLまたはVerilogでのCPUの読みやすく教育的な実装を推奨できますか?できれば十分に文書化されたもの。

PS私は私が見ることができることを知っていますopencoresが、私は特に人々が実際に見て、面白いと思うものに興味があります。

PS2。不機嫌なタグについては申し訳ありませんが、新しいユーザーとして新しいタグを作成することはできません



2
HDL⊕残念ながら読みやすい。
コナーウルフ

@Joby Taffey:リンクが壊れていますが、これはあなたの言っていることですか?bigmessowires.com/cpu-in-a-cpld
ブライアンカールトン

mor1kx、OpenRISC 1000のVerilog実装。コメントがあります。OpenRISCには、ツールチェーンがあるという利点がありますが、それでも比較的単純です。
ヤヌストロエルセン

回答:


18

Circuit Cellar誌の「FPGAでRISCシステムを構築する」で私がこの記事で書いた記事シリーズをお楽しみ いただけます。

ハッピーハッキング!


2
Design Conの論文、Designing a Simple FPGA-Optimized RISC CPU and System-on-a-Chip [ fpgacpu.org/papers/soc-gr0040-paper.pdf]も参照してください。これは、FPGA CPUの注釈付きVerilogソースコードを示しています。およびSoC。
ヤングレー

それは死んだリンクです:/
アールズ

末尾の]を削除しますか?
ヤングレー

7

この本を入手してください、私は初版を持っています。数年前、私は設計したPCB上の小さなFlex 10K10 FPGAにCPUを実装し、いくつかのプッシュボタンと、データを入力して結果を表示する単一の7セグメントディスプレイを使用しました。


7

コードを勉強する目的は何に大きく依存しますか?言い換えれば、あなたにとって面白いとはどういう意味ですか?

CPUがどれだけ複雑になるかを確認するためにこれを行っている場合は、OpenSPARCアーキテクチャのソースを調べることに興味があるかもしれません。飛び込むのに長い時間がかかりますが、複雑なマイクロプロセッサの全体像を理解することはできます。

次に、特定のコンピューターのマイクロアーキテクチャー機能を調べる場合は、小さくて高速なマルチスレッド 32ビットRISCプロセッサー(恥知らずなプラグ)であるAEMBのような簡単なRISCマシンを調べます。

そして、もしあなたが良いコーディングスタイルと慣習を学びたいなら、LEON2デザインは良いVHDLコーディングスタイルを学ぶのに良い場所です。

ただし、プロセッサを研究する目的が自分で設計する方法を学ぶことである場合は、シンプルな8ビットマシンの1つから始めることをお勧めします(ネット上には多くのAVR、8051、PICの例があります)。


恥知らずのプラグ-AEMB-私自身の「できる限り小さなプロセッサー」。
sybreon

5

Forth CPUの設計を調べてみてください。Forthは、2つのスタックスタック(データ用とリターンアドレス用)によって仕様と実装が定義されている単純なプログラミング言語です。

いくつかの小さなVHDL / Verilogプロセッサが無料で利用できます。

いくつかのリンクがここにあります:

PS。Forthはかなり古くて曖昧な言語であるにもかかわらず、多くの最新のスタックベースのVM(Java、高速JavaScript VM)には同様の低レベル設計があるため、学習することは有益です。


2

PicoBlazeは便利ですが、ベンダーに依存しないVHDLでは使用できません。

その他の選択肢は次のとおりです。

  • VerilogのPicoblazeクローン(これは簡単に見つけることができるはずです)。維持されているかどうかわからない
  • Gumnutは、最近のAshendenの本でサポートされているすてきな小さなコアです。
  • Thackerによる小さなレジスタマシン/コンピューター(Verilogの約200行)
  • Jan GrayのXSoC / XR16(ここで言及済み)

また、CPU用のコンパイラを探している場合、16ビットCPU用のコンパイラを入手する可能性が最も高くなります。かつて、Cに似た言語からPicoblazeへのPodericoのコンパイラがありましたが、Webから削除されました。


リストの前に空白行を含めると、回答のフォーマットがずっと良くなります。
トリグヴェLaugstøl


0

遅すぎますが、小さな答えを提供します。

エルサレム大学のNand2Tetrisという名前のコースがあります。このコースはもちろんコースラにもあります。私は彼らがそのコースで作成したコンピュータを構築しました。コンピューターがどのように機能するかを最も詳細に確認できるように、この言語をスキームに実装しました。そして、私が成功したのは、彼らがJavaで作成したシミュレーターが、私が見たいと思ったすべてを実行できないことです。

https://github.com/alinsoar/little-computer

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.