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

Eli Bendersky
sumber
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:

18

Anda dapat menikmati seri artikel yang saya tulis ini sejak lama untuk majalah Circuit Cellar, Membangun Sistem RISC dalam FPGA .

Selamat melakukan peretasan!

Jan Grey
sumber
2
Lihat juga makalah Desain Con saya, Merancang CPU RISC Sederhana Dioptimalkan FPGA dan Sistem-on-a-Chip [ fpgacpu.org/papers/soc-gr0040-paper.pdf] , yang menyajikan kode sumber Verilog beranotasi untuk CPU FPGA. dan SoC.
Jan Grey
thats a dead link: /
Earlz
Hapus trailing]?
Jan Gray
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.

Leon Heller
sumber
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).

sybreon
sumber
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.

jpc
sumber
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.

Nikolaos Kavvadias
sumber
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.

geschema
sumber
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

alinsoar
sumber