Việc triển khai có thể đọc và giáo dục của CPU trong HDL


37

Bạn có thể đề xuất một triển khai CPU có thể đọc và giáo dục trong VHDL hoặc Verilog không? Tốt nhất là một cái gì đó tài liệu tốt.

Tái bút: Tôi biết tôi có thể nhìn vào opencores, nhưng tôi đặc biệt quan tâm đến những thứ mọi người thực sự đã xem và thấy thú vị.

PS2. Xin lỗi về các thẻ sucky, nhưng là người dùng mới, tôi không thể tạo thẻ mới


1
Đây là một blog tuyệt vời từ một anh chàng đang cố gắng tạo ra một CPU nhỏ cho CPLD stevechamberlin.com/cpu
Toby Jaffey

2
HDL Có thể đọc được, thật không may.
Sói Connor

@Joby Taffey: liên kết bị hỏng, đây có phải ý bạn không? bigmessowires.com/cpu-in-a-cpld
Brian Carlton

mor1kx , một triển khai Verilog của OpenRISC 1000. Nó có một số ý kiến. OpenRISC có lợi thế là nó có một toolchain nhưng vẫn tương đối đơn giản.
Janus Troelsen

Câu trả lời:


18

Bạn có thể thưởng thức một loạt bài viết mà tôi đã viết trên đây từ lâu cho tạp chí Circuit Cellar, Xây dựng Hệ thống RISC trong một đồ họa .

Chúc mừng hack!


2
Xem thêm bài viết về Con thiết kế của tôi, Thiết kế CPU RISC được tối ưu hóa đơn giản và hệ thống trên chip [ fpgacpu.org/ con / soc-gr0040-apers.pdf] , trình bày mã nguồn Verilog được chú thích cho CPU CPU và SoC.
Jan Gray

đó là một liên kết chết: /
Earlz

Xóa dấu vết]?
Jan Gray

7

Nhận cuốn sách này , tôi đã có phiên bản đầu tiên. Cách đây vài năm, tôi đã triển khai CPU của họ trong một chiếc Flex 10K10 nhỏ trên PCB do tôi thiết kế, với một vài nút ấn và màn hình 7 đoạn duy nhất để nhập dữ liệu và hiển thị kết quả.


7

Rất nhiều phụ thuộc vào mục đích nghiên cứu mã của bạn là gì? Nói cách khác, điều gì thú vị có ý nghĩa với bạn?

Nếu bạn đang làm điều đó để xem mức độ phức tạp có thể đi vào CPU, bạn có thể quan tâm nhiều hơn đến việc nghiên cứu nguồn kiến trúc OpenSPARC . Sẽ mất nhiều thời gian để lặn nhưng bạn sẽ nhận được sự đánh giá cao về chế độ xem hình ảnh tổng thể của một bộ vi xử lý phức tạp.

Sau đó, nếu nghiên cứu các tính năng vi kiến ​​trúc máy tính cụ thể, bạn sẽ muốn xem xét một số máy RISC đơn giản như AEMB , bộ xử lý RISC 32 bit nhỏ và nhanh, đa năng (phích cắm không biết xấu hổ).

Sau đó, nếu điều bạn muốn là học các kiểu và quy ước mã hóa tốt, thiết kế LEON2 là một nơi tốt để học phong cách mã hóa VHDL tốt.

Tuy nhiên, nếu mục đích của bạn khi nghiên cứu bộ xử lý là học cách tự thiết kế một bộ xử lý, thì cách tốt nhất của bạn là bắt đầu với một trong những máy 8 bit đơn giản (có rất nhiều ví dụ PIC, 8051, PIC trên mạng).


Ổ cắm không biết xấu hổ - AEMB - "bộ xử lý nhỏ nhất có thể."
sybreon

5

Bạn có thể thử kiểm tra một số thiết kế CPU Forth. Forth là một ngôn ngữ lập trình đơn giản có đặc tả và cách triển khai được xác định bằng hai ngăn xếp ngăn xếp (một cho dữ liệu và một cho địa chỉ trả về).

Một số bộ xử lý VHDL / Verilog nhỏ có sẵn miễn phí:

Một số liên kết khác có thể được tìm thấy ở đây:

Tái bút Mặc dù Forth là một ngôn ngữ khá cũ và tối nghĩa, nhiều máy ảo dựa trên ngăn xếp hiện đại (Java, máy ảo JavaScript nhanh) có thiết kế cấp thấp tương tự để việc tìm hiểu về nó có thể có kết quả.


2

PicoBlaze là tốt, tuy nhiên nó không có sẵn trong VHDL độc lập với nhà cung cấp.

Một số lựa chọn khác là:

  • Một bản sao Picoblaze trong Verilog (bạn sẽ có thể tìm thấy điều này một cách dễ dàng). Không chắc chắn nếu nó được duy trì
  • Gumnut là một lõi nhỏ đẹp được hỗ trợ bởi một cuốn sách Ashenden gần đây.
  • Máy tính / máy tính đăng ký nhỏ của Thacker (khoảng 200 dòng Verilog)
  • XSoC / XR16 của Jan Gray (đã được đề cập ở đây)

Ngoài ra, nếu bạn đang tìm kiếm một trình biên dịch cho CPU của mình, rất có thể có được một trình biên dịch cho CPU 16 bit. Khi đã có trình biên dịch của Poderico từ một ngôn ngữ giống như C sang Picoblaze nhưng nó đã bị gỡ khỏi web.


Nếu bạn bao gồm một dòng trống trước danh sách của bạn, câu trả lời của bạn sẽ được định dạng tốt hơn nhiều.
Trygve Laugstøl

1

Bạn có thể xem bộ xử lý Xilinx PicoBlaze . Đó là một vi điều khiển nhúng 8 bit tối thiểu và mã nguồn nên có sẵn.


1
Đó là tất cả VHDL cấu trúc, mặc dù không tuyệt vời như một công cụ giảng dạy
Martin Thompson

0

Quá muộn, tuy nhiên tôi cung cấp một câu trả lời nhỏ.

Có một khóa học được đặt tên từNand2Tetris từ Đại học Jerusalem, khóa học này cũng có mặt trên coursera, tôi đã xây dựng máy tính mà họ tạo ra trong khóa học đó. Tôi đã triển khai ngôn ngữ trong sơ đồ để có thể tự nhìn thấy cách máy tính hoạt động một cách chi tiết nhất. Và tôi đã thành công, trình giả lập mà họ tạo ra trong Java không thể làm mọi thứ tôi muốn thấy.

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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.