Implementasi yang dapat dibaca dan dididik dari sebuah CPU dalam HDL


37

Dapatkah Anda merekomendasikan implementasi CPU yang dapat dibaca dan edukatif dalam VHDL atau Verilog? Lebih disukai sesuatu yang didokumentasikan dengan baik.

PS Saya tahu saya bisa melihatnya opencores, tetapi saya secara khusus tertarik pada hal-hal yang dilihat orang dan menarik.

PS2. Maaf tentang tag sial, tetapi sebagai pengguna baru saya tidak dapat membuat yang baru


1
Berikut adalah blog yang besar dari seorang pria mencoba untuk membuat sebuah CPU kecil untuk CPLD stevechamberlin.com/cpu
Toby Jaffey

2
HDL unfortunately Dapat dibaca, sayangnya.
Connor Wolf

@Joby Taffey: tautan rusak, apakah ini yang Anda maksud? bigmessowires.com/cpu-in-a-cpld
Brian Carlton

mor1kx , implementasi Verilog dari OpenRISC 1000. Ada beberapa komentar. OpenRISC memiliki keunggulan bahwa ia memiliki toolchain tetapi masih relatif sederhana.
Janus Troelsen

Jawaban:



7

Dapatkan buku ini , saya punya edisi pertama. Beberapa tahun yang lalu saya mengimplementasikan CPU mereka dalam Flex 10K10 FPGA kecil pada PCB yang saya rancang, dengan beberapa tombol push dan tampilan 7-segmen tunggal untuk memasukkan data dan menampilkan hasilnya.


7

Banyak tergantung pada apa tujuan Anda mempelajari kode? Dengan kata lain, apa artinya menarik bagi Anda?

Jika Anda melakukannya untuk melihat seberapa banyak kerumitan yang dapat terjadi pada CPU, Anda mungkin lebih tertarik mempelajari sumber arsitektur OpenSPARC . Butuh waktu lama untuk menyelam, tetapi Anda akan mendapatkan apresiasi untuk gambaran besar keseluruhan dari mikroprosesor yang kompleks.

Kemudian, jika ingin mempelajari fitur arsitektur mikro komputer tertentu, Anda akan ingin melihat beberapa mesin RISC langsung seperti AEMB , prosesor RISC 32-bit multi-threaded yang cepat (plug yang tidak tahu malu).

Kemudian, jika yang Anda inginkan adalah mempelajari gaya dan konvensi pengkodean yang baik, desain LEON2 adalah tempat yang baik untuk mempelajari gaya pengkodean VHDL yang baik.

Namun, jika tujuan Anda mempelajari prosesor adalah untuk mempelajari cara mendesain sendiri, taruhan terbaik Anda adalah memulai dengan salah satu mesin 8-bit sederhana (ada banyak AVR, 8051, contoh PIC di internet).


Shameless plug - AEMB - "prosesor terkecil saya yang bisa".
sybreon

5

Anda dapat mencoba memeriksa beberapa desain CPU Keempat. Forth adalah bahasa pemrograman sederhana yang spesifikasi dan implementasinya didefinisikan melalui dua tumpukan tumpukan (satu untuk data dan satu untuk alamat pengirim).

Beberapa prosesor VHDL / Verilog kecil tersedia secara bebas:

Beberapa tautan lainnya dapat ditemukan di sini:

PS. Meskipun Keempat menjadi bahasa yang cukup tua dan tidak jelas banyak VM modern berbasis stack (Java, JavaScript VM cepat) memiliki desain tingkat rendah yang serupa sehingga belajar tentang hal itu bisa bermanfaat.


2

PicoBlaze bagus, namun tidak tersedia di VHDL yang tidak tergantung vendor.

Beberapa pilihan lain adalah:

  • Kloning Picoblaze di Verilog (Anda seharusnya bisa menemukannya dengan mudah). Tidak yakin apakah itu dipertahankan
  • Gumnut adalah inti kecil yang bagus didukung oleh buku Ashenden baru-baru ini.
  • Mesin register kecil / komputer oleh Thacker (sekitar 200 baris Verilog)
  • Jan Gray's XSoC / XR16 (sudah disebutkan di sini)

Juga, jika Anda mencari kompiler untuk CPU Anda, kemungkinan besar mendapatkannya untuk CPU 16-bit. Pernah ada kompiler Poderico dari bahasa seperti-C ke Picoblaze tetapi telah diambil dari web.


Jika Anda memasukkan baris kosong sebelum daftar, jawaban Anda akan diformat lebih baik.
Coba Laugstøl

1

Anda mungkin melihat prosesor Xilinx PicoBlaze . Ini adalah mikrokontroler tertanam 8-bit minimal, dan kode sumber harus tersedia.


1
Itu semua struktural VHDL, jadi tidak sebagus alat pengajaran
Martin Thompson

0

Terlambat, namun saya memberikan jawaban kecil.

Ada kursus bernama fromNand2Tetris dari University of Jerusalem, kursus ini juga hadir di coursera, saya membangun komputer yang mereka buat dalam kursus itu. Saya menerapkan bahasa dalam skema untuk dapat melihat diri saya sendiri bagaimana komputer bekerja dengan sangat detail. Dan saya berhasil, simulator yang mereka buat di Jawa tidak dapat melakukan semua yang ingin saya lihat.

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

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.