Bir HDL'de CPU'nun okunabilir ve eğitsel uygulamaları


37

Bir CPU'nun VHDL veya Verilog'da okunabilir ve eğitici bir uygulamasını önerebilir misiniz? Tercihen iyi belgelenmiş bir şey.

PS Bakabileceğimi biliyorum opencores, ama insanların gerçekten baktıkları ve ilginç buldukları şeylerle özellikle ilgileniyorum.

PS2. Sucky etiketleri için özür dilerim, ancak yeni bir kullanıcı olarak yenilerini oluşturamıyorum


1
İşte bir CPLD için küçük bir CPU oluşturmaya çalışan bir adamdan harika bir blog stevechamberlin.com/cpu
Toby Jaffey

2
HDL ⊕ Maalesef okunabilir.
Connor Wolf

@Joby Taffey: Bağlantı koptu, demek istediğin bu mu? bigmessowires.com/cpu-in-a-cpld
Brian Carlton

mor1kx , OpenRISC 1000'in Verilog uygulamasıdır. Bazı yorumları var. OpenRISC, bir alet zincirine sahip olma avantajına sahiptir ancak yine de nispeten basittir.
Janus Troelsen

Yanıtlar:



7

Bu kitabı al , ilk baskıyı aldım. Birkaç yıl önce CPU'larını, tasarladığım bir PCB üzerine küçük bir Flex 10K10 FPGA içinde, birkaç tuşla ve veri girmek ve sonuçları görüntülemek için tek bir 7 segmentli ekranla uyguladım.


7

Pek çok şey, kodu incelemenin amacına ne bağlı? Başka bir deyişle, sizin için ilginç olan ne anlama geliyor?

Bir CPU'ya ne kadar karmaşıklık girebileceğini görmek için yapıyorsanız, OpenSPARC mimarilerinin kaynağını incelemekle daha fazla ilgilenebilirsiniz . Dalış yapmak çok zaman alacaktır, ancak karmaşık bir mikroişlemcinin genel büyük resmi için teşekkür edeceksiniz .

Daha sonra, belirli bilgisayar mikro mimarisi özelliklerini incelemek istiyorsanız , küçük ve hızlı, çok dişli 32 bitlik bir RISC işlemcisi (utanmaz fiş) olan AEMB gibi bazı basit RISC makinelerine bakmak isteyeceksiniz .

Öyleyse, iyi kodlama stilleri ve kuralları öğrenmek istiyorsanız, LEON2 tasarımı iyi VHDL kodlama stilini öğrenmek için iyi bir yerdir.

Bununla birlikte, bir işlemciyi incelemedeki amacınız kendinden birini nasıl tasarlayacağınızı öğrenmekse, en iyi seçeneğiniz basit 8-bit makinelerden biriyle başlamaktır (net üzerinde birçok AVR, 8051, PIC örneği vardır).


Utanmaz fiş - AEMB - kendi "yapabilen en küçük işlemcim".
sybreon

5

Bazı Forth CPU tasarımlarını incelemeyi deneyebilirsiniz. İleri, teknik özellikleri ve uygulaması iki istif yığını ile tanımlanmış basit bir programlama dilidir (biri veri, diğeri de adresler için).

Birkaç küçük VHDL / Verilog işlemci serbestçe kullanılabilir:

Burada daha fazla link bulunabilir:

PS. Forth'un oldukça eski ve belirsiz bir dil olmasına rağmen, birçok modern yığın tabanlı VM (Java, hızlı JavaScript VM'ler) benzer düşük seviyeli bir tasarıma sahiptir, bu yüzden onun hakkında bilgi edinmek verimli olabilir.


2

PicoBlaze güzel, ancak satıcıdan bağımsız VHDL'de mevcut değil.

Diğer bazı seçenekler:

  • Verilog'da bir Picoblaze klonu (bunu kolayca bulabilmelisiniz). Korunup korunmadığından emin değilim
  • Gumnut, yeni bir Ashenden kitabı tarafından desteklenen hoş ve küçük bir çekirdek.
  • Thacker'ın küçük kayıt makinesi / bilgisayarı (yaklaşık 200 satır Verilog)
  • Jan Gray'in XSoC / XR16 (daha önce burada belirtilen)

Ayrıca, CPU'nuz için bir derleyici arıyorsanız, 16 bitlik bir CPU için bir tane edinmeniz en muhtemeldir. Bir zamanlar Poderico'nın derleyicisini C benzeri bir dilden Picoblaze'ye getirdim ama internetten çıkarıldı.


Listenizden önce boş bir satır eklerseniz, cevabınız çok daha iyi biçimlendirilecektir.
Trygve Laugstøl


0

Çok geç, ancak küçük bir cevap veriyorum.

Kudüs Üniversitesi'nden Nand2Tetris adında bir kurs var , bu kurs kursta da mevcut, o kursta yarattıkları bilgisayarı yaptım. Bilgisayarın en az nasıl çalıştığını kendimi görebilmek için dili şemada uyguladım. Ve başardım, Java'da yarattıkları simülatör görmek istediğim her şeyi yapamıyor.

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.